Spend less on fees, more on crypto. Buy crypto easily with MoonPay Balance. 20M+ users trust MoonPay worldwide.
Don’t invest unless you’re prepared to lose all the money you invest.
3000+ Slots, 20+ Cryptos, 75K Raffle, Sports Promos - World's largest Crypto Casino & Sportsbook - Provably Fair!
Play in crypto to make deposits and withdrawals easy! Register and get a free daily shot at a 100 000 $ jackpot.
Monthly Wagering Contest - $500,000+ rewards. Provably Fair, Low House Edge and best VIP Program!
Daily free Spin 50000 Matic ,760% Deposit Bonus, 20%Rakeback, And Get 1000000 Matic free bonus on BC.Game
Deposit BONUS 300% and Cashbacks. without verification!
Holidays are coming soon! Start betting on 1xBit and get a secret gift from Santa!
Overview
POL Balance
POL Value
$0.00Token Holdings
Could not find any matches!
- ERC-20 Tokens (80)3.14231525 WBTC(PoS) Wrappe... (WBTC)$306,378.88@97,501.0015,000 WETH [ 3ETH.NET ] Claim RewardERC-20: ! (WETH [...)15,000 WPOL [ WWW.POL-MAT.COM ]ERC-20: ! (WPOL [...)75,000 USD0 [ www.usd.gift ] Claim RewardERC-20: ! (USD0 [...)15,000 Visit GET-WLD.ORG to Claim RewardERC-20: ! Worldco... (Visit ...)29,367 SIMPERC-20: $ SimpSwa... (SIMP)1 https://t.ly/shibarmyERC-20: $SHIB Air... (https:...)10 ApeCoin.com.deERC-20: ApeCoin.c... (ApeCoi...)10,000 AVAXVOUCHER.COM SWAP NOWERC-20: AVAX (AVAXVO...)10 BDCERC-20: Bird Coin (BDC)10 BECERC-20: Bird Eggs... (BEC)969 BOSERC-20: Boss Wall... (BOS)5 DPCDeveloper Coin0.05 EVOWeVow Coin10,000 $iPEPE СLАlМ▷ipepe.clickERC-20: iPEPE ($iPEPE...)10,000 $iPEPE СLАlМ▷ipepe.clickERC-20: iPEPE ($iPEPE...)300,000 MNEPMinereum Polygon0.01288018 MMBULLERC-20: MintMe Bu... (MMBULL)10,000 $mPEPE СLАlМ ▷ mpepe.coERC-20: mPEPE ($mPEPE...)10,000 $mPEPE СLАlМ ▷ mpepe.coERC-20: mPEPE ($mPEPE...)1.42116272 OSSOSSChain$0.02@0.010811 RNTReental Utility Token$2.56@0.232791,968,523,936.4303 RicheSwapERC-20: RicheSwap... (RicheS...)13.643078 SIMSimba Empire29,367 SIMPSIMP Token0.0110019 SMTERC-20: SMARTMALL... (SMT)3,692,000 SSXStakeShare245.3 GMTERC-20: Stepn.fit... (GMT)10 STEPN.meERC-20: STEPN.me (STEPN....)10,000 STEIN web3-chess.com CRYPTO CHESSERC-20: STN (STEIN ...)1 Use just official link: TRUSTBOX.SITEERC-20: TRUST WAL... (Use ju...)1 Use just official link: Trust-earn.xyzERC-20: TRUST WAL... (Use ju...)1,250 1250$ Claim: t.ly/alienxERC-20: vAIX Rewa... (1250$ ...)200 WGCWild Goat Coin$0.08@0.00041,100 WGCWild Goat Coin1,765 xBlast AirDrop Link https://xblast-app.xyzERC-20: xBlast (xBlast...)10,007,112.2789772 TUTTutellus token$304,623.50@0.03041 TokenERC-20 TOKEN*[Suspicious]60,000 TokenERC-20 TOKEN*[Suspicious]1 TokenERC-20 TOKEN*[Suspicious]1 TokenERC-20 TOKEN*[Suspicious]10,000 TokenERC-20 TOKEN*[Suspicious]10,000 TokenERC-20 TOKEN*[Suspicious]10,000 TokenERC-20 TOKEN*[Suspicious]10,000 TokenERC-20 TOKEN*[Suspicious]10,000 TokenERC-20 TOKEN*[Suspicious]10,000 TokenERC-20 TOKEN*[Suspicious]10,000 TokenERC-20 TOKEN*[Unsafe]10,000 TokenERC-20 TOKEN*[Unsafe]2,985 TokenERC-20 TOKEN*[Spam]987,921 TokenERC-20 TOKEN*[Spam]5,765 TokenERC-20 TOKEN*[Spam]100,000,000,000,000,000 TokenERC-20 TOKEN*[Spam]9,000,000,000 TokenERC-20 TOKEN*[Spam]35,800 TokenERC-20 TOKEN*[Spam]9,000,000,000 TokenERC-20 TOKEN*[Spam]900,000,000,000,000 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]500 TokenERC-20 TOKEN*[Spam]3,000,000 TokenERC-20 TOKEN*[Spam]3,000,000 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]21,390 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]1 TokenERC-20 TOKEN*[Spam]5,800 TokenERC-20 TOKEN*[Spam]1,000,000 TokenERC-20 TOKEN*[Spam]1,497 TokenERC-20 TOKEN*[Spam]499 TokenERC-20 TOKEN*[Spam]10,000 TokenERC-20 TOKEN*[Spam]10,000 TokenERC-20 TOKEN*[Spam]10,000 TokenERC-20 TOKEN*[Spam]50,000 TokenERC-20 TOKEN*[Spam]3,794,998 TokenERC-20 TOKEN*[Spam]NFT Tokens (24)GIVEAWAY$100,000,000ERC-1155https://t.ly/pool$ETH POOLx2ERC-721https://t.ly/shibarmy$SHIB AirdropERC-721NFT Airdrop Round0.05 WBTCERC-1155deBridge Airdrop https://t.ly/ethersdeBridge AirdropERC-721https://t.ly/ethersdeBridge AirdropERC-721Destney Of kolectivDestney Of kolectivx2ERC-1155NFTLIDO AIRDROPERC-721Night ReflectsNight ReflectsERC-1155North DezukiNorth DezukiERC-1155OPTIMISMOPTIMISM NFT TICKETSERC-1155OPTIMISMOPTIMISM NFT TICKETSERC-1155OPTIMISMOPTIMISM NFT TICKETSERC-1155Squiggle OriginalSquiggle OriginalERC-1155The SUPERPLASTIC: SUPERGUCCI OriginalThe SUPERPLASTIC: SUPERGUCCI OriginalERC-1155White ReflectionWhite ReflectionERC-1155
More Info
Private Name Tags
ContractCreator
TokenTracker
- Transactions
- Internal Transactions
- Token Transfers (ERC-20)
- NFT Transfers
- Contract
- Events
- Multichain Portfolio
Advanced Filter- Filter by Tx Type:
- Tx
- Internal Tx
- ERC-20
- NFTs
Latest 25 from a total of 1,353 transactions
Transaction Hash MethodBlockFromToApprove 65309141 2024-12-10 11:09:24 2 hrs ago 1733828964 IN 0 POL$0.00 0.00278698 60.46312782 Approve 65269649 2024-12-09 11:32:47 26 hrs ago 1733743967 IN 0 POL$0.00 0.00167573 36.29802813 Approve 65269357 2024-12-09 11:21:24 26 hrs ago 1733743284 IN 0 POL$0.00 0.00150122 32.54334709 Transfer 65269164 2024-12-09 11:14:02 26 hrs ago 1733742842 IN 0 POL$0.00 0.00161689 31.39122057 Approve 65246497 2024-12-08 21:32:29 40 hrs ago 1733693549 IN 0 POL$0.00 0.00138426 30.00000005 Approve 65173054 2024-12-07 0:26:02 3 days ago 1733531162 IN 0 POL$0.00 0.00095957 32.99999999 Approve 65126217 2024-12-05 20:18:10 4 days ago 1733429890 IN 0 POL$0.00 0.00344414 74.64239586 Approve 65118678 2024-12-05 15:46:28 4 days ago 1733413588 IN 0 POL$0.00 0.00560223 121.41302176 Approve 65105795 2024-12-05 8:08:08 5 days ago 1733386088 IN 0 POL$0.00 0.00173884 37.68458106 Approve 65083601 2024-12-04 18:56:13 5 days ago 1733338573 IN 0 POL$0.00 0.00169602 36.72788455 Approve 64999143 2024-12-02 16:11:33 7 days ago 1733155893 IN 0 POL$0.00 0.00227338 86.55243691 Approve 64999143 2024-12-02 16:11:33 7 days ago 1733155893 IN 0 POL$0.00 0.00255153 87.7843048 Approve 64878205 2024-11-29 15:27:58 10 days ago 1732894078 IN 0 POL$0.00 0.00261702 90 Approve 64771102 2024-11-26 23:41:13 13 days ago 1732664473 IN 0 POL$0.00 0.00082485 28.37883537 Approve 64682628 2024-11-24 17:17:07 15 days ago 1732468627 IN 0 POL$0.00 0.00169663 36.76995489 Approve 64649681 2024-11-23 21:24:49 16 days ago 1732397089 IN 0 POL$0.00 0.00177308 38.42665711 Approve 64547043 2024-11-21 7:55:48 19 days ago 1732175748 IN 0 POL$0.00 0.00178753 38.70976563 Approve 64522386 2024-11-20 17:06:50 19 days ago 1732122410 IN 0 POL$0.00 0.00179801 38.9669368 Approve 64487854 2024-11-19 20:30:28 20 days ago 1732048228 IN 0 POL$0.00 0.00161623 35 Approve 64480012 2024-11-19 15:51:33 20 days ago 1732031493 IN 0 POL$0.00 0.00185788 40.24359496 Approve 64406017 2024-11-17 19:39:12 22 days ago 1731872352 IN 0 POL$0.00 0.00117728 25.51434085 Approve 64398925 2024-11-17 15:25:26 22 days ago 1731857126 IN 0 POL$0.00 0.00135649 29.39825797 Approve 64251984 2024-11-13 22:46:10 26 days ago 1731537970 IN 0 POL$0.00 0.00131852 28.57544772 Approve 64200028 2024-11-12 15:41:15 27 days ago 1731426075 IN 0 POL$0.00 0.00712534 154.42215684 Approve 64198961 2024-11-12 15:03:29 27 days ago 1731423809 IN 0 POL$0.00 0.0158903 344.37830197 Latest 1 internal transaction
Parent Transaction Hash Block From To 20209244 2021-10-14 12:21:24 1153 days ago 1634214084 Contract Creation 0 POL$0.00 Loading...LoadingSimilar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x85dE135f...D3da63b2dThe constructor portion of the code might be different and could alter the actual behaviour of the contractContract Name:UniswapV2Pair
Compiler Versionv0.6.12+commit.27d51765
Contract Source Code (Solidity)
- interface IUniswapV2Factory
- - function feeTo()
- - function feeToSetter()
- - function migrator()
- - function getPair(address tokenA, addr ...
- - function allPairs(uint)
- - function allPairsLength()
- - function createPair(address tokenA, a ...
- - function setFeeTo(address)
- - function setFeeToSetter(address)
- - function setMigrator(address)
- library SafeMathUniswap
- - function add(uint x, uint y)
- - function sub(uint x, uint y)
- - function mul(uint x, uint y)
- contract UniswapV2ERC20
- - function _mint(address to, uint value ...
- - function _burn(address from, uint val ...
- - function _approve(address owner, addr ...
- - function _transfer(address from, addr ...
- - function approve(address spender, uin ...
- - function transfer(address to, uint va ...
- - function transferFrom(address from, a ...
- - function permit(address owner, addres ...
- library Math
- - function min(uint x, uint y)
- - function sqrt(uint y)
- library UQ112x112
- - function encode(uint112 y)
- - function uqdiv(uint224 x, uint112 y)
- interface IERC20Uniswap
- - function name()
- - function symbol()
- - function decimals()
- - function totalSupply()
- - function balanceOf(address owner)
- - function allowance(address owner, add ...
- - function approve(address spender, uin ...
- - function transfer(address to, uint va ...
- - function transferFrom(address from, a ...
- interface IUniswapV2Callee
- - function uniswapV2Call(address sender ...
- interface IMigrator
- - function desiredLiquidity()
- contract UniswapV2Pair is UniswapV ... *
- - function getReserves()
- - function _safeTransfer(address token, ...
- - function initialize(address _token0, ...
- - function _update(uint balance0, uint ...
- - function _mintFee(uint112 _reserve0, ...
- - function mint(address to)
- - function burn(address to)
- - function swap(uint amount0Out, uint a ...
- - function skim(address to)
- - function sync()
/** *Submitted for verification at polygonscan.com on 2021-06-11 */ /** *Submitted for verification at Etherscan.io on 2020-09-05 */ // File: contracts/uniswapv2/interfaces/IUniswapV2Factory.sol pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function migrator() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; function setMigrator(address) external; } // File: contracts/uniswapv2/libraries/SafeMath.sol pragma solidity =0.6.12; // a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math) library SafeMathUniswap { function add(uint x, uint y) internal pure returns (uint z) { require((z = x + y) >= x, 'ds-math-add-overflow'); } function sub(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x, 'ds-math-sub-underflow'); } function mul(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow'); } } // File: contracts/uniswapv2/UniswapV2ERC20.sol pragma solidity =0.6.12; contract UniswapV2ERC20 { using SafeMathUniswap for uint; string public constant name = 'SushiSwap LP Token'; string public constant symbol = 'SLP'; uint8 public constant decimals = 18; uint public totalSupply; mapping(address => uint) public balanceOf; mapping(address => mapping(address => uint)) public allowance; bytes32 public DOMAIN_SEPARATOR; // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; mapping(address => uint) public nonces; event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); constructor() public { uint chainId; assembly { chainId := chainid() } DOMAIN_SEPARATOR = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes(name)), keccak256(bytes('1')), chainId, address(this) ) ); } function _mint(address to, uint value) internal { totalSupply = totalSupply.add(value); balanceOf[to] = balanceOf[to].add(value); emit Transfer(address(0), to, value); } function _burn(address from, uint value) internal { balanceOf[from] = balanceOf[from].sub(value); totalSupply = totalSupply.sub(value); emit Transfer(from, address(0), value); } function _approve(address owner, address spender, uint value) private { allowance[owner][spender] = value; emit Approval(owner, spender, value); } function _transfer(address from, address to, uint value) private { balanceOf[from] = balanceOf[from].sub(value); balanceOf[to] = balanceOf[to].add(value); emit Transfer(from, to, value); } function approve(address spender, uint value) external returns (bool) { _approve(msg.sender, spender, value); return true; } function transfer(address to, uint value) external returns (bool) { _transfer(msg.sender, to, value); return true; } function transferFrom(address from, address to, uint value) external returns (bool) { if (allowance[from][msg.sender] != uint(-1)) { allowance[from][msg.sender] = allowance[from][msg.sender].sub(value); } _transfer(from, to, value); return true; } function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external { require(deadline >= block.timestamp, 'UniswapV2: EXPIRED'); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', DOMAIN_SEPARATOR, keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)) ) ); address recoveredAddress = ecrecover(digest, v, r, s); require(recoveredAddress != address(0) && recoveredAddress == owner, 'UniswapV2: INVALID_SIGNATURE'); _approve(owner, spender, value); } } // File: contracts/uniswapv2/libraries/Math.sol pragma solidity =0.6.12; // a library for performing various math operations library Math { function min(uint x, uint y) internal pure returns (uint z) { z = x < y ? x : y; } // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method) function sqrt(uint y) internal pure returns (uint z) { if (y > 3) { z = y; uint x = y / 2 + 1; while (x < z) { z = x; x = (y / x + x) / 2; } } else if (y != 0) { z = 1; } } } // File: contracts/uniswapv2/libraries/UQ112x112.sol pragma solidity =0.6.12; // a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format)) // range: [0, 2**112 - 1] // resolution: 1 / 2**112 library UQ112x112 { uint224 constant Q112 = 2**112; // encode a uint112 as a UQ112x112 function encode(uint112 y) internal pure returns (uint224 z) { z = uint224(y) * Q112; // never overflows } // divide a UQ112x112 by a uint112, returning a UQ112x112 function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) { z = x / uint224(y); } } // File: contracts/uniswapv2/interfaces/IERC20.sol pragma solidity >=0.5.0; interface IERC20Uniswap { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); } // File: contracts/uniswapv2/interfaces/IUniswapV2Callee.sol pragma solidity >=0.5.0; interface IUniswapV2Callee { function uniswapV2Call(address sender, uint amount0, uint amount1, bytes calldata data) external; } // File: contracts/uniswapv2/UniswapV2Pair.sol pragma solidity =0.6.12; interface IMigrator { // Return the desired amount of liquidity token that the migrator wants. function desiredLiquidity() external view returns (uint256); } contract UniswapV2Pair is UniswapV2ERC20 { using SafeMathUniswap for uint; using UQ112x112 for uint224; uint public constant MINIMUM_LIQUIDITY = 10**3; bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)'))); address public factory; address public token0; address public token1; uint112 private reserve0; // uses single storage slot, accessible via getReserves uint112 private reserve1; // uses single storage slot, accessible via getReserves uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves uint public price0CumulativeLast; uint public price1CumulativeLast; uint public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event uint private unlocked = 1; modifier lock() { require(unlocked == 1, 'UniswapV2: LOCKED'); unlocked = 0; _; unlocked = 1; } function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) { _reserve0 = reserve0; _reserve1 = reserve1; _blockTimestampLast = blockTimestampLast; } function _safeTransfer(address token, address to, uint value) private { (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'UniswapV2: TRANSFER_FAILED'); } event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); constructor() public { factory = msg.sender; } // called once by the factory at time of deployment function initialize(address _token0, address _token1) external { require(msg.sender == factory, 'UniswapV2: FORBIDDEN'); // sufficient check token0 = _token0; token1 = _token1; } // update reserves and, on the first call per block, price accumulators function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private { require(balance0 <= uint112(-1) && balance1 <= uint112(-1), 'UniswapV2: OVERFLOW'); uint32 blockTimestamp = uint32(block.timestamp % 2**32); uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) { // * never overflows, and + overflow is desired price0CumulativeLast += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed; price1CumulativeLast += uint(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed; } reserve0 = uint112(balance0); reserve1 = uint112(balance1); blockTimestampLast = blockTimestamp; emit Sync(reserve0, reserve1); } // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k) function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) { address feeTo = IUniswapV2Factory(factory).feeTo(); feeOn = feeTo != address(0); uint _kLast = kLast; // gas savings if (feeOn) { if (_kLast != 0) { uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1)); uint rootKLast = Math.sqrt(_kLast); if (rootK > rootKLast) { uint numerator = totalSupply.mul(rootK.sub(rootKLast)); uint denominator = rootK.mul(5).add(rootKLast); uint liquidity = numerator / denominator; if (liquidity > 0) _mint(feeTo, liquidity); } } } else if (_kLast != 0) { kLast = 0; } } // this low-level function should be called from a contract which performs important safety checks function mint(address to) external lock returns (uint liquidity) { (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings uint balance0 = IERC20Uniswap(token0).balanceOf(address(this)); uint balance1 = IERC20Uniswap(token1).balanceOf(address(this)); uint amount0 = balance0.sub(_reserve0); uint amount1 = balance1.sub(_reserve1); bool feeOn = _mintFee(_reserve0, _reserve1); uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee if (_totalSupply == 0) { address migrator = IUniswapV2Factory(factory).migrator(); if (msg.sender == migrator) { liquidity = IMigrator(migrator).desiredLiquidity(); require(liquidity > 0 && liquidity != uint256(-1), "Bad desired liquidity"); } else { require(migrator == address(0), "Must not have migrator"); liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY); _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens } } else { liquidity = Math.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1); } require(liquidity > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED'); _mint(to, liquidity); _update(balance0, balance1, _reserve0, _reserve1); if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date emit Mint(msg.sender, amount0, amount1); } // this low-level function should be called from a contract which performs important safety checks function burn(address to) external lock returns (uint amount0, uint amount1) { (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings address _token0 = token0; // gas savings address _token1 = token1; // gas savings uint balance0 = IERC20Uniswap(_token0).balanceOf(address(this)); uint balance1 = IERC20Uniswap(_token1).balanceOf(address(this)); uint liquidity = balanceOf[address(this)]; bool feeOn = _mintFee(_reserve0, _reserve1); uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution require(amount0 > 0 && amount1 > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED'); _burn(address(this), liquidity); _safeTransfer(_token0, to, amount0); _safeTransfer(_token1, to, amount1); balance0 = IERC20Uniswap(_token0).balanceOf(address(this)); balance1 = IERC20Uniswap(_token1).balanceOf(address(this)); _update(balance0, balance1, _reserve0, _reserve1); if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date emit Burn(msg.sender, amount0, amount1, to); } // this low-level function should be called from a contract which performs important safety checks function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock { require(amount0Out > 0 || amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT'); (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings require(amount0Out < _reserve0 && amount1Out < _reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY'); uint balance0; uint balance1; { // scope for _token{0,1}, avoids stack too deep errors address _token0 = token0; address _token1 = token1; require(to != _token0 && to != _token1, 'UniswapV2: INVALID_TO'); if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens if (data.length > 0) IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data); balance0 = IERC20Uniswap(_token0).balanceOf(address(this)); balance1 = IERC20Uniswap(_token1).balanceOf(address(this)); } uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0; uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0; require(amount0In > 0 || amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT'); { // scope for reserve{0,1}Adjusted, avoids stack too deep errors uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3)); uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3)); require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'UniswapV2: K'); } _update(balance0, balance1, _reserve0, _reserve1); emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to); } // force balances to match reserves function skim(address to) external lock { address _token0 = token0; // gas savings address _token1 = token1; // gas savings _safeTransfer(_token0, to, IERC20Uniswap(_token0).balanceOf(address(this)).sub(reserve0)); _safeTransfer(_token1, to, IERC20Uniswap(_token1).balanceOf(address(this)).sub(reserve1)); } // force reserves to match balances function sync() external lock { _update(IERC20Uniswap(token0).balanceOf(address(this)), IERC20Uniswap(token1).balanceOf(address(this)), reserve0, reserve1); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
[{"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":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","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":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","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":"value","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":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"value","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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610534578063d505accf1461053c578063dd62ed3e1461058d578063fff6cae9146105bb576101a9565b8063ba9a7a56146104fe578063bc25cf7714610506578063c45a01551461052c576101a9565b80637ecebe00116100d35780637ecebe001461046557806389afcb441461048b57806395d89b41146104ca578063a9059cbb146104d2576101a9565b80636a6278421461041157806370a08231146104375780637464fc3d1461045d576101a9565b806323b872dd116101665780633644e515116101405780633644e515146103cb578063485cc955146103d35780635909c0d5146104015780635a3d549314610409576101a9565b806323b872dd1461036f57806330adf81f146103a5578063313ce567146103ad576101a9565b8063022c0d9f146101ae57806306fdde031461023c5780630902f1ac146102b9578063095ea7b3146102f15780630dfe16811461033157806318160ddd14610355575b600080fd5b61023a600480360360808110156101c457600080fd5b8135916020810135916001600160a01b0360408301351691908101906080810160608201356401000000008111156101fb57600080fd5b82018360208201111561020d57600080fd5b8035906020019184600183028401116401000000008311171561022f57600080fd5b5090925090506105c3565b005b610244610acb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027e578181015183820152602001610266565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c1610af9565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b61031d6004803603604081101561030757600080fd5b506001600160a01b038135169060200135610b23565b604080519115158252519081900360200190f35b610339610b3a565b604080516001600160a01b039092168252519081900360200190f35b61035d610b49565b60408051918252519081900360200190f35b61031d6004803603606081101561038557600080fd5b506001600160a01b03813581169160208101359091169060400135610b4f565b61035d610be3565b6103b5610c07565b6040805160ff9092168252519081900360200190f35b61035d610c0c565b61023a600480360360408110156103e957600080fd5b506001600160a01b0381358116916020013516610c12565b61035d610c96565b61035d610c9c565b61035d6004803603602081101561042757600080fd5b50356001600160a01b0316610ca2565b61035d6004803603602081101561044d57600080fd5b50356001600160a01b031661111e565b61035d611130565b61035d6004803603602081101561047b57600080fd5b50356001600160a01b0316611136565b6104b1600480360360208110156104a157600080fd5b50356001600160a01b0316611148565b6040805192835260208301919091528051918290030190f35b6102446114dc565b61031d600480360360408110156104e857600080fd5b506001600160a01b0381351690602001356114fb565b61035d611508565b61023a6004803603602081101561051c57600080fd5b50356001600160a01b031661150e565b610339611680565b61033961168f565b61023a600480360360e081101561055257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561169e565b61035d600480360360408110156105a357600080fd5b506001600160a01b03813581169160200135166118a0565b61023a6118bd565b600c5460011461060e576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55841515806106215750600084115b61065c5760405162461bcd60e51b81526004018080602001828103825260258152602001806122886025913960400191505060405180910390fd5b600080610667610af9565b5091509150816001600160701b03168710801561068c5750806001600160701b031686105b6106c75760405162461bcd60e51b81526004018080602001828103825260218152602001806122d16021913960400191505060405180910390fd5b60065460075460009182916001600160a01b039182169190811690891682148015906107055750806001600160a01b0316896001600160a01b031614155b61074e576040805162461bcd60e51b8152602060048201526015602482015274556e697377617056323a20494e56414c49445f544f60581b604482015290519081900360640190fd5b8a1561075f5761075f828a8d611a1f565b891561077057610770818a8c611a1f565b861561082257886001600160a01b03166310d1e85c338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561086857600080fd5b505afa15801561087c573d6000803e3d6000fd5b505050506040513d602081101561089257600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d602081101561090857600080fd5b5051925060009150506001600160701b0385168a9003831161092b57600061093a565b89856001600160701b03160383035b9050600089856001600160701b0316038311610957576000610966565b89856001600160701b03160383035b905060008211806109775750600081115b6109b25760405162461bcd60e51b81526004018080602001828103825260248152602001806122ad6024913960400191505060405180910390fd5b60006109d46109c2846003611bb9565b6109ce876103e8611bb9565b90611c1c565b905060006109e66109c2846003611bb9565b9050610a0b620f4240610a056001600160701b038b8116908b16611bb9565b90611bb9565b610a158383611bb9565b1015610a57576040805162461bcd60e51b815260206004820152600c60248201526b556e697377617056323a204b60a01b604482015290519081900360640190fd5b5050610a6584848888611c6c565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280601281526020017129bab9b434a9bbb0b8102628102a37b5b2b760711b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b30338484611e2b565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610bce576001600160a01b0384166000908152600260209081526040808320338452909152902054610ba99083611c1c565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610bd9848484611e8d565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610c68576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610cef576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c81905580610cff610af9565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d5357600080fd5b505afa158015610d67573d6000803e3d6000fd5b505050506040513d6020811015610d7d57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610dd057600080fd5b505afa158015610de4573d6000803e3d6000fd5b505050506040513d6020811015610dfa57600080fd5b505190506000610e13836001600160701b038716611c1c565b90506000610e2a836001600160701b038716611c1c565b90506000610e388787611f3b565b6000549091508061100f5760055460408051637cd07e4760e01b815290516000926001600160a01b031691637cd07e47916004808301926020929190829003018186803b158015610e8857600080fd5b505afa158015610e9c573d6000803e3d6000fd5b505050506040513d6020811015610eb257600080fd5b50519050336001600160a01b0382161415610f8d57806001600160a01b03166340dc0e376040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d6020811015610f2a57600080fd5b505199508915801590610f3f57506000198a14155b610f88576040805162461bcd60e51b81526020600482015260156024820152744261642064657369726564206c697175696469747960581b604482015290519081900360640190fd5b611009565b6001600160a01b03811615610fe2576040805162461bcd60e51b815260206004820152601660248201527526bab9ba103737ba103430bb329036b4b3b930ba37b960511b604482015290519081900360640190fd5b610ffa6103e86109ce610ff58888611bb9565b61207b565b995061100960006103e86120cd565b50611052565b61104f6001600160701b0389166110268684611bb9565b8161102d57fe5b046001600160701b0389166110428685611bb9565b8161104957fe5b04612157565b98505b600089116110915760405162461bcd60e51b815260040180806020018281038252602881526020018061231a6028913960400191505060405180910390fd5b61109b8a8a6120cd565b6110a786868a8a611c6c565b81156110d1576008546110cd906001600160701b0380821691600160701b900416611bb9565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c54600114611196576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c819055806111a6610af9565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561120257600080fd5b505afa158015611216573d6000803e3d6000fd5b505050506040513d602081101561122c57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561127a57600080fd5b505afa15801561128e573d6000803e3d6000fd5b505050506040513d60208110156112a457600080fd5b5051306000908152600160205260408120549192506112c38888611f3b565b600054909150806112d48487611bb9565b816112db57fe5b049a50806112e98486611bb9565b816112f057fe5b04995060008b118015611303575060008a115b61133e5760405162461bcd60e51b81526004018080602001828103825260288152602001806122f26028913960400191505060405180910390fd5b611348308461216f565b611353878d8d611a1f565b61135e868d8c611a1f565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b1580156113a457600080fd5b505afa1580156113b8573d6000803e3d6000fd5b505050506040513d60208110156113ce57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d602081101561144457600080fd5b5051935061145485858b8b611c6c565b811561147e5760085461147a906001600160701b0380821691600160701b900416611bb9565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b604051806040016040528060038152602001620534c560ec1b81525081565b6000610b30338484611e8d565b6103e881565b600c54600114611559576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b03948516949093169261160292859287926115fd926001600160701b03169185916370a0823191602480820192602092909190829003018186803b1580156115cb57600080fd5b505afa1580156115df573d6000803e3d6000fd5b505050506040513d60208110156115f557600080fd5b505190611c1c565b611a1f565b61167681846115fd6008600e9054906101000a90046001600160701b03166001600160701b0316856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156115cb57600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b428410156116e8576040805162461bcd60e51b8152602060048201526012602482015271155b9a5cddd85c158c8e881156141254915160721b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa158015611803573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906118395750886001600160a01b0316816001600160a01b0316145b61188a576040805162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611895898989611e2b565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611908576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b81523060048201529051611a18926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b505050506040513d60208110156119fa57600080fd5b50516008546001600160701b0380821691600160701b900416611c6c565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b60208310611acc5780518252601f199092019160209182019101611aad565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b2e576040519150601f19603f3d011682016040523d82523d6000602084013e611b33565b606091505b5091509150818015611b61575080511580611b615750808060200190516020811015611b5e57600080fd5b50515b611bb2576040805162461bcd60e51b815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b6000811580611bd457505080820282828281611bd157fe5b04145b610b34576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b34576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611c8a57506001600160701b038311155b611cd1576040805162461bcd60e51b8152602060048201526013602482015272556e697377617056323a204f564552464c4f5760681b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611d0157506001600160701b03841615155b8015611d1557506001600160701b03831615155b15611d80578063ffffffff16611d3d85611d2e86612201565b6001600160e01b031690612213565b600980546001600160e01b03929092169290920201905563ffffffff8116611d6884611d2e87612201565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611eb09082611c1c565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611edf9082612238565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611f8c57600080fd5b505afa158015611fa0573d6000803e3d6000fd5b505050506040513d6020811015611fb657600080fd5b5051600b546001600160a01b038216158015945091925090612067578015612062576000611ff3610ff56001600160701b03888116908816611bb9565b905060006120008361207b565b90508082111561205f5760006120226120198484611c1c565b60005490611bb9565b9050600061203b83612035866005611bb9565b90612238565b9050600081838161204857fe5b049050801561205b5761205b87826120cd565b5050505b50505b612073565b8015612073576000600b555b505092915050565b600060038211156120be575080600160028204015b818110156120b8578091506002818285816120a757fe5b0401816120b057fe5b049050612090565b506120c8565b81156120c8575060015b919050565b6000546120da9082612238565b60009081556001600160a01b0383168152600160205260409020546120ff9082612238565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106121665781612168565b825b9392505050565b6001600160a01b0382166000908152600160205260409020546121929082611c1c565b6001600160a01b038316600090815260016020526040812091909155546121b99082611c1c565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161223057fe5b049392505050565b80820182811015610b34576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220713a8bf21df06433f34b5c9abf186abb737e72524583bdf420105a289791e24864736f6c634300060c0033
Deployed Bytecode Sourcemap
7791:10161:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15428:1903;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15428:1903:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15428:1903:0;;-1:-1:-1;15428:1903:0;-1:-1:-1;15428:1903:0;:::i;:::-;;1714:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8803:231;;;:::i;:::-;;;;-1:-1:-1;;;;;8803:231:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3768:147;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3768:147:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8092:21;;;:::i;:::-;;;;-1:-1:-1;;;;;8092:21:0;;;;;;;;;;;;;;1857:24;;;:::i;:::-;;;;;;;;;;;;;;;;4070:301;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4070:301:0;;;;;;;;;;;;;;;;;:::i;2149:108::-;;;:::i;1815:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2006:31;;;:::i;9863:210::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9863:210:0;;;;;;;;;;:::i;8443:32::-;;;:::i;8482:::-;;;:::i;12057:1653::-;;;;;;;;;;;;;;;;-1:-1:-1;12057:1653:0;-1:-1:-1;;;;;12057:1653:0;;:::i;1888:41::-;;;;;;;;;;;;;;;;-1:-1:-1;1888:41:0;-1:-1:-1;;;;;1888:41:0;;:::i;8521:17::-;;;:::i;2264:38::-;;;;;;;;;;;;;;;;-1:-1:-1;2264:38:0;-1:-1:-1;;;;;2264:38:0;;:::i;13822:1494::-;;;;;;;;;;;;;;;;-1:-1:-1;13822:1494:0;-1:-1:-1;;;;;13822:1494:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1771:37;;;:::i;3923:139::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3923:139:0;;;;;;;;:::i;7913:46::-;;;:::i;17380:348::-;;;;;;;;;;;;;;;;-1:-1:-1;17380:348:0;-1:-1:-1;;;;;17380:348:0;;:::i;8063:22::-;;;:::i;8120:21::-;;;:::i;4379:674::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4379:674:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1936:61::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1936:61:0;;;;;;;;;;:::i;17777:172::-;;;:::i;15428:1903::-;8694:8;;8706:1;8694:13;8686:43;;;;;-1:-1:-1;;;8686:43:0;;;;;;;;;;;;-1:-1:-1;;;8686:43:0;;;;;;;;;;;;;;;8751:1;8740:8;:12;15542:14;;;;:32:::1;;;15573:1;15560:10;:14;15542:32;15534:82;;;;-1:-1:-1::0;;;15534:82:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15628:17;15647::::0;15669:13:::1;:11;:13::i;:::-;15627:55;;;;;15729:9;-1:-1:-1::0;;;;;15716:22:0::1;:10;:22;:48;;;;;15755:9;-1:-1:-1::0;;;;;15742:22:0::1;:10;:22;15716:48;15708:94;;;;-1:-1:-1::0;;;15708:94:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15947:6;::::0;15982::::1;::::0;15815:13:::1;::::0;;;-1:-1:-1;;;;;15947:6:0;;::::1;::::0;15982;;::::1;::::0;16007:13;::::1;::::0;::::1;::::0;::::1;::::0;:30:::1;;;16030:7;-1:-1:-1::0;;;;;16024:13:0::1;:2;-1:-1:-1::0;;;;;16024:13:0::1;;;16007:30;15999:64;;;::::0;;-1:-1:-1;;;15999:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;15999:64:0;;;;;;;;;;;;;::::1;;16078:14:::0;;16074:58:::1;;16094:38;16108:7;16117:2;16121:10;16094:13;:38::i;:::-;16181:14:::0;;16177:58:::1;;16197:38;16211:7;16220:2;16224:10;16197:13;:38::i;:::-;16284:15:::0;;16280:97:::1;;16318:2;-1:-1:-1::0;;;;;16301:34:0::1;;16336:10;16348;16360;16372:4;;16301:76;;;;;;;;;;;;;-1:-1:-1::0;;;;;16301:76:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16280:97;16399:47;::::0;;-1:-1:-1;;;16399:47:0;;16440:4:::1;16399:47;::::0;::::1;::::0;;;-1:-1:-1;;;;;16399:32:0;::::1;::::0;::::1;::::0;:47;;;;;::::1;::::0;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;16399:47:0;16468::::1;::::0;;-1:-1:-1;;;16468:47:0;;16509:4:::1;16468:47;::::0;::::1;::::0;;;16399;;-1:-1:-1;;;;;;16468:32:0;::::1;::::0;::::1;::::0;:47;;;;;16399::::1;::::0;16468;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;16468:47:0;;-1:-1:-1;16537:14:0::1;::::0;-1:-1:-1;;;;;;;16565:22:0;::::1;::::0;;::::1;16554:33:::0;::::1;:75;;16628:1;16554:75;;;16614:10;16602:9;-1:-1:-1::0;;;;;16602:22:0::1;;16590:8;:35;16554:75;16537:92;;16640:14;16680:10;16668:9;-1:-1:-1::0;;;;;16668:22:0::1;;16657:8;:33;:75;;16731:1;16657:75;;;16717:10;16705:9;-1:-1:-1::0;;;;;16705:22:0::1;;16693:8;:35;16657:75;16640:92;;16763:1;16751:9;:13;:30;;;;16780:1;16768:9;:13;16751:30;16743:79;;;;-1:-1:-1::0;;;16743:79:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16908:21;16932:40;16955:16;:9:::0;16969:1:::1;16955:13;:16::i;:::-;16932:18;:8:::0;16945:4:::1;16932:12;:18::i;:::-;:22:::0;::::1;:40::i;:::-;16908:64:::0;-1:-1:-1;16983:21:0::1;17007:40;17030:16;:9:::0;17044:1:::1;17030:13;:16::i;17007:40::-;16983:64:::0;-1:-1:-1;17108:43:0::1;17143:7;17108:30;-1:-1:-1::0;;;;;17108:15:0;;::::1;::::0;:30;::::1;:19;:30::i;:::-;:34:::0;::::1;:43::i;:::-;17066:38;:16:::0;17087;17066:20:::1;:38::i;:::-;:85;;17058:110;;;::::0;;-1:-1:-1;;;17058:110:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;17058:110:0;;;;;;;;;;;;;::::1;;8763:1;;17192:49;17200:8;17210;17220:9;17231;17192:7;:49::i;:::-;17257:66;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17257:66:0;::::1;::::0;17262:10:::1;::::0;17257:66:::1;::::0;;;;;;;::::1;-1:-1:-1::0;;8786:1:0;8775:8;:12;-1:-1:-1;;;;;;;;;15428:1903:0:o;1714:50::-;;;;;;;;;;;;;;-1:-1:-1;;;1714:50:0;;;;:::o;8803:231::-;8936:8;;-1:-1:-1;;;;;8936:8:0;;;;-1:-1:-1;;;8967:8:0;;;;;;-1:-1:-1;;;9008:18:0;;;;;8803:231::o;3768:147::-;3832:4;3849:36;3858:10;3870:7;3879:5;3849:8;:36::i;:::-;-1:-1:-1;3903:4:0;3768:147;;;;;:::o;8092:21::-;;;-1:-1:-1;;;;;8092:21:0;;:::o;1857:24::-;;;;:::o;4070:301::-;-1:-1:-1;;;;;4169:15:0;;4148:4;4169:15;;;:9;:15;;;;;;;;4185:10;4169:27;;;;;;;;-1:-1:-1;;4169:39:0;4165:140;;-1:-1:-1;;;;;4255:15:0;;;;;;:9;:15;;;;;;;;4271:10;4255:27;;;;;;;;:38;;4287:5;4255:31;:38::i;:::-;-1:-1:-1;;;;;4225:15:0;;;;;;:9;:15;;;;;;;;4241:10;4225:27;;;;;;;:68;4165:140;4315:26;4325:4;4331:2;4335:5;4315:9;:26::i;:::-;-1:-1:-1;4359:4:0;4070:301;;;;;:::o;2149:108::-;2191:66;2149:108;:::o;1815:35::-;1848:2;1815:35;:::o;2006:31::-;;;;:::o;9863:210::-;9959:7;;-1:-1:-1;;;;;9959:7:0;9945:10;:21;9937:54;;;;;-1:-1:-1;;;9937:54:0;;;;;;;;;;;;-1:-1:-1;;;9937:54:0;;;;;;;;;;;;;;;10022:6;:16;;-1:-1:-1;;;;;10022:16:0;;;-1:-1:-1;;;;;;10022:16:0;;;;;;;10049:6;:16;;;;;;;;;;;9863:210::o;8443:32::-;;;;:::o;8482:::-;;;;:::o;12057:1653::-;12106:14;8694:8;;8706:1;8694:13;8686:43;;;;;-1:-1:-1;;;8686:43:0;;;;;;;;;;;;-1:-1:-1;;;8686:43:0;;;;;;;;;;;;;;;8751:1;8740:8;:12;;;8751:1;12175:13:::1;:11;:13::i;:::-;-1:-1:-1::0;12244:6:0::1;::::0;12230:46:::1;::::0;;-1:-1:-1;;;12230:46:0;;12270:4:::1;12230:46;::::0;::::1;::::0;;;12133:55;;-1:-1:-1;12133:55:0;;-1:-1:-1;12214:13:0::1;::::0;-1:-1:-1;;;;;12244:6:0;;::::1;::::0;12230:31:::1;::::0;:46;;;;;::::1;::::0;;;;;;;;12244:6;12230:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12230:46:0;12317:6:::1;::::0;12303:46:::1;::::0;;-1:-1:-1;;;12303:46:0;;12343:4:::1;12303:46;::::0;::::1;::::0;;;12230;;-1:-1:-1;12287:13:0::1;::::0;-1:-1:-1;;;;;12317:6:0;;::::1;::::0;12303:31:::1;::::0;:46;;;;;12230::::1;::::0;12303;;;;;;;;12317:6;12303:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12303:46:0;;-1:-1:-1;12360:12:0::1;12375:23;:8:::0;-1:-1:-1;;;;;12375:23:0;::::1;:12;:23::i;:::-;12360:38:::0;-1:-1:-1;12409:12:0::1;12424:23;:8:::0;-1:-1:-1;;;;;12424:23:0;::::1;:12;:23::i;:::-;12409:38;;12460:10;12473:30;12482:9;12493;12473:8;:30::i;:::-;12514:17;12534:11:::0;12460:43;;-1:-1:-1;12638:17:0;12634:751:::1;;12709:7;::::0;12691:37:::1;::::0;;-1:-1:-1;;;12691:37:0;;;;12672:16:::1;::::0;-1:-1:-1;;;;;12709:7:0::1;::::0;12691:35:::1;::::0;:37:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;12709:7;12691:37;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12691:37:0;;-1:-1:-1;12747:10:0::1;-1:-1:-1::0;;;;;12747:22:0;::::1;;12743:500;;;12812:8;-1:-1:-1::0;;;;;12802:36:0::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12802:38:0;;-1:-1:-1;12867:13:0;;;;;:41:::1;;;-1:-1:-1::0;;12884:9:0::1;:24;;12867:41;12859:75;;;::::0;;-1:-1:-1;;;12859:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;12859:75:0;;;;;;;;;;;;;::::1;;12743:500;;;-1:-1:-1::0;;;;;12983:22:0;::::1;::::0;12975:57:::1;;;::::0;;-1:-1:-1;;;12975:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;12975:57:0;;;;;;;;;;;;;::::1;;13063:54;7954:5;13063:31;13073:20;:7:::0;13085;13073:11:::1;:20::i;:::-;13063:9;:31::i;:54::-;13051:66;;13136:36;13150:1;7954:5;13136;:36::i;:::-;12634:751;;;;13287:86;-1:-1:-1::0;;;;;13296:37:0;::::1;:25;:7:::0;13308:12;13296:11:::1;:25::i;:::-;:37;;;;;;-1:-1:-1::0;;;;;13335:37:0;::::1;:25;:7:::0;13347:12;13335:11:::1;:25::i;:::-;:37;;;;;;13287:8;:86::i;:::-;13275:98;;12634:751;13415:1;13403:9;:13;13395:66;;;;-1:-1:-1::0;;;13395:66:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13472:20;13478:2;13482:9;13472:5;:20::i;:::-;13505:49;13513:8;13523;13533:9;13544;13505:7;:49::i;:::-;13569:5;13565:47;;;13603:8;::::0;13584:28:::1;::::0;-1:-1:-1;;;;;13589:8:0;;::::1;::::0;-1:-1:-1;;;13603:8:0;::::1;;13584:18;:28::i;:::-;13576:5;:36:::0;13565:47:::1;13668:34;::::0;;;;;::::1;::::0;::::1;::::0;;;;;13673:10:::1;::::0;13668:34:::1;::::0;;;;;;::::1;-1:-1:-1::0;;8786:1:0;8775:8;:12;-1:-1:-1;12057:1653:0;;;-1:-1:-1;;;;;;12057:1653:0:o;1888:41::-;;;;;;;;;;;;;:::o;8521:17::-;;;;:::o;2264:38::-;;;;;;;;;;;;;:::o;13822:1494::-;13871:12;13885;8694:8;;8706:1;8694:13;8686:43;;;;;-1:-1:-1;;;8686:43:0;;;;;;;;;;;;-1:-1:-1;;;8686:43:0;;;;;;;;;;;;;;;8751:1;8740:8;:12;;;8751:1;13952:13:::1;:11;:13::i;:::-;-1:-1:-1::0;14009:6:0::1;::::0;14090::::1;::::0;14169:47:::1;::::0;;-1:-1:-1;;;14169:47:0;;14210:4:::1;14169:47;::::0;::::1;::::0;;;13910:55;;-1:-1:-1;13910:55:0;;-1:-1:-1;;;;;;14009:6:0;;::::1;::::0;14090;::::1;::::0;13991:15:::1;::::0;14009:6;;14169:32:::1;::::0;:47;;;;;::::1;::::0;;;;;;;;14009:6;14169:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14169:47:0;14243::::1;::::0;;-1:-1:-1;;;14243:47:0;;14284:4:::1;14243:47;::::0;::::1;::::0;;;14169;;-1:-1:-1;14227:13:0::1;::::0;-1:-1:-1;;;;;14243:32:0;::::1;::::0;::::1;::::0;:47;;;;;14169::::1;::::0;14243;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14243:47:0;14336:4:::1;14301:14;14318:24:::0;;;:9:::1;14243:47;14318:24:::0;;;;;14243:47;;-1:-1:-1;14368:30:0::1;14377:9:::0;14388;14368:8:::1;:30::i;:::-;14409:17;14429:11:::0;14355:43;;-1:-1:-1;14429:11:0;14539:23:::1;:9:::0;14553:8;14539:13:::1;:23::i;:::-;:38;;;;;;::::0;-1:-1:-1;14672:12:0;14646:23:::1;:9:::0;14660:8;14646:13:::1;:23::i;:::-;:38;;;;;;14636:48;;14761:1;14751:7;:11;:26;;;;;14776:1;14766:7;:11;14751:26;14743:79;;;;-1:-1:-1::0;;;14743:79:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14833:31;14847:4;14854:9;14833:5;:31::i;:::-;14875:35;14889:7;14898:2;14902:7;14875:13;:35::i;:::-;14921;14935:7;14944:2;14948:7;14921:13;:35::i;:::-;14978:47;::::0;;-1:-1:-1;;;14978:47:0;;15019:4:::1;14978:47;::::0;::::1;::::0;;;-1:-1:-1;;;;;14978:32:0;::::1;::::0;::::1;::::0;:47;;;;;::::1;::::0;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14978:47:0;15047::::1;::::0;;-1:-1:-1;;;15047:47:0;;15088:4:::1;15047:47;::::0;::::1;::::0;;;14978;;-1:-1:-1;;;;;;15047:32:0;::::1;::::0;::::1;::::0;:47;;;;;14978::::1;::::0;15047;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15047:47:0;;-1:-1:-1;15107:49:0::1;15115:8:::0;15047:47;15135:9;15146;15107:7:::1;:49::i;:::-;15171:5;15167:47;;;15205:8;::::0;15186:28:::1;::::0;-1:-1:-1;;;;;15191:8:0;;::::1;::::0;-1:-1:-1;;;15205:8:0;::::1;;15186:18;:28::i;:::-;15178:5;:36:::0;15167:47:::1;15270:38;::::0;;;;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;15270:38:0;::::1;::::0;15275:10:::1;::::0;15270:38:::1;::::0;;;;;;;;;::::1;8763:1;;;;;;;;;8786::::0;8775:8;:12;;;;13822:1494;;;:::o;1771:37::-;;;;;;;;;;;;;;-1:-1:-1;;;1771:37:0;;;;:::o;3923:139::-;3983:4;4000:32;4010:10;4022:2;4026:5;4000:9;:32::i;7913:46::-;7954:5;7913:46;:::o;17380:348::-;8694:8;;8706:1;8694:13;8686:43;;;;;-1:-1:-1;;;8686:43:0;;;;;;;;;;;;-1:-1:-1;;;8686:43:0;;;;;;;;;;;;;;;8751:1;8740:8;:12;17449:6:::1;::::0;17499::::1;::::0;17610:8:::1;::::0;17558:47:::1;::::0;;-1:-1:-1;;;17558:47:0;;17599:4:::1;17558:47;::::0;::::1;::::0;;;-1:-1:-1;;;;;17449:6:0;;::::1;::::0;17499;;::::1;::::0;17531:89:::1;::::0;17449:6;;17554:2;;17558:61:::1;::::0;-1:-1:-1;;;;;17610:8:0::1;::::0;17449:6;;17558:32:::1;::::0;:47;;;;;::::1;::::0;;;;;;;;;17449:6;17558:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17558:47:0;;:51:::1;:61::i;:::-;17531:13;:89::i;:::-;17631;17645:7;17654:2;17658:61;17710:8;;;;;;;;;-1:-1:-1::0;;;;;17710:8:0::1;-1:-1:-1::0;;;;;17658:61:0::1;17672:7;-1:-1:-1::0;;;;;17658:32:0::1;;17699:4;17658:47;;;;;;;;;;;;;-1:-1:-1::0;;;;;17658:47:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;17631:89;-1:-1:-1::0;;8786:1:0;8775:8;:12;-1:-1:-1;17380:348:0:o;8063:22::-;;;-1:-1:-1;;;;;8063:22:0;;:::o;8120:21::-;;;-1:-1:-1;;;;;8120:21:0;;:::o;4379:674::-;4525:15;4513:8;:27;;4505:58;;;;;-1:-1:-1;;;4505:58:0;;;;;;;;;;;;-1:-1:-1;;;4505:58:0;;;;;;;;;;;;;;;4679:16;;-1:-1:-1;;;;;4775:13:0;;;4574:14;4775:13;;;:6;:13;;;;;;;;:15;;;;;;;;;4724:77;;2191:66;4724:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4714:88;;;;;;-1:-1:-1;;;4615:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4591:237;;;;;;;;;4866:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4574:14;;4775:15;4866:26;;;;;-1:-1:-1;;4866:26:0;;;;;;;;;;4775:15;4866:26;;;;;;;;;;;;;;;-1:-1:-1;;4866:26:0;;-1:-1:-1;;4866:26:0;;;-1:-1:-1;;;;;;;4911:30:0;;;;;;:59;;;4965:5;-1:-1:-1;;;;;4945:25:0;:16;-1:-1:-1;;;;;4945:25:0;;4911:59;4903:100;;;;;-1:-1:-1;;;4903:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5014:31;5023:5;5030:7;5039:5;5014:8;:31::i;:::-;4379:674;;;;;;;;;:::o;1936:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;17777:172::-;8694:8;;8706:1;8694:13;8686:43;;;;;-1:-1:-1;;;8686:43:0;;;;;;;;;;;;-1:-1:-1;;;8686:43:0;;;;;;;;;;;;;;;8751:1;8740:8;:12;17840:6:::1;::::0;17826:46:::1;::::0;;-1:-1:-1;;;17826:46:0;;17866:4:::1;17826:46;::::0;::::1;::::0;;;17818:123:::1;::::0;-1:-1:-1;;;;;17840:6:0::1;::::0;17826:31:::1;::::0;:46;;;;;::::1;::::0;;;;;;;;17840:6;17826:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17826:46:0;17888:6:::1;::::0;17874:46:::1;::::0;;-1:-1:-1;;;17874:46:0;;17914:4:::1;17874:46;::::0;::::1;::::0;;;-1:-1:-1;;;;;17888:6:0;;::::1;::::0;17874:31:::1;::::0;:46;;;;;17826::::1;::::0;17874;;;;;;;;17888:6;17874:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17874:46:0;17922:8:::1;::::0;-1:-1:-1;;;;;17922:8:0;;::::1;::::0;-1:-1:-1;;;17932:8:0;::::1;;17818:7;:123::i;:::-;8786:1:::0;8775:8;:12;17777:172::o;9042:287::-;8018:34;;;;;;;;;;;;;;;;;9170:43;;-1:-1:-1;;;;;9170:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9170:43:0;-1:-1:-1;;;9170:43:0;;;9159:55;;;;9124:12;;9138:17;;9159:10;;;9170:43;9159:55;;;9170:43;9159:55;;9170:43;9159:55;;;;;;;;;;-1:-1:-1;;9159:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9123:91;;;;9233:7;:57;;;;-1:-1:-1;9245:11:0;;:16;;:44;;;9276:4;9265:24;;;;;;;;;;;;;;;-1:-1:-1;9265:24:0;9245:44;9225:96;;;;;-1:-1:-1;;;9225:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9042:287;;;;;:::o;1414:142::-;1466:6;1493;;;:30;;-1:-1:-1;;1508:5:0;;;1522:1;1517;1508:5;1517:1;1503:15;;;;;:20;1493:30;1485:63;;;;;-1:-1:-1;;;1485:63:0;;;;;;;;;;;;-1:-1:-1;;;1485:63:0;;;;;;;;;;;;;;1277:129;1361:5;;;1356:16;;;;1348:50;;;;;-1:-1:-1;;;1348:50:0;;;;;;;;;;;;-1:-1:-1;;;1348:50:0;;;;;;;;;;;;;;10158:860;-1:-1:-1;;;;;10270:23:0;;;;;:50;;-1:-1:-1;;;;;;10297:23:0;;;10270:50;10262:82;;;;;-1:-1:-1;;;10262:82:0;;;;;;;;;;;;-1:-1:-1;;;10262:82:0;;;;;;;;;;;;;;;10459:18;;10386:23;:15;:23;;;-1:-1:-1;;;10459:18:0;;;;10442:35;;;10515:15;;;;;;:33;;-1:-1:-1;;;;;;10534:14:0;;;;10515:33;:51;;;;-1:-1:-1;;;;;;10552:14:0;;;;10515:51;10511:336;;;10721:11;10668:64;;10673:44;10707:9;10673:27;10690:9;10673:16;:27::i;:::-;-1:-1:-1;;;;;10673:33:0;;;:44::i;:::-;10644:20;:88;;-1:-1:-1;;;;;10668:50:0;;;;:64;;;;10644:88;;;10771:64;;;10776:44;10810:9;10776:27;10793:9;10776:16;:27::i;:44::-;10747:20;:88;;-1:-1:-1;;;;;10771:50:0;;;;:64;;;;10747:88;;;10511:336;10857:8;:28;;-1:-1:-1;;10857:28:0;-1:-1:-1;;;;;10857:28:0;;;;;;;-1:-1:-1;;;;10896:28:0;-1:-1:-1;;;10896:28:0;;;;;;;;;-1:-1:-1;;;;;10935:35:0;-1:-1:-1;;;10935:35:0;;;;;;;;;10986:24;;;10991:8;;;10986:24;;11001:8;;;;;;;10986:24;;;;;;;;;;;;;;;;;10158:860;;;;;;:::o;3363:169::-;-1:-1:-1;;;;;3444:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;3493:31;;;;;;;;;;;;;;;;;3363:169;;;:::o;3540:220::-;-1:-1:-1;;;;;3634:15:0;;;;;;:9;:15;;;;;;:26;;3654:5;3634:19;:26::i;:::-;-1:-1:-1;;;;;3616:15:0;;;;;;;:9;:15;;;;;;:44;;;;3687:13;;;;;;;:24;;3705:5;3687:17;:24::i;:::-;-1:-1:-1;;;;;3671:13:0;;;;;;;:9;:13;;;;;;;;;:40;;;;3727:25;;;;;;;3671:13;;3727:25;;;;;;;;;;;;;3540:220;;;:::o;11108:837::-;11181:10;11204:13;11238:7;;;;;;;;;-1:-1:-1;;;;;11238:7:0;-1:-1:-1;;;;;11220:32:0;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11220:34:0;11317:5;;-1:-1:-1;;;;;11273:19:0;;;;;;-1:-1:-1;11220:34:0;;-1:-1:-1;11317:5:0;11348:590;;11378:11;;11374:494;;11410:10;11423:41;11433:30;-1:-1:-1;;;;;11433:15:0;;;;:30;;:19;:30::i;11423:41::-;11410:54;;11483:14;11500:17;11510:6;11500:9;:17::i;:::-;11483:34;;11548:9;11540:5;:17;11536:317;;;11582:14;11599:37;11615:20;:5;11625:9;11615;:20::i;:::-;11599:11;;;:15;:37::i;:::-;11582:54;-1:-1:-1;11659:16:0;11678:27;11695:9;11678:12;:5;11688:1;11678:9;:12::i;:::-;:16;;:27::i;:::-;11659:46;;11728:14;11757:11;11745:9;:23;;;;;;;-1:-1:-1;11795:13:0;;11791:42;;11810:23;11816:5;11823:9;11810:5;:23::i;:::-;11536:317;;;;11374:494;;;11348:590;;;11889:11;;11885:53;;11925:1;11917:5;:9;11885:53;11108:837;;;;;;:::o;5428:303::-;5473:6;5500:1;5496;:5;5492:232;;;-1:-1:-1;5522:1:0;5555;5551;5547:5;;:9;5571:92;5582:1;5578;:5;5571:92;;;5608:1;5604:5;;5646:1;5641;5637;5633;:5;;;;;;:9;5632:15;;;;;;5628:19;;5571:92;;;5492:232;;;;5684:6;;5680:44;;-1:-1:-1;5711:1:0;5680:44;5428:303;;;:::o;2937:201::-;3010:11;;:22;;3026:5;3010:15;:22::i;:::-;2996:11;:36;;;-1:-1:-1;;;;;3059:13:0;;;;:9;:13;;;;;;:24;;3077:5;3059:17;:24::i;:::-;-1:-1:-1;;;;;3043:13:0;;;;;;:9;:13;;;;;;;;:40;;;;3099:31;;;;;;;3043:13;;;;3099:31;;;;;;;;;;2937:201;;:::o;5214:96::-;5266:6;5293:1;5289;:5;:13;;5301:1;5289:13;;;5297:1;5289:13;5285:17;5214:96;-1:-1:-1;;;5214:96:0:o;3146:209::-;-1:-1:-1;;;;;3225:15:0;;;;;;:9;:15;;;;;;:26;;3245:5;3225:19;:26::i;:::-;-1:-1:-1;;;;;3207:15:0;;;;;;:9;:15;;;;;:44;;;;3276:11;:22;;3292:5;3276:15;:22::i;:::-;3262:11;:36;;;3314:33;;;;;;;;-1:-1:-1;;;;;3314:33:0;;;;;;;;;;;;;3146:209;;:::o;6088:120::-;-1:-1:-1;;;;;6164:10:0;-1:-1:-1;;;6164:17:0;;6088:120::o;6279:108::-;6339:9;-1:-1:-1;;;;;6369:10:0;;-1:-1:-1;;;;;6365:14:0;;6369:10;6365:14;;;;;;6279:108;-1:-1:-1;;;6279:108:0:o;1141:128::-;1225:5;;;1220:16;;;;1212:49;;;;;-1:-1:-1;;;1212:49:0;;;;;;;;;;;;-1:-1:-1;;;1212:49:0;;;;;;;;;;;;;
Swarm Source
ipfs://713a8bf21df06433f34b5c9abf186abb737e72524583bdf420105a289791e248
Loading...LoadingLoading...Loading
Loading...Loading
Loading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingLoading...Loading[ Download: CSV Export ][ Download: CSV Export ]A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.
Address QR Code
My Address - Private Name Tag or Note
My Name Tag:
Private Name Tags (up to 35 characters) can be used for easy identification of addressesPrivate Note:
A private note (up to 500 characters) can be attached to this address.
Please DO NOT store any passwords or private keys here.Compiler specific version warnings:
The compiled contract might be susceptible to FullInlinerNonExpressionSplitArgumentEvaluationOrder (low-severity), MissingSideEffectsOnSelectorAccess (low-severity), AbiReencodingHeadOverflowWithStaticArrayCleanup (medium-severity), DirtyBytesArrayToStorage (low-severity), DataLocationChangeInInternalOverride (very low-severity), NestedCalldataArrayAbiReencodingSizeValidation (very low-severity), SignedImmutables (very low-severity), ABIDecodeTwoDimensionalArrayMemory (very low-severity), KeccakCaching (medium-severity), EmptyByteArrayCopy (medium-severity), DynamicArrayCleanup (medium-severity) Solidity Compiler Bugs.
Connect a Wallet
Connecting wallet for read function is optional, useful if you want to call certain functions or simply use your wallet's node.Connect a Wallet
Connecting wallet for read function is optional, useful if you want to call certain functions or simply use your wallet's node.Connect a Wallet
Connecting wallet for read function is optional, useful if you want to call certain functions or simply use your wallet's node.Before You Copy
Transaction Private Note
This website uses cookies to improve your experience. By continuing to use this website, you agree to its Terms and Privacy Policy.