Spend less on fees, more on crypto. Buy crypto easily with MoonPay Balance. 20M+ users trust MoonPay worldwide.
Ready to onboard to Ethereum? With MetaMask Portfolio, you're in control.
Don’t invest unless you’re prepared to lose all the money you invest.
Everyday giveaways up to 100 ETH, Lucky Spins. Deposit BONUS 300% and Cashbacks!
5000+ Slots & Live Casino Games, 50+cryptos. Register with Etherscan and get 760% deposit bonus. Win Big$, withdraw it fast.
Slots, Roulette, Poker & more - Proud sponsors of UFC, Everton & StakeF1 team!
5000+ Slots & Live Casino Games, 50+cryptos. Register with Etherscan and get 760% deposit bonus. Win Big$, withdraw it fast.
Anonymous play on awesome games - sign up now for 25 free jackpot spins - worth $100s!
100s of games, generous bonuses, 20+ years of trusted gaming. Join CryptoWins & start winning today!
Overview
ETH Balance
Eth Value
$0.00Token Holdings
Could not find any matches!
- ERC-20 Tokens (26)7.80185368 1INCH1INCH Token (1INCH)$3.13@0.40180.00066575 AAVEAave Token (AAVE)$0.13@197.090.0029515 BANDBandToken (BAND)$0.00@1.630.16093533 LINKChainLink To... (LINK)$2.91@18.072.10399372 CROCronos Coin (CRO)$0.38@0.18160.18478983 MANADecentraland (MANA)$0.11@0.60060.61250522 DODODODO bird (DODO)$0.09@0.15250.58880624 ENJEnjinCoin (ENJ)$0.16@0.27621.46522696 GRTGraph Token (GRT)$0.36@0.24831.15644463 HTHuobiToken (HT)$0.61@0.52490.3878432 KNCKyberNetwork (KNC)$0.25@0.65120.32417267 LRCLoopringCoin... (LRC)$0.07@0.22330.97521872 PERPPerpetual (PERP)$0.86@0.8827104.62377963 SKLSKALE (SKL)$7.18@0.06870.16563881 SUSHISushiToken (SUSHI)$0.19@1.160.58507603 SNXSynthetix Ne... (SNX)$1.46@2.500.25812128 UNIUniswap (UNI)$3.31@12.840.17085534 ZRXZRX (ZRX)$0.09@0.55370.01213504 BNTBancor (BNT)$0.01@0.72430.14858063 COMPCompound (COMP)$10.34@69.594.82480985 CRVCurve DAO To... (CRV)$2.39@0.49540.000011 MKRMaker (MKR)$0.02@1,810.380.01020826 TUSDTrueUSD (TUSD)$0.01@1.00220,000,000 o3o3swap.com (o3)1.975 HQG环球股 (HQG)0.7 TokenERC-20 TOKEN*[Suspicious]NFT Tokens (10)claim rewards on clinknetwork.orgclinknetwork.orgERC-1155claim rewards on snxtoken.comsnxtoken.comERC-1155
More Info
Private Name Tags
ContractCreator
- Transactions
- Internal Transactions
- Token Transfers (ERC-20)
- NFT Transfers
- Contract
- Events
- Analytics
- Multichain Portfolio
- Cards New
Advanced Filter- Filter by Tx Type:
- Tx
- Internal Tx
- ERC-20
- NFTs
Latest 25 from a total of 5,147 transactions
Transaction Hash MethodBlockFromToSwap Exact Token... 20452961 2024-08-04 5:01:11 115 days ago 1722747671 IN 0 ETH$0.00 0.00002389 1 Swap Exact ETH F... 20452924 2024-08-04 4:53:47 115 days ago 1722747227 IN 0.00001 ETH$0.04 0.00002362 1 Swap Exact ETH F... 20250820 2024-07-06 23:41:23 143 days ago 1720309283 IN 0.005 ETH$17.66 0.000026 1.1 Collect 19266133 2024-02-20 3:07:11 281 days ago 1708398431 IN 0 ETH$0.00 0.00121638 21.59352229 Collect 19266130 2024-02-20 3:06:35 281 days ago 1708398395 IN 0 ETH$0.00 0.00185357 22.86524233 Collect 19265927 2024-02-20 2:25:59 281 days ago 1708395959 IN 0 ETH$0.00 0.00105683 26.75797461 Collect 19265922 2024-02-20 2:24:59 281 days ago 1708395899 IN 0 ETH$0.00 0.00140547 24.91352438 Collect 19265914 2024-02-20 2:23:23 281 days ago 1708395803 IN 0 ETH$0.00 0.0013319 22.71292627 Collect 19265913 2024-02-20 2:22:59 281 days ago 1708395779 IN 0 ETH$0.00 0.00120458 23.59663686 Collect 19265912 2024-02-20 2:22:47 281 days ago 1708395767 IN 0 ETH$0.00 0.00162222 22.55220221 Collect 19265908 2024-02-20 2:21:59 281 days ago 1708395719 IN 0 ETH$0.00 0.00131369 22.17734077 Collect 19265904 2024-02-20 2:21:11 281 days ago 1708395671 IN 0 ETH$0.00 0.00153172 22.64900984 Swap Exact Token... 16916696 2023-03-27 5:39:47 611 days ago 1679895587 IN 0 ETH$0.00 0.00420789 15.20529471 Swap Exact Token... 16647359 2023-02-17 8:50:11 649 days ago 1676623811 IN 0 ETH$0.00 0.00415663 21.56185762 Swap Exact Token... 16433818 2023-01-18 12:53:47 679 days ago 1674046427 IN 0 ETH$0.00 0.00298877 14.70819704 Swap Exact Token... 16038988 2022-11-24 9:37:11 734 days ago 1669282631 IN 0 ETH$0.00 0.00329313 11.90031101 Swap Exact Token... 15873121 2022-11-01 5:30:59 757 days ago 1667280659 IN 0 ETH$0.00 0.00145477 10.22082971 Swap Exact Token... 15826364 2022-10-25 16:43:47 763 days ago 1666716227 IN 0 ETH$0.00 0.00271395 19.032308 Swap Exact Token... 15780796 2022-10-19 7:55:11 770 days ago 1666166111 IN 0 ETH$0.00 0.00345925 13.15156369 Swap Exact Token... 15578232 2022-09-21 0:22:47 798 days ago 1663719767 IN 0 ETH$0.00 0.00124239 8.72799437 Swap Exact ETH F... 15559504 2022-09-18 9:20:59 801 days ago 1663492859 IN 0.002 ETH$7.07 0.00004738 2 Swap Exact Token... 15544587 2022-09-16 7:04:23 803 days ago 1663311863 IN 0 ETH$0.00 0.00095773 4.71340691 Swap Exact Token... 15536871 2022-09-15 4:36:56 804 days ago 1663216616 IN 0.00058044 ETH$2.05 0.00308398 8.09106321 Swap Exact Token... 15488563 2022-09-07 5:33:16 812 days ago 1662528796 IN 0 ETH$0.00 0.00179398 8.43066419 Swap Exact Token... 15487055 2022-09-06 23:55:27 812 days ago 1662508527 IN 0 ETH$0.00 0.00413544 16 Latest 25 internal transactions (View All)
Advanced mode:Parent Transaction Hash Block From To 19265927 2024-02-20 2:25:59 281 days ago 1708395959 0.03142246 ETH$111.00 16916696 2023-03-27 5:39:47 611 days ago 1679895587 0.12109874 ETH$427.78 16916696 2023-03-27 5:39:47 611 days ago 1679895587 0.12146313 ETH$429.07 16647359 2023-02-17 8:50:11 649 days ago 1676623811 0.04497786 ETH$158.88 16647359 2023-02-17 8:50:11 649 days ago 1676623811 0.0451132 ETH$159.36 16433818 2023-01-18 12:53:47 679 days ago 1674046427 0.08130773 ETH$287.22 16433818 2023-01-18 12:53:47 679 days ago 1674046427 0.08155239 ETH$288.08 16038988 2022-11-24 9:37:11 734 days ago 1669282631 0.04539953 ETH$160.37 16038988 2022-11-24 9:37:11 734 days ago 1669282631 0.04553613 ETH$160.86 15826364 2022-10-25 16:43:47 763 days ago 1666716227 0.00067272 ETH$2.38 15826364 2022-10-25 16:43:47 763 days ago 1666716227 0.00067475 ETH$2.38 15780796 2022-10-19 7:55:11 770 days ago 1666166111 0.0722131 ETH$255.09 15780796 2022-10-19 7:55:11 770 days ago 1666166111 0.07243039 ETH$255.86 15544587 2022-09-16 7:04:23 803 days ago 1663311863 0.06850968 ETH$242.01 15544587 2022-09-16 7:04:23 803 days ago 1663311863 0.06871583 ETH$242.74 15536871 2022-09-15 4:36:56 804 days ago 1663216616 0.00058044 ETH$2.05 15488563 2022-09-07 5:33:16 812 days ago 1662528796 0.03422766 ETH$120.91 15488563 2022-09-07 5:33:16 812 days ago 1662528796 0.03433066 ETH$121.27 15448102 2022-08-31 18:01:28 818 days ago 1661968888 0.56382824 ETH$1,991.73 15448102 2022-08-31 18:01:28 818 days ago 1661968888 0.56552482 ETH$1,997.72 15200243 2022-07-23 17:34:18 857 days ago 1658597658 0.01390034 ETH$49.10 15200243 2022-07-23 17:34:18 857 days ago 1658597658 0.01394216 ETH$49.25 15184135 2022-07-21 5:49:50 860 days ago 1658382590 0.20793444 ETH$734.53 15184135 2022-07-21 5:49:50 860 days ago 1658382590 0.20856012 ETH$736.74 15154018 2022-07-16 13:28:34 865 days ago 1657978114 0.0006596 ETH$2.33 Loading...LoadingContract Name:O3SwapETHUniswapBridge
Compiler Versionv0.6.12+commit.27d51765
Contract Source Code (Solidity)
- contract Context
- - function _msgSender()
- - function _msgData()
- contract Ownable is Context
- - function owner()
- - function renounceOwnership()
- - function transferOwnership(address ne ...
- library UniswapV2Library
- - function sortTokens(address tokenA, a ...
- - function pairFor(address factory, add ...
- - function getReserves(address factory, ...
- - function quote(uint amountA, uint res ...
- - function getAmountOut(uint amountIn, ...
- - function getAmountIn(uint amountOut, ...
- - function getAmountsOut(address factor ...
- - function getAmountsIn(address factory ...
- interface IUniswapV2Pair
- - 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 ...
- - function DOMAIN_SEPARATOR()
- - function PERMIT_TYPEHASH()
- - function nonces(address owner)
- - function permit(address owner, addres ...
- - function MINIMUM_LIQUIDITY()
- - function factory()
- - function token0()
- - function token1()
- - function getReserves()
- - function price0CumulativeLast()
- - function price1CumulativeLast()
- - function kLast()
- - function mint(address to)
- - function burn(address to)
- - function swap(uint amount0Out, uint a ...
- - function skim(address to)
- - function sync()
- - function initialize(address, address)
- interface IERC20
- - 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 IWETH
- - function deposit()
- - function transfer(address to, uint va ...
- - function withdraw(uint)
- interface ISwapper
- - function swap(
- library Convert
- - function bytesToAddress(bytes memory ...
- library SafeMath
- - function add(uint x, uint y)
- - function sub(uint x, uint y)
- - function mul(uint x, uint y)
- - function div(uint x, uint y)
- library TransferHelper
- - function safeApprove(address token, a ...
- - function safeTransfer(address token, ...
- - function safeTransferFrom(address tok ...
- - function safeTransferETH(address to, ...
- contract O3SwapETHUniswapBridge is ... *
- - function swapExactTokensForTokensSupp ...
- - function swapExactTokensForTokensSupp ...
- - function _swapExactTokensForTokensSup ...
- - function swapExactETHForTokensSupport ...
- - function swapExactETHForTokensSupport ...
- - function _swapExactETHForTokensSuppor ...
- - function swapExactTokensForETHSupport ...
- - function _swapExactTokensForETHSuppor ...
- - function _swapSupportingFeeOnTransfer ...
- - function _cross(
- - function setPolySwapperId(uint _id)
- - function collect(address token)
- - function setAggregatorFee(uint _fee)
- - function setUniswapFactory(address _f ...
- - function setPolySwapper(address _swap ...
- - function setWETH(address _weth)
/** *Submitted for verification at Etherscan.io on 2021-04-16 */ // SPDX-License-Identifier: GPL-3.0 pragma solidity =0.6.12; contract Context { function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library UniswapV2Library { using SafeMath for uint; // returns sorted token addresses, used to handle return values from pairs sorted in this order function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) { require(tokenA != tokenB, 'UniswapV2Library: IDENTICAL_ADDRESSES'); (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA); require(token0 != address(0), 'UniswapV2Library: ZERO_ADDRESS'); } // calculates the CREATE2 address for a pair without making any external calls function pairFor(address factory, address tokenA, address tokenB) internal pure returns (address pair) { (address token0, address token1) = sortTokens(tokenA, tokenB); pair = address(uint(keccak256(abi.encodePacked( hex'ff', factory, keccak256(abi.encodePacked(token0, token1)), hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // init code hash )))); } // fetches and sorts the reserves for a pair function getReserves(address factory, address tokenA, address tokenB) internal view returns (uint reserveA, uint reserveB) { (address token0,) = sortTokens(tokenA, tokenB); (uint reserve0, uint reserve1,) = IUniswapV2Pair(pairFor(factory, tokenA, tokenB)).getReserves(); (reserveA, reserveB) = tokenA == token0 ? (reserve0, reserve1) : (reserve1, reserve0); } // given some amount of an asset and pair reserves, returns an equivalent amount of the other asset function quote(uint amountA, uint reserveA, uint reserveB) internal pure returns (uint amountB) { require(amountA > 0, 'UniswapV2Library: INSUFFICIENT_AMOUNT'); require(reserveA > 0 && reserveB > 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY'); amountB = amountA.mul(reserveB) / reserveA; } // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) internal pure returns (uint amountOut) { require(amountIn > 0, 'UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT'); require(reserveIn > 0 && reserveOut > 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY'); uint amountInWithFee = amountIn.mul(997); uint numerator = amountInWithFee.mul(reserveOut); uint denominator = reserveIn.mul(1000).add(amountInWithFee); amountOut = numerator / denominator; } // given an output amount of an asset and pair reserves, returns a required input amount of the other asset function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) internal pure returns (uint amountIn) { require(amountOut > 0, 'UniswapV2Library: INSUFFICIENT_OUTPUT_AMOUNT'); require(reserveIn > 0 && reserveOut > 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY'); uint numerator = reserveIn.mul(amountOut).mul(1000); uint denominator = reserveOut.sub(amountOut).mul(997); amountIn = (numerator / denominator).add(1); } // performs chained getAmountOut calculations on any number of pairs function getAmountsOut(address factory, uint amountIn, address[] memory path) internal view returns (uint[] memory amounts) { require(path.length >= 2, 'UniswapV2Library: INVALID_PATH'); amounts = new uint[](path.length); amounts[0] = amountIn; for (uint i; i < path.length - 1; i++) { (uint reserveIn, uint reserveOut) = getReserves(factory, path[i], path[i + 1]); amounts[i + 1] = getAmountOut(amounts[i], reserveIn, reserveOut); } } // performs chained getAmountIn calculations on any number of pairs function getAmountsIn(address factory, uint amountOut, address[] memory path) internal view returns (uint[] memory amounts) { require(path.length >= 2, 'UniswapV2Library: INVALID_PATH'); amounts = new uint[](path.length); amounts[amounts.length - 1] = amountOut; for (uint i = path.length - 1; i > 0; i--) { (uint reserveIn, uint reserveOut) = getReserves(factory, path[i - 1], path[i]); amounts[i - 1] = getAmountIn(amounts[i], reserveIn, reserveOut); } } } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure 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); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; 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); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IERC20 { 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); } interface IWETH { function deposit() external payable; function transfer(address to, uint value) external returns (bool); function withdraw(uint) external; } interface ISwapper { function swap( address fromAssetHash, uint64 toPoolId, uint64 toChainId, bytes calldata toAssetHash, bytes calldata toAddress, uint amount, uint minOutAmount, uint fee, uint id ) external payable returns (bool); } library Convert { function bytesToAddress(bytes memory bys) internal pure returns (address addr) { assembly { addr := mload(add(bys,20)) } } } library SafeMath { 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'); } function div(uint x, uint y) internal pure returns (uint z) { return x / y; } } library TransferHelper { function safeApprove(address token, address to, uint value) internal { // bytes4(keccak256(bytes('approve(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED'); } function safeTransfer(address token, address to, uint value) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED'); } function safeTransferFrom(address token, address from, address to, uint value) internal { // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED'); } function safeTransferETH(address to, uint value) internal { (bool success,) = to.call{value:value}(new bytes(0)); require(success, 'TransferHelper: ETH_TRANSFER_FAILED'); } } contract O3SwapETHUniswapBridge is Ownable { using SafeMath for uint256; using Convert for bytes; event LOG_AGG_SWAP ( uint256 amountOut, // Raw swapped token amount out without aggFee uint256 fee ); address public WETH; address public uniswapFactory; address public polySwapper; uint public polySwapperId; uint256 public aggregatorFee = 3 * 10 ** 7; // Default to 0.3% uint256 public constant FEE_DENOMINATOR = 10 ** 10; modifier ensure(uint deadline) { require(deadline >= block.timestamp, 'O3SwapETHUniswapBridge: EXPIRED'); _; } constructor ( address _weth, address _factory, address _swapper, uint _swapperId ) public { WETH = _weth; uniswapFactory = _factory; polySwapper = _swapper; polySwapperId = _swapperId; } function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint swapAmountOutMin, address[] calldata path, address to, uint deadline ) external virtual ensure(deadline) { uint amountOut = _swapExactTokensForTokensSupportingFeeOnTransferTokens(amountIn, swapAmountOutMin, path); uint feeAmount = amountOut.mul(aggregatorFee).div(FEE_DENOMINATOR); emit LOG_AGG_SWAP(amountOut, feeAmount); uint adjustedAmountOut = amountOut.sub(feeAmount); TransferHelper.safeTransfer(path[path.length - 1], to, adjustedAmountOut); } function swapExactTokensForTokensSupportingFeeOnTransferTokensCrossChain( uint amountIn, uint swapAmountOutMin, address[] calldata path, bytes memory to, uint deadline, uint64 toPoolId, uint64 toChainId, bytes memory toAssetHash, uint polyMinOutAmount, uint fee ) external virtual payable ensure(deadline) returns (bool) { uint polyAmountIn; { uint amountOut = _swapExactTokensForTokensSupportingFeeOnTransferTokens(amountIn, swapAmountOutMin, path); uint feeAmount = amountOut.mul(aggregatorFee).div(FEE_DENOMINATOR); emit LOG_AGG_SWAP(amountOut, feeAmount); polyAmountIn = amountOut.sub(feeAmount); } return _cross( path[path.length - 1], toPoolId, toChainId, toAssetHash, to, polyAmountIn, polyMinOutAmount, fee ); } function _swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path ) internal virtual returns (uint) { TransferHelper.safeTransferFrom( path[0], msg.sender, UniswapV2Library.pairFor(uniswapFactory, path[0], path[1]), amountIn ); uint balanceBefore = IERC20(path[path.length - 1]).balanceOf(address(this)); _swapSupportingFeeOnTransferTokens(path, address(this)); uint amountOut = IERC20(path[path.length - 1]).balanceOf(address(this)).sub(balanceBefore); require(amountOut >= amountOutMin, 'O3SwapETHUniswapBridge: INSUFFICIENT_OUTPUT_AMOUNT'); return amountOut; } function swapExactETHForTokensSupportingFeeOnTransferTokens( uint swapAmountOutMin, address[] calldata path, address to, uint deadline ) external virtual payable ensure(deadline) { uint amountOut = _swapExactETHForTokensSupportingFeeOnTransferTokens(swapAmountOutMin, path, 0); uint feeAmount = amountOut.mul(aggregatorFee).div(FEE_DENOMINATOR); emit LOG_AGG_SWAP(amountOut, feeAmount); uint adjustedAmountOut = amountOut.sub(feeAmount); TransferHelper.safeTransfer(path[path.length - 1], to, adjustedAmountOut); } function swapExactETHForTokensSupportingFeeOnTransferTokensCrossChain( uint swapAmountOutMin, address[] calldata path, bytes memory to, uint deadline, uint64 toPoolId, uint64 toChainId, bytes memory toAssetHash, uint polyMinOutAmount, uint fee ) external virtual payable ensure(deadline) returns (bool) { uint polyAmountIn; { uint amountOut = _swapExactETHForTokensSupportingFeeOnTransferTokens(swapAmountOutMin, path, fee); uint feeAmount = amountOut.mul(aggregatorFee).div(FEE_DENOMINATOR); emit LOG_AGG_SWAP(amountOut, feeAmount); polyAmountIn = amountOut.sub(feeAmount); } return _cross( path[path.length - 1], toPoolId, toChainId, toAssetHash, to, polyAmountIn, polyMinOutAmount, fee ); } function _swapExactETHForTokensSupportingFeeOnTransferTokens( uint swapAmountOutMin, address[] calldata path, uint fee ) internal virtual returns (uint) { require(path[0] == WETH, 'O3SwapETHUniswapBridge: INVALID_PATH'); uint amountIn = msg.value.sub(fee); require(amountIn > 0, 'O3SwapETHUniswapBridge: INSUFFICIENT_INPUT_AMOUNT'); IWETH(WETH).deposit{value: amountIn}(); assert(IWETH(WETH).transfer(UniswapV2Library.pairFor(uniswapFactory, path[0], path[1]), amountIn)); uint balanceBefore = IERC20(path[path.length - 1]).balanceOf(address(this)); _swapSupportingFeeOnTransferTokens(path, address(this)); uint amountOut = IERC20(path[path.length - 1]).balanceOf(address(this)).sub(balanceBefore); require(amountOut >= swapAmountOutMin, 'O3SwapETHUniswapBridge: INSUFFICIENT_OUTPUT_AMOUNT'); return amountOut; } function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint swapAmountOutMin, address[] calldata path, address to, uint deadline ) external virtual ensure(deadline) { uint amountOut = _swapExactTokensForETHSupportingFeeOnTransferTokens(amountIn, swapAmountOutMin, path); uint feeAmount = amountOut.mul(aggregatorFee).div(FEE_DENOMINATOR); emit LOG_AGG_SWAP(amountOut, feeAmount); IWETH(WETH).withdraw(amountOut); uint adjustedAmountOut = amountOut.sub(feeAmount); TransferHelper.safeTransferETH(to, adjustedAmountOut); } function _swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint swapAmountOutMin, address[] calldata path ) internal virtual returns (uint) { require(path[path.length - 1] == WETH, 'O3SwapETHUniswapBridge: INVALID_PATH'); TransferHelper.safeTransferFrom( path[0], msg.sender, UniswapV2Library.pairFor(uniswapFactory, path[0], path[1]), amountIn ); uint balanceBefore = IERC20(WETH).balanceOf(address(this)); _swapSupportingFeeOnTransferTokens(path, address(this)); uint amountOut = IERC20(WETH).balanceOf(address(this)).sub(balanceBefore); require(amountOut >= swapAmountOutMin, 'O3SwapETHUniswapBridge: INSUFFICIENT_OUTPUT_AMOUNT'); return amountOut; } // **** SWAP (supporting fee-on-transfer tokens) **** // requires the initial amount to have already been sent to the first pair function _swapSupportingFeeOnTransferTokens(address[] memory path, address _to) internal virtual { for (uint i; i < path.length - 1; i++) { (address input, address output) = (path[i], path[i + 1]); (address token0,) = UniswapV2Library.sortTokens(input, output); IUniswapV2Pair pair = IUniswapV2Pair(UniswapV2Library.pairFor(uniswapFactory, input, output)); uint amountInput; uint amountOutput; { // scope to avoid stack too deep errors (uint reserve0, uint reserve1,) = pair.getReserves(); (uint reserveInput, uint reserveOutput) = input == token0 ? (reserve0, reserve1) : (reserve1, reserve0); amountInput = IERC20(input).balanceOf(address(pair)).sub(reserveInput); amountOutput = UniswapV2Library.getAmountOut(amountInput, reserveInput, reserveOutput); } (uint amount0Out, uint amount1Out) = input == token0 ? (uint(0), amountOutput) : (amountOutput, uint(0)); address to = i < path.length - 2 ? UniswapV2Library.pairFor(uniswapFactory, output, path[i + 2]) : _to; pair.swap(amount0Out, amount1Out, to, new bytes(0)); } } function _cross( address fromAssetHash, uint64 toPoolId, uint64 toChainId, bytes memory toAssetHash, bytes memory toAddress, uint amount, uint minOutAmount, uint fee ) internal returns (bool) { // Allow `swapper contract` to transfer `amount` of `fromAssetHash` on belaof of this contract. TransferHelper.safeApprove(fromAssetHash, polySwapper, amount); bool result = ISwapper(polySwapper).swap{value: fee}( fromAssetHash, toPoolId, toChainId, toAssetHash, toAddress, amount, minOutAmount, fee, polySwapperId ); require(result, "POLY CROSSCHAIN ERROR"); return result; } receive() external payable { } function setPolySwapperId(uint _id) external onlyOwner { polySwapperId = _id; } function collect(address token) external onlyOwner { if (token == WETH) { uint256 wethBalance = IERC20(token).balanceOf(address(this)); if (wethBalance > 0) { IWETH(WETH).withdraw(wethBalance); } TransferHelper.safeTransferETH(owner(), address(this).balance); } else { TransferHelper.safeTransfer(token, owner(), IERC20(token).balanceOf(address(this))); } } function setAggregatorFee(uint _fee) external onlyOwner { aggregatorFee = _fee; } function setUniswapFactory(address _factory) external onlyOwner { uniswapFactory = _factory; } function setPolySwapper(address _swapper) external onlyOwner { polySwapper = _swapper; } function setWETH(address _weth) external onlyOwner { WETH = _weth; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
[{"inputs":[{"internalType":"address","name":"_weth","type":"address"},{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_swapper","type":"address"},{"internalType":"uint256","name":"_swapperId","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"LOG_AGG_SWAP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"FEE_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aggregatorFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"collect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"polySwapper","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"polySwapperId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setAggregatorFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_swapper","type":"address"}],"name":"setPolySwapper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"setPolySwapperId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_factory","type":"address"}],"name":"setUniswapFactory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_weth","type":"address"}],"name":"setWETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapAmountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapAmountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"bytes","name":"to","type":"bytes"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint64","name":"toPoolId","type":"uint64"},{"internalType":"uint64","name":"toChainId","type":"uint64"},{"internalType":"bytes","name":"toAssetHash","type":"bytes"},{"internalType":"uint256","name":"polyMinOutAmount","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"swapExactETHForTokensSupportingFeeOnTransferTokensCrossChain","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"swapAmountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETHSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"swapAmountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"swapAmountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"bytes","name":"to","type":"bytes"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint64","name":"toPoolId","type":"uint64"},{"internalType":"uint64","name":"toChainId","type":"uint64"},{"internalType":"bytes","name":"toAssetHash","type":"bytes"},{"internalType":"uint256","name":"polyMinOutAmount","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokensCrossChain","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapFactory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526301c9c38060055534801561001857600080fd5b5060405162002d1f38038062002d1f8339818101604052608081101561003d57600080fd5b508051602082015160408301516060909301519192909160006100676401000000006100f6810204565b60008054600160a060020a031916600160a060020a0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060018054600160a060020a0319908116600160a060020a03968716179091556002805482169486169490941790935560038054909316919093161790556004556100fa565b3390565b612c15806200010a6000396000f3fe6080604052600436106101275760003560e060020a900480638da5cb5b116100a4578063b818a9b511610068578063b818a9b5146107cb578063d73792a9146107e0578063dca8449f146107f5578063e04b677f1461081f578063f2fde38b146108525761012e565b80638da5cb5b1461055557806393b699051461056a5780639ed5b4dd1461071b578063ad5c464814610730578063b6f9de95146107455761012e565b80635c11d795116100eb5780635c11d7951461021f578063715018a6146102b7578063791ac947146102cc5780638540c451146103645780638bdb2afa146105245761012e565b806306ec16f814610133578063086808de146101685780631a5eefff1461018f578063355466c8146101c25780635b769f3c146101ec5761012e565b3661012e57005b600080fd5b34801561013f57600080fd5b506101666004803603602081101561015657600080fd5b5035600160a060020a0316610885565b005b34801561017457600080fd5b5061017d610ab2565b60408051918252519081900360200190f35b34801561019b57600080fd5b50610166600480360360208110156101b257600080fd5b5035600160a060020a0316610ab8565b3480156101ce57600080fd5b50610166600480360360208110156101e557600080fd5b5035610b42565b3480156101f857600080fd5b506101666004803603602081101561020f57600080fd5b5035600160a060020a0316610ba2565b34801561022b57600080fd5b50610166600480360360a081101561024257600080fd5b81359160208101359181019060608101604082013564010000000081111561026957600080fd5b82018360208201111561027b57600080fd5b8035906020019184602083028401116401000000008311171561029d57600080fd5b9193509150600160a060020a038135169060200135610c2c565b3480156102c357600080fd5b50610166610d19565b3480156102d857600080fd5b50610166600480360360a08110156102ef57600080fd5b81359160208101359181019060608101604082013564010000000081111561031657600080fd5b82018360208201111561032857600080fd5b8035906020019184602083028401116401000000008311171561034a57600080fd5b9193509150600160a060020a038135169060200135610dcb565b610510600480360361012081101561037b57600080fd5b8135919081019060408101602082013564010000000081111561039d57600080fd5b8201836020820111156103af57600080fd5b803590602001918460208302840111640100000000831117156103d157600080fd5b9193909290916020810190356401000000008111156103ef57600080fd5b82018360208201111561040157600080fd5b8035906020019184600183028401116401000000008311171561042357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929584359567ffffffffffffffff602087013581169660408101359091169550919350915060808101906060013564010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460018302840111640100000000831117156104ca57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350505060200135610f0d565b604080519115158252519081900360200190f35b34801561053057600080fd5b50610539611003565b60408051600160a060020a039092168252519081900360200190f35b34801561056157600080fd5b50610539611012565b610510600480360361014081101561058157600080fd5b8135916020810135918101906060810160408201356401000000008111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460208302840111640100000000831117156105dc57600080fd5b9193909290916020810190356401000000008111156105fa57600080fd5b82018360208201111561060c57600080fd5b8035906020019184600183028401116401000000008311171561062e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929584359567ffffffffffffffff60208701358116966040810135909116955091935091506080810190606001356401000000008111156106a157600080fd5b8201836020820111156106b357600080fd5b803590602001918460018302840111640100000000831117156106d557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350505060200135611021565b34801561072757600080fd5b5061017d6110fc565b34801561073c57600080fd5b50610539611102565b6101666004803603608081101561075b57600080fd5b8135919081019060408101602082013564010000000081111561077d57600080fd5b82018360208201111561078f57600080fd5b803590602001918460208302840111640100000000831117156107b157600080fd5b9193509150600160a060020a038135169060200135611111565b3480156107d757600080fd5b506105396111e1565b3480156107ec57600080fd5b5061017d6111f0565b34801561080157600080fd5b506101666004803603602081101561081857600080fd5b50356111f9565b34801561082b57600080fd5b506101666004803603602081101561084257600080fd5b5035600160a060020a0316611259565b34801561085e57600080fd5b506101666004803603602081101561087557600080fd5b5035600160a060020a03166112e3565b61088d6113ee565b600054600160a060020a039081169116146108e0576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b600154600160a060020a0382811691161415610a1357600081600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316815260200191505060206040518083038186803b15801561094857600080fd5b505afa15801561095c573d6000803e3d6000fd5b505050506040513d602081101561097257600080fd5b5051905080156109fb57600154604080517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156109e257600080fd5b505af11580156109f6573d6000803e3d6000fd5b505050505b610a0d610a06611012565b30316113f2565b50610aaf565b610aaf81610a1f611012565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a08231916024808301926020929190829003018186803b158015610a7e57600080fd5b505afa158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b50516114ed565b50565b60045481565b610ac06113ee565b600054600160a060020a03908116911614610b13576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b610b4a6113ee565b600054600160a060020a03908116911614610b9d576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b600555565b610baa6113ee565b600054600160a060020a03908116911614610bfd576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b8042811015610c73576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612b2e833981519152604482015290519081900360640190fd5b6000610c8188888888611688565b90506000610ca96402540be400610ca3600554856118db90919063ffffffff16565b90611950565b60408051848152602081018390528151929350600080516020612b71833981519152929081900390910190a16000610ce18383611963565b9050610d0d88886000198101818110610cf657fe5b90506020020135600160a060020a031687836114ed565b50505050505050505050565b610d216113ee565b600054600160a060020a03908116911614610d74576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b8042811015610e12576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612b2e833981519152604482015290519081900360640190fd5b6000610e20888888886119be565b90506000610e426402540be400610ca3600554856118db90919063ffffffff16565b60408051848152602081018390528151929350600080516020612b71833981519152929081900390910190a1600154604080517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691632e1a7d4d9160248082019260009290919082900301818387803b158015610ed457600080fd5b505af1158015610ee8573d6000803e3d6000fd5b505050506000610f01828461196390919063ffffffff16565b9050610d0d86826113f2565b60008642811015610f56576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612b2e833981519152604482015290519081900360640190fd5b600080610f658e8e8e88611b82565b90506000610f876402540be400610ca3600554856118db90919063ffffffff16565b60408051848152602081018390528151929350600080516020612b71833981519152929081900390910190a1610fbd8282611963565b9250610ff291508d90508c6000198101818110610fd657fe5b90506020020135600160a060020a03168989898e868b8b611eb2565b9d9c50505050505050505050505050565b600254600160a060020a031681565b600054600160a060020a031690565b6000864281101561106a576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612b2e833981519152604482015290519081900360640190fd5b6000806110798f8f8f8f611688565b9050600061109b6402540be400610ca3600554856118db90919063ffffffff16565b60408051848152602081018390528151929350600080516020612b71833981519152929081900390910190a16110d18282611963565b92506110ea91508d90508c6000198101818110610fd657fe5b9e9d5050505050505050505050505050565b60055481565b600154600160a060020a031681565b8042811015611158576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612b2e833981519152604482015290519081900360640190fd5b60006111678787876000611b82565b905060006111896402540be400610ca3600554856118db90919063ffffffff16565b60408051848152602081018390528151929350600080516020612b71833981519152929081900390910190a160006111c18383611963565b90506111d688886000198101818110610cf657fe5b505050505050505050565b600354600160a060020a031681565b6402540be40081565b6112016113ee565b600054600160a060020a03908116911614611254576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b600455565b6112616113ee565b600054600160a060020a039081169116146112b4576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6112eb6113ee565b600054600160a060020a0390811691161461133e576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b600160a060020a0381166113865760405160e560020a62461bcd028152600401808060200182810382526026815260200180612a466026913960400191505060405180910390fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b3390565b60408051600080825260208201909252600160a060020a0384169083906040518082805190602001908083835b6020831061143e5780518252601f19909201916020918201910161141f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146114a0576040519150601f19603f3d011682016040523d82523d6000602084013e6114a5565b606091505b50509050806114e85760405160e560020a62461bcd028152600401808060200182810382526023815260200180612b4e6023913960400191505060405180910390fd5b505050565b60408051600160a060020a038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b602083106115985780518252601f199092019160209182019101611579565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146115fa576040519150601f19603f3d011682016040523d82523d6000602084013e6115ff565b606091505b509150915081801561162d57508051158061162d575080806020019051602081101561162a57600080fd5b50515b611681576040805160e560020a62461bcd02815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b60006117098383600081811061169a57fe5b90506020020135600160a060020a031633611703600260009054906101000a9004600160a060020a0316878760008181106116d157fe5b90506020020135600160a060020a0316888860018181106116ee57fe5b90506020020135600160a060020a03166120de565b886121bc565b60008383600019810181811061171b57fe5b90506020020135600160a060020a0316600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316815260200191505060206040518083038186803b15801561177a57600080fd5b505afa15801561178e573d6000803e3d6000fd5b505050506040513d60208110156117a457600080fd5b505160408051602086810282810182019093528682529293506117e692909187918791829185019084908082843760009201919091525030925061234a915050565b600061188d82868660001981018181106117fc57fe5b90506020020135600160a060020a0316600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316815260200191505060206040518083038186803b15801561185b57600080fd5b505afa15801561186f573d6000803e3d6000fd5b505050506040513d602081101561188557600080fd5b505190611963565b9050858110156118d15760405160e560020a62461bcd028152600401808060200182810382526032815260200180612a146032913960400191505060405180910390fd5b9695505050505050565b60008115806118f6575050808202828282816118f357fe5b04145b61194a576040805160e560020a62461bcd02815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b600081838161195b57fe5b049392505050565b8082038281111561194a576040805160e560020a62461bcd02815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b600154600090600160a060020a0316838360001981018181106119dd57fe5b90506020020135600160a060020a0316600160a060020a031614611a355760405160e560020a62461bcd028152600401808060200182810382526024815260200180612a916024913960400191505060405180910390fd5b611a458383600081811061169a57fe5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a08231916024808301926020929190829003018186803b158015611aa957600080fd5b505afa158015611abd573d6000803e3d6000fd5b505050506040513d6020811015611ad357600080fd5b50516040805160208681028281018201909352868252929350611b1592909187918791829185019084908082843760009201919091525030925061234a915050565b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009261188d928592600160a060020a03909216916370a0823191602480820192602092909190829003018186803b15801561185b57600080fd5b600154600090600160a060020a031684848381611b9b57fe5b90506020020135600160a060020a0316600160a060020a031614611bf35760405160e560020a62461bcd028152600401808060200182810382526024815260200180612a916024913960400191505060405180910390fd5b6000611bff3484611963565b905060008111611c435760405160e560020a62461bcd028152600401808060200182810382526031815260200180612afd6031913960400191505060405180910390fd5b600160009054906101000a9004600160a060020a0316600160a060020a031663d0e30db0826040518263ffffffff1660e060020a0281526004016000604051808303818588803b158015611c9657600080fd5b505af1158015611caa573d6000803e3d6000fd5b5050600154600254600160a060020a03918216945063a9059cbb9350611cf49250168888600081611cd757fe5b90506020020135600160a060020a0316898960018181106116ee57fe5b836040518363ffffffff1660e060020a0281526004018083600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611d3e57600080fd5b505af1158015611d52573d6000803e3d6000fd5b505050506040513d6020811015611d6857600080fd5b5051611d7057fe5b600085856000198101818110611d8257fe5b90506020020135600160a060020a0316600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316815260200191505060206040518083038186803b158015611de157600080fd5b505afa158015611df5573d6000803e3d6000fd5b505050506040513d6020811015611e0b57600080fd5b50516040805160208881028281018201909352888252929350611e4d92909189918991829185019084908082843760009201919091525030925061234a915050565b6000611e6382888860001981018181106117fc57fe5b905087811015611ea75760405160e560020a62461bcd028152600401808060200182810382526032815260200180612a146032913960400191505060405180910390fd5b979650505050505050565b600354600090611ecd908a90600160a060020a031686612662565b6000600360009054906101000a9004600160a060020a0316600160a060020a031663559ebe57848c8c8c8c8c8c8c8c6004546040518b63ffffffff1660e060020a028152600401808a600160a060020a031681526020018967ffffffffffffffff1681526020018867ffffffffffffffff1681526020018060200180602001878152602001868152602001858152602001848152602001838103835289818151815260200191508051906020019080838360005b83811015611f99578181015183820152602001611f81565b50505050905090810190601f168015611fc65780820380516001836020036101000a031916815260200191505b5083810382528851815288516020918201918a019080838360005b83811015611ff9578181015183820152602001611fe1565b50505050905090810190601f1680156120265780820380516001836020036101000a031916815260200191505b509b5050505050505050505050506020604051808303818588803b15801561204d57600080fd5b505af1158015612061573d6000803e3d6000fd5b50505050506040513d602081101561207857600080fd5b50519050806120d1576040805160e560020a62461bcd02815260206004820152601560248201527f504f4c592043524f5353434841494e204552524f520000000000000000000000604482015290519081900360640190fd5b9998505050505050505050565b60008060006120ed85856127f6565b604080516c01000000000000000000000000600160a060020a03948516810260208084019190915293851681026034830152825160288184030181526048830184528051908501207fff00000000000000000000000000000000000000000000000000000000000000606884015294909a1690990260698a0152607d8901929092527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808a01919091528251808a03909101815260bd909801909152865196019590952095945050505050565b60408051600160a060020a0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061226f5780518252601f199092019160209182019101612250565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146122d1576040519150601f19603f3d011682016040523d82523d6000602084013e6122d6565b606091505b5091509150818015612304575080511580612304575080806020019051602081101561230157600080fd5b50515b6123425760405160e560020a62461bcd028152600401808060200182810382526024815260200180612b916024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156114e85760008084838151811061236857fe5b602002602001015185846001018151811061237f57fe5b602002602001015191509150600061239783836127f6565b506002549091506000906123b590600160a060020a031685856120de565b905060008060008084600160a060020a0316630902f1ac6040518163ffffffff1660e060020a02815260040160606040518083038186803b1580156123f957600080fd5b505afa15801561240d573d6000803e3d6000fd5b505050506040513d606081101561242357600080fd5b5080516020909101516dffffffffffffffffffffffffffff9182169350169050600080600160a060020a038a811690891614612460578284612463565b83835b915091506124bb828b600160a060020a03166370a082318a6040518263ffffffff1660e060020a0281526004018082600160a060020a0316815260200191505060206040518083038186803b15801561185b57600080fd5b95506124c88683836128da565b94505050505060008085600160a060020a031688600160a060020a0316146124f2578260006124f6565b6000835b91509150600060028c51038a1061250d578a612543565b612543600260009054906101000a9004600160a060020a0316898e8d6002018151811061253657fe5b60200260200101516120de565b60408051600080825260208201928390527f022c0d9f0000000000000000000000000000000000000000000000000000000083526024820187815260448301879052600160a060020a038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b838110156125e65781810151838201526020016125ce565b50505050905090810190601f1680156126135780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561263557600080fd5b505af1158015612649573d6000803e3d6000fd5b50506001909b019a5061234d9950505050505050505050565b60408051600160a060020a038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b6020831061270d5780518252601f1990920191602091820191016126ee565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461276f576040519150601f19603f3d011682016040523d82523d6000602084013e612774565b606091505b50915091508180156127a25750805115806127a2575080806020019051602081101561279f57600080fd5b50515b611681576040805160e560020a62461bcd02815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604482015290519081900360640190fd5b60008082600160a060020a031684600160a060020a0316141561284d5760405160e560020a62461bcd028152600401808060200182810382526025815260200180612a6c6025913960400191505060405180910390fd5b82600160a060020a031684600160a060020a03161061286d578284612870565b83835b9092509050600160a060020a0382166128d3576040805160e560020a62461bcd02815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b600080841161291d5760405160e560020a62461bcd02815260040180806020018281038252602b815260200180612bb5602b913960400191505060405180910390fd5b60008311801561292d5750600082115b61296b5760405160e560020a62461bcd028152600401808060200182810382526028815260200180612ab56028913960400191505060405180910390fd5b6000612979856103e56118db565b9050600061298782856118db565b905060006129a18361299b886103e86118db565b906129b8565b90508082816129ac57fe5b04979650505050505050565b8082018281101561194a576040805160e560020a62461bcd02815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe4f3353776170455448556e69737761704272696467653a20494e53554646494349454e545f4f55545055545f414d4f554e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373556e697377617056324c6962726172793a204944454e544943414c5f4144445245535345534f3353776170455448556e69737761704272696467653a20494e56414c49445f50415448556e697377617056324c6962726172793a20494e53554646494349454e545f4c49515549444954594f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724f3353776170455448556e69737761704272696467653a20494e53554646494349454e545f494e5055545f414d4f554e544f3353776170455448556e69737761704272696467653a2045585049524544005472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544270e06e1460fe9df2e798064a58fdb072e3f3e1e39e7db96268c13849c025aed5472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a26469706673582212206605610e824bc9bf92a2224b53eafac180e613bbf56ebc5ba8a9d06bddf6724d64736f6c634300060c0033000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f00000000000000000000000002e20ca05e38cbdf1a6235a7acdd34efc0434caa0000000000000000000000000000000000000000000000000000000000000001Deployed Bytecode
0x6080604052600436106101275760003560e060020a900480638da5cb5b116100a4578063b818a9b511610068578063b818a9b5146107cb578063d73792a9146107e0578063dca8449f146107f5578063e04b677f1461081f578063f2fde38b146108525761012e565b80638da5cb5b1461055557806393b699051461056a5780639ed5b4dd1461071b578063ad5c464814610730578063b6f9de95146107455761012e565b80635c11d795116100eb5780635c11d7951461021f578063715018a6146102b7578063791ac947146102cc5780638540c451146103645780638bdb2afa146105245761012e565b806306ec16f814610133578063086808de146101685780631a5eefff1461018f578063355466c8146101c25780635b769f3c146101ec5761012e565b3661012e57005b600080fd5b34801561013f57600080fd5b506101666004803603602081101561015657600080fd5b5035600160a060020a0316610885565b005b34801561017457600080fd5b5061017d610ab2565b60408051918252519081900360200190f35b34801561019b57600080fd5b50610166600480360360208110156101b257600080fd5b5035600160a060020a0316610ab8565b3480156101ce57600080fd5b50610166600480360360208110156101e557600080fd5b5035610b42565b3480156101f857600080fd5b506101666004803603602081101561020f57600080fd5b5035600160a060020a0316610ba2565b34801561022b57600080fd5b50610166600480360360a081101561024257600080fd5b81359160208101359181019060608101604082013564010000000081111561026957600080fd5b82018360208201111561027b57600080fd5b8035906020019184602083028401116401000000008311171561029d57600080fd5b9193509150600160a060020a038135169060200135610c2c565b3480156102c357600080fd5b50610166610d19565b3480156102d857600080fd5b50610166600480360360a08110156102ef57600080fd5b81359160208101359181019060608101604082013564010000000081111561031657600080fd5b82018360208201111561032857600080fd5b8035906020019184602083028401116401000000008311171561034a57600080fd5b9193509150600160a060020a038135169060200135610dcb565b610510600480360361012081101561037b57600080fd5b8135919081019060408101602082013564010000000081111561039d57600080fd5b8201836020820111156103af57600080fd5b803590602001918460208302840111640100000000831117156103d157600080fd5b9193909290916020810190356401000000008111156103ef57600080fd5b82018360208201111561040157600080fd5b8035906020019184600183028401116401000000008311171561042357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929584359567ffffffffffffffff602087013581169660408101359091169550919350915060808101906060013564010000000081111561049657600080fd5b8201836020820111156104a857600080fd5b803590602001918460018302840111640100000000831117156104ca57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350505060200135610f0d565b604080519115158252519081900360200190f35b34801561053057600080fd5b50610539611003565b60408051600160a060020a039092168252519081900360200190f35b34801561056157600080fd5b50610539611012565b610510600480360361014081101561058157600080fd5b8135916020810135918101906060810160408201356401000000008111156105a857600080fd5b8201836020820111156105ba57600080fd5b803590602001918460208302840111640100000000831117156105dc57600080fd5b9193909290916020810190356401000000008111156105fa57600080fd5b82018360208201111561060c57600080fd5b8035906020019184600183028401116401000000008311171561062e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929584359567ffffffffffffffff60208701358116966040810135909116955091935091506080810190606001356401000000008111156106a157600080fd5b8201836020820111156106b357600080fd5b803590602001918460018302840111640100000000831117156106d557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350505060200135611021565b34801561072757600080fd5b5061017d6110fc565b34801561073c57600080fd5b50610539611102565b6101666004803603608081101561075b57600080fd5b8135919081019060408101602082013564010000000081111561077d57600080fd5b82018360208201111561078f57600080fd5b803590602001918460208302840111640100000000831117156107b157600080fd5b9193509150600160a060020a038135169060200135611111565b3480156107d757600080fd5b506105396111e1565b3480156107ec57600080fd5b5061017d6111f0565b34801561080157600080fd5b506101666004803603602081101561081857600080fd5b50356111f9565b34801561082b57600080fd5b506101666004803603602081101561084257600080fd5b5035600160a060020a0316611259565b34801561085e57600080fd5b506101666004803603602081101561087557600080fd5b5035600160a060020a03166112e3565b61088d6113ee565b600054600160a060020a039081169116146108e0576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b600154600160a060020a0382811691161415610a1357600081600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316815260200191505060206040518083038186803b15801561094857600080fd5b505afa15801561095c573d6000803e3d6000fd5b505050506040513d602081101561097257600080fd5b5051905080156109fb57600154604080517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156109e257600080fd5b505af11580156109f6573d6000803e3d6000fd5b505050505b610a0d610a06611012565b30316113f2565b50610aaf565b610aaf81610a1f611012565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a08231916024808301926020929190829003018186803b158015610a7e57600080fd5b505afa158015610a92573d6000803e3d6000fd5b505050506040513d6020811015610aa857600080fd5b50516114ed565b50565b60045481565b610ac06113ee565b600054600160a060020a03908116911614610b13576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b610b4a6113ee565b600054600160a060020a03908116911614610b9d576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b600555565b610baa6113ee565b600054600160a060020a03908116911614610bfd576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b8042811015610c73576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612b2e833981519152604482015290519081900360640190fd5b6000610c8188888888611688565b90506000610ca96402540be400610ca3600554856118db90919063ffffffff16565b90611950565b60408051848152602081018390528151929350600080516020612b71833981519152929081900390910190a16000610ce18383611963565b9050610d0d88886000198101818110610cf657fe5b90506020020135600160a060020a031687836114ed565b50505050505050505050565b610d216113ee565b600054600160a060020a03908116911614610d74576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b8042811015610e12576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612b2e833981519152604482015290519081900360640190fd5b6000610e20888888886119be565b90506000610e426402540be400610ca3600554856118db90919063ffffffff16565b60408051848152602081018390528151929350600080516020612b71833981519152929081900390910190a1600154604080517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691632e1a7d4d9160248082019260009290919082900301818387803b158015610ed457600080fd5b505af1158015610ee8573d6000803e3d6000fd5b505050506000610f01828461196390919063ffffffff16565b9050610d0d86826113f2565b60008642811015610f56576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612b2e833981519152604482015290519081900360640190fd5b600080610f658e8e8e88611b82565b90506000610f876402540be400610ca3600554856118db90919063ffffffff16565b60408051848152602081018390528151929350600080516020612b71833981519152929081900390910190a1610fbd8282611963565b9250610ff291508d90508c6000198101818110610fd657fe5b90506020020135600160a060020a03168989898e868b8b611eb2565b9d9c50505050505050505050505050565b600254600160a060020a031681565b600054600160a060020a031690565b6000864281101561106a576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612b2e833981519152604482015290519081900360640190fd5b6000806110798f8f8f8f611688565b9050600061109b6402540be400610ca3600554856118db90919063ffffffff16565b60408051848152602081018390528151929350600080516020612b71833981519152929081900390910190a16110d18282611963565b92506110ea91508d90508c6000198101818110610fd657fe5b9e9d5050505050505050505050505050565b60055481565b600154600160a060020a031681565b8042811015611158576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612b2e833981519152604482015290519081900360640190fd5b60006111678787876000611b82565b905060006111896402540be400610ca3600554856118db90919063ffffffff16565b60408051848152602081018390528151929350600080516020612b71833981519152929081900390910190a160006111c18383611963565b90506111d688886000198101818110610cf657fe5b505050505050505050565b600354600160a060020a031681565b6402540be40081565b6112016113ee565b600054600160a060020a03908116911614611254576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b600455565b6112616113ee565b600054600160a060020a039081169116146112b4576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6112eb6113ee565b600054600160a060020a0390811691161461133e576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612add833981519152604482015290519081900360640190fd5b600160a060020a0381166113865760405160e560020a62461bcd028152600401808060200182810382526026815260200180612a466026913960400191505060405180910390fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b3390565b60408051600080825260208201909252600160a060020a0384169083906040518082805190602001908083835b6020831061143e5780518252601f19909201916020918201910161141f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146114a0576040519150601f19603f3d011682016040523d82523d6000602084013e6114a5565b606091505b50509050806114e85760405160e560020a62461bcd028152600401808060200182810382526023815260200180612b4e6023913960400191505060405180910390fd5b505050565b60408051600160a060020a038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b602083106115985780518252601f199092019160209182019101611579565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146115fa576040519150601f19603f3d011682016040523d82523d6000602084013e6115ff565b606091505b509150915081801561162d57508051158061162d575080806020019051602081101561162a57600080fd5b50515b611681576040805160e560020a62461bcd02815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b60006117098383600081811061169a57fe5b90506020020135600160a060020a031633611703600260009054906101000a9004600160a060020a0316878760008181106116d157fe5b90506020020135600160a060020a0316888860018181106116ee57fe5b90506020020135600160a060020a03166120de565b886121bc565b60008383600019810181811061171b57fe5b90506020020135600160a060020a0316600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316815260200191505060206040518083038186803b15801561177a57600080fd5b505afa15801561178e573d6000803e3d6000fd5b505050506040513d60208110156117a457600080fd5b505160408051602086810282810182019093528682529293506117e692909187918791829185019084908082843760009201919091525030925061234a915050565b600061188d82868660001981018181106117fc57fe5b90506020020135600160a060020a0316600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316815260200191505060206040518083038186803b15801561185b57600080fd5b505afa15801561186f573d6000803e3d6000fd5b505050506040513d602081101561188557600080fd5b505190611963565b9050858110156118d15760405160e560020a62461bcd028152600401808060200182810382526032815260200180612a146032913960400191505060405180910390fd5b9695505050505050565b60008115806118f6575050808202828282816118f357fe5b04145b61194a576040805160e560020a62461bcd02815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b600081838161195b57fe5b049392505050565b8082038281111561194a576040805160e560020a62461bcd02815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b600154600090600160a060020a0316838360001981018181106119dd57fe5b90506020020135600160a060020a0316600160a060020a031614611a355760405160e560020a62461bcd028152600401808060200182810382526024815260200180612a916024913960400191505060405180910390fd5b611a458383600081811061169a57fe5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a08231916024808301926020929190829003018186803b158015611aa957600080fd5b505afa158015611abd573d6000803e3d6000fd5b505050506040513d6020811015611ad357600080fd5b50516040805160208681028281018201909352868252929350611b1592909187918791829185019084908082843760009201919091525030925061234a915050565b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009261188d928592600160a060020a03909216916370a0823191602480820192602092909190829003018186803b15801561185b57600080fd5b600154600090600160a060020a031684848381611b9b57fe5b90506020020135600160a060020a0316600160a060020a031614611bf35760405160e560020a62461bcd028152600401808060200182810382526024815260200180612a916024913960400191505060405180910390fd5b6000611bff3484611963565b905060008111611c435760405160e560020a62461bcd028152600401808060200182810382526031815260200180612afd6031913960400191505060405180910390fd5b600160009054906101000a9004600160a060020a0316600160a060020a031663d0e30db0826040518263ffffffff1660e060020a0281526004016000604051808303818588803b158015611c9657600080fd5b505af1158015611caa573d6000803e3d6000fd5b5050600154600254600160a060020a03918216945063a9059cbb9350611cf49250168888600081611cd757fe5b90506020020135600160a060020a0316898960018181106116ee57fe5b836040518363ffffffff1660e060020a0281526004018083600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611d3e57600080fd5b505af1158015611d52573d6000803e3d6000fd5b505050506040513d6020811015611d6857600080fd5b5051611d7057fe5b600085856000198101818110611d8257fe5b90506020020135600160a060020a0316600160a060020a03166370a08231306040518263ffffffff1660e060020a0281526004018082600160a060020a0316815260200191505060206040518083038186803b158015611de157600080fd5b505afa158015611df5573d6000803e3d6000fd5b505050506040513d6020811015611e0b57600080fd5b50516040805160208881028281018201909352888252929350611e4d92909189918991829185019084908082843760009201919091525030925061234a915050565b6000611e6382888860001981018181106117fc57fe5b905087811015611ea75760405160e560020a62461bcd028152600401808060200182810382526032815260200180612a146032913960400191505060405180910390fd5b979650505050505050565b600354600090611ecd908a90600160a060020a031686612662565b6000600360009054906101000a9004600160a060020a0316600160a060020a031663559ebe57848c8c8c8c8c8c8c8c6004546040518b63ffffffff1660e060020a028152600401808a600160a060020a031681526020018967ffffffffffffffff1681526020018867ffffffffffffffff1681526020018060200180602001878152602001868152602001858152602001848152602001838103835289818151815260200191508051906020019080838360005b83811015611f99578181015183820152602001611f81565b50505050905090810190601f168015611fc65780820380516001836020036101000a031916815260200191505b5083810382528851815288516020918201918a019080838360005b83811015611ff9578181015183820152602001611fe1565b50505050905090810190601f1680156120265780820380516001836020036101000a031916815260200191505b509b5050505050505050505050506020604051808303818588803b15801561204d57600080fd5b505af1158015612061573d6000803e3d6000fd5b50505050506040513d602081101561207857600080fd5b50519050806120d1576040805160e560020a62461bcd02815260206004820152601560248201527f504f4c592043524f5353434841494e204552524f520000000000000000000000604482015290519081900360640190fd5b9998505050505050505050565b60008060006120ed85856127f6565b604080516c01000000000000000000000000600160a060020a03948516810260208084019190915293851681026034830152825160288184030181526048830184528051908501207fff00000000000000000000000000000000000000000000000000000000000000606884015294909a1690990260698a0152607d8901929092527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808a01919091528251808a03909101815260bd909801909152865196019590952095945050505050565b60408051600160a060020a0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061226f5780518252601f199092019160209182019101612250565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146122d1576040519150601f19603f3d011682016040523d82523d6000602084013e6122d6565b606091505b5091509150818015612304575080511580612304575080806020019051602081101561230157600080fd5b50515b6123425760405160e560020a62461bcd028152600401808060200182810382526024815260200180612b916024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156114e85760008084838151811061236857fe5b602002602001015185846001018151811061237f57fe5b602002602001015191509150600061239783836127f6565b506002549091506000906123b590600160a060020a031685856120de565b905060008060008084600160a060020a0316630902f1ac6040518163ffffffff1660e060020a02815260040160606040518083038186803b1580156123f957600080fd5b505afa15801561240d573d6000803e3d6000fd5b505050506040513d606081101561242357600080fd5b5080516020909101516dffffffffffffffffffffffffffff9182169350169050600080600160a060020a038a811690891614612460578284612463565b83835b915091506124bb828b600160a060020a03166370a082318a6040518263ffffffff1660e060020a0281526004018082600160a060020a0316815260200191505060206040518083038186803b15801561185b57600080fd5b95506124c88683836128da565b94505050505060008085600160a060020a031688600160a060020a0316146124f2578260006124f6565b6000835b91509150600060028c51038a1061250d578a612543565b612543600260009054906101000a9004600160a060020a0316898e8d6002018151811061253657fe5b60200260200101516120de565b60408051600080825260208201928390527f022c0d9f0000000000000000000000000000000000000000000000000000000083526024820187815260448301879052600160a060020a038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b838110156125e65781810151838201526020016125ce565b50505050905090810190601f1680156126135780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561263557600080fd5b505af1158015612649573d6000803e3d6000fd5b50506001909b019a5061234d9950505050505050505050565b60408051600160a060020a038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b6020831061270d5780518252601f1990920191602091820191016126ee565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461276f576040519150601f19603f3d011682016040523d82523d6000602084013e612774565b606091505b50915091508180156127a25750805115806127a2575080806020019051602081101561279f57600080fd5b50515b611681576040805160e560020a62461bcd02815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604482015290519081900360640190fd5b60008082600160a060020a031684600160a060020a0316141561284d5760405160e560020a62461bcd028152600401808060200182810382526025815260200180612a6c6025913960400191505060405180910390fd5b82600160a060020a031684600160a060020a03161061286d578284612870565b83835b9092509050600160a060020a0382166128d3576040805160e560020a62461bcd02815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b600080841161291d5760405160e560020a62461bcd02815260040180806020018281038252602b815260200180612bb5602b913960400191505060405180910390fd5b60008311801561292d5750600082115b61296b5760405160e560020a62461bcd028152600401808060200182810382526028815260200180612ab56028913960400191505060405180910390fd5b6000612979856103e56118db565b9050600061298782856118db565b905060006129a18361299b886103e86118db565b906129b8565b90508082816129ac57fe5b04979650505050505050565b8082018281101561194a576040805160e560020a62461bcd02815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe4f3353776170455448556e69737761704272696467653a20494e53554646494349454e545f4f55545055545f414d4f554e544f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373556e697377617056324c6962726172793a204944454e544943414c5f4144445245535345534f3353776170455448556e69737761704272696467653a20494e56414c49445f50415448556e697377617056324c6962726172793a20494e53554646494349454e545f4c49515549444954594f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724f3353776170455448556e69737761704272696467653a20494e53554646494349454e545f494e5055545f414d4f554e544f3353776170455448556e69737761704272696467653a2045585049524544005472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544270e06e1460fe9df2e798064a58fdb072e3f3e1e39e7db96268c13849c025aed5472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a26469706673582212206605610e824bc9bf92a2224b53eafac180e613bbf56ebc5ba8a9d06bddf6724d64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f00000000000000000000000002e20ca05e38cbdf1a6235a7acdd34efc0434caa0000000000000000000000000000000000000000000000000000000000000001
-----Decoded View---------------
Arg [0] : _weth (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [1] : _factory (address): 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
Arg [2] : _swapper (address): 0x02e20ca05E38cBdf1a6235a7AcDD34EFc0434CaA
Arg [3] : _swapperId (uint256): 1
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [1] : 0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f
Arg [2] : 00000000000000000000000002e20ca05e38cbdf1a6235a7acdd34efc0434caa
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000001Deployed Bytecode Sourcemap
12464:10601:0:-:0;;;;;;;;;;-1:-1:-1;;;12464:10601:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22172:471;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22172:471:0;-1:-1:-1;;;;;22172:471:0;;:::i;:::-;;12806:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;22870:102;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22870:102:0;-1:-1:-1;;;;;22870:102:0;;:::i;22651:95::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22651:95:0;;:::i;22980:82::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22980:82:0;-1:-1:-1;;;;;22980:82:0;;:::i;13384:638::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13384:638:0;-1:-1:-1;;;;;;13384:638:0;;;;;;;;:::i;1596:140::-;;;;;;;;;;;;;:::i;18360:654::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18360:654:0;-1:-1:-1;;;;;;18360:654:0;;;;;;;;:::i;16418:987::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16418:987:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16418:987:0;;-1:-1:-1;16418:987:0;-1:-1:-1;16418:987:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16418:987:0;;-1:-1:-1;;16418:987:0;;;-1:-1:-1;;;16418:987:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;12737:29;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;12737:29:0;;;;;;;;;;;;;;954:79;;;;;;;;;;;;;:::i;14030:1022::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14030:1022:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14030:1022:0;;-1:-1:-1;14030:1022:0;-1:-1:-1;14030:1022:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14030:1022:0;;-1:-1:-1;;14030:1022:0;;;-1:-1:-1;;;14030:1022:0;;;;:::i;12840:42::-;;;;;;;;;;;;;:::i;12711:19::-;;;;;;;;;;;;;:::i;15801:609::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15801:609:0;-1:-1:-1;;;;;;15801:609:0;;;;;;;;:::i;12773:26::-;;;;;;;;;;;;;:::i;12908:50::-;;;;;;;;;;;;;:::i;22071:93::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22071:93:0;;:::i;22754:108::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22754:108:0;-1:-1:-1;;;;;22754:108:0;;:::i;1891:273::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1891:273:0;-1:-1:-1;;;;;1891:273:0;;:::i;22172:471::-;1176:12;:10;:12::i;:::-;1166:6;;-1:-1:-1;;;;;1166:6:0;;;:22;;;1158:67;;;;;-1:-1:-1;;;;;1158:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1158:67:0;;;;;;;;;;;;;;;22247:4:::1;::::0;-1:-1:-1;;;;;22238:13:0;;::::1;22247:4:::0;::::1;22238:13;22234:402;;;22268:19;22297:5;-1:-1:-1::0;;;;;22290:23:0::1;;22322:4;22290:38;;;;;-1:-1:-1::0;;;22290:38:0::1;;;;;;;-1:-1:-1::0;;;;;22290:38:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;22290:38:0;;-1:-1:-1;22347:15:0;;22343:89:::1;;22389:4;::::0;22383:33:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;22389:4:0;;::::1;::::0;22383:20:::1;::::0;:33;;;;;22389:4:::1;::::0;22383:33;;;;;;;;22389:4;;22383:33;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22343:89;22446:62;22477:7;:5;:7::i;:::-;22494:4;22486:21;22446:30;:62::i;:::-;22234:402;;;;22541:83;22569:5;22576:7;:5;:7::i;:::-;22585:38;::::0;;;;;22617:4:::1;22585:38;::::0;::::1;::::0;;;-1:-1:-1;;;;;22585:23:0;::::1;::::0;::::1;::::0;:38;;;;;::::1;::::0;;;;;;;;:23;:38;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;22585:38:0;22541:27:::1;:83::i;:::-;22172:471:::0;:::o;12806:25::-;;;;:::o;22870:102::-;1176:12;:10;:12::i;:::-;1166:6;;-1:-1:-1;;;;;1166:6:0;;;:22;;;1158:67;;;;;-1:-1:-1;;;;;1158:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1158:67:0;;;;;;;;;;;;;;;22942:11:::1;:22:::0;;-1:-1:-1;;22942:22:0::1;-1:-1:-1::0;;;;;22942:22:0;;;::::1;::::0;;;::::1;::::0;;22870:102::o;22651:95::-;1176:12;:10;:12::i;:::-;1166:6;;-1:-1:-1;;;;;1166:6:0;;;:22;;;1158:67;;;;;-1:-1:-1;;;;;1158:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1158:67:0;;;;;;;;;;;;;;;22718:13:::1;:20:::0;22651:95::o;22980:82::-;1176:12;:10;:12::i;:::-;1166:6;;-1:-1:-1;;;;;1166:6:0;;;:22;;;1158:67;;;;;-1:-1:-1;;;;;1158:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1158:67:0;;;;;;;;;;;;;;;23042:4:::1;:12:::0;;-1:-1:-1;;23042:12:0::1;-1:-1:-1::0;;;;;23042:12:0;;;::::1;::::0;;;::::1;::::0;;22980:82::o;13384:638::-;13613:8;13029:15;13017:8;:27;;13009:71;;;;;-1:-1:-1;;;;;13009:71:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13009:71:0;;;;;;;;;;;;;;;13634:14:::1;13651:88;13706:8;13716:16;13734:4;;13651:54;:88::i;:::-;13634:105;;13750:14;13767:49;12950:8;13767:28;13781:13;;13767:9;:13;;:28;;;;:::i;:::-;:32:::0;::::1;:49::i;:::-;13834:34;::::0;;;;;::::1;::::0;::::1;::::0;;;;;13750:66;;-1:-1:-1;;;;;;;;;;;;13834:34:0;;;;;;;;;::::1;13881:22;13906:24;:9:::0;13920;13906:13:::1;:24::i;:::-;13881:49:::0;-1:-1:-1;13941:73:0::1;13969:4:::0;;-1:-1:-1;;13974:15:0;;13969:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;13969:21:0::1;13992:2;13996:17;13941:27;:73::i;:::-;13091:1;;;13384:638:::0;;;;;;;:::o;1596:140::-;1176:12;:10;:12::i;:::-;1166:6;;-1:-1:-1;;;;;1166:6:0;;;:22;;;1158:67;;;;;-1:-1:-1;;;;;1158:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1158:67:0;;;;;;;;;;;;;;;1695:1:::1;1679:6:::0;;1658:40:::1;::::0;-1:-1:-1;;;;;1679:6:0;;::::1;::::0;1658:40:::1;::::0;1695:1;;1658:40:::1;1726:1;1709:19:::0;;-1:-1:-1;;1709:19:0::1;::::0;;1596:140::o;18360:654::-;18586:8;13029:15;13017:8;:27;;13009:71;;;;;-1:-1:-1;;;;;13009:71:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13009:71:0;;;;;;;;;;;;;;;18607:14:::1;18624:85;18676:8;18686:16;18704:4;;18624:51;:85::i;:::-;18607:102;;18720:14;18737:49;12950:8;18737:28;18751:13;;18737:9;:13;;:28;;;;:::i;:49::-;18804:34;::::0;;;;;::::1;::::0;::::1;::::0;;;;;18720:66;;-1:-1:-1;;;;;;;;;;;;18804:34:0;;;;;;;;;::::1;18857:4;::::0;18851:31:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;18857:4:0;;::::1;::::0;18851:20:::1;::::0;:31;;;;;18857:4:::1;::::0;18851:31;;;;;;;;18857:4;;18851:31;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18893:22;18918:24;18932:9;18918;:13;;:24;;;;:::i;:::-;18893:49;;18953:53;18984:2;18988:17;18953:30;:53::i;16418:987::-:0;16801:4;16782:8;13029:15;13017:8;:27;;13009:71;;;;;-1:-1:-1;;;;;13009:71:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13009:71:0;;;;;;;;;;;;;;;16818:17:::1;16861:14:::0;16878:80:::1;16930:16;16948:4;;16954:3;16878:51;:80::i;:::-;16861:97;;16973:14;16990:49;12950:8;16990:28;17004:13;;16990:9;:13;;:28;;;;:::i;:49::-;17059:34;::::0;;;;;::::1;::::0;::::1;::::0;;;;;16973:66;;-1:-1:-1;;;;;;;;;;;;17059:34:0;;;;;;;;;::::1;17123:24;:9:::0;17137;17123:13:::1;:24::i;:::-;17108:39:::0;-1:-1:-1;17178:219:0::1;::::0;-1:-1:-1;17199:4:0;;-1:-1:-1;17199:4:0;-1:-1:-1;;17204:15:0;;17199:21;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;17199:21:0::1;17235:8;17258:9;17282:11;17308:2;17325:12;17352:16;17383:3;17178:6;:219::i;:::-;17171:226:::0;16418:987;-1:-1:-1;;;;;;;;;;;;;16418:987:0:o;12737:29::-;;;-1:-1:-1;;;;;12737:29:0;;:::o;954:79::-;992:7;1019:6;-1:-1:-1;;;;;1019:6:0;954:79;:::o;14030:1022::-;14440:4;14421:8;13029:15;13017:8;:27;;13009:71;;;;;-1:-1:-1;;;;;13009:71:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13009:71:0;;;;;;;;;;;;;;;14457:17:::1;14500:14:::0;14517:88:::1;14572:8;14582:16;14600:4;;14517:54;:88::i;:::-;14500:105;;14620:14;14637:49;12950:8;14637:28;14651:13;;14637:9;:13;;:28;;;;:::i;:49::-;14706:34;::::0;;;;;::::1;::::0;::::1;::::0;;;;;14620:66;;-1:-1:-1;;;;;;;;;;;;14706:34:0;;;;;;;;;::::1;14770:24;:9:::0;14784;14770:13:::1;:24::i;:::-;14755:39:::0;-1:-1:-1;14825:219:0::1;::::0;-1:-1:-1;14846:4:0;;-1:-1:-1;14846:4:0;-1:-1:-1;;14851:15:0;;14846:21;;::::1;;;;14825:219;14818:226:::0;14030:1022;-1:-1:-1;;;;;;;;;;;;;;14030:1022:0:o;12840:42::-;;;;:::o;12711:19::-;;;-1:-1:-1;;;;;12711:19:0;;:::o;15801:609::-;16011:8;13029:15;13017:8;:27;;13009:71;;;;;-1:-1:-1;;;;;13009:71:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13009:71:0;;;;;;;;;;;;;;;16032:14:::1;16049:78;16101:16;16119:4;;16125:1;16049:51;:78::i;:::-;16032:95;;16138:14;16155:49;12950:8;16155:28;16169:13;;16155:9;:13;;:28;;;;:::i;:49::-;16222:34;::::0;;;;;::::1;::::0;::::1;::::0;;;;;16138:66;;-1:-1:-1;;;;;;;;;;;;16222:34:0;;;;;;;;;::::1;16269:22;16294:24;:9:::0;16308;16294:13:::1;:24::i;:::-;16269:49:::0;-1:-1:-1;16329:73:0::1;16357:4:::0;;-1:-1:-1;;16362:15:0;;16357:21;;::::1;;;;16329:73;13091:1;;;15801:609:::0;;;;;;:::o;12773:26::-;;;-1:-1:-1;;;;;12773:26:0;;:::o;12908:50::-;12950:8;12908:50;:::o;22071:93::-;1176:12;:10;:12::i;:::-;1166:6;;-1:-1:-1;;;;;1166:6:0;;;:22;;;1158:67;;;;;-1:-1:-1;;;;;1158:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1158:67:0;;;;;;;;;;;;;;;22137:13:::1;:19:::0;22071:93::o;22754:108::-;1176:12;:10;:12::i;:::-;1166:6;;-1:-1:-1;;;;;1166:6:0;;;:22;;;1158:67;;;;;-1:-1:-1;;;;;1158:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1158:67:0;;;;;;;;;;;;;;;22829:14:::1;:25:::0;;-1:-1:-1;;22829:25:0::1;-1:-1:-1::0;;;;;22829:25:0;;;::::1;::::0;;;::::1;::::0;;22754:108::o;1891:273::-;1176:12;:10;:12::i;:::-;1166:6;;-1:-1:-1;;;;;1166:6:0;;;:22;;;1158:67;;;;;-1:-1:-1;;;;;1158:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1158:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1986:22:0;::::1;1964:110;;;;-1:-1:-1::0;;;;;1964:110:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2111:6;::::0;;2090:38:::1;::::0;-1:-1:-1;;;;;2090:38:0;;::::1;::::0;2111:6;::::1;::::0;2090:38:::1;::::0;::::1;2139:6;:17:::0;;-1:-1:-1;;2139:17:0::1;-1:-1:-1::0;;;;;2139:17:0;;;::::1;::::0;;;::::1;::::0;;1891:273::o;91:98::-;171:10;91:98;:::o;12262:195::-;12370:12;;;12332;12370;;;;;;;;;-1:-1:-1;;;;;12349:7:0;;;12363:5;;12349:34;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12349:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12331:52;;;12402:7;12394:55;;;;-1:-1:-1;;;;;12394:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12262:195;;;:::o;11483:361::-;11678:45;;;-1:-1:-1;;;;;11678:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11667:57;;;;11632:12;;11646:17;;11667:10;;;;11678:45;11667:57;;;11678:45;11667:57;;11678:45;11667:57;;;;;;;;;;-1:-1:-1;;11667:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11631:93;;;;11743:7;:57;;;;-1:-1:-1;11755:11:0;;:16;;:44;;;11786:4;11775:24;;;;;;;;;;;;;;;-1:-1:-1;11775:24:0;11755:44;11735:101;;;;;-1:-1:-1;;;;;11735:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11483:361;;;;;:::o;15060:733::-;15243:4;15260:146;15306:4;;15311:1;15306:7;;;;;;;;;;;;;-1:-1:-1;;;;;15306:7:0;15315:10;15327:58;15352:14;;;;;;;;;-1:-1:-1;;;;;15352:14:0;15368:4;;15373:1;15368:7;;;;;;;;;;;;;-1:-1:-1;;;;;15368:7:0;15377:4;;15382:1;15377:7;;;;;;;;;;;;;-1:-1:-1;;;;;15377:7:0;15327:24;:58::i;:::-;15387:8;15260:31;:146::i;:::-;15417:18;15445:4;;-1:-1:-1;;15450:15:0;;15445:21;;;;;;;;;;;;;-1:-1:-1;;;;;15445:21:0;-1:-1:-1;;;;;15438:39:0;;15486:4;15438:54;;;;;-1:-1:-1;;;15438:54:0;;;;;;;-1:-1:-1;;;;;15438:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15438:54:0;15503:55;;;15438:54;15503:55;;;;;;;;;;;;;;15438:54;;-1:-1:-1;15503:55:0;;;;15538:4;;;;;;15503:55;;;15538:4;;15503:55;15538:4;15503:55;;;;;;;;;-1:-1:-1;15552:4:0;;-1:-1:-1;15503:34:0;;-1:-1:-1;;15503:55:0:i;:::-;15569:14;15586:73;15645:13;15593:4;;-1:-1:-1;;15598:15:0;;15593:21;;;;;;;;;;;;;-1:-1:-1;;;;;15593:21:0;-1:-1:-1;;;;;15586:39:0;;15634:4;15586:54;;;;;-1:-1:-1;;;15586:54:0;;;;;;;-1:-1:-1;;;;;15586:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15586:54:0;;:58;:73::i;:::-;15569:90;;15691:12;15678:9;:25;;15670:88;;;;-1:-1:-1;;;;;15670:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15776:9;15060:733;-1:-1:-1;;;;;;15060:733:0:o;10839:142::-;10891:6;10918;;;:30;;-1:-1:-1;;10933:5:0;;;10947:1;10942;10933:5;10942:1;10928:15;;;;;:20;10918:30;10910:63;;;;;-1:-1:-1;;;;;10910:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10839:142;;;;:::o;10989:91::-;11041:6;11071:1;11067;:5;;;;;;;10989:91;-1:-1:-1;;;10989:91:0:o;10702:129::-;10786:5;;;10781:16;;;;10773:50;;;;;-1:-1:-1;;;;;10773:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;19022:793;19256:4;;19206;;-1:-1:-1;;;;;19256:4:0;19231;;-1:-1:-1;;19236:15:0;;19231:21;;;;;;;;;;;;;-1:-1:-1;;;;;19231:21:0;-1:-1:-1;;;;;19231:29:0;;19223:78;;;;-1:-1:-1;;;;;19223:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19312:146;19358:4;;19363:1;19358:7;;;;;;19312:146;19497:4;;19490:37;;;;;;19521:4;19490:37;;;;;;19469:18;;-1:-1:-1;;;;;19497:4:0;;19490:22;;:37;;;;;;;;;;;;;;19497:4;19490:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19490:37:0;19538:55;;;19490:37;19538:55;;;;;;;;;;;;;;19490:37;;-1:-1:-1;19538:55:0;;;;19573:4;;;;;;19538:55;;;19573:4;;19538:55;19573:4;19538:55;;;;;;;;;-1:-1:-1;19587:4:0;;-1:-1:-1;19538:34:0;;-1:-1:-1;;19538:55:0:i;:::-;19628:4;;19621:37;;;;;;19652:4;19621:37;;;;;;19604:14;;19621:56;;19663:13;;-1:-1:-1;;;;;19628:4:0;;;;19621:22;;:37;;;;;;;;;;;;;;;19628:4;19621:37;;;;;;;;;;17413:939;17628:4;;17592;;-1:-1:-1;;;;;17628:4:0;17617;;17592;17617:7;;;;;;;;;;;-1:-1:-1;;;;;17617:7:0;-1:-1:-1;;;;;17617:15:0;;17609:64;;;;-1:-1:-1;;;;;17609:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17684:13;17700:18;:9;17714:3;17700:13;:18::i;:::-;17684:34;;17748:1;17737:8;:12;17729:74;;;;-1:-1:-1;;;;;17729:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17820:4;;;;;;;;;-1:-1:-1;;;;;17820:4:0;-1:-1:-1;;;;;17814:19:0;;17841:8;17814:38;;;;;-1:-1:-1;;;17814:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17876:4:0;;17916:14;;-1:-1:-1;;;;;17876:4:0;;;;-1:-1:-1;17870:20:0;;-1:-1:-1;17891:58:0;;-1:-1:-1;17916:14:0;17932:4;;17876;17932:7;;;;;;;;;;;-1:-1:-1;;;;;17932:7:0;17941:4;;17946:1;17941:7;;;;;;17891:58;17951:8;17870:90;;;;;-1:-1:-1;;;17870:90:0;;;;;;;-1:-1:-1;;;;;17870:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17870:90:0;17863:98;;;;17972:18;18000:4;;-1:-1:-1;;18005:15:0;;18000:21;;;;;;;;;;;;;-1:-1:-1;;;;;18000:21:0;-1:-1:-1;;;;;17993:39:0;;18041:4;17993:54;;;;;-1:-1:-1;;;17993:54:0;;;;;;;-1:-1:-1;;;;;17993:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17993:54:0;18058:55;;;17993:54;18058:55;;;;;;;;;;;;;;17993:54;;-1:-1:-1;18058:55:0;;;;18093:4;;;;;;18058:55;;;18093:4;;18058:55;18093:4;18058:55;;;;;;;;;-1:-1:-1;18107:4:0;;-1:-1:-1;18058:34:0;;-1:-1:-1;;18058:55:0:i;:::-;18124:14;18141:73;18200:13;18148:4;;-1:-1:-1;;18153:15:0;;18148:21;;;;;;18141:73;18124:90;;18246:16;18233:9;:29;;18225:92;;;;-1:-1:-1;;;;;18225:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18335:9;17413:939;-1:-1:-1;;;;;;;17413:939:0:o;21198:827::-;21625:11;;21461:4;;21583:62;;21610:13;;-1:-1:-1;;;;;21625:11:0;21638:6;21583:26;:62::i;:::-;21658:11;21681;;;;;;;;;-1:-1:-1;;;;;21681:11:0;-1:-1:-1;;;;;21672:26:0;;21706:3;21725:13;21753:8;21776:9;21800:11;21826:9;21850:6;21871:12;21898:3;21916:13;;21672:268;;;;;-1:-1:-1;;;21672:268:0;;;;;;;-1:-1:-1;;;;;21672:268:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21672:268:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21672:268:0;;-1:-1:-1;21672:268:0;21951:40;;;;;-1:-1:-1;;;;;21951:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;22011:6;21198:827;-1:-1:-1;;;;;;;;;21198:827:0:o;2777:478::-;2866:12;2892:14;2908;2926:26;2937:6;2945;2926:10;:26::i;:::-;3090:32;;;;-1:-1:-1;;;;;3090:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3080:43;;;;;;2993:251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2983:262;;;;;;;;;2777:478;-1:-1:-1;;;;;2777:478:0:o;11852:402::-;12077:51;;;-1:-1:-1;;;;;12077:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12066:63;;;;12031:12;;12045:17;;12066:10;;;;12077:51;12066:63;;;12077:51;12066:63;;12077:51;12066:63;;;;;;;;;;-1:-1:-1;;12066:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12030:99;;;;12148:7;:57;;;;-1:-1:-1;12160:11:0;;:16;;:44;;;12191:4;12180:24;;;;;;;;;;;;;;;-1:-1:-1;12180:24:0;12160:44;12140:106;;;;-1:-1:-1;;;;;12140:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11852:402;;;;;;:::o;19962:1228::-;20075:6;20070:1113;20101:1;20087:4;:11;:15;20083:1;:19;20070:1113;;;20125:13;20140:14;20159:4;20164:1;20159:7;;;;;;;;;;;;;;20168:4;20173:1;20177;20173:5;20168:11;;;;;;;;;;;;;;20124:56;;;;20196:14;20215:42;20243:5;20250:6;20215:27;:42::i;:::-;-1:-1:-1;20334:14:0;;20195:62;;-1:-1:-1;20272:19:0;;20309:55;;-1:-1:-1;;;;;20334:14:0;20350:5;20357:6;20309:24;:55::i;:::-;20272:93;;20380:16;20411:17;20499:13;20514;20532:4;-1:-1:-1;;;;;20532:16:0;;:18;;;;;-1:-1:-1;;;20532:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20532:18:0;;;;;;;20498:52;;;;;-1:-1:-1;20498:52:0;;-1:-1:-1;20566:17:0;;-1:-1:-1;;;;;20607:15:0;;;;;;;:61;;20649:8;20659;20607:61;;;20626:8;20636;20607:61;20565:103;;;;20697:56;20740:12;20704:5;-1:-1:-1;;;;;20697:23:0;;20729:4;20697:38;;;;;-1:-1:-1;;;20697:38:0;;;;;;;-1:-1:-1;;;;;20697:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;:56;20683:70;;20783:71;20813:11;20826:12;20840:13;20783:29;:71::i;:::-;20768:86;;20070:1113;;;;20885:15;20902;20930:6;-1:-1:-1;;;;;20921:15:0;:5;-1:-1:-1;;;;;20921:15:0;;:67;;20966:12;20985:1;20921:67;;;20945:1;20949:12;20921:67;20884:104;;;;21003:10;21034:1;21020:4;:11;:15;21016:1;:19;:89;;21102:3;21016:89;;;21038:61;21063:14;;;;;;;;;-1:-1:-1;;;;;21063:14:0;21079:6;21087:4;21092:1;21096;21092:5;21087:11;;;;;;;;;;;;;;21038:24;:61::i;:::-;21158:12;;;21168:1;21158:12;;;;;;;;;;21120:51;;;;;;;;;;;;;;;-1:-1:-1;;;;;21120:51:0;;;;;;;;;;;;;;;;;;;;;;21003:102;;-1:-1:-1;21120:9:0;;;;;;21130:10;;21142;;21003:102;;21158:12;;21120:51;;;;;;;;21158:12;;21120:51;;;;21158:12;;21120:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20104:3:0;;;;;-1:-1:-1;20070:1113:0;;-1:-1:-1;;;;;;;;;;20070:1113:0;11117:358;11310:45;;;-1:-1:-1;;;;;11310:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11299:57;;;;11264:12;;11278:17;;11299:10;;;;11310:45;11299:57;;;11310:45;11299:57;;11310:45;11299:57;;;;;;;;;;-1:-1:-1;;11299:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11263:93;;;;11375:7;:57;;;;-1:-1:-1;11387:11:0;;:16;;:44;;;11418:4;11407:24;;;;;;;;;;;;;;;-1:-1:-1;11407:24:0;11387:44;11367:100;;;;;-1:-1:-1;;;;;11367:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:349;2411:14;2427;2472:6;-1:-1:-1;;;;;2462:16:0;:6;-1:-1:-1;;;;;2462:16:0;;;2454:66;;;;-1:-1:-1;;;;;2454:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2559:6;-1:-1:-1;;;;;2550:15:0;:6;-1:-1:-1;;;;;2550:15:0;;:53;;2588:6;2596;2550:53;;;2569:6;2577;2550:53;2531:72;;-1:-1:-1;2531:72:0;-1:-1:-1;;;;;;2622:20:0;;2614:63;;;;;-1:-1:-1;;;;;2614:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2336:349;;;;;:::o;4260:517::-;4353:14;4399:1;4388:8;:12;4380:68;;;;-1:-1:-1;;;;;4380:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4479:1;4467:9;:13;:31;;;;;4497:1;4484:10;:14;4467:31;4459:84;;;;-1:-1:-1;;;;;4459:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4554:20;4577:17;:8;4590:3;4577:12;:17::i;:::-;4554:40;-1:-1:-1;4605:14:0;4622:31;4554:40;4642:10;4622:19;:31::i;:::-;4605:48;-1:-1:-1;4664:16:0;4683:40;4707:15;4683:19;:9;4697:4;4683:13;:19::i;:::-;:23;;:40::i;:::-;4664:59;;4758:11;4746:9;:23;;;;;;;4260:517;-1:-1:-1;;;;;;;4260:517:0:o;10566:128::-;10650:5;;;10645:16;;;;10637:49;;;;;-1:-1:-1;;;;;10637:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
ipfs://6605610e824bc9bf92a2224b53eafac180e613bbf56ebc5ba8a9d06bddf6724d
Loading...LoadingLoading...Loading
Loading...Loading
Loading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingMultichain Portfolio | 30 Chains
Chain Token Portfolio % Price Amount Value ETH 30.57% $69.59 0.1486 $10.34 ETH 21.23% $0.068655 104.6238 $7.18 ETH 9.80% $12.84 0.2581 $3.31 ETH 9.27% $0.401798 7.8019 $3.13 ETH 8.60% $18.07 0.1609 $2.91 ETH 7.07% $0.495434 4.8248 $2.39 ETH 4.32% $2.5 0.5851 $1.46 ETH 2.54% $0.882659 0.9752 $0.8607 ETH 1.79% $0.524945 1.1564 $0.607 ETH 1.13% $0.181635 2.104 $0.3821 ETH 1.08% $0.248266 1.4652 $0.3637 ETH 0.75% $0.651163 0.3878 $0.2525 ETH 0.57% $1.16 0.1656 $0.1921 ETH 0.48% $0.276157 0.5888 $0.1626 ETH 0.39% $197.09 0.00066575 $0.1312 ETH 0.33% $0.600568 0.1848 $0.1109 BSC 0.09% $632.62 0.00004841 $0.030625 Loading...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.SignIn
Address Cards
To use this feature, please login to your Etherscan account and return to this page.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.