Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 10 from a total of 10 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deposit | 18903091 | 310 days ago | IN | 0.05 ETH | 0.0025013 | ||||
Deposit | 18903082 | 310 days ago | IN | 0 ETH | 0.00267036 | ||||
Deposit | 18903077 | 310 days ago | IN | 0 ETH | 0.0026982 | ||||
Set Rewarder | 18903066 | 310 days ago | IN | 0 ETH | 0.00033783 | ||||
Set Rewarder | 18898756 | 310 days ago | IN | 0 ETH | 0.0004376 | ||||
Set Rewarder | 18898017 | 310 days ago | IN | 0 ETH | 0.00042725 | ||||
Withdraw | 18897376 | 310 days ago | IN | 0 ETH | 0.00401874 | ||||
Deposit | 18897218 | 310 days ago | IN | 0.05 ETH | 0.00470967 | ||||
Deposit | 18897203 | 310 days ago | IN | 0 ETH | 0.00436116 | ||||
0x60806040 | 18891345 | 311 days ago | IN | 0 ETH | 0.05012012 |
Loading...
Loading
Contract Name:
LiquidXv2Zap
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; interface ILiquidXv2Router01 { function factory() external view returns (address); function WETH() external view returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IRewarderv2 { function getReward(address account, address token) external view returns(uint256); function claim(address account, address token) external; } interface ILiquidXv2Factory { function getPair(address tokenA, address tokenB) external view returns (address pair); } interface ILiquidXv2Pair { function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); } 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 IERC20Mint is IERC20 { function mint(address account, uint256 amount) external; function burn(address account, uint256 amount) external; } interface IERC20Permit { function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; function nonces(address owner) external view returns (uint256); function DOMAIN_SEPARATOR() external view returns (bytes32); } library Address { function isContract(address account) internal view returns (bool) { return account.code.length > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { _revert(returndata, errorMessage); } } function _revert(bytes memory returndata, string memory errorMessage) private pure { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } library SafeERC20 { using Address for address; function safeTransfer( IERC20 token, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove( IERC20 token, address spender, uint256 value ) internal { require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance(address(this), spender) + value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance( IERC20 token, address spender, uint256 value ) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); uint256 newAllowance = oldAllowance - value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } } function safePermit( IERC20Permit token, address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) internal { uint256 nonceBefore = token.nonces(owner); token.permit(owner, spender, value, deadline, v, r, s); uint256 nonceAfter = token.nonces(owner); require(nonceAfter == nonceBefore + 1, "SafeERC20: permit did not succeed"); } function _callOptionalReturn(IERC20 token, bytes memory data) private { bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } interface ISwapPlusv1 { struct swapRouter { string platform; address tokenIn; address tokenOut; uint256 amountOutMin; uint256 meta; // fee, flag(stable), 0=v2 uint256 percent; } struct swapLine { swapRouter[] swaps; } struct swapBlock { swapLine[] lines; } function swap(address tokenIn, uint256 amount, address tokenOut, address recipient, swapBlock[] calldata swBlocks) external payable returns(uint256, uint256); } contract LiquidXv2Zap { using SafeERC20 for IERC20; address public router; address public factory; address public swapPlus; address public wrappedETH; address public rewarder; mapping (address => bool) public operators; address public operatorSetter; // account => pair => basketId mapping (address => mapping(address => mapping(uint256 => uint256))) public balanceOf; struct swapPath { ISwapPlusv1.swapBlock[] path; } event Deposit(address account, address token0, address token1, uint256 basketId, uint256 amount); event Withdraw(address account, address token0, address token1, uint256 basketId, uint256 amount); receive() external payable { } constructor(address _router, address _swapPlus, address _rewarder, address _wrappedETH) { router = _router; factory = ILiquidXv2Router01(_router).factory(); swapPlus = _swapPlus; wrappedETH = _wrappedETH; rewarder = _rewarder; operatorSetter = msg.sender; } modifier onlyOpertaor() { require(operators[msg.sender], "LiquidXv2Zap: !operator"); _; } function deposit(address account, address token, address tokenM, swapPath calldata path, address token0, address token1, uint256[3] calldata amount, uint256 basketId) public payable returns(uint256) { address pair = ILiquidXv2Factory(factory).getPair(token0, token1); require(pair != address(0), "LiquidXv2Zap: no pair"); // retAddLp 0, 1, 2 // inAmount // token0Amount, token1Amount uint256[6] memory lvar; lvar[3] = msg.value; address inToken = token; if (token != address(0)) { lvar[3] = IERC20(token).balanceOf(address(this)); IERC20(token).safeTransferFrom(account, address(this), amount[0]); lvar[3] = IERC20(token).balanceOf(address(this)) - lvar[3]; } else { inToken = wrappedETH; IWETH(wrappedETH).deposit{value: lvar[3]}(); } if (path.path.length > 0) { _approveTokenIfNeeded(inToken, swapPlus, lvar[3]); (, lvar[3]) = ISwapPlusv1(swapPlus).swap(inToken, lvar[3], tokenM, address(this), path.path); inToken = tokenM; } (lvar[4], lvar[5]) = _depositSwap(token0, token1, inToken, lvar[3]); (lvar[0], lvar[1], lvar[2]) = ILiquidXv2Router01(router).addLiquidity(token0, token1, lvar[4], lvar[5], amount[1], amount[2], address(this), block.timestamp); _refundReserveToken(account, token0, token1, lvar[4]-lvar[0], lvar[5]-lvar[1]); if (basketId == 0) { IERC20(pair).safeTransfer(account, lvar[2]); } else { _addBalance(account, pair, basketId, lvar[2]); } if (rewarder != address(0) && IRewarderv2(rewarder).getReward(account, pair) > 0) { IRewarderv2(rewarder).claim(account, pair); } emit Deposit(account, token0, token1, basketId, lvar[2]); return lvar[2]; } function withdraw(address account, address token0, address token1, uint256 amount, address tokenOut, uint256 basketId, address tokenM, swapPath calldata wpath, uint256[3] memory amountMin) public returns(uint256) { address pair = ILiquidXv2Factory(factory).getPair(token0, token1); require(pair != address(0), "LiquidXv2Zap: no pair"); if (basketId == 0) { IERC20(pair).safeTransferFrom(account, address(this), amount); } else { require(account == msg.sender || operators[msg.sender], "LiquidXv2Zap: no access"); if (balanceOf[account][pair][basketId] < amount) { amount = balanceOf[account][pair][basketId]; } balanceOf[account][pair][basketId] -= amount; } if (amount == 0) return 0; _approveTokenIfNeeded(pair, router, amount); // amount0, 1 // outAmount uint256[3] memory vamount; (vamount[0], vamount[1]) = ILiquidXv2Router01(router).removeLiquidity(token0, token1, amount, amountMin[0], amountMin[1], address(this), block.timestamp); address tOut = tokenOut; if (tokenOut == address(0)) { tOut = wrappedETH; } vamount[2] = 0; if (tOut == token1) { vamount[2] = vamount[1]; _approveTokenIfNeeded(token0, router, vamount[0]); address[] memory path = new address[](2); path[0] = token0; path[1] = token1; uint256[] memory ret = ILiquidXv2Router01(router).swapExactTokensForTokens(vamount[0], amountMin[2], path, address(this), block.timestamp); vamount[2] += ret[1]; } else { vamount[2] = vamount[0]; _approveTokenIfNeeded(token1, router, vamount[1]); address[] memory path = new address[](2); path[0] = token1; path[1] = token0; uint256[] memory ret = ILiquidXv2Router01(router).swapExactTokensForTokens(vamount[1], amountMin[2], path, address(this), block.timestamp); vamount[2] += ret[1]; } if (wpath.path.length > 0) { _approveTokenIfNeeded(tokenOut, swapPlus, vamount[2]); (, vamount[2]) = ISwapPlusv1(swapPlus).swap(tokenOut, vamount[2], tokenM==address(0)?wrappedETH:tokenM, address(this), wpath.path); tokenOut = tokenM; } if (tokenOut != address(0)) { IERC20(tokenOut).safeTransfer(account, vamount[2]); } else { IWETH(wrappedETH).withdraw(vamount[2]); (bool success, ) = payable(account).call{value: vamount[2]}(""); require(success, "LiquidXv2Zap: Failed withdraw"); } if (rewarder != address(0) && IRewarderv2(rewarder).getReward(account, pair) > 0) { IRewarderv2(rewarder).claim(account, pair); } emit Withdraw(account, token0, token1, basketId, amount); return vamount[2]; } function _depositSwap(address token0, address token1, address inToken, uint256 inAmount) internal returns(uint256, uint256) { address pair = ILiquidXv2Factory(factory).getPair(token0, token1); bool isToken0 = false; address outToken = token0; uint256 reserve = 0; if (inToken == token0) { isToken0 = true; outToken = token1; (reserve, , ) = ILiquidXv2Pair(pair).getReserves(); } else { (, reserve, ) = ILiquidXv2Pair(pair).getReserves(); } _approveTokenIfNeeded(inToken, router, inAmount); uint256 swapAmount = _calculateSwapAmount(reserve, inAmount); address[] memory path = new address[](2); path[0] = inToken; path[1] = outToken; uint256[] memory ret = ILiquidXv2Router01(router).swapExactTokensForTokens(swapAmount, 0, path, address(this), block.timestamp); inAmount = inAmount - ret[0]; _approveTokenIfNeeded(outToken, router, ret[1]); if (isToken0) { return (inAmount, ret[1]); } else { return (ret[1], inAmount); } } function _refundReserveToken(address account, address token0, address token1, uint256 amount0, uint256 amount1) internal { if (amount0 > 0) { IERC20(token0).safeTransfer(account, amount0); } if (amount1 > 0) { IERC20(token1).safeTransfer(account, amount1); } } function _calculateSwapAmount(uint256 reserve, uint256 inAmount) internal pure returns(uint256) { // (sqrt(reserve^2*(1+C)^2 + 4C*reserve*inAmount) - reserve*(1+C)) / 2C uint256 a1 = reserve * reserve * 1997 *1997; uint256 a2 = 4 * 997 * reserve * inAmount * 1000; return (_sqrt(a1+a2) - reserve * 1997) / (2 * 997); } function _sqrt(uint x) internal pure returns (uint y) { uint z = (x + 1) / 2; y = x; while (z < y) { y = z; z = (x / z + z) / 2; } } function _addBalance(address account, address pair, uint256 basketId, uint256 amount) internal { balanceOf[account][pair][basketId] += amount; } function withdrawToken(address token, address target, uint256 amount) public onlyOpertaor { if (token == address(0)) { (bool success, ) = payable(target).call{value: amount}(""); require(success, "LiquidXv2Zap: Failed withdraw"); } else { IERC20(token).safeTransfer(target, amount); } } function setRouterAndFactory(address _router) public { require(msg.sender == operatorSetter, 'LiquidXv2Zap: FORBIDDEN'); router = _router; factory = ILiquidXv2Router01(_router).factory(); } function setSwapPlus(address _swapPlus) public { require(msg.sender == operatorSetter, 'LiquidXv2Zap: FORBIDDEN'); swapPlus = _swapPlus; } function setRewarder(address _rewarder) public { require(msg.sender == operatorSetter, 'LiquidXv2Zap: FORBIDDEN'); rewarder = _rewarder; } function setOperator(address _operator, bool mode) external { require(msg.sender == operatorSetter, 'LiquidXv2Zap: FORBIDDEN'); operators[_operator] = mode; } function setOperatorSetter(address _operatorSetter) external { require(msg.sender == operatorSetter, 'LiquidXv2Zap: FORBIDDEN'); operatorSetter = _operatorSetter; } function _approveTokenIfNeeded(address token, address spender, uint256 amount) private { uint256 oldAllowance = IERC20(token).allowance(address(this), spender); if (oldAllowance < amount) { if (oldAllowance > 0) { IERC20(token).safeApprove(spender, 0); } IERC20(token).safeApprove(spender, type(uint256).max); } } }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_swapPlus","type":"address"},{"internalType":"address","name":"_rewarder","type":"address"},{"internalType":"address","name":"_wrappedETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"token0","type":"address"},{"indexed":false,"internalType":"address","name":"token1","type":"address"},{"indexed":false,"internalType":"uint256","name":"basketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"address","name":"token0","type":"address"},{"indexed":false,"internalType":"address","name":"token1","type":"address"},{"indexed":false,"internalType":"uint256","name":"basketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"tokenM","type":"address"},{"components":[{"components":[{"components":[{"components":[{"internalType":"string","name":"platform","type":"string"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"uint256","name":"meta","type":"uint256"},{"internalType":"uint256","name":"percent","type":"uint256"}],"internalType":"struct ISwapPlusv1.swapRouter[]","name":"swaps","type":"tuple[]"}],"internalType":"struct ISwapPlusv1.swapLine[]","name":"lines","type":"tuple[]"}],"internalType":"struct ISwapPlusv1.swapBlock[]","name":"path","type":"tuple[]"}],"internalType":"struct LiquidXv2Zap.swapPath","name":"path","type":"tuple"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint256[3]","name":"amount","type":"uint256[3]"},{"internalType":"uint256","name":"basketId","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operatorSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"operators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"mode","type":"bool"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operatorSetter","type":"address"}],"name":"setOperatorSetter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewarder","type":"address"}],"name":"setRewarder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setRouterAndFactory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_swapPlus","type":"address"}],"name":"setSwapPlus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapPlus","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"basketId","type":"uint256"},{"internalType":"address","name":"tokenM","type":"address"},{"components":[{"components":[{"components":[{"components":[{"internalType":"string","name":"platform","type":"string"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"uint256","name":"meta","type":"uint256"},{"internalType":"uint256","name":"percent","type":"uint256"}],"internalType":"struct ISwapPlusv1.swapRouter[]","name":"swaps","type":"tuple[]"}],"internalType":"struct ISwapPlusv1.swapLine[]","name":"lines","type":"tuple[]"}],"internalType":"struct ISwapPlusv1.swapBlock[]","name":"path","type":"tuple[]"}],"internalType":"struct LiquidXv2Zap.swapPath","name":"wpath","type":"tuple"},{"internalType":"uint256[3]","name":"amountMin","type":"uint256[3]"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wrappedETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162002b8638038062002b86833981016040819052620000349162000134565b600080546001600160a01b0319166001600160a01b0386169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200008e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b4919062000191565b600180546001600160a01b03199081166001600160a01b03938416179091556002805482169583169590951790945560038054851692821692909217909155600480548416929091169190911790556006805433921691909117905550620001b6565b80516001600160a01b03811681146200012f57600080fd5b919050565b600080600080608085870312156200014b57600080fd5b620001568562000117565b9350620001666020860162000117565b9250620001766040860162000117565b9150620001866060860162000117565b905092959194509250565b600060208284031215620001a457600080fd5b620001af8262000117565b9392505050565b6129c080620001c66000396000f3fe6080604052600436106100f75760003560e01c8063a49cb2a61161008a578063dcc3e06e11610059578063dcc3e06e146102c3578063e93119d9146102e3578063f44a366714610321578063f887ea401461034157600080fd5b8063a49cb2a614610243578063c45a015514610263578063c9b435bd14610283578063d34f646f146102a357600080fd5b80633a6462e4116100c65780633a6462e4146101c257806347a12485146101e2578063558a72971461020357806363f324661461022357600080fd5b806301e336671461010357806302c7ed451461012557806313e7c9d8146101455780631bcbcb811461018a57600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5061012361011e366004612031565b610361565b005b34801561013157600080fd5b50610123610140366004612072565b610495565b34801561015157600080fd5b50610175610160366004612072565b60056020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561019657600080fd5b506006546101aa906001600160a01b031681565b6040516001600160a01b039091168152602001610181565b3480156101ce57600080fd5b506101236101dd366004612072565b6104e1565b6101f56101f03660046120a8565b61052d565b604051908152602001610181565b34801561020f57600080fd5b5061012361021e366004612173565b610b24565b34801561022f57600080fd5b506002546101aa906001600160a01b031681565b34801561024f57600080fd5b506101f561025e3660046121f3565b610b79565b34801561026f57600080fd5b506001546101aa906001600160a01b031681565b34801561028f57600080fd5b506003546101aa906001600160a01b031681565b3480156102af57600080fd5b506101236102be366004612072565b61152c565b3480156102cf57600080fd5b506004546101aa906001600160a01b031681565b3480156102ef57600080fd5b506101f56102fe366004612031565b600760209081526000938452604080852082529284528284209052825290205481565b34801561032d57600080fd5b5061012361033c366004612072565b611578565b34801561034d57600080fd5b506000546101aa906001600160a01b031681565b3360009081526005602052604090205460ff166103c55760405162461bcd60e51b815260206004820152601760248201527f4c69717569645876325a61703a20216f70657261746f7200000000000000000060448201526064015b60405180910390fd5b6001600160a01b03831661047c576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610420576040519150601f19603f3d011682016040523d82523d6000602084013e610425565b606091505b50509050806104765760405162461bcd60e51b815260206004820152601d60248201527f4c69717569645876325a61703a204661696c656420776974686472617700000060448201526064016103bc565b50505050565b6104906001600160a01b0384168383611642565b505050565b6006546001600160a01b031633146104bf5760405162461bcd60e51b81526004016103bc9061230c565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b0316331461050b5760405162461bcd60e51b81526004016103bc9061230c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60015460405163e6a4390560e01b815260009182916001600160a01b039091169063e6a43905906105649089908990600401612343565b602060405180830381865afa158015610581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a5919061235d565b90506001600160a01b0381166105f55760405162461bcd60e51b81526020600482015260156024820152742634b8bab4b22c3b192d30b81d103737903830b4b960591b60448201526064016103bc565b6105fd611fcd565b346060820152896001600160a01b03811615610717576040516370a0823160e01b81523060048201526001600160a01b038c16906370a0823190602401602060405180830381865afa158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b9190612390565b60608301526106966001600160a01b038c168d3089356116a5565b60608201516040516370a0823160e01b81523060048201526001600160a01b038d16906370a0823190602401602060405180830381865afa1580156106df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107039190612390565b61070d91906123bf565b606083015261077a565b50600380546001600160a01b031690819063d0e30db090849060200201516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561076057600080fd5b505af1158015610774573d6000803e3d6000fd5b50505050505b60006107868a806123d2565b90501115610841576002546107ae9082906001600160a01b03168460035b60200201516116dd565b6002546001600160a01b031663c42ce32a8284600360200201518d306107d48f806123d2565b6040518763ffffffff1660e01b81526004016107f5969594939291906124b4565b60408051808303816000875af1158015610813573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083791906126cf565b6060840152508990505b610854888883856003602002015161178a565b60a08401819052608084018290526000546040805162e8e33760e81b81526001600160a01b038d811660048301528c811660248301526044820195909552606481019390935260208a0135608484015289013560a48301523060c48301524260e4830152919091169063e8e3370090610104016060604051808303816000875af11580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a91906126f3565b604085015260208401528083526080830151610949918e918b918b9161093091906123bf565b602087015160a088015161094491906123bf565b611aeb565b8460000361097157604082015161096c906001600160a01b038516908e90611642565b610984565b6109848c84878560026020020151611b26565b6004546001600160a01b031615801590610a2157506000600460009054906101000a90046001600160a01b03166001600160a01b0316636b0916958e866040518363ffffffff1660e01b81526004016109de929190612343565b602060405180830381865afa1580156109fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1f9190612390565b115b15610a9c57600460009054906101000a90046001600160a01b03166001600160a01b03166321c0b3428d856040518363ffffffff1660e01b8152600401610a69929190612343565b600060405180830381600087803b158015610a8357600080fd5b505af1158015610a97573d6000803e3d6000fd5b505050505b7f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d598c8989888660026020020151604051610b099594939291906001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b60405180910390a150604001519a9950505050505050505050565b6006546001600160a01b03163314610b4e5760405162461bcd60e51b81526004016103bc9061230c565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b60015460405163e6a4390560e01b815260009182916001600160a01b039091169063e6a4390590610bb0908d908d90600401612343565b602060405180830381865afa158015610bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf1919061235d565b90506001600160a01b038116610c415760405162461bcd60e51b81526020600482015260156024820152742634b8bab4b22c3b192d30b81d103737903830b4b960591b60448201526064016103bc565b85600003610c6357610c5e6001600160a01b0382168c308b6116a5565b610d80565b6001600160a01b038b16331480610c8957503360009081526005602052604090205460ff165b610cd55760405162461bcd60e51b815260206004820152601760248201527f4c69717569645876325a61703a206e6f2061636365737300000000000000000060448201526064016103bc565b6001600160a01b03808c166000908152600760209081526040808320938516835292815282822089835290522054881115610d3b576001600160a01b03808c16600090815260076020908152604080832093851683529281528282208983529052205497505b6001600160a01b03808c1660009081526007602090815260408083209385168352928152828220898352905290812080548a9290610d7a9084906123bf565b90915550505b87600003610d9257600091505061151f565b600054610daa9082906001600160a01b03168a6116dd565b610db2611feb565b60005484516020860151604051635d5155ef60e11b81526001600160a01b038f811660048301528e81166024830152604482018e9052606482019390935260848101919091523060a48201524260c482015291169063baa2abde9060e40160408051808303816000875af1158015610e2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5291906126cf565b60208301528152876001600160a01b038116610e7657506003546001600160a01b03165b600060408301526001600160a01b038b811690821603610fff576020820151604083015260008054610eb5918e916001600160a01b03169085906107a4565b6040805160028082526060820183526000926020830190803683370190505090508c81600081518110610eea57610eea61237a565b60200260200101906001600160a01b031690816001600160a01b0316815250508b81600181518110610f1e57610f1e61237a565b6001600160a01b0392831660209182029290920101526000805485516040808b015190516338ed173960e01b8152939492909216926338ed173992610f6c9291879030904290600401612765565b6000604051808303816000875af1158015610f8b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fb391908101906127a1565b905080600181518110610fc857610fc861237a565b602002602001015184600260038110610fe357610fe361237a565b60200201818151610ff49190612847565b90525061116c915050565b81516040830152600054611020908c906001600160a01b03168460016107a4565b6040805160028082526060820183526000926020830190803683370190505090508b816000815181106110555761105561237a565b60200260200101906001600160a01b031690816001600160a01b0316815250508c816001815181106110895761108961237a565b6001600160a01b039283166020918202929092010152600080549091166338ed1739856001602002015189600260200201518530426040518663ffffffff1660e01b81526004016110de959493929190612765565b6000604051808303816000875af11580156110fd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261112591908101906127a1565b90508060018151811061113a5761113a61237a565b6020026020010151846002600381106111555761115561237a565b602002018181516111669190612847565b90525050505b600061117887806123d2565b9050111561124b576002805461119b918b916001600160a01b03169085906107a4565b60025460408301516001600160a01b039182169163c42ce32a918c918b16156111c4578a6111d1565b6003546001600160a01b03165b306111dc8c806123d2565b6040518763ffffffff1660e01b81526004016111fd969594939291906124b4565b60408051808303816000875af115801561121b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123f91906126cf565b60408401525095975087955b6001600160a01b0389161561127a576040820151611275906001600160a01b038b16908f90611642565b611390565b6003546001600160a01b0316632e1a7d4d83600260200201516040518263ffffffff1660e01b81526004016112b191815260200190565b600060405180830381600087803b1580156112cb57600080fd5b505af11580156112df573d6000803e3d6000fd5b506000925050506001600160a01b038e16836002602002015160405160006040518083038185875af1925050503d8060008114611338576040519150601f19603f3d011682016040523d82523d6000602084013e61133d565b606091505b505090508061138e5760405162461bcd60e51b815260206004820152601d60248201527f4c69717569645876325a61703a204661696c656420776974686472617700000060448201526064016103bc565b505b6004546001600160a01b03161580159061142d57506000600460009054906101000a90046001600160a01b03166001600160a01b0316636b0916958f866040518363ffffffff1660e01b81526004016113ea929190612343565b602060405180830381865afa158015611407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142b9190612390565b115b156114a857600460009054906101000a90046001600160a01b03166001600160a01b03166321c0b3428e856040518363ffffffff1660e01b8152600401611475929190612343565b600060405180830381600087803b15801561148f57600080fd5b505af11580156114a3573d6000803e3d6000fd5b505050505b7ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8d8d8d8b8e60405161150e9594939291906001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b60405180910390a150604001519150505b9998505050505050505050565b6006546001600160a01b031633146115565760405162461bcd60e51b81526004016103bc9061230c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146115a25760405162461bcd60e51b81526004016103bc9061230c565b600080546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156115fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161f919061235d565b600180546001600160a01b0319166001600160a01b039290921691909117905550565b6040516001600160a01b03831660248201526044810182905261049090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611b70565b6040516001600160a01b03808516602483015283166044820152606481018290526104769085906323b872dd60e01b9060840161166e565b604051636eb1769f60e11b81526000906001600160a01b0385169063dd62ed3e9061170e9030908790600401612343565b602060405180830381865afa15801561172b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174f9190612390565b905081811015610476578015611774576117746001600160a01b038516846000611c42565b6104766001600160a01b03851684600019611c42565b60015460405163e6a4390560e01b8152600091829182916001600160a01b03169063e6a43905906117c1908a908a90600401612343565b602060405180830381865afa1580156117de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611802919061235d565b9050600087816001600160a01b03808316908916036118965760019250889150836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118849190612871565b50506001600160701b03169050611906565b836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156118d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f89190612871565b506001600160701b03169150505b60005461191e9089906001600160a01b0316896116dd565b600061192a8289611d56565b604080516002808252606082018352929350600092909160208301908036833701905050905089816000815181106119645761196461237a565b60200260200101906001600160a01b031690816001600160a01b03168152505083816001815181106119985761199861237a565b6001600160a01b039283166020918202929092010152600080546040516338ed173960e01b8152919216906338ed1739906119df9086908590879030904290600401612765565b6000604051808303816000875af11580156119fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a2691908101906127a1565b905080600081518110611a3b57611a3b61237a565b60200260200101518a611a4e91906123bf565b9950611a888560008054906101000a90046001600160a01b031683600181518110611a7b57611a7b61237a565b60200260200101516116dd565b8515611aba578981600181518110611aa257611aa261237a565b60200260200101519850985050505050505050611ae2565b80600181518110611acd57611acd61237a565b60200260200101518a98509850505050505050505b94509492505050565b8115611b0557611b056001600160a01b0385168684611642565b8015611b1f57611b1f6001600160a01b0384168683611642565b5050505050565b6001600160a01b038085166000908152600760209081526040808320938716835292815282822085835290529081208054839290611b65908490612847565b909155505050505050565b6000611bc5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611de49092919063ffffffff16565b8051909150156104905780806020019051810190611be391906128c1565b6104905760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103bc565b801580611cbb5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90611c789030908690600401612343565b602060405180830381865afa158015611c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb99190612390565b155b611d265760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016103bc565b6040516001600160a01b03831660248201526044810182905261049090849063095ea7b360e01b9060640161166e565b600080611d6384806128de565b611d6f906107cd6128de565b611d7b906107cd6128de565b9050600083611d8c86610f946128de565b611d9691906128de565b611da2906103e86128de565b90506107ca611db3866107cd6128de565b611dc5611dc08486612847565b611dfb565b611dcf91906123bf565b611dd991906128f5565b925050505b92915050565b6060611df38484600085611e54565b949350505050565b6000806002611e0b846001612847565b611e1591906128f5565b90508291505b81811015611e4e57905080600281611e3381866128f5565b611e3d9190612847565b611e4791906128f5565b9050611e1b565b50919050565b606082471015611eb55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016103bc565b600080866001600160a01b03168587604051611ed1919061293b565b60006040518083038185875af1925050503d8060008114611f0e576040519150601f19603f3d011682016040523d82523d6000602084013e611f13565b606091505b5091509150611f2487838387611f2f565b979650505050505050565b60608315611f9e578251600003611f97576001600160a01b0385163b611f975760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103bc565b5081611df3565b611df38383815115611fb35781518083602001fd5b8060405162461bcd60e51b81526004016103bc9190612957565b6040518060c001604052806006906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461201e57600080fd5b50565b803561202c81612009565b919050565b60008060006060848603121561204657600080fd5b833561205181612009565b9250602084013561206181612009565b929592945050506040919091013590565b60006020828403121561208457600080fd5b813561208f81612009565b9392505050565b600060208284031215611e4e57600080fd5b600080600080600080600080610140898b0312156120c557600080fd5b88356120d081612009565b975060208901356120e081612009565b965060408901356120f081612009565b9550606089013567ffffffffffffffff81111561210c57600080fd5b6121188b828c01612096565b955050608089013561212981612009565b935060a089013561213981612009565b925061012089018a81111561214d57600080fd5b60c08a01925080359150509295985092959890939650565b801515811461201e57600080fd5b6000806040838503121561218657600080fd5b823561219181612009565b915060208301356121a181612165565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156121eb576121eb6121ac565b604052919050565b6000806000806000806000806000610160808b8d03121561221357600080fd5b8a3561221e81612009565b995060208b013561222e81612009565b985060408b013561223e81612009565b975060608b0135965060808b013561225581612009565b955060a08b0135945060c08b013561226c81612009565b935060e08b013567ffffffffffffffff8082111561228957600080fd5b6122958e838f01612096565b94508d61011f8e01126122a757600080fd5b60405191506060820182811082821117156122c4576122c46121ac565b60405250908b0190808d8311156122da57600080fd5b6101008d015b838110156122f85780358252602091820191016122e0565b505080925050509295985092959850929598565b60208082526017908201527f4c69717569645876325a61703a20464f5242494444454e000000000000000000604082015260600190565b6001600160a01b0392831681529116602082015260400190565b60006020828403121561236f57600080fd5b815161208f81612009565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156123a257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115611dde57611dde6123a9565b6000808335601e198436030181126123e957600080fd5b83018035915067ffffffffffffffff82111561240457600080fd5b6020019150600581901b360382131561241c57600080fd5b9250929050565b6000808335601e1984360301811261243a57600080fd5b830160208101925035905067ffffffffffffffff81111561245a57600080fd5b8060051b360382131561241c57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235601e198336030181126124ab57600080fd5b90910192915050565b6001600160a01b0387811682526020820187905285811660408301528416606082015260a0608082018190528101829052600060c080830190600585901b84010185835b868110156126bf5785830360bf190184526125138289612495565b61251d8182612423565b9150602085526020850182815260408601905060408360051b8701018260005b858110156126a457603f19808a85030185526125598387612495565b6125638182612423565b9150602086526020860182815260408701905060408360051b8801018260005b8581101561268357868a840301845260be19853603018235126125a557600080fd5b8135850136819003601e19019035126125bd57600080fd5b67ffffffffffffffff823586018035013511156125d957600080fd5b8135850180350180353603602090910113156125f457600080fd5b60c08084526126119084018335870180350180359060200161246c565b61262060208785350101612021565b6001600160a01b0316602085015261263d83358701604001612021565b6001600160a01b03811660408601525082358601606081810135908601526080808201359086015260a09081013594019390935260209384019390910190600101612583565b5050809750505050505060208201915060208401935060018101905061253d565b505060209788019790965094909401935050506001016124f8565b50909a9950505050505050505050565b600080604083850312156126e257600080fd5b505080516020909101519092909150565b60008060006060848603121561270857600080fd5b8351925060208401519150604084015190509250925092565b600081518084526020808501945080840160005b8381101561275a5781516001600160a01b031687529582019590820190600101612735565b509495945050505050565b85815284602082015260a06040820152600061278460a0830186612721565b6001600160a01b0394909416606083015250608001529392505050565b600060208083850312156127b457600080fd5b825167ffffffffffffffff808211156127cc57600080fd5b818501915085601f8301126127e057600080fd5b8151818111156127f2576127f26121ac565b8060051b91506128038483016121c2565b818152918301840191848101908884111561281d57600080fd5b938501935b8385101561283b57845182529385019390850190612822565b98975050505050505050565b80820180821115611dde57611dde6123a9565b80516001600160701b038116811461202c57600080fd5b60008060006060848603121561288657600080fd5b61288f8461285a565b925061289d6020850161285a565b9150604084015163ffffffff811681146128b657600080fd5b809150509250925092565b6000602082840312156128d357600080fd5b815161208f81612165565b8082028115828204841417611dde57611dde6123a9565b60008261291257634e487b7160e01b600052601260045260246000fd5b500490565b60005b8381101561293257818101518382015260200161291a565b50506000910152565b6000825161294d818460208701612917565b9190910192915050565b6020815260008251806020840152612976816040850160208701612917565b601f01601f1916919091016040019291505056fea26469706673582212209e84bb3666985d4befc940d55d423322503912a03d4a22f0327b2afe7c84bd4064736f6c63430008130033000000000000000000000000eba22665c355457fa4e5a07b3a7559f22fd7492300000000000000000000000091f6aa43c190e317e4d02698127aa7a629cf4b23000000000000000000000000802cd52cef721d8935c27062b534fa7e65b04b4f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Deployed Bytecode
0x6080604052600436106100f75760003560e01c8063a49cb2a61161008a578063dcc3e06e11610059578063dcc3e06e146102c3578063e93119d9146102e3578063f44a366714610321578063f887ea401461034157600080fd5b8063a49cb2a614610243578063c45a015514610263578063c9b435bd14610283578063d34f646f146102a357600080fd5b80633a6462e4116100c65780633a6462e4146101c257806347a12485146101e2578063558a72971461020357806363f324661461022357600080fd5b806301e336671461010357806302c7ed451461012557806313e7c9d8146101455780631bcbcb811461018a57600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5061012361011e366004612031565b610361565b005b34801561013157600080fd5b50610123610140366004612072565b610495565b34801561015157600080fd5b50610175610160366004612072565b60056020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561019657600080fd5b506006546101aa906001600160a01b031681565b6040516001600160a01b039091168152602001610181565b3480156101ce57600080fd5b506101236101dd366004612072565b6104e1565b6101f56101f03660046120a8565b61052d565b604051908152602001610181565b34801561020f57600080fd5b5061012361021e366004612173565b610b24565b34801561022f57600080fd5b506002546101aa906001600160a01b031681565b34801561024f57600080fd5b506101f561025e3660046121f3565b610b79565b34801561026f57600080fd5b506001546101aa906001600160a01b031681565b34801561028f57600080fd5b506003546101aa906001600160a01b031681565b3480156102af57600080fd5b506101236102be366004612072565b61152c565b3480156102cf57600080fd5b506004546101aa906001600160a01b031681565b3480156102ef57600080fd5b506101f56102fe366004612031565b600760209081526000938452604080852082529284528284209052825290205481565b34801561032d57600080fd5b5061012361033c366004612072565b611578565b34801561034d57600080fd5b506000546101aa906001600160a01b031681565b3360009081526005602052604090205460ff166103c55760405162461bcd60e51b815260206004820152601760248201527f4c69717569645876325a61703a20216f70657261746f7200000000000000000060448201526064015b60405180910390fd5b6001600160a01b03831661047c576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610420576040519150601f19603f3d011682016040523d82523d6000602084013e610425565b606091505b50509050806104765760405162461bcd60e51b815260206004820152601d60248201527f4c69717569645876325a61703a204661696c656420776974686472617700000060448201526064016103bc565b50505050565b6104906001600160a01b0384168383611642565b505050565b6006546001600160a01b031633146104bf5760405162461bcd60e51b81526004016103bc9061230c565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b0316331461050b5760405162461bcd60e51b81526004016103bc9061230c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60015460405163e6a4390560e01b815260009182916001600160a01b039091169063e6a43905906105649089908990600401612343565b602060405180830381865afa158015610581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a5919061235d565b90506001600160a01b0381166105f55760405162461bcd60e51b81526020600482015260156024820152742634b8bab4b22c3b192d30b81d103737903830b4b960591b60448201526064016103bc565b6105fd611fcd565b346060820152896001600160a01b03811615610717576040516370a0823160e01b81523060048201526001600160a01b038c16906370a0823190602401602060405180830381865afa158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b9190612390565b60608301526106966001600160a01b038c168d3089356116a5565b60608201516040516370a0823160e01b81523060048201526001600160a01b038d16906370a0823190602401602060405180830381865afa1580156106df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107039190612390565b61070d91906123bf565b606083015261077a565b50600380546001600160a01b031690819063d0e30db090849060200201516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561076057600080fd5b505af1158015610774573d6000803e3d6000fd5b50505050505b60006107868a806123d2565b90501115610841576002546107ae9082906001600160a01b03168460035b60200201516116dd565b6002546001600160a01b031663c42ce32a8284600360200201518d306107d48f806123d2565b6040518763ffffffff1660e01b81526004016107f5969594939291906124b4565b60408051808303816000875af1158015610813573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083791906126cf565b6060840152508990505b610854888883856003602002015161178a565b60a08401819052608084018290526000546040805162e8e33760e81b81526001600160a01b038d811660048301528c811660248301526044820195909552606481019390935260208a0135608484015289013560a48301523060c48301524260e4830152919091169063e8e3370090610104016060604051808303816000875af11580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a91906126f3565b604085015260208401528083526080830151610949918e918b918b9161093091906123bf565b602087015160a088015161094491906123bf565b611aeb565b8460000361097157604082015161096c906001600160a01b038516908e90611642565b610984565b6109848c84878560026020020151611b26565b6004546001600160a01b031615801590610a2157506000600460009054906101000a90046001600160a01b03166001600160a01b0316636b0916958e866040518363ffffffff1660e01b81526004016109de929190612343565b602060405180830381865afa1580156109fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1f9190612390565b115b15610a9c57600460009054906101000a90046001600160a01b03166001600160a01b03166321c0b3428d856040518363ffffffff1660e01b8152600401610a69929190612343565b600060405180830381600087803b158015610a8357600080fd5b505af1158015610a97573d6000803e3d6000fd5b505050505b7f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d598c8989888660026020020151604051610b099594939291906001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b60405180910390a150604001519a9950505050505050505050565b6006546001600160a01b03163314610b4e5760405162461bcd60e51b81526004016103bc9061230c565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b60015460405163e6a4390560e01b815260009182916001600160a01b039091169063e6a4390590610bb0908d908d90600401612343565b602060405180830381865afa158015610bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf1919061235d565b90506001600160a01b038116610c415760405162461bcd60e51b81526020600482015260156024820152742634b8bab4b22c3b192d30b81d103737903830b4b960591b60448201526064016103bc565b85600003610c6357610c5e6001600160a01b0382168c308b6116a5565b610d80565b6001600160a01b038b16331480610c8957503360009081526005602052604090205460ff165b610cd55760405162461bcd60e51b815260206004820152601760248201527f4c69717569645876325a61703a206e6f2061636365737300000000000000000060448201526064016103bc565b6001600160a01b03808c166000908152600760209081526040808320938516835292815282822089835290522054881115610d3b576001600160a01b03808c16600090815260076020908152604080832093851683529281528282208983529052205497505b6001600160a01b03808c1660009081526007602090815260408083209385168352928152828220898352905290812080548a9290610d7a9084906123bf565b90915550505b87600003610d9257600091505061151f565b600054610daa9082906001600160a01b03168a6116dd565b610db2611feb565b60005484516020860151604051635d5155ef60e11b81526001600160a01b038f811660048301528e81166024830152604482018e9052606482019390935260848101919091523060a48201524260c482015291169063baa2abde9060e40160408051808303816000875af1158015610e2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5291906126cf565b60208301528152876001600160a01b038116610e7657506003546001600160a01b03165b600060408301526001600160a01b038b811690821603610fff576020820151604083015260008054610eb5918e916001600160a01b03169085906107a4565b6040805160028082526060820183526000926020830190803683370190505090508c81600081518110610eea57610eea61237a565b60200260200101906001600160a01b031690816001600160a01b0316815250508b81600181518110610f1e57610f1e61237a565b6001600160a01b0392831660209182029290920101526000805485516040808b015190516338ed173960e01b8152939492909216926338ed173992610f6c9291879030904290600401612765565b6000604051808303816000875af1158015610f8b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fb391908101906127a1565b905080600181518110610fc857610fc861237a565b602002602001015184600260038110610fe357610fe361237a565b60200201818151610ff49190612847565b90525061116c915050565b81516040830152600054611020908c906001600160a01b03168460016107a4565b6040805160028082526060820183526000926020830190803683370190505090508b816000815181106110555761105561237a565b60200260200101906001600160a01b031690816001600160a01b0316815250508c816001815181106110895761108961237a565b6001600160a01b039283166020918202929092010152600080549091166338ed1739856001602002015189600260200201518530426040518663ffffffff1660e01b81526004016110de959493929190612765565b6000604051808303816000875af11580156110fd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261112591908101906127a1565b90508060018151811061113a5761113a61237a565b6020026020010151846002600381106111555761115561237a565b602002018181516111669190612847565b90525050505b600061117887806123d2565b9050111561124b576002805461119b918b916001600160a01b03169085906107a4565b60025460408301516001600160a01b039182169163c42ce32a918c918b16156111c4578a6111d1565b6003546001600160a01b03165b306111dc8c806123d2565b6040518763ffffffff1660e01b81526004016111fd969594939291906124b4565b60408051808303816000875af115801561121b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123f91906126cf565b60408401525095975087955b6001600160a01b0389161561127a576040820151611275906001600160a01b038b16908f90611642565b611390565b6003546001600160a01b0316632e1a7d4d83600260200201516040518263ffffffff1660e01b81526004016112b191815260200190565b600060405180830381600087803b1580156112cb57600080fd5b505af11580156112df573d6000803e3d6000fd5b506000925050506001600160a01b038e16836002602002015160405160006040518083038185875af1925050503d8060008114611338576040519150601f19603f3d011682016040523d82523d6000602084013e61133d565b606091505b505090508061138e5760405162461bcd60e51b815260206004820152601d60248201527f4c69717569645876325a61703a204661696c656420776974686472617700000060448201526064016103bc565b505b6004546001600160a01b03161580159061142d57506000600460009054906101000a90046001600160a01b03166001600160a01b0316636b0916958f866040518363ffffffff1660e01b81526004016113ea929190612343565b602060405180830381865afa158015611407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142b9190612390565b115b156114a857600460009054906101000a90046001600160a01b03166001600160a01b03166321c0b3428e856040518363ffffffff1660e01b8152600401611475929190612343565b600060405180830381600087803b15801561148f57600080fd5b505af11580156114a3573d6000803e3d6000fd5b505050505b7ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8d8d8d8b8e60405161150e9594939291906001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b60405180910390a150604001519150505b9998505050505050505050565b6006546001600160a01b031633146115565760405162461bcd60e51b81526004016103bc9061230c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b031633146115a25760405162461bcd60e51b81526004016103bc9061230c565b600080546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156115fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161f919061235d565b600180546001600160a01b0319166001600160a01b039290921691909117905550565b6040516001600160a01b03831660248201526044810182905261049090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611b70565b6040516001600160a01b03808516602483015283166044820152606481018290526104769085906323b872dd60e01b9060840161166e565b604051636eb1769f60e11b81526000906001600160a01b0385169063dd62ed3e9061170e9030908790600401612343565b602060405180830381865afa15801561172b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174f9190612390565b905081811015610476578015611774576117746001600160a01b038516846000611c42565b6104766001600160a01b03851684600019611c42565b60015460405163e6a4390560e01b8152600091829182916001600160a01b03169063e6a43905906117c1908a908a90600401612343565b602060405180830381865afa1580156117de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611802919061235d565b9050600087816001600160a01b03808316908916036118965760019250889150836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118849190612871565b50506001600160701b03169050611906565b836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156118d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f89190612871565b506001600160701b03169150505b60005461191e9089906001600160a01b0316896116dd565b600061192a8289611d56565b604080516002808252606082018352929350600092909160208301908036833701905050905089816000815181106119645761196461237a565b60200260200101906001600160a01b031690816001600160a01b03168152505083816001815181106119985761199861237a565b6001600160a01b039283166020918202929092010152600080546040516338ed173960e01b8152919216906338ed1739906119df9086908590879030904290600401612765565b6000604051808303816000875af11580156119fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a2691908101906127a1565b905080600081518110611a3b57611a3b61237a565b60200260200101518a611a4e91906123bf565b9950611a888560008054906101000a90046001600160a01b031683600181518110611a7b57611a7b61237a565b60200260200101516116dd565b8515611aba578981600181518110611aa257611aa261237a565b60200260200101519850985050505050505050611ae2565b80600181518110611acd57611acd61237a565b60200260200101518a98509850505050505050505b94509492505050565b8115611b0557611b056001600160a01b0385168684611642565b8015611b1f57611b1f6001600160a01b0384168683611642565b5050505050565b6001600160a01b038085166000908152600760209081526040808320938716835292815282822085835290529081208054839290611b65908490612847565b909155505050505050565b6000611bc5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611de49092919063ffffffff16565b8051909150156104905780806020019051810190611be391906128c1565b6104905760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103bc565b801580611cbb5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90611c789030908690600401612343565b602060405180830381865afa158015611c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb99190612390565b155b611d265760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016103bc565b6040516001600160a01b03831660248201526044810182905261049090849063095ea7b360e01b9060640161166e565b600080611d6384806128de565b611d6f906107cd6128de565b611d7b906107cd6128de565b9050600083611d8c86610f946128de565b611d9691906128de565b611da2906103e86128de565b90506107ca611db3866107cd6128de565b611dc5611dc08486612847565b611dfb565b611dcf91906123bf565b611dd991906128f5565b925050505b92915050565b6060611df38484600085611e54565b949350505050565b6000806002611e0b846001612847565b611e1591906128f5565b90508291505b81811015611e4e57905080600281611e3381866128f5565b611e3d9190612847565b611e4791906128f5565b9050611e1b565b50919050565b606082471015611eb55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016103bc565b600080866001600160a01b03168587604051611ed1919061293b565b60006040518083038185875af1925050503d8060008114611f0e576040519150601f19603f3d011682016040523d82523d6000602084013e611f13565b606091505b5091509150611f2487838387611f2f565b979650505050505050565b60608315611f9e578251600003611f97576001600160a01b0385163b611f975760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103bc565b5081611df3565b611df38383815115611fb35781518083602001fd5b8060405162461bcd60e51b81526004016103bc9190612957565b6040518060c001604052806006906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461201e57600080fd5b50565b803561202c81612009565b919050565b60008060006060848603121561204657600080fd5b833561205181612009565b9250602084013561206181612009565b929592945050506040919091013590565b60006020828403121561208457600080fd5b813561208f81612009565b9392505050565b600060208284031215611e4e57600080fd5b600080600080600080600080610140898b0312156120c557600080fd5b88356120d081612009565b975060208901356120e081612009565b965060408901356120f081612009565b9550606089013567ffffffffffffffff81111561210c57600080fd5b6121188b828c01612096565b955050608089013561212981612009565b935060a089013561213981612009565b925061012089018a81111561214d57600080fd5b60c08a01925080359150509295985092959890939650565b801515811461201e57600080fd5b6000806040838503121561218657600080fd5b823561219181612009565b915060208301356121a181612165565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156121eb576121eb6121ac565b604052919050565b6000806000806000806000806000610160808b8d03121561221357600080fd5b8a3561221e81612009565b995060208b013561222e81612009565b985060408b013561223e81612009565b975060608b0135965060808b013561225581612009565b955060a08b0135945060c08b013561226c81612009565b935060e08b013567ffffffffffffffff8082111561228957600080fd5b6122958e838f01612096565b94508d61011f8e01126122a757600080fd5b60405191506060820182811082821117156122c4576122c46121ac565b60405250908b0190808d8311156122da57600080fd5b6101008d015b838110156122f85780358252602091820191016122e0565b505080925050509295985092959850929598565b60208082526017908201527f4c69717569645876325a61703a20464f5242494444454e000000000000000000604082015260600190565b6001600160a01b0392831681529116602082015260400190565b60006020828403121561236f57600080fd5b815161208f81612009565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156123a257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115611dde57611dde6123a9565b6000808335601e198436030181126123e957600080fd5b83018035915067ffffffffffffffff82111561240457600080fd5b6020019150600581901b360382131561241c57600080fd5b9250929050565b6000808335601e1984360301811261243a57600080fd5b830160208101925035905067ffffffffffffffff81111561245a57600080fd5b8060051b360382131561241c57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235601e198336030181126124ab57600080fd5b90910192915050565b6001600160a01b0387811682526020820187905285811660408301528416606082015260a0608082018190528101829052600060c080830190600585901b84010185835b868110156126bf5785830360bf190184526125138289612495565b61251d8182612423565b9150602085526020850182815260408601905060408360051b8701018260005b858110156126a457603f19808a85030185526125598387612495565b6125638182612423565b9150602086526020860182815260408701905060408360051b8801018260005b8581101561268357868a840301845260be19853603018235126125a557600080fd5b8135850136819003601e19019035126125bd57600080fd5b67ffffffffffffffff823586018035013511156125d957600080fd5b8135850180350180353603602090910113156125f457600080fd5b60c08084526126119084018335870180350180359060200161246c565b61262060208785350101612021565b6001600160a01b0316602085015261263d83358701604001612021565b6001600160a01b03811660408601525082358601606081810135908601526080808201359086015260a09081013594019390935260209384019390910190600101612583565b5050809750505050505060208201915060208401935060018101905061253d565b505060209788019790965094909401935050506001016124f8565b50909a9950505050505050505050565b600080604083850312156126e257600080fd5b505080516020909101519092909150565b60008060006060848603121561270857600080fd5b8351925060208401519150604084015190509250925092565b600081518084526020808501945080840160005b8381101561275a5781516001600160a01b031687529582019590820190600101612735565b509495945050505050565b85815284602082015260a06040820152600061278460a0830186612721565b6001600160a01b0394909416606083015250608001529392505050565b600060208083850312156127b457600080fd5b825167ffffffffffffffff808211156127cc57600080fd5b818501915085601f8301126127e057600080fd5b8151818111156127f2576127f26121ac565b8060051b91506128038483016121c2565b818152918301840191848101908884111561281d57600080fd5b938501935b8385101561283b57845182529385019390850190612822565b98975050505050505050565b80820180821115611dde57611dde6123a9565b80516001600160701b038116811461202c57600080fd5b60008060006060848603121561288657600080fd5b61288f8461285a565b925061289d6020850161285a565b9150604084015163ffffffff811681146128b657600080fd5b809150509250925092565b6000602082840312156128d357600080fd5b815161208f81612165565b8082028115828204841417611dde57611dde6123a9565b60008261291257634e487b7160e01b600052601260045260246000fd5b500490565b60005b8381101561293257818101518382015260200161291a565b50506000910152565b6000825161294d818460208701612917565b9190910192915050565b6020815260008251806020840152612976816040850160208701612917565b601f01601f1916919091016040019291505056fea26469706673582212209e84bb3666985d4befc940d55d423322503912a03d4a22f0327b2afe7c84bd4064736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000eba22665c355457fa4e5a07b3a7559f22fd7492300000000000000000000000091f6aa43c190e317e4d02698127aa7a629cf4b23000000000000000000000000802cd52cef721d8935c27062b534fa7e65b04b4f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
-----Decoded View---------------
Arg [0] : _router (address): 0xeba22665C355457FA4e5A07B3A7559F22fd74923
Arg [1] : _swapPlus (address): 0x91f6AA43c190E317E4D02698127aA7A629CF4b23
Arg [2] : _rewarder (address): 0x802CD52CEf721d8935c27062B534fA7e65b04b4F
Arg [3] : _wrappedETH (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000eba22665c355457fa4e5a07b3a7559f22fd74923
Arg [1] : 00000000000000000000000091f6aa43c190e317e4d02698127aa7a629cf4b23
Arg [2] : 000000000000000000000000802cd52cef721d8935c27062b534fa7e65b04b4f
Arg [3] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
OP | 100.00% | $2,426.1 | 0.0001144 | $0.277553 |
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.