More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 79 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Swap | 19470746 | 252 days ago | IN | 0 ETH | 0.00851376 | ||||
Swap | 19286961 | 278 days ago | IN | 0 ETH | 0.00748226 | ||||
Swap | 19270033 | 280 days ago | IN | 0 ETH | 0.00750962 | ||||
Swap | 19258932 | 282 days ago | IN | 0 ETH | 0.00386875 | ||||
Swap | 19209669 | 289 days ago | IN | 0 ETH | 0.00366949 | ||||
Swap | 19187103 | 292 days ago | IN | 0.33016 ETH | 0.00964112 | ||||
Swap | 19180593 | 293 days ago | IN | 0.2048 ETH | 0.00502818 | ||||
Swap | 19135691 | 299 days ago | IN | 0.43383 ETH | 0.00531788 | ||||
Swap | 18989255 | 320 days ago | IN | 0 ETH | 0.00485353 | ||||
Swap | 18988590 | 320 days ago | IN | 0.005 ETH | 0.00303115 | ||||
Swap | 18983147 | 321 days ago | IN | 0 ETH | 0.0052321 | ||||
Swap | 18983118 | 321 days ago | IN | 0.2147912 ETH | 0.00456186 | ||||
Swap | 18983100 | 321 days ago | IN | 0.27 ETH | 0.00539762 | ||||
Swap | 18975148 | 322 days ago | IN | 0.4081252 ETH | 0.00364668 | ||||
Swap | 18974091 | 322 days ago | IN | 0 ETH | 0.00522953 | ||||
Swap | 18974055 | 322 days ago | IN | 0 ETH | 0.00135724 | ||||
Swap | 18973127 | 322 days ago | IN | 0 ETH | 0.00501265 | ||||
Swap | 18924354 | 329 days ago | IN | 1.3 ETH | 0.00284418 | ||||
Swap | 18904302 | 332 days ago | IN | 0.6 ETH | 0.00262218 | ||||
Swap | 18904299 | 332 days ago | IN | 0 ETH | 0.00414646 | ||||
Swap | 18904294 | 332 days ago | IN | 0.4 ETH | 0.00228945 | ||||
Swap | 18904290 | 332 days ago | IN | 0 ETH | 0.00268715 | ||||
Swap | 18904272 | 332 days ago | IN | 0.05 ETH | 0.00257988 | ||||
Swap | 18904261 | 332 days ago | IN | 0.3 ETH | 0.00279819 | ||||
Swap | 18904257 | 332 days ago | IN | 0 ETH | 0.00256807 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
20225311 | 147 days ago | 0.30272665 ETH | ||||
20225311 | 147 days ago | 0.30272665 ETH | ||||
20188032 | 152 days ago | 0.00106476 ETH | ||||
20188032 | 152 days ago | 0.00106476 ETH | ||||
20188015 | 152 days ago | 0.0010744 ETH | ||||
20188015 | 152 days ago | 0.00000323 ETH | ||||
20188015 | 152 days ago | 0.00107763 ETH | ||||
20154796 | 157 days ago | 0.000997 ETH | ||||
20154796 | 157 days ago | 0.000003 ETH | ||||
20154796 | 157 days ago | 0.001 ETH | ||||
20132386 | 160 days ago | 0.000997 ETH | ||||
20132386 | 160 days ago | 0.000003 ETH | ||||
20132386 | 160 days ago | 0.001 ETH | ||||
20125661 | 161 days ago | 0.26275969 ETH | ||||
20125661 | 161 days ago | 0.26275969 ETH | ||||
20065072 | 169 days ago | 0.21369243 ETH | ||||
20065072 | 169 days ago | 0.21369243 ETH | ||||
20055363 | 170 days ago | 0.244197 ETH | ||||
20055363 | 170 days ago | 0.244197 ETH | ||||
20039485 | 173 days ago | 0.16782235 ETH | ||||
20039485 | 173 days ago | 0.16782235 ETH | ||||
20038464 | 173 days ago | 0.4985 ETH | ||||
20038464 | 173 days ago | 0.0015 ETH | ||||
20038464 | 173 days ago | 0.5 ETH | ||||
20016398 | 176 days ago | 0.20837451 ETH |
Loading...
Loading
Contract Name:
SwapPlusv1
Compiler Version
v0.8.11+commit.d7f03943
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; import "./interfaces/IWETH.sol"; import "./interfaces/ISmartRouter.sol"; import "./interfaces/ISwapRouter02.sol"; import "./interfaces/IUniswapV2.sol"; import "./utils/Ownable.sol"; import "./utils/SafeERC20.sol"; contract SwapPlusv1 is Ownable { using SafeERC20 for IERC20; 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; } address public WETH; address public treasury; uint256 public swapFee = 3000; uint256 public managerDecimal = 1000000; mapping (address => bool) public noFeeWallets; mapping (address => bool) public managers; mapping(string => address) public routers; event SwapPlus(address tokenIn, address tokenOut, uint256 amountIn, uint256 amountUsed, uint256 amountOut); constructor( address _WETH, address _treasury ) { routers["UniswapV3"] = 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45; routers["UniswapV2"] = 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45; routers["Sushiswap"] = 0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F; routers["PancakeV3"] = 0x13f4EA83D0bd40E75C8222255bc855a974568Dd4; routers["PancakeStable"] = 0x13f4EA83D0bd40E75C8222255bc855a974568Dd4; routers["PancakeV2"] = 0x13f4EA83D0bd40E75C8222255bc855a974568Dd4; WETH = _WETH; treasury = _treasury; managers[msg.sender] = true; } modifier onlyManager() { require(managers[msg.sender], "LC swap+: !manager"); _; } receive() external payable { } function swap(address tokenIn, uint256 amount, address tokenOut, address recipient, swapBlock[] calldata swBlocks) public payable returns(uint256, uint256) { if (tokenIn != address(0)) { IERC20(tokenIn).safeTransferFrom(msg.sender, address(this), amount); } uint256 usedAmount = amount; if (noFeeWallets[msg.sender] == false) { usedAmount = _cutFee(tokenIn, usedAmount); } if (tokenIn == address(0)) { IWETH(WETH).deposit{value: usedAmount}(); } uint256 blockLen = swBlocks.length; uint256 inAmount = usedAmount; uint256 outAmount = 0; for (uint256 x=0; x<blockLen; x++) { uint256 lineLen = swBlocks[x].lines.length; outAmount = 0; for (uint256 y=0; y<lineLen; y++) { outAmount += _swap(swBlocks[x].lines[y], inAmount); } inAmount = outAmount; } if (tokenOut == address(0)) { IWETH(WETH).withdraw(outAmount); (bool success, ) = payable(recipient).call{value: outAmount}(""); require(success, "LC swap+: Failed receipt"); } else { IERC20(tokenOut).safeTransfer(recipient, outAmount); } emit SwapPlus(tokenIn, tokenOut, amount, usedAmount, outAmount); return (usedAmount, outAmount); } function _swap(swapLine memory line, uint256 amount) internal returns(uint256) { uint256 swLen = line.swaps.length; uint256 inAmount = amount; uint256 outAmount = 0; for (uint256 x=0; x<swLen; x++) { _approveTokenIfNeeded(line.swaps[x].tokenIn, routers[line.swaps[x].platform], inAmount); if (_compareStrings(line.swaps[x].platform, "PancakeV3")) { ISmartRouter.ExactInputSingleParams memory pm = ISmartRouter.ExactInputSingleParams({ tokenIn: line.swaps[x].tokenIn, tokenOut: line.swaps[x].tokenOut, fee: uint24(line.swaps[x].meta), recipient: address(this), amountIn: inAmount * line.swaps[x].percent / managerDecimal, amountOutMinimum: line.swaps[x].amountOutMin, sqrtPriceLimitX96: 0 }); outAmount = ISmartRouter(routers["PancakeV3"]).exactInputSingle{value:0}(pm); } else if (_compareStrings(line.swaps[x].platform, "PancakeStable")) { address[] memory path = new address[](2); path[0] = line.swaps[x].tokenIn; path[1] = line.swaps[x].tokenOut; uint256[] memory flag = new uint256[](1); flag[0] = line.swaps[x].meta; outAmount = ISmartRouter(routers["PancakeStable"]).exactInputStableSwap{value:0}( path, flag, inAmount * line.swaps[x].percent / managerDecimal, line.swaps[x].amountOutMin, address(this) ); } else if (_compareStrings(line.swaps[x].platform, "PancakeV2")) { address[] memory path = new address[](2); path[0] = line.swaps[x].tokenIn; path[1] = line.swaps[x].tokenOut; outAmount = ISmartRouter(routers["PancakeV2"]).swapExactTokensForTokens{value:0}( inAmount * line.swaps[x].percent / managerDecimal, line.swaps[x].amountOutMin, path, address(this) ); } else if (_compareStrings(line.swaps[x].platform, "UniswapV3")) { ISwapRouter02.ExactInputSingleParams memory pm = ISwapRouter02.ExactInputSingleParams({ tokenIn: line.swaps[x].tokenIn, tokenOut: line.swaps[x].tokenOut, fee: uint24(line.swaps[x].meta), recipient: address(this), amountIn: inAmount * line.swaps[x].percent / managerDecimal, amountOutMinimum: line.swaps[x].amountOutMin, sqrtPriceLimitX96: 0 }); outAmount = ISwapRouter02(routers["UniswapV3"]).exactInputSingle{value:0}(pm); } else if (_compareStrings(line.swaps[x].platform, "UniswapV2")) { address[] memory path = new address[](2); path[0] = line.swaps[x].tokenIn; path[1] = line.swaps[x].tokenOut; outAmount = ISwapRouter02(routers["UniswapV2"]).swapExactTokensForTokens{value:0}( inAmount * line.swaps[x].percent / managerDecimal, line.swaps[x].amountOutMin, path, address(this) ); } else if (routers[line.swaps[x].platform] != address(0)) { address[] memory path = new address[](2); path[0] = line.swaps[x].tokenIn; path[1] = line.swaps[x].tokenOut; uint256[] memory amounts = IUniswapV2(routers[line.swaps[x].platform]).swapExactTokensForTokens( inAmount * line.swaps[x].percent / managerDecimal, line.swaps[x].amountOutMin, path, address(this), block.timestamp ); outAmount = amounts[amounts.length - 1]; } inAmount = outAmount; } return outAmount; } function _cutFee(address token, uint256 _amount) internal returns(uint256) { if (_amount > 0) { uint256 fee = _amount * swapFee / managerDecimal; if (fee > 0) { if (token == address(0)) { (bool success, ) = payable(treasury).call{value: fee}(""); require(success, "LC swap+: Failed cut fee"); } else { IERC20(token).safeTransfer(treasury, fee); } } return _amount - fee; } return 0; } function _approveTokenIfNeeded(address token, address spender, uint256 amount) private { if (IERC20(token).allowance(address(this), spender) < amount) { IERC20(token).safeApprove(spender, 0); IERC20(token).safeApprove(spender, type(uint256).max); } } function setManager(address account, bool access) public onlyOwner { managers[account] = access; } function setNoFeeWallets(address account, bool access) public onlyManager { noFeeWallets[account] = access; } function setSwapFee(uint256 _swapFee) public onlyManager { swapFee = _swapFee; } function setTreasury(address _treasury) public onlyManager { treasury = _treasury; } function addUniv2Router(string memory _platform, address _router) public onlyManager { routers[_platform] = _router; } function withdraw(address token, uint256 amount) public onlyManager { if (token == address(0)) { if (amount > address(this).balance) { amount = address(this).balance; } if (amount > 0) { (bool success1, ) = msg.sender.call{value: amount}(""); require(success1, "LC swap+: Failed revoke"); } } else { uint256 balance = IERC20(token).balanceOf(address(this)); if (amount > balance) { amount = balance; } if (amount > 0) { IERC20(token).safeTransfer(msg.sender, amount); } } } function _compareStrings(string memory a, string memory b) internal pure returns (bool) { return (keccak256(abi.encodePacked((a))) == keccak256(abi.encodePacked((b)))); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol) pragma solidity >=0.8.0 <0.9.0; 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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/utils/SafeERC20.sol) pragma solidity >=0.8.0 <0.9.0; import "../interfaces/IERC20.sol"; import "./draft-IERC20Permit.sol"; import "./Address.sol"; 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"); } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity >=0.8.0 <0.9.0; import "./Context.sol"; abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity >=0.8.0 <0.9.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol) pragma solidity >=0.8.0 <0.9.0; 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); } } }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; import "./IERC20.sol"; interface IWETH is IERC20 { function deposit() external payable; function withdraw(uint amount) external; }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; interface IUniswapV2 { 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 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); }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; interface ISwapRouter02 { function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to ) external payable returns (uint256 amountOut); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to ) external payable returns (uint256 amountIn); struct ExactInputSingleParams { address tokenIn; address tokenOut; uint24 fee; address recipient; uint256 amountIn; uint256 amountOutMinimum; uint160 sqrtPriceLimitX96; } struct ExactInputParams { bytes path; address recipient; uint256 amountIn; uint256 amountOutMinimum; } struct ExactOutputSingleParams { address tokenIn; address tokenOut; uint24 fee; address recipient; uint256 amountOut; uint256 amountInMaximum; uint160 sqrtPriceLimitX96; } struct ExactOutputParams { bytes path; address recipient; uint256 amountOut; uint256 amountInMaximum; } function exactInputSingle(ExactInputSingleParams memory params) external payable returns (uint256 amountOut); function exactInput(ExactInputParams memory params) external payable returns (uint256 amountOut); function exactOutputSingle(ExactOutputSingleParams calldata params) external payable returns (uint256 amountIn); function exactOutput(ExactOutputParams calldata params) external payable returns (uint256 amountIn); }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; interface ISmartRouter { function exactInputStableSwap( address[] calldata path, uint256[] calldata flag, uint256 amountIn, uint256 amountOutMin, address to ) external payable returns (uint256 amountOut); function exactOutputStableSwap( address[] calldata path, uint256[] calldata flag, uint256 amountOut, uint256 amountInMax, address to ) external payable returns (uint256 amountIn); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to ) external payable returns (uint256 amountOut); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to ) external payable returns (uint256 amountIn); struct ExactInputSingleParams { address tokenIn; address tokenOut; uint24 fee; address recipient; uint256 amountIn; uint256 amountOutMinimum; uint160 sqrtPriceLimitX96; } struct ExactInputParams { bytes path; address recipient; uint256 amountIn; uint256 amountOutMinimum; } struct ExactOutputSingleParams { address tokenIn; address tokenOut; uint24 fee; address recipient; uint256 amountOut; uint256 amountInMaximum; uint160 sqrtPriceLimitX96; } struct ExactOutputParams { bytes path; address recipient; uint256 amountOut; uint256 amountInMaximum; } function exactInputSingle(ExactInputSingleParams memory params) external payable returns (uint256 amountOut); function exactInput(ExactInputParams memory params) external payable returns (uint256 amountOut); function exactOutputSingle(ExactOutputSingleParams calldata params) external payable returns (uint256 amountIn); function exactOutput(ExactOutputParams calldata params) external payable returns (uint256 amountIn); }
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "london", "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":"_WETH","type":"address"},{"internalType":"address","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenIn","type":"address"},{"indexed":false,"internalType":"address","name":"tokenOut","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountUsed","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"}],"name":"SwapPlus","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_platform","type":"string"},{"internalType":"address","name":"_router","type":"address"}],"name":"addUniv2Router","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"managerDecimal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"managers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noFeeWallets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"routers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"access","type":"bool"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"access","type":"bool"}],"name":"setNoFeeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapFee","type":"uint256"}],"name":"setSwapFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"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 SwapPlusv1.swapRouter[]","name":"swaps","type":"tuple[]"}],"internalType":"struct SwapPlusv1.swapLine[]","name":"lines","type":"tuple[]"}],"internalType":"struct SwapPlusv1.swapBlock[]","name":"swBlocks","type":"tuple[]"}],"name":"swap","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"swapFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052610bb8600355620f42406004553480156200001e57600080fd5b50604051620028a1380380620028a183398101604081905262000041916200026e565b6200004c3362000201565b7368b3465833fb72a70ecdf485e0e4c7bd8665fc456007604051620000809068556e6973776170563360b81b815260090190565b908152604080516020928190038301812080546001600160a01b03199081166001600160a01b0396871617909155682ab734b9bbb0b82b1960b91b825260076009808401829052845160299481900385018120805485167368b3465833fb72a70ecdf485e0e4c7bd8665fc451790556805375736869737761760bc1b8152808201839052855190819003850181208054851673d9e1ce17f2641f24ae83637ab66a2cca9c378b9f1790556850616e63616b65563360b81b815280820183905285519081900385018120805485167313f4ea83d0bd40e75c8222255bc855a974568dd49081179091556c50616e63616b65537461626c6560981b8252600d82018490528651602d928190039290920182208054861682179055682830b731b0b5b2ab1960b91b825291810192909252845191829003909301902080548216909217909155600180549685169682169690961786556002805495909416941693909317909155336000908152600690915220805460ff19169091179055620002a6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200026957600080fd5b919050565b600080604083850312156200028257600080fd5b6200028d8362000251565b91506200029d6020840162000251565b90509250929050565b6125eb80620002b66000396000f3fe6080604052600436106101025760003560e01c8063a5e90eee11610095578063e3e715b411610064578063e3e715b4146102e3578063f0f4426014610303578063f2fde38b14610323578063f3fef3a314610343578063fdff9b4d1461036357600080fd5b8063a5e90eee1461025b578063ad5c46481461027b578063c42ce32a1461029b578063d2a6c126146102c357600080fd5b806361d027b3116100d157806361d027b3146101f2578063715018a614610212578063715b55a8146102275780638da5cb5b1461023d57600080fd5b80632df28dac1461010e57806334e19907146101535780633576d0241461017557806354cf2aeb146101ce57600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5061013e610129366004611d69565b60056020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561015f57600080fd5b5061017361016e366004611d8b565b610393565b005b34801561018157600080fd5b506101b6610190366004611ea7565b80516020818301810180516007825292820191909301209152546001600160a01b031681565b6040516001600160a01b03909116815260200161014a565b3480156101da57600080fd5b506101e460035481565b60405190815260200161014a565b3480156101fe57600080fd5b506002546101b6906001600160a01b031681565b34801561021e57600080fd5b506101736103d0565b34801561023357600080fd5b506101e460045481565b34801561024957600080fd5b506000546001600160a01b03166101b6565b34801561026757600080fd5b50610173610276366004611eea565b6103e4565b34801561028757600080fd5b506001546101b6906001600160a01b031681565b6102ae6102a9366004611f21565b610417565b6040805192835260208301919091520161014a565b3480156102cf57600080fd5b506101736102de366004611fd1565b61075a565b3480156102ef57600080fd5b506101736102fe366004611eea565b6107cd565b34801561030f57600080fd5b5061017361031e366004611d69565b610827565b34801561032f57600080fd5b5061017361033e366004611d69565b610878565b34801561034f57600080fd5b5061017361035e36600461201f565b6108f1565b34801561036f57600080fd5b5061013e61037e366004611d69565b60066020526000908152604090205460ff1681565b3360009081526006602052604090205460ff166103cb5760405162461bcd60e51b81526004016103c290612049565b60405180910390fd5b600355565b6103d8610a70565b6103e26000610aca565b565b6103ec610a70565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000806001600160a01b0388161561043e5761043e6001600160a01b03891633308a610b1a565b33600090815260056020526040902054879060ff16610464576104618982610b8b565b90505b6001600160a01b0389166104dc57600160009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156104c257600080fd5b505af11580156104d6573d6000803e3d6000fd5b50505050505b83816000805b838110156105c55760008989838181106104fe576104fe612075565b9050602002810190610510919061208b565b61051a90806120ab565b905090506000925060005b818110156105ad5761058f8b8b8581811061054257610542612075565b9050602002810190610554919061208b565b61055e90806120ab565b8381811061056e5761056e612075565b9050602002810190610580919061208b565b61058990612120565b86610ca5565b6105999085612272565b9350806105a58161228a565b915050610525565b508293505080806105bd9061228a565b9150506104e2565b506001600160a01b038a166106db57600154604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561061a57600080fd5b505af115801561062e573d6000803e3d6000fd5b505050506000896001600160a01b03168260405160006040518083038185875af1925050503d806000811461067f576040519150601f19603f3d011682016040523d82523d6000602084013e610684565b606091505b50509050806106d55760405162461bcd60e51b815260206004820152601860248201527f4c4320737761702b3a204661696c65642072656365697074000000000000000060448201526064016103c2565b506106ef565b6106ef6001600160a01b038b168a836118ac565b604080516001600160a01b03808f1682528c1660208201529081018c905260608101859052608081018290527ffe93dd12a88b93d7c1285352cf2c42dfc0fb241904b8ddb903a82f16c6b16e829060a00160405180910390a1929b929a509198505050505050505050565b3360009081526006602052604090205460ff166107895760405162461bcd60e51b81526004016103c290612049565b8060078360405161079a91906122d1565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b3360009081526006602052604090205460ff166107fc5760405162461bcd60e51b81526004016103c290612049565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b3360009081526006602052604090205460ff166108565760405162461bcd60e51b81526004016103c290612049565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610880610a70565b6001600160a01b0381166108e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103c2565b6108ee81610aca565b50565b3360009081526006602052604090205460ff166109205760405162461bcd60e51b81526004016103c290612049565b6001600160a01b0382166109dd57478111156109395750475b80156109d957604051600090339083908381818185875af1925050503d8060008114610981576040519150601f19603f3d011682016040523d82523d6000602084013e610986565b606091505b50509050806109d75760405162461bcd60e51b815260206004820152601760248201527f4c4320737761702b3a204661696c6564207265766f6b6500000000000000000060448201526064016103c2565b505b5050565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4891906122e3565b905080821115610a56578091505b81156109d7576109d76001600160a01b03841633846118ac565b6000546001600160a01b031633146103e25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516001600160a01b0380851660248301528316604482015260648101829052610b859085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526118dc565b50505050565b60008115610c9b57600060045460035484610ba691906122fc565b610bb0919061231b565b90508015610c89576001600160a01b038416610c6f576002546040516000916001600160a01b03169083908381818185875af1925050503d8060008114610c13576040519150601f19603f3d011682016040523d82523d6000602084013e610c18565b606091505b5050905080610c695760405162461bcd60e51b815260206004820152601860248201527f4c4320737761702b3a204661696c65642063757420666565000000000000000060448201526064016103c2565b50610c89565b600254610c89906001600160a01b038681169116836118ac565b610c93818461233d565b915050610c9f565b5060005b92915050565b8151516000908282805b838110156118a257610d2c87600001518281518110610cd057610cd0612075565b602002602001015160200151600789600001518481518110610cf457610cf4612075565b602002602001015160000151604051610d0d91906122d1565b908152604051908190036020019020546001600160a01b0316856119ae565b610d7887600001518281518110610d4557610d45612075565b6020026020010151600001516040518060400160405280600981526020016850616e63616b65563360b81b815250611a52565b15610f3f5760006040518060e0016040528089600001518481518110610da057610da0612075565b6020026020010151602001516001600160a01b0316815260200189600001518481518110610dd057610dd0612075565b6020026020010151604001516001600160a01b0316815260200189600001518481518110610e0057610e00612075565b60200260200101516080015162ffffff168152602001306001600160a01b031681526020016004548a600001518581518110610e3e57610e3e612075565b602002602001015160a0015187610e5591906122fc565b610e5f919061231b565b815260200189600001518481518110610e7a57610e7a612075565b602002602001015160600151815260200160006001600160a01b031681525090506007604051610eb9906850616e63616b65563360b81b815260090190565b908152604051908190036020018120546304e45aaf60e01b82526001600160a01b0316906304e45aaf90600090610ef4908590600401612354565b60206040518083038185885af1158015610f12573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f3791906122e3565b92505061188c565b610f8f87600001518281518110610f5857610f58612075565b6020026020010151600001516040518060400160405280600d81526020016c50616e63616b65537461626c6560981b815250611a52565b156111bc5760408051600280825260608201835260009260208301908036833701905050905087600001518281518110610fcb57610fcb612075565b60200260200101516020015181600081518110610fea57610fea612075565b6001600160a01b0390921660209283029190910190910152875180518390811061101657611016612075565b6020026020010151604001518160018151811061103557611035612075565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090508860000151838151811061108857611088612075565b602002602001015160800151816000815181106110a7576110a7612075565b6020908102919091010152604080516c50616e63616b65537461626c6560981b81526007600d820152905190819003602d019020546004548a5180516001600160a01b039093169263b4554231926000928792879291908a90811061110e5761110e612075565b602002602001015160a001518b61112591906122fc565b61112f919061231b565b8e5180518a90811061114357611143612075565b602002602001015160600151306040518763ffffffff1660e01b81526004016111709594939291906123f7565b60206040518083038185885af115801561118e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111b391906122e3565b9350505061188c565b611208876000015182815181106111d5576111d5612075565b602002602001015160000151604051806040016040528060098152602001682830b731b0b5b2ab1960b91b815250611a52565b1561137f576040805160028082526060820183526000926020830190803683370190505090508760000151828151811061124457611244612075565b6020026020010151602001518160008151811061126357611263612075565b6001600160a01b0390921660209283029190910190910152875180518390811061128f5761128f612075565b602002602001015160400151816001815181106112ae576112ae612075565b6001600160a01b0390921660209283029190910190910152604051682830b731b0b5b2ab1960b91b81526007906009015b90815260405190819003602001902054600454895180516001600160a01b039093169263472b43f39260009290918790811061131d5761131d612075565b602002602001015160a001518861133491906122fc565b61133e919061231b565b8b5180518790811061135257611352612075565b60200260200101516060015185306040518663ffffffff1660e01b8152600401610ef4949392919061246b565b6113cb8760000151828151811061139857611398612075565b60200260200101516000015160405180604001604052806009815260200168556e6973776170563360b81b815250611a52565b1561150c5760006040518060e00160405280896000015184815181106113f3576113f3612075565b6020026020010151602001516001600160a01b031681526020018960000151848151811061142357611423612075565b6020026020010151604001516001600160a01b031681526020018960000151848151811061145357611453612075565b60200260200101516080015162ffffff168152602001306001600160a01b031681526020016004548a60000151858151811061149157611491612075565b602002602001015160a00151876114a891906122fc565b6114b2919061231b565b8152602001896000015184815181106114cd576114cd612075565b602002602001015160600151815260200160006001600160a01b031681525090506007604051610eb99068556e6973776170563360b81b815260090190565b6115588760000151828151811061152557611525612075565b602002602001015160000151604051806040016040528060098152602001682ab734b9bbb0b82b1960b91b815250611a52565b15611633576040805160028082526060820183526000926020830190803683370190505090508760000151828151811061159457611594612075565b602002602001015160200151816000815181106115b3576115b3612075565b6001600160a01b039092166020928302919091019091015287518051839081106115df576115df612075565b602002602001015160400151816001815181106115fe576115fe612075565b6001600160a01b0390921660209283029190910190910152604051682ab734b9bbb0b82b1960b91b81526007906009016112df565b865180516000916007918490811061164d5761164d612075565b60200260200101516000015160405161166691906122d1565b908152604051908190036020019020546001600160a01b03161461188c57604080516002808252606082018352600092602083019080368337019050509050876000015182815181106116bb576116bb612075565b602002602001015160200151816000815181106116da576116da612075565b6001600160a01b0390921660209283029190910190910152875180518390811061170657611706612075565b6020026020010151604001518160018151811061172557611725612075565b60200260200101906001600160a01b031690816001600160a01b031681525050600060078960000151848151811061175f5761175f612075565b60200260200101516000015160405161177891906122d1565b908152604051908190036020019020546004548a5180516001600160a01b03909316926338ed1739929190879081106117b3576117b3612075565b602002602001015160a00151886117ca91906122fc565b6117d4919061231b565b8b518051879081106117e8576117e8612075565b6020026020010151606001518530426040518663ffffffff1660e01b81526004016118179594939291906124a3565b6000604051808303816000875af1158015611836573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261185e91908101906124df565b9050806001825161186f919061233d565b8151811061187f5761187f612075565b6020026020010151935050505b819250808061189a9061228a565b915050610caf565b5095945050505050565b6040516001600160a01b0383166024820152604481018290526109d790849063a9059cbb60e01b90606401610b4e565b6000611931826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611aab9092919063ffffffff16565b8051909150156109d7578080602001905181019061194f9190612565565b6109d75760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103c2565b604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015282919085169063dd62ed3e90604401602060405180830381865afa1580156119fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2191906122e3565b10156109d757611a3c6001600160a01b038416836000611ac2565b6109d76001600160a01b03841683600019611ac2565b600081604051602001611a6591906122d1565b6040516020818303038152906040528051906020012083604051602001611a8c91906122d1565b6040516020818303038152906040528051906020012014905092915050565b6060611aba8484600085611bd7565b949350505050565b801580611b3c5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a91906122e3565b155b611ba75760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016103c2565b6040516001600160a01b0383166024820152604481018290526109d790849063095ea7b360e01b90606401610b4e565b606082471015611c385760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016103c2565b600080866001600160a01b03168587604051611c5491906122d1565b60006040518083038185875af1925050503d8060008114611c91576040519150601f19603f3d011682016040523d82523d6000602084013e611c96565b606091505b5091509150611ca787838387611cb2565b979650505050505050565b60608315611d1e578251611d17576001600160a01b0385163b611d175760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103c2565b5081611aba565b611aba8383815115611d335781518083602001fd5b8060405162461bcd60e51b81526004016103c29190612582565b80356001600160a01b0381168114611d6457600080fd5b919050565b600060208284031215611d7b57600080fd5b611d8482611d4d565b9392505050565b600060208284031215611d9d57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516020810167ffffffffffffffff81118282101715611ddd57611ddd611da4565b60405290565b60405160c0810167ffffffffffffffff81118282101715611ddd57611ddd611da4565b604051601f8201601f1916810167ffffffffffffffff81118282101715611e2f57611e2f611da4565b604052919050565b600082601f830112611e4857600080fd5b813567ffffffffffffffff811115611e6257611e62611da4565b611e75601f8201601f1916602001611e06565b818152846020838601011115611e8a57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215611eb957600080fd5b813567ffffffffffffffff811115611ed057600080fd5b611aba84828501611e37565b80151581146108ee57600080fd5b60008060408385031215611efd57600080fd5b611f0683611d4d565b91506020830135611f1681611edc565b809150509250929050565b60008060008060008060a08789031215611f3a57600080fd5b611f4387611d4d565b955060208701359450611f5860408801611d4d565b9350611f6660608801611d4d565b9250608087013567ffffffffffffffff80821115611f8357600080fd5b818901915089601f830112611f9757600080fd5b813581811115611fa657600080fd5b8a60208260051b8501011115611fbb57600080fd5b6020830194508093505050509295509295509295565b60008060408385031215611fe457600080fd5b823567ffffffffffffffff811115611ffb57600080fd5b61200785828601611e37565b92505061201660208401611d4d565b90509250929050565b6000806040838503121561203257600080fd5b61203b83611d4d565b946020939093013593505050565b60208082526012908201527126219039bbb0b8159d1010b6b0b730b3b2b960711b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235601e198336030181126120a157600080fd5b9190910192915050565b6000808335601e198436030181126120c257600080fd5b83018035915067ffffffffffffffff8211156120dd57600080fd5b6020019150600581901b36038213156120f557600080fd5b9250929050565b600067ffffffffffffffff82111561211657612116611da4565b5060051b60200190565b6000602080833603121561213357600080fd5b61213b611dba565b833567ffffffffffffffff8082111561215357600080fd5b9085019036601f83011261216657600080fd5b8135612179612174826120fc565b611e06565b81815260059190911b8301850190858101903683111561219857600080fd5b8685015b8381101561224d578035858111156121b45760008081fd5b860160c036829003601f19018113156121cd5760008081fd5b6121d5611de3565b8a830135888111156121e75760008081fd5b6121f5368d83870101611e37565b8252506040612205818501611d4d565b8c8301526060612216818601611d4d565b918301919091526080848101359183019190915260a08085013591830191909152919092013590820152835291870191870161219c565b50855250929695505050505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156122855761228561225c565b500190565b600060001982141561229e5761229e61225c565b5060010190565b60005b838110156122c05781810151838201526020016122a8565b83811115610b855750506000910152565b600082516120a18184602087016122a5565b6000602082840312156122f557600080fd5b5051919050565b60008160001904831182151516156123165761231661225c565b500290565b60008261233857634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561234f5761234f61225c565b500390565b60e08101610c9f828480516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c09182015116910152565b600081518084526020808501945080840160005b838110156123ec5781516001600160a01b0316875295820195908201906001016123c7565b509495945050505050565b60a08152600061240a60a08301886123b3565b82810360208481019190915287518083528882019282019060005b8181101561244157845183529383019391830191600101612425565b5050604085019790975250505060608101929092526001600160a01b031660809091015292915050565b84815283602082015260806040820152600061248a60808301856123b3565b905060018060a01b038316606083015295945050505050565b85815284602082015260a0604082015260006124c260a08301866123b3565b6001600160a01b0394909416606083015250608001529392505050565b600060208083850312156124f257600080fd5b825167ffffffffffffffff81111561250957600080fd5b8301601f8101851361251a57600080fd5b8051612528612174826120fc565b81815260059190911b8201830190838101908783111561254757600080fd5b928401925b82841015611ca75783518252928401929084019061254c565b60006020828403121561257757600080fd5b8151611d8481611edc565b60208152600082518060208401526125a18160408501602087016122a5565b601f01601f1916919091016040019291505056fea26469706673582212204d6dfd465625aa926cdf600c22a9eae9bfb9bd0998a6a5e51920c0fb938adcd564736f6c634300080b0033000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e839eb365cad6ca88b8d519d1475fa74eb9e8485
Deployed Bytecode
0x6080604052600436106101025760003560e01c8063a5e90eee11610095578063e3e715b411610064578063e3e715b4146102e3578063f0f4426014610303578063f2fde38b14610323578063f3fef3a314610343578063fdff9b4d1461036357600080fd5b8063a5e90eee1461025b578063ad5c46481461027b578063c42ce32a1461029b578063d2a6c126146102c357600080fd5b806361d027b3116100d157806361d027b3146101f2578063715018a614610212578063715b55a8146102275780638da5cb5b1461023d57600080fd5b80632df28dac1461010e57806334e19907146101535780633576d0241461017557806354cf2aeb146101ce57600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5061013e610129366004611d69565b60056020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561015f57600080fd5b5061017361016e366004611d8b565b610393565b005b34801561018157600080fd5b506101b6610190366004611ea7565b80516020818301810180516007825292820191909301209152546001600160a01b031681565b6040516001600160a01b03909116815260200161014a565b3480156101da57600080fd5b506101e460035481565b60405190815260200161014a565b3480156101fe57600080fd5b506002546101b6906001600160a01b031681565b34801561021e57600080fd5b506101736103d0565b34801561023357600080fd5b506101e460045481565b34801561024957600080fd5b506000546001600160a01b03166101b6565b34801561026757600080fd5b50610173610276366004611eea565b6103e4565b34801561028757600080fd5b506001546101b6906001600160a01b031681565b6102ae6102a9366004611f21565b610417565b6040805192835260208301919091520161014a565b3480156102cf57600080fd5b506101736102de366004611fd1565b61075a565b3480156102ef57600080fd5b506101736102fe366004611eea565b6107cd565b34801561030f57600080fd5b5061017361031e366004611d69565b610827565b34801561032f57600080fd5b5061017361033e366004611d69565b610878565b34801561034f57600080fd5b5061017361035e36600461201f565b6108f1565b34801561036f57600080fd5b5061013e61037e366004611d69565b60066020526000908152604090205460ff1681565b3360009081526006602052604090205460ff166103cb5760405162461bcd60e51b81526004016103c290612049565b60405180910390fd5b600355565b6103d8610a70565b6103e26000610aca565b565b6103ec610a70565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000806001600160a01b0388161561043e5761043e6001600160a01b03891633308a610b1a565b33600090815260056020526040902054879060ff16610464576104618982610b8b565b90505b6001600160a01b0389166104dc57600160009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156104c257600080fd5b505af11580156104d6573d6000803e3d6000fd5b50505050505b83816000805b838110156105c55760008989838181106104fe576104fe612075565b9050602002810190610510919061208b565b61051a90806120ab565b905090506000925060005b818110156105ad5761058f8b8b8581811061054257610542612075565b9050602002810190610554919061208b565b61055e90806120ab565b8381811061056e5761056e612075565b9050602002810190610580919061208b565b61058990612120565b86610ca5565b6105999085612272565b9350806105a58161228a565b915050610525565b508293505080806105bd9061228a565b9150506104e2565b506001600160a01b038a166106db57600154604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561061a57600080fd5b505af115801561062e573d6000803e3d6000fd5b505050506000896001600160a01b03168260405160006040518083038185875af1925050503d806000811461067f576040519150601f19603f3d011682016040523d82523d6000602084013e610684565b606091505b50509050806106d55760405162461bcd60e51b815260206004820152601860248201527f4c4320737761702b3a204661696c65642072656365697074000000000000000060448201526064016103c2565b506106ef565b6106ef6001600160a01b038b168a836118ac565b604080516001600160a01b03808f1682528c1660208201529081018c905260608101859052608081018290527ffe93dd12a88b93d7c1285352cf2c42dfc0fb241904b8ddb903a82f16c6b16e829060a00160405180910390a1929b929a509198505050505050505050565b3360009081526006602052604090205460ff166107895760405162461bcd60e51b81526004016103c290612049565b8060078360405161079a91906122d1565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b3360009081526006602052604090205460ff166107fc5760405162461bcd60e51b81526004016103c290612049565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b3360009081526006602052604090205460ff166108565760405162461bcd60e51b81526004016103c290612049565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610880610a70565b6001600160a01b0381166108e55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103c2565b6108ee81610aca565b50565b3360009081526006602052604090205460ff166109205760405162461bcd60e51b81526004016103c290612049565b6001600160a01b0382166109dd57478111156109395750475b80156109d957604051600090339083908381818185875af1925050503d8060008114610981576040519150601f19603f3d011682016040523d82523d6000602084013e610986565b606091505b50509050806109d75760405162461bcd60e51b815260206004820152601760248201527f4c4320737761702b3a204661696c6564207265766f6b6500000000000000000060448201526064016103c2565b505b5050565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4891906122e3565b905080821115610a56578091505b81156109d7576109d76001600160a01b03841633846118ac565b6000546001600160a01b031633146103e25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516001600160a01b0380851660248301528316604482015260648101829052610b859085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526118dc565b50505050565b60008115610c9b57600060045460035484610ba691906122fc565b610bb0919061231b565b90508015610c89576001600160a01b038416610c6f576002546040516000916001600160a01b03169083908381818185875af1925050503d8060008114610c13576040519150601f19603f3d011682016040523d82523d6000602084013e610c18565b606091505b5050905080610c695760405162461bcd60e51b815260206004820152601860248201527f4c4320737761702b3a204661696c65642063757420666565000000000000000060448201526064016103c2565b50610c89565b600254610c89906001600160a01b038681169116836118ac565b610c93818461233d565b915050610c9f565b5060005b92915050565b8151516000908282805b838110156118a257610d2c87600001518281518110610cd057610cd0612075565b602002602001015160200151600789600001518481518110610cf457610cf4612075565b602002602001015160000151604051610d0d91906122d1565b908152604051908190036020019020546001600160a01b0316856119ae565b610d7887600001518281518110610d4557610d45612075565b6020026020010151600001516040518060400160405280600981526020016850616e63616b65563360b81b815250611a52565b15610f3f5760006040518060e0016040528089600001518481518110610da057610da0612075565b6020026020010151602001516001600160a01b0316815260200189600001518481518110610dd057610dd0612075565b6020026020010151604001516001600160a01b0316815260200189600001518481518110610e0057610e00612075565b60200260200101516080015162ffffff168152602001306001600160a01b031681526020016004548a600001518581518110610e3e57610e3e612075565b602002602001015160a0015187610e5591906122fc565b610e5f919061231b565b815260200189600001518481518110610e7a57610e7a612075565b602002602001015160600151815260200160006001600160a01b031681525090506007604051610eb9906850616e63616b65563360b81b815260090190565b908152604051908190036020018120546304e45aaf60e01b82526001600160a01b0316906304e45aaf90600090610ef4908590600401612354565b60206040518083038185885af1158015610f12573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f3791906122e3565b92505061188c565b610f8f87600001518281518110610f5857610f58612075565b6020026020010151600001516040518060400160405280600d81526020016c50616e63616b65537461626c6560981b815250611a52565b156111bc5760408051600280825260608201835260009260208301908036833701905050905087600001518281518110610fcb57610fcb612075565b60200260200101516020015181600081518110610fea57610fea612075565b6001600160a01b0390921660209283029190910190910152875180518390811061101657611016612075565b6020026020010151604001518160018151811061103557611035612075565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090508860000151838151811061108857611088612075565b602002602001015160800151816000815181106110a7576110a7612075565b6020908102919091010152604080516c50616e63616b65537461626c6560981b81526007600d820152905190819003602d019020546004548a5180516001600160a01b039093169263b4554231926000928792879291908a90811061110e5761110e612075565b602002602001015160a001518b61112591906122fc565b61112f919061231b565b8e5180518a90811061114357611143612075565b602002602001015160600151306040518763ffffffff1660e01b81526004016111709594939291906123f7565b60206040518083038185885af115801561118e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111b391906122e3565b9350505061188c565b611208876000015182815181106111d5576111d5612075565b602002602001015160000151604051806040016040528060098152602001682830b731b0b5b2ab1960b91b815250611a52565b1561137f576040805160028082526060820183526000926020830190803683370190505090508760000151828151811061124457611244612075565b6020026020010151602001518160008151811061126357611263612075565b6001600160a01b0390921660209283029190910190910152875180518390811061128f5761128f612075565b602002602001015160400151816001815181106112ae576112ae612075565b6001600160a01b0390921660209283029190910190910152604051682830b731b0b5b2ab1960b91b81526007906009015b90815260405190819003602001902054600454895180516001600160a01b039093169263472b43f39260009290918790811061131d5761131d612075565b602002602001015160a001518861133491906122fc565b61133e919061231b565b8b5180518790811061135257611352612075565b60200260200101516060015185306040518663ffffffff1660e01b8152600401610ef4949392919061246b565b6113cb8760000151828151811061139857611398612075565b60200260200101516000015160405180604001604052806009815260200168556e6973776170563360b81b815250611a52565b1561150c5760006040518060e00160405280896000015184815181106113f3576113f3612075565b6020026020010151602001516001600160a01b031681526020018960000151848151811061142357611423612075565b6020026020010151604001516001600160a01b031681526020018960000151848151811061145357611453612075565b60200260200101516080015162ffffff168152602001306001600160a01b031681526020016004548a60000151858151811061149157611491612075565b602002602001015160a00151876114a891906122fc565b6114b2919061231b565b8152602001896000015184815181106114cd576114cd612075565b602002602001015160600151815260200160006001600160a01b031681525090506007604051610eb99068556e6973776170563360b81b815260090190565b6115588760000151828151811061152557611525612075565b602002602001015160000151604051806040016040528060098152602001682ab734b9bbb0b82b1960b91b815250611a52565b15611633576040805160028082526060820183526000926020830190803683370190505090508760000151828151811061159457611594612075565b602002602001015160200151816000815181106115b3576115b3612075565b6001600160a01b039092166020928302919091019091015287518051839081106115df576115df612075565b602002602001015160400151816001815181106115fe576115fe612075565b6001600160a01b0390921660209283029190910190910152604051682ab734b9bbb0b82b1960b91b81526007906009016112df565b865180516000916007918490811061164d5761164d612075565b60200260200101516000015160405161166691906122d1565b908152604051908190036020019020546001600160a01b03161461188c57604080516002808252606082018352600092602083019080368337019050509050876000015182815181106116bb576116bb612075565b602002602001015160200151816000815181106116da576116da612075565b6001600160a01b0390921660209283029190910190910152875180518390811061170657611706612075565b6020026020010151604001518160018151811061172557611725612075565b60200260200101906001600160a01b031690816001600160a01b031681525050600060078960000151848151811061175f5761175f612075565b60200260200101516000015160405161177891906122d1565b908152604051908190036020019020546004548a5180516001600160a01b03909316926338ed1739929190879081106117b3576117b3612075565b602002602001015160a00151886117ca91906122fc565b6117d4919061231b565b8b518051879081106117e8576117e8612075565b6020026020010151606001518530426040518663ffffffff1660e01b81526004016118179594939291906124a3565b6000604051808303816000875af1158015611836573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261185e91908101906124df565b9050806001825161186f919061233d565b8151811061187f5761187f612075565b6020026020010151935050505b819250808061189a9061228a565b915050610caf565b5095945050505050565b6040516001600160a01b0383166024820152604481018290526109d790849063a9059cbb60e01b90606401610b4e565b6000611931826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611aab9092919063ffffffff16565b8051909150156109d7578080602001905181019061194f9190612565565b6109d75760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103c2565b604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015282919085169063dd62ed3e90604401602060405180830381865afa1580156119fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2191906122e3565b10156109d757611a3c6001600160a01b038416836000611ac2565b6109d76001600160a01b03841683600019611ac2565b600081604051602001611a6591906122d1565b6040516020818303038152906040528051906020012083604051602001611a8c91906122d1565b6040516020818303038152906040528051906020012014905092915050565b6060611aba8484600085611bd7565b949350505050565b801580611b3c5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a91906122e3565b155b611ba75760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016103c2565b6040516001600160a01b0383166024820152604481018290526109d790849063095ea7b360e01b90606401610b4e565b606082471015611c385760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016103c2565b600080866001600160a01b03168587604051611c5491906122d1565b60006040518083038185875af1925050503d8060008114611c91576040519150601f19603f3d011682016040523d82523d6000602084013e611c96565b606091505b5091509150611ca787838387611cb2565b979650505050505050565b60608315611d1e578251611d17576001600160a01b0385163b611d175760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103c2565b5081611aba565b611aba8383815115611d335781518083602001fd5b8060405162461bcd60e51b81526004016103c29190612582565b80356001600160a01b0381168114611d6457600080fd5b919050565b600060208284031215611d7b57600080fd5b611d8482611d4d565b9392505050565b600060208284031215611d9d57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516020810167ffffffffffffffff81118282101715611ddd57611ddd611da4565b60405290565b60405160c0810167ffffffffffffffff81118282101715611ddd57611ddd611da4565b604051601f8201601f1916810167ffffffffffffffff81118282101715611e2f57611e2f611da4565b604052919050565b600082601f830112611e4857600080fd5b813567ffffffffffffffff811115611e6257611e62611da4565b611e75601f8201601f1916602001611e06565b818152846020838601011115611e8a57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215611eb957600080fd5b813567ffffffffffffffff811115611ed057600080fd5b611aba84828501611e37565b80151581146108ee57600080fd5b60008060408385031215611efd57600080fd5b611f0683611d4d565b91506020830135611f1681611edc565b809150509250929050565b60008060008060008060a08789031215611f3a57600080fd5b611f4387611d4d565b955060208701359450611f5860408801611d4d565b9350611f6660608801611d4d565b9250608087013567ffffffffffffffff80821115611f8357600080fd5b818901915089601f830112611f9757600080fd5b813581811115611fa657600080fd5b8a60208260051b8501011115611fbb57600080fd5b6020830194508093505050509295509295509295565b60008060408385031215611fe457600080fd5b823567ffffffffffffffff811115611ffb57600080fd5b61200785828601611e37565b92505061201660208401611d4d565b90509250929050565b6000806040838503121561203257600080fd5b61203b83611d4d565b946020939093013593505050565b60208082526012908201527126219039bbb0b8159d1010b6b0b730b3b2b960711b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235601e198336030181126120a157600080fd5b9190910192915050565b6000808335601e198436030181126120c257600080fd5b83018035915067ffffffffffffffff8211156120dd57600080fd5b6020019150600581901b36038213156120f557600080fd5b9250929050565b600067ffffffffffffffff82111561211657612116611da4565b5060051b60200190565b6000602080833603121561213357600080fd5b61213b611dba565b833567ffffffffffffffff8082111561215357600080fd5b9085019036601f83011261216657600080fd5b8135612179612174826120fc565b611e06565b81815260059190911b8301850190858101903683111561219857600080fd5b8685015b8381101561224d578035858111156121b45760008081fd5b860160c036829003601f19018113156121cd5760008081fd5b6121d5611de3565b8a830135888111156121e75760008081fd5b6121f5368d83870101611e37565b8252506040612205818501611d4d565b8c8301526060612216818601611d4d565b918301919091526080848101359183019190915260a08085013591830191909152919092013590820152835291870191870161219c565b50855250929695505050505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156122855761228561225c565b500190565b600060001982141561229e5761229e61225c565b5060010190565b60005b838110156122c05781810151838201526020016122a8565b83811115610b855750506000910152565b600082516120a18184602087016122a5565b6000602082840312156122f557600080fd5b5051919050565b60008160001904831182151516156123165761231661225c565b500290565b60008261233857634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561234f5761234f61225c565b500390565b60e08101610c9f828480516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c09182015116910152565b600081518084526020808501945080840160005b838110156123ec5781516001600160a01b0316875295820195908201906001016123c7565b509495945050505050565b60a08152600061240a60a08301886123b3565b82810360208481019190915287518083528882019282019060005b8181101561244157845183529383019391830191600101612425565b5050604085019790975250505060608101929092526001600160a01b031660809091015292915050565b84815283602082015260806040820152600061248a60808301856123b3565b905060018060a01b038316606083015295945050505050565b85815284602082015260a0604082015260006124c260a08301866123b3565b6001600160a01b0394909416606083015250608001529392505050565b600060208083850312156124f257600080fd5b825167ffffffffffffffff81111561250957600080fd5b8301601f8101851361251a57600080fd5b8051612528612174826120fc565b81815260059190911b8201830190838101908783111561254757600080fd5b928401925b82841015611ca75783518252928401929084019061254c565b60006020828403121561257757600080fd5b8151611d8481611edc565b60208152600082518060208401526125a18160408501602087016122a5565b601f01601f1916919091016040019291505056fea26469706673582212204d6dfd465625aa926cdf600c22a9eae9bfb9bd0998a6a5e51920c0fb938adcd564736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e839eb365cad6ca88b8d519d1475fa74eb9e8485
-----Decoded View---------------
Arg [0] : _WETH (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [1] : _treasury (address): 0xE839EB365cAd6ca88B8d519d1475fA74EB9E8485
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [1] : 000000000000000000000000e839eb365cad6ca88b8d519d1475fa74eb9e8485
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.