More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 5,920 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Perform Custom S... | 329358217 | 20 mins ago | IN | 0 ETH | 0.00000901 | ||||
Perform Custom S... | 329348848 | 58 mins ago | IN | 0.00404 ETH | 0.00000646 | ||||
Perform Custom S... | 329348676 | 1 hrs ago | IN | 0 ETH | 0.00000696 | ||||
Perform Custom S... | 329338264 | 1 hr ago | IN | 0 ETH | 0.00000513 | ||||
Perform Custom S... | 329337898 | 1 hr ago | IN | 0 ETH | 0.00000638 | ||||
Perform Custom S... | 329337839 | 1 hr ago | IN | 0.000183 ETH | 0.00000626 | ||||
Perform Custom S... | 329330244 | 2 hrs ago | IN | 0 ETH | 0.00000779 | ||||
Perform Custom S... | 329327518 | 2 hrs ago | IN | 0 ETH | 0.00000619 | ||||
Perform Custom S... | 329321375 | 2 hrs ago | IN | 0 ETH | 0.00000563 | ||||
Perform Custom S... | 329321075 | 2 hrs ago | IN | 0.005 ETH | 0.00000373 | ||||
Perform Custom S... | 329315668 | 3 hrs ago | IN | 0 ETH | 0.0000037 | ||||
Perform Custom S... | 329315225 | 3 hrs ago | IN | 0 ETH | 0.00000392 | ||||
Perform Custom S... | 329313734 | 3 hrs ago | IN | 0.003 ETH | 0.00000426 | ||||
Perform Custom S... | 329307329 | 3 hrs ago | IN | 0.050467 ETH | 0.00000422 | ||||
Perform Custom S... | 329297407 | 4 hrs ago | IN | 0.001 ETH | 0.00000373 | ||||
Perform Custom S... | 329296518 | 4 hrs ago | IN | 0 ETH | 0.00000378 | ||||
Perform Custom S... | 329287845 | 5 hrs ago | IN | 0.001 ETH | 0.00000714 | ||||
Perform Custom S... | 329285194 | 5 hrs ago | IN | 0.00077 ETH | 0.00000642 | ||||
Perform Custom S... | 329284277 | 5 hrs ago | IN | 0 ETH | 0.00000493 | ||||
Perform Custom S... | 329278424 | 5 hrs ago | IN | 0 ETH | 0.00000633 | ||||
Perform Custom S... | 329277892 | 5 hrs ago | IN | 0 ETH | 0.00000653 | ||||
Perform Custom S... | 329274837 | 6 hrs ago | IN | 0.001 ETH | 0.00000757 | ||||
Perform Custom S... | 329270501 | 6 hrs ago | IN | 0 ETH | 0.00000607 | ||||
Perform Custom S... | 329269807 | 6 hrs ago | IN | 0.001 ETH | 0.00000651 | ||||
Perform Custom S... | 329269427 | 6 hrs ago | IN | 0 ETH | 0.00000709 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
329358217 | 20 mins ago | 0.00026997 ETH | ||||
329358217 | 20 mins ago | 0.00026997 ETH | ||||
329348848 | 58 mins ago | 0.00404 ETH | ||||
329337839 | 1 hr ago | 0.000183 ETH | ||||
329330244 | 2 hrs ago | 0.00010494 ETH | ||||
329330244 | 2 hrs ago | 0.00010494 ETH | ||||
329327518 | 2 hrs ago | 0.00027178 ETH | ||||
329327518 | 2 hrs ago | 0.00027178 ETH | ||||
329321075 | 2 hrs ago | 0.005 ETH | ||||
329313734 | 3 hrs ago | 0.003 ETH | ||||
329307329 | 3 hrs ago | 0.050467 ETH | ||||
329297407 | 4 hrs ago | 0.001 ETH | ||||
329296518 | 4 hrs ago | 0.00099546 ETH | ||||
329296518 | 4 hrs ago | 0.00099546 ETH | ||||
329287845 | 5 hrs ago | 0.001 ETH | ||||
329285194 | 5 hrs ago | 0.00077 ETH | ||||
329284277 | 5 hrs ago | 0.00049556 ETH | ||||
329284277 | 5 hrs ago | 0.00049556 ETH | ||||
329278424 | 5 hrs ago | 0.00007188 ETH | ||||
329278424 | 5 hrs ago | 0.00007188 ETH | ||||
329277892 | 5 hrs ago | 0.00099668 ETH | ||||
329277892 | 5 hrs ago | 0.00099668 ETH | ||||
329274837 | 6 hrs ago | 0.001 ETH | ||||
329270501 | 6 hrs ago | 0.00099488 ETH | ||||
329270501 | 6 hrs ago | 0.00099488 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SwapProxy
Compiler Version
v0.8.27+commit.40a35a09
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IERC20 { function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function balanceOf(address who) external view returns (uint256); } interface IWETH is IERC20 { function deposit() external payable; function withdraw(uint wad) external; } interface IUniswapV2Pair { function token0() external view returns (address); function token1() external view returns (address); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function getAmountOut(uint256 amountIn, address tokenIn) external view returns (uint256); function getAmountOut(address tokenIn, uint256 amountIn) external view returns (uint256); } interface IUniswapV3Pool { function token0() external view returns (address); function token1() external view returns (address); function swap( address recipient, bool zeroForOne, int256 amountSpecified, uint160 sqrtPriceLimitX96, bytes calldata data ) external returns (int256 amount0Delta, int256 amount1Delta); } library TickMath { // Minimum and maximum tick values for Uniswap V3 calculations int24 internal constant MIN_TICK = - 887272; int24 internal constant MAX_TICK = - MIN_TICK; // Minimum and maximum sqrt ratio values uint160 internal constant MIN_SQRT_RATIO = 4295128739; uint160 internal constant MAX_SQRT_RATIO = 1461446703485210103287273052203988822378723970342; } contract SwapProxy { struct PoolData { address pool; // Address of the pool bool isV3; // true if the pool is Uniswap V3, false if Uniswap V2 uint256 fee; // Fee for Uniswap V2 pools } // Known code hashes for Uniswap pools. These should be updated according to the target network. // bytes32 public constant UNISWAP_V2_PAIR_CODE_HASH = 0x96e8ac427619fd51f5f6f7cd0bead1b541476d25c2a44cfe8b45fbee129cd9d6; // bytes32 public constant UNISWAP_V3_POOL_CODE_HASH = 0xe34f4b630f1385d1be987053a00f9ef241c95162ba9b0c9f2de3f3f5d37e2883; address public WETH; // Address of the WETH token address public owner; // Owner of the contract uint256 public referralFee; // Referral fee in bps (basis points), 0 to 100 (0% to 1%) modifier onlyOwner() { require(msg.sender == owner, "Not owner"); _; } constructor(address _WETH) { WETH = _WETH; owner = msg.sender; // Set deployer as owner referralFee = 20; // Default referral fee: 0.20% } /** * @dev Called by Uniswap V3 pools during a swap to collect the required tokens. */ function uniswapV3SwapCallback( int256 amount0Delta, int256 amount1Delta, bytes calldata data ) public { if (data.length == 64) { // USUAL UNISWAP V3 SWAP (address tokenToPay, bool zeroForOne) = abi.decode(data, (address, bool)); uint256 amountToPay; if (zeroForOne) { amountToPay = uint256(amount0Delta); } else { amountToPay = uint256(amount1Delta); } IERC20(tokenToPay).transfer(msg.sender, amountToPay); } else if (data.length == 0) { // SIMULATE 1 V3 swap uint256 currentAmount; if (amount0Delta < 0) { currentAmount = uint256(- amount0Delta); } else { currentAmount = uint256(- amount1Delta); } revert( string( abi.encodePacked( "Simulate: ", "{", "\"amount\":\"", _uint2str(currentAmount), "\"", "}" ) ) ); } else { // SIMULATE ( uint256 amountIn, PoolData[] memory pools, address initialToken, uint256 minAmountOut ) = abi.decode(data, (uint256, PoolData[], address, uint256)); (uint256 currentAmount, address currentToken) = performCustomSwapInternal(amountIn, pools, initialToken, minAmountOut, true); revert( string( abi.encodePacked( "Simulate: ", "{", "\"amount\":\"", _uint2str(currentAmount), "\",", "\"token_out\":\"", _addressToString(currentToken), "\"", "}" ) ) ); } } function _addressToString(address _addr) internal pure returns (string memory) { bytes32 value = bytes32(uint256(uint160(_addr))); bytes memory alphabet = "0123456789abcdef"; bytes memory str = new bytes(42); str[0] = '0'; str[1] = 'x'; for (uint256 i = 0; i < 20; i++) { str[2 + i * 2] = alphabet[uint8(value[i + 12] >> 4)]; str[3 + i * 2] = alphabet[uint8(value[i + 12] & 0x0F)]; } return string(str); } /** * @dev Called by Uniswap V3 pools during a swap to collect the required tokens. */ function pancakeV3SwapCallback( int256 amount0Delta, int256 amount1Delta, bytes calldata data ) external { uniswapV3SwapCallback(amount0Delta, amount1Delta, data); } /** * @dev Called by Uniswap V3 pools during a swap to collect the required tokens. */ function algebraSwapCallback( int256 amount0Delta, int256 amount1Delta, bytes calldata data ) external { uniswapV3SwapCallback(amount0Delta, amount1Delta, data); } // horizondex function swapCallback( int256 amount0Delta, int256 amount1Delta, bytes calldata _data ) external { uniswapV3SwapCallback(amount0Delta, amount1Delta, _data); } // maverick function swapCallback( uint256 amount0Delta, uint256 amount1Delta, bytes calldata _data ) external { uniswapV3SwapCallback(int256(amount0Delta), int256(amount1Delta), _data); } function solidlyV3SwapCallback( int256 amount0Delta, int256 amount1Delta, bytes calldata _data ) external { // console.log('solidlyV3SwapCallback'); uniswapV3SwapCallback(amount0Delta, amount1Delta, _data); } function swapY2XCallback( uint256 x, uint256 y, bytes calldata data ) external { uniswapV3SwapCallback(int256(y), int256(x), data); } function swapX2YCallback( uint256 x, uint256 y, bytes calldata data ) external { uniswapV3SwapCallback(int256(x), int256(y), data); } /** * @notice Executes a sequence of swaps starting from an initial token amount. * @param amountIn The initial amount of the input token provided by the user. * @param pools The list of pools (V2 or V3) to swap through in order. * @param initialToken The token we start swapping from. * @param minAmountOut The minimum acceptable amount of the final token after all swaps. * @param feeFromInitial If true, the referral fee is deducted from the initial amount. */ function performCustomSwap( uint256 amountIn, PoolData[] calldata pools, address initialToken, uint256 minAmountOut, bool feeFromInitial ) public returns (uint256 currentAmount) { IERC20(initialToken).transferFrom(msg.sender, address(this), amountIn); address currentToken; (currentAmount, currentToken) = performCustomSwapInternal(amountIn, pools, initialToken, minAmountOut, feeFromInitial); if (currentToken == WETH) { // Unwrap WETH to ETH IWETH(WETH).withdraw(currentAmount); payable(msg.sender).transfer(currentAmount); } else { IERC20(currentToken).transfer(msg.sender, currentAmount); } } /** * @notice Executes a sequence of swaps starting from an initial token amount. * @dev This is a simplified example: * - For Uniswap V2, no actual output amount calculation is done. * - For Uniswap V3, no comprehensive slippage checks are performed. * @param amountIn The initial amount of the input token provided by the user. * @param pools The list of pools (V2 or V3) to swap through in order. * @param initialToken The token we start swapping from. * @param minAmountOut The minimum acceptable amount of the final token after all swaps. */ function performCustomSwapInternal( uint256 amountIn, PoolData[] memory pools, address initialToken, uint256 minAmountOut, bool feeFromInitial ) private returns (uint256 currentAmount, address currentToken) { require(amountIn > 0, "amountIn must be > 0"); // in case of ETH, the amount is already sent to the contract if (feeFromInitial) { uint256 feeAmount = (amountIn * referralFee) / 10000; IERC20(initialToken).transfer(owner, feeAmount); amountIn -= feeAmount; } currentToken = initialToken; currentAmount = amountIn; for (uint256 i = 0; i < pools.length; i++) { // Verify pool code hash to ensure authenticity if (pools[i].isV3) { // Uniswap V3 logic IUniswapV3Pool pool = IUniswapV3Pool(pools[i].pool); address token0 = pool.token0(); bool zeroForOne = (currentToken == token0); // Set the price limit uint160 sqrtPriceLimitX96 = zeroForOne ? TickMath.MIN_SQRT_RATIO + 1 : TickMath.MAX_SQRT_RATIO - 1; (int256 delta0, int256 delta1) = pool.swap( address(this), zeroForOne, int256(currentAmount), sqrtPriceLimitX96, abi.encode(currentToken, zeroForOne) ); // Update current token and amount if (zeroForOne) { // token0 -> token1 currentToken = pool.token1(); currentAmount = uint256(- delta1); } else { // token1 -> token0 currentToken = token0; currentAmount = uint256(- delta0); } } else { // Load pair and tokens IUniswapV2Pair pair = IUniswapV2Pair(pools[i].pool); address token0 = pair.token0(); address token1 = pair.token1(); // Determine tokenTo address tokenTo; if (currentToken == token0) { tokenTo = token1; } else { tokenTo = token0; } // Calculate reserves uint256 reserveIn; uint256 reserveOut; { (uint256 reserve0, uint256 reserve1,) = pair.getReserves(); if (currentToken == token0) { reserveIn = reserve0; reserveOut = reserve1; } else { reserveIn = reserve1; reserveOut = reserve0; } } // Calculate amounts uint256 amountOut; if (pools[i].fee > 1) { uint256 amountInWithFee = (currentAmount * (10000 - pools[i].fee)) / 10000; amountOut = (amountInWithFee * reserveOut) / (reserveIn + amountInWithFee); } else if (pools[i].fee == 1) { amountOut = pair.getAmountOut(currentToken, currentAmount); } else { // pools[i].fee == 0 amountOut = pair.getAmountOut(currentAmount, currentToken); } uint256 amount0Out = (currentToken == token0) ? 0 : amountOut; uint256 amount1Out = (currentToken == token0) ? amountOut : 0; // Perform the token transfer and swap IERC20(currentToken).transfer(address(pair), currentAmount); pair.swap(amount0Out, amount1Out, address(this), ""); // Update current token and amount currentToken = tokenTo; currentAmount = IERC20(tokenTo).balanceOf(address(this)); } } require(currentAmount >= minAmountOut, "Slippage too high"); if (!feeFromInitial) { uint256 feeAmount = (currentAmount * referralFee) / 10000; IERC20(currentToken).transfer(owner, feeAmount); currentAmount -= feeAmount; } return (currentAmount, currentToken); } /** * @notice Overloaded function to accept ETH, wrap it to WETH, and then perform the swaps. * @param pools The list of pools for the swap sequence. * @param minAmountOut The minimum acceptable amount of the final token. */ function performCustomSwap( PoolData[] calldata pools, uint256 minAmountOut ) external payable returns (uint256 amount) { require(msg.value > 0, "No ETH sent"); // Wrap ETH into WETH IWETH(WETH).deposit{value: msg.value}(); // Call the main function with WETH as the initial token address currentToken; (amount, currentToken) = performCustomSwapInternal(msg.value, pools, WETH, minAmountOut, true); if (currentToken == WETH) { // Unwrap WETH to ETH IWETH(WETH).withdraw(amount); payable(msg.sender).transfer(amount); } else { IERC20(currentToken).transfer(msg.sender, amount); } } /** * @notice Executes a sequence of swaps starting from an initial token amount. * @param amountIn The initial amount of the input token provided by the user. * @param pools The list of pools (V2 or V3) to swap through in order. * @param initialToken The token we start swapping from. * @param minAmountOut The minimum acceptable amount of the final token after all swaps. * @param simulateUniswapV3Pool address of the Uniswap V3 pool to borrow tokens for simulation */ function simulatePerformCustomSwap( uint256 amountIn, PoolData[] calldata pools, address initialToken, uint256 minAmountOut, address simulateUniswapV3Pool ) public { bytes memory simData = abi.encode( amountIn, pools, initialToken, minAmountOut ); // len = 128 IUniswapV3Pool v3pool = IUniswapV3Pool(simulateUniswapV3Pool); bool zeroForOne = (v3pool.token1() == initialToken); uint160 sqrtPriceLimitX96 = zeroForOne ? TickMath.MIN_SQRT_RATIO + 1 : TickMath.MAX_SQRT_RATIO - 1; v3pool.swap( address(this), zeroForOne, - int256(amountIn), sqrtPriceLimitX96, simData ); } function simulateSingleV3pool( uint256 amountIn, address pool, address initialToken ) public { IUniswapV3Pool v3pool = IUniswapV3Pool(pool); bool zeroForOne = (v3pool.token0() == initialToken); uint160 sqrtPriceLimitX96 = zeroForOne ? TickMath.MIN_SQRT_RATIO + 1 : TickMath.MAX_SQRT_RATIO - 1; v3pool.swap( address(this), zeroForOne, int256(amountIn), sqrtPriceLimitX96, "" ); } /** * @notice Allows the owner to set the global referral fee in basis points. * @param _referralFee The new referral fee in bps (0 to 100). * For example: * 0 = 0% * 50 = 0.50% * 100 = 1% */ function setReferralFee(uint256 _referralFee) external onlyOwner { require(_referralFee <= 100, "Fee cannot exceed 1%"); referralFee = _referralFee; } /** * @notice Allows the owner to withdraw accumulated fees from this contract. * @param token The address of the token to withdraw. * @param amount The amount of the token to withdraw. */ function withdrawFees(address token, uint256 amount) external onlyOwner { IERC20(token).transfer(owner, amount); } /** * @notice Allows the owner to withdraw accumulated fees from this contract. * @param amount The amount of the token to withdraw. */ function withdrawFees(uint256 amount) external onlyOwner { payable(owner).transfer(amount); } // Fallback functions to receive ETH if needed (e.g. after WETH withdraw) receive() external payable {} fallback() external payable {} function _uint2str(uint256 _i) internal pure returns (string memory) { if (_i == 0) return "0"; uint256 j = _i; uint256 length; while (j != 0) { length++; j /= 10; } bytes memory bstr = new bytes(length); uint256 k = length; j = _i; while (j != 0) { k--; bstr[k] = bytes1(uint8(48 + (j % 10))); j /= 10; } return string(bstr); } }
{ "evmVersion": "istanbul", "optimizer": { "enabled": true, "runs": 200 }, "libraries": { "SwapProxy.sol": {} }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int256","name":"amount0Delta","type":"int256"},{"internalType":"int256","name":"amount1Delta","type":"int256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"algebraSwapCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int256","name":"amount0Delta","type":"int256"},{"internalType":"int256","name":"amount1Delta","type":"int256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"pancakeV3SwapCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"bool","name":"isV3","type":"bool"},{"internalType":"uint256","name":"fee","type":"uint256"}],"internalType":"struct SwapProxy.PoolData[]","name":"pools","type":"tuple[]"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"name":"performCustomSwap","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"components":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"bool","name":"isV3","type":"bool"},{"internalType":"uint256","name":"fee","type":"uint256"}],"internalType":"struct SwapProxy.PoolData[]","name":"pools","type":"tuple[]"},{"internalType":"address","name":"initialToken","type":"address"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"},{"internalType":"bool","name":"feeFromInitial","type":"bool"}],"name":"performCustomSwap","outputs":[{"internalType":"uint256","name":"currentAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"referralFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_referralFee","type":"uint256"}],"name":"setReferralFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"components":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"bool","name":"isV3","type":"bool"},{"internalType":"uint256","name":"fee","type":"uint256"}],"internalType":"struct SwapProxy.PoolData[]","name":"pools","type":"tuple[]"},{"internalType":"address","name":"initialToken","type":"address"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"},{"internalType":"address","name":"simulateUniswapV3Pool","type":"address"}],"name":"simulatePerformCustomSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"initialToken","type":"address"}],"name":"simulateSingleV3pool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int256","name":"amount0Delta","type":"int256"},{"internalType":"int256","name":"amount1Delta","type":"int256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"solidlyV3SwapCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount0Delta","type":"uint256"},{"internalType":"uint256","name":"amount1Delta","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"swapCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int256","name":"amount0Delta","type":"int256"},{"internalType":"int256","name":"amount1Delta","type":"int256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"swapCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swapX2YCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swapY2XCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int256","name":"amount0Delta","type":"int256"},{"internalType":"int256","name":"amount1Delta","type":"int256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"uniswapV3SwapCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052348015600f57600080fd5b50604051612312380380612312833981016040819052602c91605e565b600080546001600160a01b039092166001600160a01b031992831617905560018054909116331790556014600255608c565b600060208284031215606f57600080fd5b81516001600160a01b0381168114608557600080fd5b9392505050565b6122778061009b6000396000f3fe6080604052600436106101005760003560e01c80638da5cb5b1161008f578063ad5c464811610061578063ad5c464814610236578063bc9d487e14610256578063d3e1c28414610276578063fa461e3314610296578063fa483e721461010257005b80638da5cb5b146101be578063923b8a2a14610102578063a13940b0146101f6578063ad3b1b471461021657005b80635e318e07116100d35780635e318e0714610122578063713494d7146101425780637a0f3a2e1461016257806384ae2bc61461018257806389155ef8146101ab57005b8063187806841461010257806323a69e75146101025780632c8958f6146101025780633a1c453c14610102575b005b34801561010e57600080fd5b5061010061011d36600461195d565b6102b6565b34801561012e57600080fd5b5061010061013d3660046119b0565b6102c8565b34801561014e57600080fd5b5061010061015d3660046119b0565b610339565b34801561016e57600080fd5b5061010061017d3660046119e1565b6103b0565b34801561018e57600080fd5b5061019860025481565b6040519081526020015b60405180910390f35b6101986101b9366004611a68565b610506565b3480156101ca57600080fd5b506001546101de906001600160a01b031681565b6040516001600160a01b0390911681526020016101a2565b34801561020257600080fd5b50610198610211366004611ac2565b610743565b34801561022257600080fd5b50610100610231366004611b3e565b610949565b34801561024257600080fd5b506000546101de906001600160a01b031681565b34801561026257600080fd5b50610100610271366004611b6a565b6109ef565b34801561028257600080fd5b5061010061029136600461195d565b610b63565b3480156102a257600080fd5b506101006102b136600461195d565b610b6b565b6102c284848484610b6b565b50505050565b6001546001600160a01b031633146102fb5760405162461bcd60e51b81526004016102f290611bd8565b60405180910390fd5b6001546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610335573d6000803e3d6000fd5b5050565b6001546001600160a01b031633146103635760405162461bcd60e51b81526004016102f290611bd8565b60648111156103ab5760405162461bcd60e51b81526020600482015260146024820152734665652063616e6e6f742065786365656420312560601b60448201526064016102f2565b600255565b60008290506000826001600160a01b0316826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104239190611bfb565b6001600160a01b031614905060008161045a57610455600173fffd8963efd1fc6a506488495d951d5263988d26611c35565b61046a565b61046a6401000276a36001611c5a565b604051630251596160e31b81523060048201528315156024820152604481018890526001600160a01b03808316606483015260a06084830152600060a48301529192509084169063128acb089060c40160408051808303816000875af11580156104d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fc9190611c79565b5050505050505050565b60008034116105455760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b60448201526064016102f2565b60008054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b5050505050600061061c348686808060200260200160405190810160405280939291908181526020016000905b82821015610600576105f160608302860136819003810190611d50565b815260200190600101906105d4565b50506000546001600160a01b0316925088915060019050610cd2565b60005491935091506001600160a01b03908116908216036106c857600054604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561067d57600080fd5b505af1158015610691573d6000803e3d6000fd5b505060405133925084156108fc02915084906000818181858888f193505050501580156106c2573d6000803e3d6000fd5b5061073b565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0382169063a9059cbb906044016020604051808303816000875af1158015610715573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107399190611d6c565b505b509392505050565b6040516323b872dd60e01b8152336004820152306024820152604481018790526000906001600160a01b038516906323b872dd906064016020604051808303816000875af1158015610799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bd9190611d6c565b50600061081f888888808060200260200160405190810160405280939291908181526020016000905b828210156108125761080360608302860136819003810190611d50565b815260200190600101906107e6565b5050505050878787610cd2565b60005491935091506001600160a01b03908116908216036108cb57600054604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561088057600080fd5b505af1158015610894573d6000803e3d6000fd5b505060405133925084156108fc02915084906000818181858888f193505050501580156108c5573d6000803e3d6000fd5b5061093e565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0382169063a9059cbb906044016020604051808303816000875af1158015610918573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093c9190611d6c565b505b509695505050505050565b6001546001600160a01b031633146109735760405162461bcd60e51b81526004016102f290611bd8565b60015460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af11580156109c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ea9190611d6c565b505050565b60008686868686604051602001610a0a959493929190611d89565b604051602081830303815290604052905060008290506000856001600160a01b0316826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8e9190611bfb565b6001600160a01b0316149050600081610ac557610ac0600173fffd8963efd1fc6a506488495d951d5263988d26611c35565b610ad5565b610ad56401000276a36001611c5a565b90506001600160a01b03831663128acb083084610af18e611e1b565b85896040518663ffffffff1660e01b8152600401610b13959493929190611e87565b60408051808303816000875af1158015610b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b559190611c79565b505050505050505050505050565b6102c2838584845b6040819003610c1357600080610b8383850185611edd565b9150915060008115610b96575085610b99565b50845b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a9190611d6c565b505050506102c2565b6000819003610c8157600080851215610c3657610c2f85611e1b565b9050610c42565b610c3f84611e1b565b90505b610c4b8161162d565b604051602001610c5b9190611f16565b60408051601f198184030181529082905262461bcd60e51b82526102f291600401611f7b565b6000808080610c9285870187611f8e565b9350935093509350600080610cab868686866001610cd2565b91509150610cb88261162d565b610cc18261173c565b604051602001610c5b92919061206c565b60008060008711610d1c5760405162461bcd60e51b81526020600482015260146024820152730616d6f756e74496e206d757374206265203e20360641b60448201526064016102f2565b8215610dc757600061271060025489610d35919061210b565b610d3f9190612138565b60015460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925087169063a9059cbb906044016020604051808303816000875af1158015610d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db89190611d6c565b50610dc3818961214c565b9750505b508590508360005b865181101561153457868181518110610dea57610dea61215f565b60200260200101516020015115611018576000878281518110610e0f57610e0f61215f565b60200260200101516000015190506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e819190611bfb565b90506001600160a01b0384811690821614600081610ebd57610eb8600173fffd8963efd1fc6a506488495d951d5263988d26611c35565b610ecd565b610ecd6401000276a36001611c5a565b9050600080856001600160a01b031663128acb0830868c878d8a604051602001610f0e9291906001600160a01b039290921682521515602082015260400190565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401610f3d959493929190611e87565b60408051808303816000875af1158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f9190611c79565b915091508315610ffd57856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610feb9190611bfb565b9750610ff681611e1b565b985061100d565b8497508161100a90611e1b565b98505b50505050505061152c565b600087828151811061102c5761102c61215f565b60200260200101516000015190506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e9190611bfb565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111049190611bfb565b90506000826001600160a01b0316866001600160a01b03160361112857508061112b565b50815b600080600080876001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561116f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611193919061218c565b506001600160701b031691506001600160701b03169150866001600160a01b03168a6001600160a01b0316036111ce578193508092506111d5565b8093508192505b5050600060018e89815181106111ed576111ed61215f565b602002602001015160400151111561126b5760006127108f8a815181106112165761121661215f565b60200260200101516040015161271061122f919061214c565b611239908d61210b565b6112439190612138565b905061124f81856121d1565b611259848361210b565b6112639190612138565b91505061137c565b8d888151811061127d5761127d61215f565b6020026020010151604001516001036113085760405163ca706bcf60e01b81526001600160a01b038a81166004830152602482018c905288169063ca706bcf90604401602060405180830381865afa1580156112dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130191906121e4565b905061137c565b6040516378a051ad60e11b8152600481018b90526001600160a01b038a8116602483015288169063f140a35a90604401602060405180830381865afa158015611355573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137991906121e4565b90505b6000866001600160a01b03168a6001600160a01b03161461139d57816113a0565b60005b90506000876001600160a01b03168b6001600160a01b0316146113c45760006113c6565b825b60405163a9059cbb60e01b81526001600160a01b038b81166004830152602482018f9052919250908c169063a9059cbb906044016020604051808303816000875af1158015611419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143d9190611d6c565b5060405163022c0d9f60e01b8152600481018390526024810182905230604482015260806064820152600060848201526001600160a01b038a169063022c0d9f9060a401600060405180830381600087803b15801561149b57600080fd5b505af11580156114af573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152979c508c976001600160a01b03891692506370a082319150602401602060405180830381865afa1580156114fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152091906121e4565b9b505050505050505050505b600101610dcf565b50838210156115795760405162461bcd60e51b81526020600482015260116024820152700a6d8d2e0e0c2ceca40e8dede40d0d2ced607b1b60448201526064016102f2565b8261162357600061271060025484611591919061210b565b61159b9190612138565b60015460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303816000875af11580156115f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116149190611d6c565b5061161f818461214c565b9250505b9550959350505050565b6060816000036116545750506040805180820190915260018152600360fc1b602082015290565b8160005b811561167e5780611668816121fd565b91506116779050600a83612138565b9150611658565b60008167ffffffffffffffff81111561169957611699611c9d565b6040519080825280601f01601f1916602001820160405280156116c3576020820181803683370190505b508593509050815b831561173357806116db81612216565b91506116ea9050600a8561222d565b6116f59060306121d1565b60f81b82828151811061170a5761170a61215f565b60200101906001600160f81b031916908160001a90535061172c600a85612138565b93506116cb565b50949350505050565b604080518082018252601081526f181899199a1a9b1b9c1cb0b131b232b360811b60208201528151602a80825260608281019094526001600160a01b0385169291600091602082018180368337019050509050600360fc1b816000815181106117a7576117a761215f565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117d6576117d661215f565b60200101906001600160f81b031916908160001a90535060005b6014811015611733578260048561180884600c6121d1565b602081106118185761181861215f565b1a60f81b6001600160f81b031916901c60f81c60ff168151811061183e5761183e61215f565b01602001516001600160f81b0319168261185983600261210b565b6118649060026121d1565b815181106118745761187461215f565b60200101906001600160f81b031916908160001a905350828461189883600c6121d1565b602081106118a8576118a861215f565b825191901a600f169081106118bf576118bf61215f565b01602001516001600160f81b031916826118da83600261210b565b6118e59060036121d1565b815181106118f5576118f561215f565b60200101906001600160f81b031916908160001a9053506001016117f0565b60008083601f84011261192657600080fd5b50813567ffffffffffffffff81111561193e57600080fd5b60208301915083602082850101111561195657600080fd5b9250929050565b6000806000806060858703121561197357600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561199857600080fd5b6119a487828801611914565b95989497509550505050565b6000602082840312156119c257600080fd5b5035919050565b6001600160a01b03811681146119de57600080fd5b50565b6000806000606084860312156119f657600080fd5b833592506020840135611a08816119c9565b91506040840135611a18816119c9565b809150509250925092565b60008083601f840112611a3557600080fd5b50813567ffffffffffffffff811115611a4d57600080fd5b60208301915083602060608302850101111561195657600080fd5b600080600060408486031215611a7d57600080fd5b833567ffffffffffffffff811115611a9457600080fd5b611aa086828701611a23565b909790965060209590950135949350505050565b80151581146119de57600080fd5b60008060008060008060a08789031215611adb57600080fd5b86359550602087013567ffffffffffffffff811115611af957600080fd5b611b0589828a01611a23565b9096509450506040870135611b19816119c9565b9250606087013591506080870135611b3081611ab4565b809150509295509295509295565b60008060408385031215611b5157600080fd5b8235611b5c816119c9565b946020939093013593505050565b60008060008060008060a08789031215611b8357600080fd5b86359550602087013567ffffffffffffffff811115611ba157600080fd5b611bad89828a01611a23565b9096509450506040870135611bc1816119c9565b9250606087013591506080870135611b30816119c9565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b600060208284031215611c0d57600080fd5b8151611c18816119c9565b9392505050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038281168282160390811115611c5457611c54611c1f565b92915050565b6001600160a01b038181168382160190811115611c5457611c54611c1f565b60008060408385031215611c8c57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611cdc57611cdc611c9d565b604052919050565b600060608284031215611cf657600080fd5b6040516060810167ffffffffffffffff81118282101715611d1957611d19611c9d565b6040529050808235611d2a816119c9565b81526020830135611d3a81611ab4565b6020820152604092830135920191909152919050565b600060608284031215611d6257600080fd5b611c188383611ce4565b600060208284031215611d7e57600080fd5b8151611c1881611ab4565b858152608060208201819052810184905260008560a08301825b87811015611df2578235611db6816119c9565b6001600160a01b031682526020830135611dcf81611ab4565b151560208301526040838101359083015260609283019290910190600101611da3565b506001600160a01b03861660408501529150611e0b9050565b8260608301529695505050505050565b6000600160ff1b8201611e3057611e30611c1f565b5060000390565b60005b83811015611e52578181015183820152602001611e3a565b50506000910152565b60008151808452611e73816020860160208601611e37565b601f01601f19169290920160200192915050565b6001600160a01b0386811682528515156020830152604082018590528316606082015260a060808201819052600090611ec290830184611e5b565b979650505050505050565b8035611ed8816119c9565b919050565b60008060408385031215611ef057600080fd5b8235611efb816119c9565b91506020830135611f0b81611ab4565b809150509250929050565b69029b4b6bab630ba329d160b51b8152607b60f81b600a820152691130b6b7bab73a111d1160b11b600b8201528151600090611f59816015850160208701611e37565b601160f91b6015939091019283015250607d60f81b6016820152601701919050565b602081526000611c186020830184611e5b565b60008060008060808587031215611fa457600080fd5b84359350602085013567ffffffffffffffff811115611fc257600080fd5b8501601f81018713611fd357600080fd5b803567ffffffffffffffff811115611fed57611fed611c9d565b611ffc60208260051b01611cb3565b8082825260208201915060206060840285010192508983111561201e57600080fd5b6020840193505b8284101561204a576120378a85611ce4565b8252602082019150606084019350612025565b955061205c9250505060408601611ecd565b9396929550929360600135925050565b69029b4b6bab630ba329d160b51b8152607b60f81b600a820152691130b6b7bab73a111d1160b11b600b82015282516000906120af816015850160208801611e37565b61088b60f21b6015918401918201526c113a37b5b2b72fb7baba111d1160991b601782015283516120e7816024840160208801611e37565b601160f91b60249290910191820152607d60f81b6025820152602601949350505050565b8082028115828204841417611c5457611c54611c1f565b634e487b7160e01b600052601260045260246000fd5b60008261214757612147612122565b500490565b81810381811115611c5457611c54611c1f565b634e487b7160e01b600052603260045260246000fd5b80516001600160701b0381168114611ed857600080fd5b6000806000606084860312156121a157600080fd5b6121aa84612175565b92506121b860208501612175565b9150604084015163ffffffff81168114611a1857600080fd5b80820180821115611c5457611c54611c1f565b6000602082840312156121f657600080fd5b5051919050565b60006001820161220f5761220f611c1f565b5060010190565b60008161222557612225611c1f565b506000190190565b60008261223c5761223c612122565b50069056fea2646970667358221220763959177b0fea40059d77a08fd504b50f959db359aa938280ad1dcc9460ac0c64736f6c634300081b003300000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1
Deployed Bytecode
0x6080604052600436106101005760003560e01c80638da5cb5b1161008f578063ad5c464811610061578063ad5c464814610236578063bc9d487e14610256578063d3e1c28414610276578063fa461e3314610296578063fa483e721461010257005b80638da5cb5b146101be578063923b8a2a14610102578063a13940b0146101f6578063ad3b1b471461021657005b80635e318e07116100d35780635e318e0714610122578063713494d7146101425780637a0f3a2e1461016257806384ae2bc61461018257806389155ef8146101ab57005b8063187806841461010257806323a69e75146101025780632c8958f6146101025780633a1c453c14610102575b005b34801561010e57600080fd5b5061010061011d36600461195d565b6102b6565b34801561012e57600080fd5b5061010061013d3660046119b0565b6102c8565b34801561014e57600080fd5b5061010061015d3660046119b0565b610339565b34801561016e57600080fd5b5061010061017d3660046119e1565b6103b0565b34801561018e57600080fd5b5061019860025481565b6040519081526020015b60405180910390f35b6101986101b9366004611a68565b610506565b3480156101ca57600080fd5b506001546101de906001600160a01b031681565b6040516001600160a01b0390911681526020016101a2565b34801561020257600080fd5b50610198610211366004611ac2565b610743565b34801561022257600080fd5b50610100610231366004611b3e565b610949565b34801561024257600080fd5b506000546101de906001600160a01b031681565b34801561026257600080fd5b50610100610271366004611b6a565b6109ef565b34801561028257600080fd5b5061010061029136600461195d565b610b63565b3480156102a257600080fd5b506101006102b136600461195d565b610b6b565b6102c284848484610b6b565b50505050565b6001546001600160a01b031633146102fb5760405162461bcd60e51b81526004016102f290611bd8565b60405180910390fd5b6001546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610335573d6000803e3d6000fd5b5050565b6001546001600160a01b031633146103635760405162461bcd60e51b81526004016102f290611bd8565b60648111156103ab5760405162461bcd60e51b81526020600482015260146024820152734665652063616e6e6f742065786365656420312560601b60448201526064016102f2565b600255565b60008290506000826001600160a01b0316826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104239190611bfb565b6001600160a01b031614905060008161045a57610455600173fffd8963efd1fc6a506488495d951d5263988d26611c35565b61046a565b61046a6401000276a36001611c5a565b604051630251596160e31b81523060048201528315156024820152604481018890526001600160a01b03808316606483015260a06084830152600060a48301529192509084169063128acb089060c40160408051808303816000875af11580156104d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fc9190611c79565b5050505050505050565b60008034116105455760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b60448201526064016102f2565b60008054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b5050505050600061061c348686808060200260200160405190810160405280939291908181526020016000905b82821015610600576105f160608302860136819003810190611d50565b815260200190600101906105d4565b50506000546001600160a01b0316925088915060019050610cd2565b60005491935091506001600160a01b03908116908216036106c857600054604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561067d57600080fd5b505af1158015610691573d6000803e3d6000fd5b505060405133925084156108fc02915084906000818181858888f193505050501580156106c2573d6000803e3d6000fd5b5061073b565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0382169063a9059cbb906044016020604051808303816000875af1158015610715573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107399190611d6c565b505b509392505050565b6040516323b872dd60e01b8152336004820152306024820152604481018790526000906001600160a01b038516906323b872dd906064016020604051808303816000875af1158015610799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bd9190611d6c565b50600061081f888888808060200260200160405190810160405280939291908181526020016000905b828210156108125761080360608302860136819003810190611d50565b815260200190600101906107e6565b5050505050878787610cd2565b60005491935091506001600160a01b03908116908216036108cb57600054604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561088057600080fd5b505af1158015610894573d6000803e3d6000fd5b505060405133925084156108fc02915084906000818181858888f193505050501580156108c5573d6000803e3d6000fd5b5061093e565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0382169063a9059cbb906044016020604051808303816000875af1158015610918573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093c9190611d6c565b505b509695505050505050565b6001546001600160a01b031633146109735760405162461bcd60e51b81526004016102f290611bd8565b60015460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af11580156109c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ea9190611d6c565b505050565b60008686868686604051602001610a0a959493929190611d89565b604051602081830303815290604052905060008290506000856001600160a01b0316826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8e9190611bfb565b6001600160a01b0316149050600081610ac557610ac0600173fffd8963efd1fc6a506488495d951d5263988d26611c35565b610ad5565b610ad56401000276a36001611c5a565b90506001600160a01b03831663128acb083084610af18e611e1b565b85896040518663ffffffff1660e01b8152600401610b13959493929190611e87565b60408051808303816000875af1158015610b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b559190611c79565b505050505050505050505050565b6102c2838584845b6040819003610c1357600080610b8383850185611edd565b9150915060008115610b96575085610b99565b50845b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a9190611d6c565b505050506102c2565b6000819003610c8157600080851215610c3657610c2f85611e1b565b9050610c42565b610c3f84611e1b565b90505b610c4b8161162d565b604051602001610c5b9190611f16565b60408051601f198184030181529082905262461bcd60e51b82526102f291600401611f7b565b6000808080610c9285870187611f8e565b9350935093509350600080610cab868686866001610cd2565b91509150610cb88261162d565b610cc18261173c565b604051602001610c5b92919061206c565b60008060008711610d1c5760405162461bcd60e51b81526020600482015260146024820152730616d6f756e74496e206d757374206265203e20360641b60448201526064016102f2565b8215610dc757600061271060025489610d35919061210b565b610d3f9190612138565b60015460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925087169063a9059cbb906044016020604051808303816000875af1158015610d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db89190611d6c565b50610dc3818961214c565b9750505b508590508360005b865181101561153457868181518110610dea57610dea61215f565b60200260200101516020015115611018576000878281518110610e0f57610e0f61215f565b60200260200101516000015190506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e819190611bfb565b90506001600160a01b0384811690821614600081610ebd57610eb8600173fffd8963efd1fc6a506488495d951d5263988d26611c35565b610ecd565b610ecd6401000276a36001611c5a565b9050600080856001600160a01b031663128acb0830868c878d8a604051602001610f0e9291906001600160a01b039290921682521515602082015260400190565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401610f3d959493929190611e87565b60408051808303816000875af1158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f9190611c79565b915091508315610ffd57856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610feb9190611bfb565b9750610ff681611e1b565b985061100d565b8497508161100a90611e1b565b98505b50505050505061152c565b600087828151811061102c5761102c61215f565b60200260200101516000015190506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e9190611bfb565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111049190611bfb565b90506000826001600160a01b0316866001600160a01b03160361112857508061112b565b50815b600080600080876001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561116f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611193919061218c565b506001600160701b031691506001600160701b03169150866001600160a01b03168a6001600160a01b0316036111ce578193508092506111d5565b8093508192505b5050600060018e89815181106111ed576111ed61215f565b602002602001015160400151111561126b5760006127108f8a815181106112165761121661215f565b60200260200101516040015161271061122f919061214c565b611239908d61210b565b6112439190612138565b905061124f81856121d1565b611259848361210b565b6112639190612138565b91505061137c565b8d888151811061127d5761127d61215f565b6020026020010151604001516001036113085760405163ca706bcf60e01b81526001600160a01b038a81166004830152602482018c905288169063ca706bcf90604401602060405180830381865afa1580156112dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130191906121e4565b905061137c565b6040516378a051ad60e11b8152600481018b90526001600160a01b038a8116602483015288169063f140a35a90604401602060405180830381865afa158015611355573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137991906121e4565b90505b6000866001600160a01b03168a6001600160a01b03161461139d57816113a0565b60005b90506000876001600160a01b03168b6001600160a01b0316146113c45760006113c6565b825b60405163a9059cbb60e01b81526001600160a01b038b81166004830152602482018f9052919250908c169063a9059cbb906044016020604051808303816000875af1158015611419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143d9190611d6c565b5060405163022c0d9f60e01b8152600481018390526024810182905230604482015260806064820152600060848201526001600160a01b038a169063022c0d9f9060a401600060405180830381600087803b15801561149b57600080fd5b505af11580156114af573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152979c508c976001600160a01b03891692506370a082319150602401602060405180830381865afa1580156114fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152091906121e4565b9b505050505050505050505b600101610dcf565b50838210156115795760405162461bcd60e51b81526020600482015260116024820152700a6d8d2e0e0c2ceca40e8dede40d0d2ced607b1b60448201526064016102f2565b8261162357600061271060025484611591919061210b565b61159b9190612138565b60015460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303816000875af11580156115f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116149190611d6c565b5061161f818461214c565b9250505b9550959350505050565b6060816000036116545750506040805180820190915260018152600360fc1b602082015290565b8160005b811561167e5780611668816121fd565b91506116779050600a83612138565b9150611658565b60008167ffffffffffffffff81111561169957611699611c9d565b6040519080825280601f01601f1916602001820160405280156116c3576020820181803683370190505b508593509050815b831561173357806116db81612216565b91506116ea9050600a8561222d565b6116f59060306121d1565b60f81b82828151811061170a5761170a61215f565b60200101906001600160f81b031916908160001a90535061172c600a85612138565b93506116cb565b50949350505050565b604080518082018252601081526f181899199a1a9b1b9c1cb0b131b232b360811b60208201528151602a80825260608281019094526001600160a01b0385169291600091602082018180368337019050509050600360fc1b816000815181106117a7576117a761215f565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117d6576117d661215f565b60200101906001600160f81b031916908160001a90535060005b6014811015611733578260048561180884600c6121d1565b602081106118185761181861215f565b1a60f81b6001600160f81b031916901c60f81c60ff168151811061183e5761183e61215f565b01602001516001600160f81b0319168261185983600261210b565b6118649060026121d1565b815181106118745761187461215f565b60200101906001600160f81b031916908160001a905350828461189883600c6121d1565b602081106118a8576118a861215f565b825191901a600f169081106118bf576118bf61215f565b01602001516001600160f81b031916826118da83600261210b565b6118e59060036121d1565b815181106118f5576118f561215f565b60200101906001600160f81b031916908160001a9053506001016117f0565b60008083601f84011261192657600080fd5b50813567ffffffffffffffff81111561193e57600080fd5b60208301915083602082850101111561195657600080fd5b9250929050565b6000806000806060858703121561197357600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561199857600080fd5b6119a487828801611914565b95989497509550505050565b6000602082840312156119c257600080fd5b5035919050565b6001600160a01b03811681146119de57600080fd5b50565b6000806000606084860312156119f657600080fd5b833592506020840135611a08816119c9565b91506040840135611a18816119c9565b809150509250925092565b60008083601f840112611a3557600080fd5b50813567ffffffffffffffff811115611a4d57600080fd5b60208301915083602060608302850101111561195657600080fd5b600080600060408486031215611a7d57600080fd5b833567ffffffffffffffff811115611a9457600080fd5b611aa086828701611a23565b909790965060209590950135949350505050565b80151581146119de57600080fd5b60008060008060008060a08789031215611adb57600080fd5b86359550602087013567ffffffffffffffff811115611af957600080fd5b611b0589828a01611a23565b9096509450506040870135611b19816119c9565b9250606087013591506080870135611b3081611ab4565b809150509295509295509295565b60008060408385031215611b5157600080fd5b8235611b5c816119c9565b946020939093013593505050565b60008060008060008060a08789031215611b8357600080fd5b86359550602087013567ffffffffffffffff811115611ba157600080fd5b611bad89828a01611a23565b9096509450506040870135611bc1816119c9565b9250606087013591506080870135611b30816119c9565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b600060208284031215611c0d57600080fd5b8151611c18816119c9565b9392505050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038281168282160390811115611c5457611c54611c1f565b92915050565b6001600160a01b038181168382160190811115611c5457611c54611c1f565b60008060408385031215611c8c57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611cdc57611cdc611c9d565b604052919050565b600060608284031215611cf657600080fd5b6040516060810167ffffffffffffffff81118282101715611d1957611d19611c9d565b6040529050808235611d2a816119c9565b81526020830135611d3a81611ab4565b6020820152604092830135920191909152919050565b600060608284031215611d6257600080fd5b611c188383611ce4565b600060208284031215611d7e57600080fd5b8151611c1881611ab4565b858152608060208201819052810184905260008560a08301825b87811015611df2578235611db6816119c9565b6001600160a01b031682526020830135611dcf81611ab4565b151560208301526040838101359083015260609283019290910190600101611da3565b506001600160a01b03861660408501529150611e0b9050565b8260608301529695505050505050565b6000600160ff1b8201611e3057611e30611c1f565b5060000390565b60005b83811015611e52578181015183820152602001611e3a565b50506000910152565b60008151808452611e73816020860160208601611e37565b601f01601f19169290920160200192915050565b6001600160a01b0386811682528515156020830152604082018590528316606082015260a060808201819052600090611ec290830184611e5b565b979650505050505050565b8035611ed8816119c9565b919050565b60008060408385031215611ef057600080fd5b8235611efb816119c9565b91506020830135611f0b81611ab4565b809150509250929050565b69029b4b6bab630ba329d160b51b8152607b60f81b600a820152691130b6b7bab73a111d1160b11b600b8201528151600090611f59816015850160208701611e37565b601160f91b6015939091019283015250607d60f81b6016820152601701919050565b602081526000611c186020830184611e5b565b60008060008060808587031215611fa457600080fd5b84359350602085013567ffffffffffffffff811115611fc257600080fd5b8501601f81018713611fd357600080fd5b803567ffffffffffffffff811115611fed57611fed611c9d565b611ffc60208260051b01611cb3565b8082825260208201915060206060840285010192508983111561201e57600080fd5b6020840193505b8284101561204a576120378a85611ce4565b8252602082019150606084019350612025565b955061205c9250505060408601611ecd565b9396929550929360600135925050565b69029b4b6bab630ba329d160b51b8152607b60f81b600a820152691130b6b7bab73a111d1160b11b600b82015282516000906120af816015850160208801611e37565b61088b60f21b6015918401918201526c113a37b5b2b72fb7baba111d1160991b601782015283516120e7816024840160208801611e37565b601160f91b60249290910191820152607d60f81b6025820152602601949350505050565b8082028115828204841417611c5457611c54611c1f565b634e487b7160e01b600052601260045260246000fd5b60008261214757612147612122565b500490565b81810381811115611c5457611c54611c1f565b634e487b7160e01b600052603260045260246000fd5b80516001600160701b0381168114611ed857600080fd5b6000806000606084860312156121a157600080fd5b6121aa84612175565b92506121b860208501612175565b9150604084015163ffffffff81168114611a1857600080fd5b80820180821115611c5457611c54611c1f565b6000602082840312156121f657600080fd5b5051919050565b60006001820161220f5761220f611c1f565b5060010190565b60008161222557612225611c1f565b506000190190565b60008261223c5761223c612122565b50069056fea2646970667358221220763959177b0fea40059d77a08fd504b50f959db359aa938280ad1dcc9460ac0c64736f6c634300081b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1
-----Decoded View---------------
Arg [0] : _WETH (address): 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $1,804.84 | 0.0179 | $32.24 |
Loading...
Loading
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.