DECOMPILED SOLIDITY (Heimdall)
VERIFY
// SPDX-License-Identifier: MIT
pragma solidity > = 0.8 . 0 ;
/// @title Decompiled Contract
/// @author Jonathan Becker <jonathan@jbecker.dev>
/// @custom:version heimdall-rs v0.9.2
///
/// @notice This contract was decompiled using the heimdall-rs decompiler.
/// It was generated directly by tracing the EVM opcodes from this contract.
/// As a result, it may not compile or even be valid solidity code.
/// Despite this, it should be obvious what each function does. Overall
/// logic should have been preserved throughout decompiling.
///
/// @custom:github You can find the open-source decompiler here:
/// https://heimdall.rs
contract DecompiledContract {
uint256 public constant unresolved_c45a0155 = 1100026460400060049072154788194713054200419644076 ;
uint256 public constant WETH = 1097077688018008265106216665536940668749033598146 ;
/// @custom:selector 0x791ac947
/// @custom:signature swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 arg0, uint256 arg1, address[] arg2, address arg3, uint256 arg4) public
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["address", "uint160", "bytes20", "int160"]
/// @param arg4 ["uint256", "bytes32", "int256"]
function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 arg0, uint256 arg1, address [ ] arg2, address arg3, uint256 arg4) public {
require ( ! arg2 > 0x0100000000 ) ;
require ( ! ( arg4 < block. timestamp) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( ( 0x20 * ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ) + ( 0x20 + ( arg2) ) ) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0x01 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! ( address ( 0 + ( 0x20 + ( arg2) ) ) = = ( address ( 0x20 + ( 0x20 + ( arg2) ) ) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( 0 + ( 0x20 + ( arg2) ) ) < ( address ( 0x20 + ( 0x20 + ( arg2) ) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( 0 + ( 0x20 + ( arg2) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
uint256 var_d = var_d + 0x48 ;
var_d = var_d + 0xbd ;
var_d = var_d + 0x84 ;
require ( var_d. length < 0x20 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( 0x20 + ( arg2) ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_d = var_d + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
var_h = msg. data[ 36 : 36 ] ;
require ( ! 0 < ( var_d. length - 0x01 ) ) ;
address var_s = address ( this) ;
require ( address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . Unresolved_70a08231( var_s) ; // staticcall
require ( ! ( ret0. length < 0x20 ) , "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
require ( ! ( var_d. length < arg1) , "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
var_s = var_d. length;
require ( address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . { value: 0 ether } Unresolved_2e1a7d4d( var_s) ; // call
var_d = var_d + 0x20 ;
require ( var_d. length < 0x20 , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
require ( ( var_d. length + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 ) < 0x20 , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
( bool success, bytes memory ret0) = address ( arg3) . transfer( var_d. length) ;
require ( ret0. length = = 0 , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
require ( ! var_ab) ;
require ( ! var_ab < 0x20 ) ;
var_d = var_d + ( uint248 ( ret0. length + 0x3f ) ) ;
require ( ! var_d. length, "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! var_d. length, "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_af = var_af;
var_af = var_af;
}
/// @custom:selector 0xb6f9de95
/// @custom:signature swapExactETHForTokensSupportingFeeOnTransferTokens(uint256 arg0, address[] arg1, address arg2, uint256 arg3) public payable
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["address", "uint160", "bytes20", "int160"]
/// @param arg3 ["uint256", "bytes32", "int256"]
function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 arg0, address [ ] arg1, address arg2, uint256 arg3) public payable {
require ( ! arg1 > 0x0100000000 ) ;
require ( ! arg3 < block. timestamp) ;
require ( 0 < ( arg1) ) ;
require ( address ( 0 + ( 0x20 + ( arg1) ) ) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) ;
require ( address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . { value: msg. value } deposit( ) ; // call
require ( 0 < ( arg1) ) ;
require ( 0x01 < ( arg1) ) ;
require ( ! ( address ( 0 + ( 0x20 + ( arg1) ) ) ) = = ( address ( 0x20 + ( 0x20 + ( arg1) ) ) ) ) ;
require ( address ( 0 + ( 0x20 + ( arg1) ) ) < ( address ( 0x20 + ( 0x20 + ( arg1) ) ) ) ) ;
require ( address ( 0 + ( 0x20 + ( arg1) ) ) ) ;
uint256 var_d = var_d + 0x48 ;
var_d = var_d + 0xbd ;
address var_l = address ( keccak256( var_h) ) ;
require ( address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . { value: 0 ether } Unresolved_a9059cbb( var_l) ; // call
require ( ! ret0. length < 0x20 ) ;
require ( var_d. length) ;
require ( ( arg1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg1) ) ;
var_l = address ( arg2) ;
require ( address ( ( 0x20 * ( arg1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ) + ( 0x20 + ( arg1) ) ) . code. length) ;
( bool success, bytes memory ret0) = address ( ( 0x20 * ( arg1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ) + ( 0x20 + ( arg1) ) ) . Unresolved_70a08231( var_l) ; // staticcall
require ( ! ret0. length < 0x20 ) ;
var_d = 0x20 + ( ( 0x20 * ( arg1) ) + var_d) ;
require ( ! 0 < ( var_d. length - 0x01 ) ) ;
require ( ( arg1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg1) ) ;
var_m = address ( arg2) ;
require ( address ( ( 0x20 * ( arg1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ) + ( 0x20 + ( arg1) ) ) . code. length) ;
( bool success, bytes memory ret0) = address ( ( 0x20 * ( arg1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ) + ( 0x20 + ( arg1) ) ) . Unresolved_70a08231( var_m) ; // staticcall
require ( ! ( ret0. length < 0x20 ) , "ds-math-sub-underflow" ) ;
require ( ! ( ( var_d. length - var_d. length) > var_d. length) , "ds-math-sub-underflow" ) ;
require ( ! ( ( var_d. length - var_d. length) < arg0) , "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
var_v = var_v;
var_v = var_v;
}
/// @custom:selector 0xded9382a
/// @custom:signature Unresolved_ded9382a(address arg0, uint256 arg1, uint256 arg2, uint256 arg3, address arg4, uint256 arg5, uint256 arg6, bool arg7, uint256 arg8, uint256 arg9) public
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["uint256", "bytes32", "int256"]
/// @param arg4 ["address", "uint160", "bytes20", "int160"]
/// @param arg5 ["uint256", "bytes32", "int256"]
/// @param arg6 ["uint256", "bytes32", "int256"]
/// @param arg7 ["bool", "uint8", "bytes1", "int8"]
/// @param arg8 ["uint256", "bytes32", "int256"]
/// @param arg9 ["uint256", "bytes32", "int256"]
function Unresolved_ded9382a( address arg0, uint256 arg1, uint256 arg2, uint256 arg3, address arg4, uint256 arg5, uint256 arg6, bool arg7, uint256 arg8, uint256 arg9) public {
require ( ! ( address ( arg0) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( address ( arg0) < 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
uint256 var_c = var_c + 0x48 ;
var_c = var_c + 0xbd ;
require ( arg6) ;
address var_p = msg. sender;
require ( address ( keccak256( var_l) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_l) ) . { value: 0 ether } Unresolved_d505accf( var_p) ; // call
require ( ! ( arg5 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( arg5 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( address ( arg0) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( address ( arg0) < 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
var_c = var_c + 0x48 ;
var_c = var_c + 0xbd ;
uint256 var_ae = msg. sender;
require ( address ( keccak256( var_l) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_l) ) . { value: 0 ether } Unresolved_23b872dd( var_ae) ; // call
require ( ! ret0. length < 0x20 ) ;
var_ae = address ( this) ;
require ( address ( keccak256( var_l) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_l) ) . { value: 0 ether } Unresolved_89afcb44( var_ae) ; // call
require ( ! ret0. length < 0x40 ) ;
require ( address ( arg0) , "UniswapV2Library: ZERO_ADDRESS" ) ;
var_ah = var_ah;
var_ah = var_ah;
var_p = msg. sender;
var_q = address ( this) ;
require ( address ( keccak256( var_l) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_l) ) . { value: 0 ether } Unresolved_d505accf( var_p, var_q) ; // call
require ( ! ( arg5 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( arg5 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( address ( arg0) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( address ( arg0) < 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( address ( arg0) , "UniswapV2Library: ZERO_ADDRESS" ) ;
var_ah = var_ah;
var_ah = var_ah;
}
/// @custom:selector 0xbaa2abde
/// @custom:signature removeLiquidity(address arg0, address arg1, uint256 arg2, uint256 arg3, uint256 arg4, address arg5, uint256 arg6) public
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["uint256", "bytes32", "int256"]
/// @param arg4 ["uint256", "bytes32", "int256"]
/// @param arg5 ["address", "uint160", "bytes20", "int160"]
/// @param arg6 ["uint256", "bytes32", "int256"]
function removeLiquidity( address arg0, address arg1, uint256 arg2, uint256 arg3, uint256 arg4, address arg5, uint256 arg6) public {
require ( ! arg6 < block. timestamp) ;
require ( ! ( address ( arg0) ) = = ( address ( arg1) ) ) ;
require ( address ( arg0) < ( address ( arg1) ) ) ;
require ( address ( arg0) ) ;
uint256 var_d = var_d + 0x48 ;
var_d = var_d + 0xbd ;
address var_l = msg. sender;
require ( address ( keccak256( var_h) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_h) ) . { value: 0 ether } Unresolved_23b872dd( var_l) ; // call
require ( ! ret0. length < 0x20 ) ;
var_l = address ( arg5) ;
require ( address ( keccak256( var_h) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_h) ) . { value: 0 ether } Unresolved_89afcb44( var_l) ; // call
require ( ! ret0. length < 0x40 ) ;
var_s = var_s;
}
/// @custom:selector 0x18cbafe5
/// @custom:signature swapExactTokensForETH(uint256 arg0, uint256 arg1, address[] arg2, address arg3, uint256 arg4) public returns (bytes memory)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["address", "uint160", "bytes20", "int160"]
/// @param arg4 ["uint256", "bytes32", "int256"]
function swapExactTokensForETH( uint256 arg0, uint256 arg1, address [ ] arg2, address arg3, uint256 arg4) public returns ( bytes memory ) {
require ( ! arg2 > 0x0100000000 ) ;
require ( ! arg4 < block. timestamp) ;
require ( ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg2) ) ;
require ( address ( ( 0x20 * ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ) + ( 0x20 + ( arg2) ) ) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) ;
uint256 var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
uint256 var_b = ( arg2) ;
require ( ! var_a. length < 0x02 ) ;
require ( ! var_a. length > 0xffffffffffffffff ) ;
var_a = var_a + ( 0x20 + ( 0x20 * var_a. length) ) ;
require ( ! var_a. length, "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
var_c = msg. data[ 4 : 4 ] ;
require ( ! ( 0 < ( var_a. length - 0x01 ) ) , "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
require ( ( var_a. length - 0x01 ) < var_a. length, "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
require ( ! ( var_f < arg1) , "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
require ( 0 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0x01 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! ( address ( 0 + ( 0x20 + ( arg2) ) ) = = ( address ( 0x20 + ( 0x20 + ( arg2) ) ) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( 0 + ( 0x20 + ( arg2) ) ) < ( address ( 0x20 + ( 0x20 + ( arg2) ) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( 0 + ( 0x20 + ( arg2) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
var_a = var_a + 0x84 ;
require ( var_a. length < 0x20 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( 0x20 + ( arg2) ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
var_c = msg. data[ 36 : 36 ] ;
require ( ! 0 < ( var_a. length - 0x01 ) ) ;
require ( ( var_a. length - 0x01 ) < var_a. length) ;
var_y = var_f;
require ( address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . { value: 0 ether } Unresolved_2e1a7d4d( var_y) ; // call
require ( ( var_a. length - 0x01 ) < var_a. length, "TransferHelper: ETH_TRANSFER_FAILED" ) ;
var_a = var_a + 0x20 ;
require ( var_a. length < 0x20 , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
require ( ( var_a. length + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 ) < 0x20 , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
( bool success, bytes memory ret0) = address ( arg3) . transfer( var_f) ;
require ( ret0. length = = 0 , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
require ( ! ( 0 < ( var_a. length * 0x20 ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
return abi. encodePacked( 0x20 , var_a. length) ;
require ( ! var_ag, "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! ( var_ag < 0x20 ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( var_b, "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_a = var_a + ( uint248 ( ret0. length + 0x3f ) ) ;
if ( ! var_a. length) {
}
require ( ! ( address ( var_c) ) = = ( address ( var_ai) ) ) ;
require ( address ( var_c) < ( address ( var_ai) ) ) ;
require ( address ( var_c) ) ;
require ( ! ( address ( var_c) ) = = ( address ( var_ai) ) ) ;
require ( address ( var_c) < ( address ( var_ai) ) ) ;
require ( address ( var_c) ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
require ( address ( keccak256( var_c) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_c) ) . getReserves( ) ; // staticcall
require ( ! ( ret0. length < 0x60 ) , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" ) ;
require ( address ( var_c) = = ( address ( var_c) ) , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" ) ;
require ( var_c > 0 , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" ) ;
require ( ! ( uint112( var_v) > 0 ) , "ds-math-mul-overflow" ) ;
require ( uint112( var_a. length) > 0 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e5 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e5 , "ds-math-mul-overflow" ) ;
require ( ! ( uint112( var_a. length) ) , "ds-math-mul-overflow" ) ;
require ( uint112( var_a. length) , "ds-math-mul-overflow" ) ;
require ( ( 0 * ( uint112( var_a. length) ) ) / ( uint112( var_a. length) ) = = 0 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e8 , "ds-math-add-overflow" ) ;
require ( ! 0x03e8 , "ds-math-add-overflow" ) ;
require ( ! ( 0 < 0 ) , "ds-math-add-overflow" ) ;
require ( 0 , "ds-math-mul-overflow" ) ;
require ( 0x03e8 , "ds-math-mul-overflow" ) ;
require ( ( ( uint112( var_v) * 0x03e8 ) / 0x03e8 ) = = ( uint112( var_v) ) , "ds-math-mul-overflow" ) ;
var_am = var_am;
var_am = var_am;
}
/// @custom:selector 0x8803dbee
/// @custom:signature swapTokensForExactTokens(uint256 arg0, uint256 arg1, address[] arg2, address arg3, uint256 arg4) public returns (bytes memory)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["address", "uint160", "bytes20", "int160"]
/// @param arg4 ["uint256", "bytes32", "int256"]
function swapTokensForExactTokens( uint256 arg0, uint256 arg1, address [ ] arg2, address arg3, uint256 arg4) public returns ( bytes memory ) {
require ( ! arg2 > 0x0100000000 ) ;
require ( ! arg4 < block. timestamp) ;
uint256 var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
uint256 var_b = ( arg2) ;
require ( ! var_a. length < 0x02 ) ;
require ( ! var_a. length > 0xffffffffffffffff ) ;
var_a = var_a + ( 0x20 + ( 0x20 * var_a. length) ) ;
require ( ! var_a. length, "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" ) ;
var_c = msg. data[ 4 : 4 ] ;
require ( ( var_a. length - 0x01 ) < var_a. length, "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" ) ;
require ( ! ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) , "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" ) ;
require ( ! ( var_c > arg1) , "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" ) ;
require ( 0 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0x01 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! ( address ( 0 + ( 0x20 + ( arg2) ) ) = = ( address ( 0x20 + ( 0x20 + ( arg2) ) ) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( 0 + ( 0x20 + ( arg2) ) ) < ( address ( 0x20 + ( 0x20 + ( arg2) ) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( 0 + ( 0x20 + ( arg2) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
var_a = var_a + 0x84 ;
require ( var_a. length < 0x20 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( 0x20 + ( arg2) ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
var_c = msg. data[ 36 : 36 ] ;
require ( ! ( 0 < ( var_a. length - 0x01 ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! ( 0 < ( var_a. length * 0x20 ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
return abi. encodePacked( 0x20 , var_a. length) ;
require ( ! var_aa, "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! ( var_aa < 0x20 ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( var_b, "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_a = var_a + ( uint248 ( ret0. length + 0x3f ) ) ;
if ( ! var_a. length) {
}
require ( ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) - 0x01 ) < var_a. length) ;
require ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) < var_a. length) ;
require ( ! ( address ( var_ae) ) = = ( address ( var_af) ) ) ;
require ( address ( var_ae) < ( address ( var_af) ) ) ;
require ( address ( var_ae) ) ;
require ( ! ( address ( var_ae) ) = = ( address ( var_af) ) ) ;
require ( address ( var_ae) < ( address ( var_af) ) ) ;
require ( address ( var_ae) ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
require ( address ( keccak256( var_c) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_c) ) . getReserves( ) ; // staticcall
require ( ! ( ret0. length < 0x60 ) , "ds-math-mul-overflow" ) ;
require ( address ( var_ae) = = ( address ( var_ae) ) , "ds-math-mul-overflow" ) ;
require ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) < var_a. length, "ds-math-mul-overflow" ) ;
require ( var_af > 0 , "ds-math-mul-overflow" ) ;
require ( ! ( uint112( var_u) > 0 ) , "ds-math-mul-overflow" ) ;
require ( uint112( var_a. length) > 0 , "ds-math-mul-overflow" ) ;
require ( ! ( var_af) , "ds-math-mul-overflow" ) ;
require ( var_af, "ds-math-mul-overflow" ) ;
require ( uint112( var_u) * ( var_af) / ( var_af) = = ( uint112( var_u) ) , "ds-math-mul-overflow" ) ;
var_aj = var_aj;
}
/// @custom:selector 0x5b0d5984
/// @custom:signature Unresolved_5b0d5984(address arg0, uint256 arg1, uint256 arg2, uint256 arg3, address arg4, uint256 arg5, uint256 arg6, bool arg7, uint256 arg8, uint256 arg9) public
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["uint256", "bytes32", "int256"]
/// @param arg4 ["address", "uint160", "bytes20", "int160"]
/// @param arg5 ["uint256", "bytes32", "int256"]
/// @param arg6 ["uint256", "bytes32", "int256"]
/// @param arg7 ["bool", "uint8", "bytes1", "int8"]
/// @param arg8 ["uint256", "bytes32", "int256"]
/// @param arg9 ["uint256", "bytes32", "int256"]
function Unresolved_5b0d5984( address arg0, uint256 arg1, uint256 arg2, uint256 arg3, address arg4, uint256 arg5, uint256 arg6, bool arg7, uint256 arg8, uint256 arg9) public {
require ( ! ( address ( arg0) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( address ( arg0) < 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
uint256 var_c = var_c + 0x48 ;
var_c = var_c + 0xbd ;
require ( arg6) ;
address var_p = msg. sender;
require ( address ( keccak256( var_l) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_l) ) . { value: 0 ether } Unresolved_d505accf( var_p) ; // call
require ( ! ( arg5 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( arg5 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( address ( arg0) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( address ( arg0) < 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
var_c = var_c + 0x48 ;
var_c = var_c + 0xbd ;
uint256 var_ae = msg. sender;
require ( address ( keccak256( var_l) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_l) ) . { value: 0 ether } Unresolved_23b872dd( var_ae) ; // call
require ( ! ret0. length < 0x20 ) ;
var_ae = address ( this) ;
require ( address ( keccak256( var_l) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_l) ) . { value: 0 ether } Unresolved_89afcb44( var_ae) ; // call
require ( ! ret0. length < 0x40 ) ;
require ( address ( arg0) , "UniswapV2Library: ZERO_ADDRESS" ) ;
var_ah = var_ah;
var_ah = var_ah;
var_p = msg. sender;
var_q = address ( this) ;
require ( address ( keccak256( var_l) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_l) ) . { value: 0 ether } Unresolved_d505accf( var_p, var_q) ; // call
require ( ! ( arg5 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( arg5 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( address ( arg0) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( address ( arg0) < 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( address ( arg0) , "UniswapV2Library: ZERO_ADDRESS" ) ;
var_ah = var_ah;
var_ah = var_ah;
}
/// @custom:selector 0x85f8c259
/// @custom:signature getAmountIn(uint256 arg0, uint256 arg1, uint256 arg2) public pure
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
function getAmountIn( uint256 arg0, uint256 arg1, uint256 arg2) public pure {
require ( arg0 > 0 , "ds-math-mul-overflow" ) ;
require ( ! ( arg1 > 0 ) , "ds-math-mul-overflow" ) ;
require ( arg2 > 0 , "ds-math-mul-overflow" ) ;
require ( ! arg0, "ds-math-mul-overflow" ) ;
require ( arg0, "ds-math-mul-overflow" ) ;
require ( ( ( arg1 * arg0) / arg0) = = arg1, "ds-math-mul-overflow" ) ;
}
/// @custom:selector 0xe8e33700
/// @custom:signature addLiquidity(address arg0, address arg1, uint256 arg2, uint256 arg3, uint256 arg4, uint256 arg5, address arg6, uint256 arg7) public
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["uint256", "bytes32", "int256"]
/// @param arg4 ["uint256", "bytes32", "int256"]
/// @param arg5 ["uint256", "bytes32", "int256"]
/// @param arg6 ["address", "uint160", "bytes20", "int160"]
/// @param arg7 ["uint256", "bytes32", "int256"]
function addLiquidity( address arg0, address arg1, uint256 arg2, uint256 arg3, uint256 arg4, uint256 arg5, address arg6, uint256 arg7) public {
require ( ! arg7 < block. timestamp) ;
address var_b = address ( arg0) ;
require ( address ( 0xc0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac ) . Unresolved_e6a43905( var_b) ; // staticcall
require ( ! ( ret0. length < 0x20 ) , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( ! ( address ( var_d. length) = = 0 ) , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( ! ( address ( arg0) = = ( address ( arg1) ) ) , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( address ( arg0) < ( address ( arg1) ) , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( address ( arg0) , "UniswapV2Library: ZERO_ADDRESS" ) ;
var_b = address ( arg0) ;
require ( address ( 0xc0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac ) . { value: 0 ether } Unresolved_c9c65396( var_b) ; // call
require ( ! ret0. length < 0x20 ) ;
var_g = var_g;
}
/// @custom:selector 0x1f00ca74
/// @custom:signature getAmountsIn(uint256 arg0, address[] arg1) public returns (bytes memory)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
function getAmountsIn( uint256 arg0, address [ ] arg1) public returns ( bytes memory ) {
require ( ! arg1 > 0x0100000000 ) ;
uint256 var_a = var_a + ( 0x20 + ( 0x20 * ( arg1) ) ) ;
require ( ! var_a. length < 0x02 ) ;
require ( ! var_a. length > 0xffffffffffffffff ) ;
var_a = var_a + ( 0x20 + ( 0x20 * var_a. length) ) ;
require ( ! var_a. length) ;
var_c = msg. data[ 4 : 4 ] ;
require ( ( var_a. length - 0x01 ) < var_a. length) ;
require ( ! 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) ;
require ( ! 0 < ( var_a. length * 0x20 ) ) ;
return abi. encodePacked( 0x20 , var_a. length) ;
require ( ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) - 0x01 ) < var_a. length) ;
require ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) < var_a. length) ;
require ( ! ( address ( var_g) ) = = ( address ( var_h) ) ) ;
require ( address ( var_g) < ( address ( var_h) ) ) ;
require ( address ( var_g) ) ;
require ( ! ( address ( var_g) ) = = ( address ( var_h) ) ) ;
require ( address ( var_g) < ( address ( var_h) ) ) ;
require ( address ( var_g) ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
require ( address ( keccak256( var_c) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_c) ) . getReserves( ) ; // staticcall
require ( ! ( ret0. length < 0x60 ) , "ds-math-mul-overflow" ) ;
require ( address ( var_g) = = ( address ( var_g) ) , "ds-math-mul-overflow" ) ;
require ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) < var_a. length, "ds-math-mul-overflow" ) ;
require ( var_h > 0 , "ds-math-mul-overflow" ) ;
require ( ! ( uint112( var_p) > 0 ) , "ds-math-mul-overflow" ) ;
require ( uint112( var_a. length) > 0 , "ds-math-mul-overflow" ) ;
require ( ! ( var_h) , "ds-math-mul-overflow" ) ;
require ( var_h, "ds-math-mul-overflow" ) ;
require ( uint112( var_p) * ( var_h) / ( var_h) = = ( uint112( var_p) ) , "ds-math-mul-overflow" ) ;
}
/// @custom:selector 0xad615dec
/// @custom:signature quote(uint256 arg0, uint256 arg1, uint256 arg2) public pure returns (uint256)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
function quote( uint256 arg0, uint256 arg1, uint256 arg2) public pure returns ( uint256 ) {
require ( arg0 > 0 , "ds-math-mul-overflow" ) ;
require ( ! ( arg1 > 0 ) , "ds-math-mul-overflow" ) ;
require ( arg2 > 0 , "ds-math-mul-overflow" ) ;
require ( ! arg2, "ds-math-mul-overflow" ) ;
require ( arg2, "ds-math-mul-overflow" ) ;
require ( ( ( arg0 * arg2) / arg2) = = arg0, "ds-math-mul-overflow" ) ;
require ( arg1, "ds-math-mul-overflow" ) ;
return ( arg0 * arg2) / arg1;
require ( ! arg2, "ds-math-mul-overflow" ) ;
require ( arg1, "UniswapV2Library: INSUFFICIENT_LIQUIDITY" ) ;
return 0 / arg1;
}
/// @custom:selector 0xf305d719
/// @custom:signature addLiquidityETH(address arg0, uint256 arg1, uint256 arg2, uint256 arg3, address arg4, uint256 arg5) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["uint256", "bytes32", "int256"]
/// @param arg4 ["address", "uint160", "bytes20", "int160"]
/// @param arg5 ["uint256", "bytes32", "int256"]
function addLiquidityETH( address arg0, uint256 arg1, uint256 arg2, uint256 arg3, address arg4, uint256 arg5) public payable {
require ( ! arg5 < block. timestamp) ;
address var_b = address ( arg0) ;
require ( address ( 0xc0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac ) . Unresolved_e6a43905( var_b) ; // staticcall
require ( ! ( ret0. length < 0x20 ) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( address ( var_d. length) = = 0 ) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( address ( arg0) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( address ( arg0) < 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( address ( arg0) , "UniswapV2Library: ZERO_ADDRESS" ) ;
var_b = address ( arg0) ;
require ( address ( 0xc0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac ) . { value: 0 ether } Unresolved_c9c65396( var_b) ; // call
require ( ! ret0. length < 0x20 ) ;
var_g = var_g;
}
/// @custom:selector 0xfb3bdb41
/// @custom:signature swapETHForExactTokens(uint256 arg0, address[] arg1, address arg2, uint256 arg3) public payable returns (bytes memory)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["address", "uint160", "bytes20", "int160"]
/// @param arg3 ["uint256", "bytes32", "int256"]
function swapETHForExactTokens( uint256 arg0, address [ ] arg1, address arg2, uint256 arg3) public payable returns ( bytes memory ) {
require ( ! arg1 > 0x0100000000 ) ;
require ( ! arg3 < block. timestamp) ;
require ( 0 < ( arg1) ) ;
require ( address ( 0 + ( 0x20 + ( arg1) ) ) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) ;
uint256 var_a = var_a + ( 0x20 + ( 0x20 * ( arg1) ) ) ;
require ( ! var_a. length < 0x02 ) ;
require ( ! var_a. length > 0xffffffffffffffff ) ;
var_a = var_a + ( 0x20 + ( 0x20 * var_a. length) ) ;
require ( ! var_a. length, "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" ) ;
var_c = msg. data[ 4 : 4 ] ;
require ( ( var_a. length - 0x01 ) < var_a. length, "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" ) ;
require ( ! ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) , "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" ) ;
require ( ! ( var_c > msg. value) , "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" ) ;
require ( address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . { value: var_c } deposit( ) ; // call
require ( 0 < ( arg1) ) ;
require ( 0x01 < ( arg1) ) ;
require ( ! ( address ( 0 + ( 0x20 + ( arg1) ) ) ) = = ( address ( 0x20 + ( 0x20 + ( arg1) ) ) ) ) ;
require ( address ( 0 + ( 0x20 + ( arg1) ) ) < ( address ( 0x20 + ( 0x20 + ( arg1) ) ) ) ) ;
require ( address ( 0 + ( 0x20 + ( arg1) ) ) ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
address var_q = address ( keccak256( var_c) ) ;
require ( address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . { value: 0 ether } Unresolved_a9059cbb( var_q) ; // call
require ( ! ( ret0. length < 0x20 ) , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
require ( var_a. length, "TransferHelper: ETH_TRANSFER_FAILED" ) ;
var_a = var_a + ( 0x20 + ( 0x20 * ( arg1) ) ) ;
var_c = msg. data[ 36 : 36 ] ;
require ( ! ( 0 < ( var_a. length - 0x01 ) ) , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
require ( ! ( msg. value > ( var_c) ) , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
var_a = var_a + 0x20 ;
require ( var_a. length < 0x20 , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
require ( ( var_a. length + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 ) < 0x20 , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
( bool success, bytes memory ret0) = address ( msg. sender) . transfer( msg. value - ( var_c) ) ;
require ( ret0. length = = 0 , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
require ( ! 0 < ( var_a. length * 0x20 ) ) ;
return abi. encodePacked( 0x20 , var_a. length) ;
require ( ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) - 0x01 ) < var_a. length) ;
require ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) < var_a. length) ;
require ( ! ( address ( var_aa) ) = = ( address ( var_ab) ) ) ;
require ( address ( var_aa) < ( address ( var_ab) ) ) ;
require ( address ( var_aa) ) ;
require ( ! ( address ( var_aa) ) = = ( address ( var_ab) ) ) ;
require ( address ( var_aa) < ( address ( var_ab) ) ) ;
require ( address ( var_aa) ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
require ( address ( keccak256( var_c) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_c) ) . getReserves( ) ; // staticcall
require ( ! ( ret0. length < 0x60 ) , "ds-math-mul-overflow" ) ;
require ( address ( var_aa) = = ( address ( var_aa) ) , "ds-math-mul-overflow" ) ;
require ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) < var_a. length, "ds-math-mul-overflow" ) ;
require ( var_ab > 0 , "ds-math-mul-overflow" ) ;
require ( ! ( uint112( var_ac) > 0 ) , "ds-math-mul-overflow" ) ;
require ( uint112( var_a. length) > 0 , "ds-math-mul-overflow" ) ;
require ( ! ( var_ab) , "ds-math-mul-overflow" ) ;
require ( var_ab, "ds-math-mul-overflow" ) ;
require ( uint112( var_ac) * ( var_ab) / ( var_ab) = = ( uint112( var_ac) ) , "ds-math-mul-overflow" ) ;
var_af = var_af;
var_af = var_af;
}
/// @custom:selector 0x02751cec
/// @custom:signature removeLiquidityETH(address arg0, uint256 arg1, uint256 arg2, uint256 arg3, address arg4, uint256 arg5) public
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["uint256", "bytes32", "int256"]
/// @param arg4 ["address", "uint160", "bytes20", "int160"]
/// @param arg5 ["uint256", "bytes32", "int256"]
function removeLiquidityETH( address arg0, uint256 arg1, uint256 arg2, uint256 arg3, address arg4, uint256 arg5) public {
require ( ! ( arg5 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( arg5 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( address ( arg0) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( address ( arg0) < 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
uint256 var_c = var_c + 0x48 ;
address var_p = msg. sender;
require ( address ( keccak256( var_l) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_l) ) . { value: 0 ether } Unresolved_23b872dd( var_p) ; // call
require ( ! ret0. length < 0x20 ) ;
var_p = address ( this) ;
require ( address ( keccak256( var_l) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_l) ) . { value: 0 ether } Unresolved_89afcb44( var_p) ; // call
require ( ! ret0. length < 0x40 ) ;
require ( address ( arg0) , "UniswapV2Library: ZERO_ADDRESS" ) ;
var_s = var_s;
var_s = var_s;
}
/// @custom:selector 0xd06ca61f
/// @custom:signature getAmountsOut(uint256 arg0, address[] arg1) public returns (bytes memory)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
function getAmountsOut( uint256 arg0, address [ ] arg1) public returns ( bytes memory ) {
require ( ! arg1 > 0x0100000000 ) ;
uint256 var_a = var_a + ( 0x20 + ( 0x20 * ( arg1) ) ) ;
require ( ! var_a. length < 0x02 ) ;
require ( ! var_a. length > 0xffffffffffffffff ) ;
var_a = var_a + ( 0x20 + ( 0x20 * var_a. length) ) ;
require ( ! var_a. length) ;
var_c = msg. data[ 4 : 4 ] ;
require ( ! 0 < ( var_a. length - 0x01 ) ) ;
require ( ! 0 < ( var_a. length * 0x20 ) ) ;
return abi. encodePacked( 0x20 , var_a. length) ;
require ( ! ( address ( var_c) ) = = ( address ( var_g) ) ) ;
require ( address ( var_c) < ( address ( var_g) ) ) ;
require ( address ( var_c) ) ;
require ( ! ( address ( var_c) ) = = ( address ( var_g) ) ) ;
require ( address ( var_c) < ( address ( var_g) ) ) ;
require ( address ( var_c) ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
require ( address ( keccak256( var_c) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_c) ) . getReserves( ) ; // staticcall
require ( ! ( ret0. length < 0x60 ) , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" ) ;
require ( address ( var_c) = = ( address ( var_c) ) , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" ) ;
require ( var_c > 0 , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" ) ;
require ( ! ( uint112( var_r) > 0 ) , "ds-math-mul-overflow" ) ;
require ( uint112( var_a. length) > 0 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e5 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e5 , "ds-math-mul-overflow" ) ;
require ( ! ( uint112( var_a. length) ) , "ds-math-mul-overflow" ) ;
require ( uint112( var_a. length) , "ds-math-mul-overflow" ) ;
require ( ( 0 * ( uint112( var_a. length) ) ) / ( uint112( var_a. length) ) = = 0 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e8 , "ds-math-add-overflow" ) ;
require ( ! 0x03e8 , "ds-math-add-overflow" ) ;
require ( ! ( 0 < 0 ) , "ds-math-add-overflow" ) ;
require ( 0 , "ds-math-mul-overflow" ) ;
require ( 0x03e8 , "ds-math-mul-overflow" ) ;
require ( ( ( uint112( var_r) * 0x03e8 ) / 0x03e8 ) = = ( uint112( var_r) ) , "ds-math-mul-overflow" ) ;
}
/// @custom:selector 0x054d50d4
/// @custom:signature getAmountOut(uint256 arg0, uint256 arg1, uint256 arg2) public pure returns (uint256)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
function getAmountOut( uint256 arg0, uint256 arg1, uint256 arg2) public pure returns ( uint256 ) {
require ( arg0 > 0 , "ds-math-mul-overflow" ) ;
require ( ! ( arg1 > 0 ) , "ds-math-mul-overflow" ) ;
require ( arg2 > 0 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e5 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e5 , "ds-math-mul-overflow" ) ;
require ( ! arg2, "ds-math-mul-overflow" ) ;
require ( arg2, "ds-math-mul-overflow" ) ;
require ( ( ( 0 * arg2) / arg2) = = 0 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e8 , "ds-math-add-overflow" ) ;
require ( ! 0x03e8 , "ds-math-add-overflow" ) ;
require ( ! ( 0 < 0 ) , "ds-math-add-overflow" ) ;
require ( 0 , "ds-math-mul-overflow" ) ;
return ( 0 * arg2) / 0 ;
require ( 0x03e8 , "ds-math-mul-overflow" ) ;
require ( ( ( arg1 * 0x03e8 ) / 0x03e8 ) = = arg1, "ds-math-mul-overflow" ) ;
}
/// @custom:selector 0x2195995c
/// @custom:signature Unresolved_2195995c(address arg0, address arg1, uint256 arg2, uint256 arg3, uint256 arg4, address arg5, uint256 arg6, uint256 arg7, bool arg8, uint256 arg9, uint256 arg10) public
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["uint256", "bytes32", "int256"]
/// @param arg4 ["uint256", "bytes32", "int256"]
/// @param arg5 ["address", "uint160", "bytes20", "int160"]
/// @param arg6 ["uint256", "bytes32", "int256"]
/// @param arg7 ["uint256", "bytes32", "int256"]
/// @param arg8 ["bool", "uint8", "bytes1", "int8"]
/// @param arg9 ["uint256", "bytes32", "int256"]
/// @param arg10 ["uint256", "bytes32", "int256"]
function Unresolved_2195995c( address arg0, address arg1, uint256 arg2, uint256 arg3, uint256 arg4, address arg5, uint256 arg6, uint256 arg7, bool arg8, uint256 arg9, uint256 arg10) public {
require ( ! ( address ( arg0) ) = = ( address ( arg1) ) ) ;
require ( address ( arg0) < ( address ( arg1) ) ) ;
require ( address ( arg0) ) ;
uint256 var_d = var_d + 0x48 ;
var_d = var_d + 0xbd ;
require ( arg7) ;
address var_l = msg. sender;
require ( address ( keccak256( var_h) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_h) ) . { value: 0 ether } Unresolved_d505accf( var_l) ; // call
require ( ! arg6 < block. timestamp) ;
require ( ! ( address ( arg0) ) = = ( address ( arg1) ) ) ;
require ( address ( arg0) < ( address ( arg1) ) ) ;
require ( address ( arg0) ) ;
var_d = var_d + 0x48 ;
var_d = var_d + 0xbd ;
address var_aa = msg. sender;
require ( address ( keccak256( var_h) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_h) ) . { value: 0 ether } Unresolved_23b872dd( var_aa) ; // call
require ( ! ret0. length < 0x20 ) ;
var_aa = address ( arg5) ;
require ( address ( keccak256( var_h) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_h) ) . { value: 0 ether } Unresolved_89afcb44( var_aa) ; // call
require ( ! ret0. length < 0x40 ) ;
var_ae = var_ae;
var_l = msg. sender;
var_m = address ( this) ;
require ( address ( keccak256( var_h) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_h) ) . { value: 0 ether } Unresolved_d505accf( var_l, var_m) ; // call
if ( ! arg6 < block. timestamp) {
require ( ! ( arg6 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( address ( arg0) = = ( address ( arg1) ) ) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
}
var_ae = var_ae;
}
/// @custom:selector 0x5c11d795
/// @custom:signature swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256 arg0, uint256 arg1, address[] arg2, address arg3, uint256 arg4) public
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["address", "uint160", "bytes20", "int160"]
/// @param arg4 ["uint256", "bytes32", "int256"]
function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 arg0, uint256 arg1, address [ ] arg2, address arg3, uint256 arg4) public {
require ( ! arg2 > 0x0100000000 ) ;
require ( ! ( arg4 < block. timestamp) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0x01 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! ( address ( 0 + ( 0x20 + ( arg2) ) ) = = ( address ( 0x20 + ( 0x20 + ( arg2) ) ) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( 0 + ( 0x20 + ( arg2) ) ) < ( address ( 0x20 + ( 0x20 + ( arg2) ) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( 0 + ( 0x20 + ( arg2) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
uint256 var_d = var_d + 0x48 ;
var_d = var_d + 0xbd ;
var_d = var_d + 0x84 ;
require ( var_d. length < 0x20 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( 0x20 + ( arg2) ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg2) ) ;
var_r = address ( arg3) ;
require ( address ( ( 0x20 * ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ) + ( 0x20 + ( arg2) ) ) . code. length) ;
( bool success, bytes memory ret0) = address ( ( 0x20 * ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ) + ( 0x20 + ( arg2) ) ) . Unresolved_70a08231( var_r) ; // staticcall
require ( ! ret0. length < 0x20 ) ;
var_d = 0x20 + ( ( 0x20 * ( arg2) ) + var_d) ;
require ( ! 0 < ( var_d. length - 0x01 ) ) ;
require ( ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg2) ) ;
address var_s = address ( arg3) ;
require ( address ( ( 0x20 * ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ) + ( 0x20 + ( arg2) ) ) . code. length) ;
( bool success, bytes memory ret0) = address ( ( 0x20 * ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ) + ( 0x20 + ( arg2) ) ) . Unresolved_70a08231( var_s) ; // staticcall
require ( ! ( ret0. length < 0x20 ) , "ds-math-sub-underflow" ) ;
require ( ! ( ( var_d. length - var_d. length) > var_d. length) , "ds-math-sub-underflow" ) ;
require ( ! ( ( var_d. length - var_d. length) < arg1) , "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
require ( ! var_x) ;
require ( ! var_x < 0x20 ) ;
var_d = var_d + ( uint248 ( ret0. length + 0x3f ) ) ;
require ( ! var_d. length, "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! var_d. length, "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_ac = var_ac;
}
/// @custom:selector 0x7ff36ab5
/// @custom:signature swapExactETHForTokens(uint256 arg0, address[] arg1, address arg2, uint256 arg3) public payable returns (bytes memory)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["address", "uint160", "bytes20", "int160"]
/// @param arg3 ["uint256", "bytes32", "int256"]
function swapExactETHForTokens( uint256 arg0, address [ ] arg1, address arg2, uint256 arg3) public payable returns ( bytes memory ) {
require ( ! arg1 > 0x0100000000 ) ;
require ( ! arg3 < block. timestamp) ;
require ( 0 < ( arg1) ) ;
require ( address ( 0 + ( 0x20 + ( arg1) ) ) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) ;
uint256 var_a = var_a + ( 0x20 + ( 0x20 * ( arg1) ) ) ;
require ( ! var_a. length < 0x02 ) ;
require ( ! var_a. length > 0xffffffffffffffff ) ;
var_a = var_a + ( 0x20 + ( 0x20 * var_a. length) ) ;
require ( ! var_a. length, "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
var_c = msg. data[ 4 : 4 ] ;
require ( ! ( 0 < ( var_a. length - 0x01 ) ) , "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
require ( ( var_a. length - 0x01 ) < var_a. length, "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
require ( ! ( var_f < arg0) , "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
require ( address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . { value: var_c } deposit( ) ; // call
require ( 0 < ( arg1) ) ;
require ( 0x01 < ( arg1) ) ;
require ( ! ( address ( 0 + ( 0x20 + ( arg1) ) ) ) = = ( address ( 0x20 + ( 0x20 + ( arg1) ) ) ) ) ;
require ( address ( 0 + ( 0x20 + ( arg1) ) ) < ( address ( 0x20 + ( 0x20 + ( arg1) ) ) ) ) ;
require ( address ( 0 + ( 0x20 + ( arg1) ) ) ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
address var_r = address ( keccak256( var_c) ) ;
require ( address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . { value: 0 ether } Unresolved_a9059cbb( var_r) ; // call
require ( ! ret0. length < 0x20 ) ;
require ( var_a. length) ;
var_a = var_a + ( 0x20 + ( 0x20 * ( arg1) ) ) ;
var_c = msg. data[ 36 : 36 ] ;
require ( ! 0 < ( var_a. length - 0x01 ) ) ;
require ( ! 0 < ( var_a. length * 0x20 ) ) ;
return abi. encodePacked( 0x20 , var_a. length) ;
require ( ! ( address ( var_c) ) = = ( address ( var_w) ) ) ;
require ( address ( var_c) < ( address ( var_w) ) ) ;
require ( address ( var_c) ) ;
require ( ! ( address ( var_c) ) = = ( address ( var_w) ) ) ;
require ( address ( var_c) < ( address ( var_w) ) ) ;
require ( address ( var_c) ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
require ( address ( keccak256( var_c) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_c) ) . getReserves( ) ; // staticcall
require ( ! ( ret0. length < 0x60 ) , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" ) ;
require ( address ( var_c) = = ( address ( var_c) ) , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" ) ;
require ( var_c > 0 , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" ) ;
require ( ! ( uint112( var_x) > 0 ) , "ds-math-mul-overflow" ) ;
require ( uint112( var_a. length) > 0 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e5 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e5 , "ds-math-mul-overflow" ) ;
require ( ! ( uint112( var_a. length) ) , "ds-math-mul-overflow" ) ;
require ( uint112( var_a. length) , "ds-math-mul-overflow" ) ;
require ( ( 0 * ( uint112( var_a. length) ) ) / ( uint112( var_a. length) ) = = 0 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e8 , "ds-math-add-overflow" ) ;
require ( ! 0x03e8 , "ds-math-add-overflow" ) ;
require ( ! ( 0 < 0 ) , "ds-math-add-overflow" ) ;
require ( 0 , "ds-math-mul-overflow" ) ;
require ( 0x03e8 , "ds-math-mul-overflow" ) ;
require ( ( ( uint112( var_x) * 0x03e8 ) / 0x03e8 ) = = ( uint112( var_x) ) , "ds-math-mul-overflow" ) ;
var_ab = var_ab;
var_ab = var_ab;
}
/// @custom:selector 0x38ed1739
/// @custom:signature swapExactTokensForTokens(uint256 arg0, uint256 arg1, address[] arg2, address arg3, uint256 arg4) public returns (bytes memory)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["address", "uint160", "bytes20", "int160"]
/// @param arg4 ["uint256", "bytes32", "int256"]
function swapExactTokensForTokens( uint256 arg0, uint256 arg1, address [ ] arg2, address arg3, uint256 arg4) public returns ( bytes memory ) {
require ( ! arg2 > 0x0100000000 ) ;
require ( ! arg4 < block. timestamp) ;
uint256 var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
uint256 var_b = ( arg2) ;
require ( ! var_a. length < 0x02 ) ;
require ( ! var_a. length > 0xffffffffffffffff ) ;
var_a = var_a + ( 0x20 + ( 0x20 * var_a. length) ) ;
require ( ! var_a. length, "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
var_c = msg. data[ 4 : 4 ] ;
require ( ! ( 0 < ( var_a. length - 0x01 ) ) , "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
require ( ( var_a. length - 0x01 ) < var_a. length, "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
require ( ! ( var_f < arg1) , "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT" ) ;
require ( 0 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0x01 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! ( address ( 0 + ( 0x20 + ( arg2) ) ) = = ( address ( 0x20 + ( 0x20 + ( arg2) ) ) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( 0 + ( 0x20 + ( arg2) ) ) < ( address ( 0x20 + ( 0x20 + ( arg2) ) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( 0 + ( 0x20 + ( arg2) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
var_a = var_a + 0x84 ;
require ( var_a. length < 0x20 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( 0x20 + ( arg2) ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
var_c = msg. data[ 36 : 36 ] ;
require ( ! ( 0 < ( var_a. length - 0x01 ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! ( 0 < ( var_a. length * 0x20 ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
return abi. encodePacked( 0x20 , var_a. length) ;
require ( ! var_ab, "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! ( var_ab < 0x20 ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( var_b, "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_a = var_a + ( uint248 ( ret0. length + 0x3f ) ) ;
if ( ! var_a. length) {
}
require ( ! ( address ( var_c) ) = = ( address ( var_af) ) ) ;
require ( address ( var_c) < ( address ( var_af) ) ) ;
require ( address ( var_c) ) ;
require ( ! ( address ( var_c) ) = = ( address ( var_af) ) ) ;
require ( address ( var_c) < ( address ( var_af) ) ) ;
require ( address ( var_c) ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
require ( address ( keccak256( var_c) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_c) ) . getReserves( ) ; // staticcall
require ( ! ( ret0. length < 0x60 ) , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" ) ;
require ( address ( var_c) = = ( address ( var_c) ) , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" ) ;
require ( var_c > 0 , "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT" ) ;
require ( ! ( uint112( var_v) > 0 ) , "ds-math-mul-overflow" ) ;
require ( uint112( var_a. length) > 0 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e5 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e5 , "ds-math-mul-overflow" ) ;
require ( ! ( uint112( var_a. length) ) , "ds-math-mul-overflow" ) ;
require ( uint112( var_a. length) , "ds-math-mul-overflow" ) ;
require ( ( 0 * ( uint112( var_a. length) ) ) / ( uint112( var_a. length) ) = = 0 , "ds-math-mul-overflow" ) ;
require ( ! 0x03e8 , "ds-math-add-overflow" ) ;
require ( ! 0x03e8 , "ds-math-add-overflow" ) ;
require ( ! ( 0 < 0 ) , "ds-math-add-overflow" ) ;
require ( 0 , "ds-math-mul-overflow" ) ;
require ( 0x03e8 , "ds-math-mul-overflow" ) ;
require ( ( ( uint112( var_v) * 0x03e8 ) / 0x03e8 ) = = ( uint112( var_v) ) , "ds-math-mul-overflow" ) ;
var_aj = var_aj;
}
/// @custom:selector 0x4a25d94a
/// @custom:signature swapTokensForExactETH(uint256 arg0, uint256 arg1, address[] arg2, address arg3, uint256 arg4) public returns (bytes memory)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["address", "uint160", "bytes20", "int160"]
/// @param arg4 ["uint256", "bytes32", "int256"]
function swapTokensForExactETH( uint256 arg0, uint256 arg1, address [ ] arg2, address arg3, uint256 arg4) public returns ( bytes memory ) {
require ( ! arg2 > 0x0100000000 ) ;
require ( ! arg4 < block. timestamp) ;
require ( ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg2) ) ;
require ( address ( ( 0x20 * ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ) + ( 0x20 + ( arg2) ) ) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) ;
uint256 var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
uint256 var_b = ( arg2) ;
require ( ! var_a. length < 0x02 ) ;
require ( ! var_a. length > 0xffffffffffffffff ) ;
var_a = var_a + ( 0x20 + ( 0x20 * var_a. length) ) ;
require ( ! var_a. length, "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" ) ;
var_c = msg. data[ 4 : 4 ] ;
require ( ( var_a. length - 0x01 ) < var_a. length, "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" ) ;
require ( ! ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) , "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" ) ;
require ( ! ( var_c > arg1) , "UniswapV2Router: EXCESSIVE_INPUT_AMOUNT" ) ;
require ( 0 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( 0x01 < ( arg2) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! ( address ( 0 + ( 0x20 + ( arg2) ) ) = = ( address ( 0x20 + ( 0x20 + ( arg2) ) ) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( 0 + ( 0x20 + ( arg2) ) ) < ( address ( 0x20 + ( 0x20 + ( arg2) ) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( address ( 0 + ( 0x20 + ( arg2) ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
var_a = var_a + 0x84 ;
require ( var_a. length < 0x20 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( 0x20 + ( arg2) ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
var_c = msg. data[ 36 : 36 ] ;
require ( ! 0 < ( var_a. length - 0x01 ) ) ;
require ( ( var_a. length - 0x01 ) < var_a. length) ;
var_x = var_z;
require ( address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) . { value: 0 ether } Unresolved_2e1a7d4d( var_x) ; // call
require ( ( var_a. length - 0x01 ) < var_a. length, "TransferHelper: ETH_TRANSFER_FAILED" ) ;
var_a = var_a + 0x20 ;
require ( var_a. length < 0x20 , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
require ( ( var_a. length + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 ) < 0x20 , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
( bool success, bytes memory ret0) = address ( arg3) . transfer( var_z) ;
require ( ret0. length = = 0 , "TransferHelper: ETH_TRANSFER_FAILED" ) ;
require ( ! ( 0 < ( var_a. length * 0x20 ) ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
return abi. encodePacked( 0x20 , var_a. length) ;
require ( ! var_ag, "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( ! ( var_ag < 0x20 ) , "TransferHelper: TRANSFER_FROM_FAILED" ) ;
require ( var_b, "TransferHelper: TRANSFER_FROM_FAILED" ) ;
var_a = var_a + ( uint248 ( ret0. length + 0x3f ) ) ;
if ( ! var_a. length) {
}
require ( ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) - 0x01 ) < var_a. length) ;
require ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) < var_a. length) ;
require ( ! ( address ( var_ai) ) = = ( address ( var_aj) ) ) ;
require ( address ( var_ai) < ( address ( var_aj) ) ) ;
require ( address ( var_ai) ) ;
require ( ! ( address ( var_ai) ) = = ( address ( var_aj) ) ) ;
require ( address ( var_ai) < ( address ( var_aj) ) ) ;
require ( address ( var_ai) ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
require ( address ( keccak256( var_c) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_c) ) . getReserves( ) ; // staticcall
require ( ! ( ret0. length < 0x60 ) , "ds-math-mul-overflow" ) ;
require ( address ( var_ai) = = ( address ( var_ai) ) , "ds-math-mul-overflow" ) ;
require ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) < var_a. length, "ds-math-mul-overflow" ) ;
require ( var_aj > 0 , "ds-math-mul-overflow" ) ;
require ( ! ( uint112( var_u) > 0 ) , "ds-math-mul-overflow" ) ;
require ( uint112( var_a. length) > 0 , "ds-math-mul-overflow" ) ;
require ( ! ( var_aj) , "ds-math-mul-overflow" ) ;
require ( var_aj, "ds-math-mul-overflow" ) ;
require ( uint112( var_u) * ( var_aj) / ( var_aj) = = ( uint112( var_u) ) , "ds-math-mul-overflow" ) ;
var_an = var_an;
var_an = var_an;
}
/// @custom:selector 0xaf2979eb
/// @custom:signature removeLiquidityETHSupportingFeeOnTransferTokens(address arg0, uint256 arg1, uint256 arg2, uint256 arg3, address arg4, uint256 arg5) public
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["uint256", "bytes32", "int256"]
/// @param arg4 ["address", "uint160", "bytes20", "int160"]
/// @param arg5 ["uint256", "bytes32", "int256"]
function removeLiquidityETHSupportingFeeOnTransferTokens( address arg0, uint256 arg1, uint256 arg2, uint256 arg3, address arg4, uint256 arg5) public {
require ( ! ( arg5 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( arg5 < block. timestamp) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( ! ( address ( arg0) = = 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) , "UniswapV2Library: IDENTICAL_ADDRESSES" ) ;
require ( address ( arg0) < 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
require ( 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 , "UniswapV2Library: ZERO_ADDRESS" ) ;
uint256 var_c = var_c + 0x48 ;
address var_p = msg. sender;
require ( address ( keccak256( var_l) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_l) ) . { value: 0 ether } Unresolved_23b872dd( var_p) ; // call
require ( ! ret0. length < 0x20 ) ;
var_p = address ( this) ;
require ( address ( keccak256( var_l) ) . code. length) ;
( bool success, bytes memory ret0) = address ( keccak256( var_l) ) . { value: 0 ether } Unresolved_89afcb44( var_p) ; // call
require ( ! ret0. length < 0x40 ) ;
require ( address ( arg0) , "UniswapV2Library: ZERO_ADDRESS" ) ;
var_s = var_s;
var_s = var_s;
}
}
ABI
[
{
"type": "function",
"name": "Unresolved_2195995c",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "address"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint256"
},
{
"name": "arg4",
"type": "uint256"
},
{
"name": "arg5",
"type": "address"
},
{
"name": "arg6",
"type": "uint256"
},
{
"name": "arg7",
"type": "uint256"
},
{
"name": "arg8",
"type": "bool"
},
{
"name": "arg9",
"type": "uint256"
},
{
"name": "arg10",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "Unresolved_5b0d5984",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint256"
},
{
"name": "arg4",
"type": "address"
},
{
"name": "arg5",
"type": "uint256"
},
{
"name": "arg6",
"type": "uint256"
},
{
"name": "arg7",
"type": "bool"
},
{
"name": "arg8",
"type": "uint256"
},
{
"name": "arg9",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "Unresolved_c45a0155",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_ded9382a",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint256"
},
{
"name": "arg4",
"type": "address"
},
{
"name": "arg5",
"type": "uint256"
},
{
"name": "arg6",
"type": "uint256"
},
{
"name": "arg7",
"type": "bool"
},
{
"name": "arg8",
"type": "uint256"
},
{
"name": "arg9",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "WETH",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "addLiquidity",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "address"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint256"
},
{
"name": "arg4",
"type": "uint256"
},
{
"name": "arg5",
"type": "uint256"
},
{
"name": "arg6",
"type": "address"
},
{
"name": "arg7",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "addLiquidityETH",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint256"
},
{
"name": "arg4",
"type": "address"
},
{
"name": "arg5",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "getAmountIn",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"type": "function",
"name": "getAmountOut",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "getAmountsIn",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "address[]"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "getAmountsOut",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "address[]"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "quote",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "removeLiquidity",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "address"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint256"
},
{
"name": "arg4",
"type": "uint256"
},
{
"name": "arg5",
"type": "address"
},
{
"name": "arg6",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeLiquidityETH",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint256"
},
{
"name": "arg4",
"type": "address"
},
{
"name": "arg5",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "removeLiquidityETHSupportingFeeOnTransferTokens",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint256"
},
{
"name": "arg4",
"type": "address"
},
{
"name": "arg5",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "swapETHForExactTokens",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "address[]"
},
{
"name": "arg2",
"type": "address"
},
{
"name": "arg3",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "swapExactETHForTokens",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "address[]"
},
{
"name": "arg2",
"type": "address"
},
{
"name": "arg3",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "address[]"
},
{
"name": "arg2",
"type": "address"
},
{
"name": "arg3",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "swapExactTokensForETH",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address[]"
},
{
"name": "arg3",
"type": "address"
},
{
"name": "arg4",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address[]"
},
{
"name": "arg3",
"type": "address"
},
{
"name": "arg4",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "swapExactTokensForTokens",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address[]"
},
{
"name": "arg3",
"type": "address"
},
{
"name": "arg4",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address[]"
},
{
"name": "arg3",
"type": "address"
},
{
"name": "arg4",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "swapTokensForExactETH",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address[]"
},
{
"name": "arg3",
"type": "address"
},
{
"name": "arg4",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "swapTokensForExactTokens",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address[]"
},
{
"name": "arg3",
"type": "address"
},
{
"name": "arg4",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "nonpayable"
}
]