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 factoryV1 = 131789380479456781418607120658294569224194728205 ;
uint256 public constant factoryV2 = 239297211893549498868921720216425080735220090147 ;
uint256 public constant WETH9 = 919314261072992390246123622467725103438511446567 ;
address public stableSwapInfo;
/// @custom:selector 0x3068c554
/// @custom:signature Unresolved_3068c554(address arg0) public pure
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
function Unresolved_3068c554( address arg0) public pure {
require ( arg0 = = ( address ( arg0) ) ) ;
}
/// @custom:selector 0xd4ef38de
/// @custom:signature unwrapWETH9WithFee(uint256 arg0, uint256 arg1, address arg2) public payable
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["address", "uint160", "bytes20", "int160"]
function unwrapWETH9WithFee( uint256 arg0, uint256 arg1, address arg2) public payable {
require ( arg2 = = ( address ( arg2) ) ) ;
require ( ! arg1 > 0 ) ;
require ( ! arg1 > 0x64 ) ;
address var_b = address ( this) ;
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . Unresolved_70a08231( var_b) ; // staticcall
require ( ! ( ret0. length < 0x20 ) , "Insufficient WETH9" ) ;
require ( ! ( var_c. length < arg0) , "Insufficient WETH9" ) ;
require ( ! var_c. length) ;
var_b = var_c. length;
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . { value: 0 ether } Unresolved_2e1a7d4d( var_b) ; // call
require ( ! var_c. length, "STE" ) ;
require ( ! var_c. length, "STE" ) ;
require ( 0x2710 , "STE" ) ;
require ( ! 0 , "STE" ) ;
uint256 var_c = var_c + 0x20 ;
require ( var_c. length < 0x20 , "STE" ) ;
require ( ( var_c. length + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 ) < 0x20 , "STE" ) ;
( bool success, bytes memory ret0) = address ( arg2) . transfer( 0 ) ;
require ( ret0. length = = 0 , "STE" ) ;
require ( var_c. length) ;
require ( ( ( arg1 * var_c. length) / var_c. length) = = arg1) ;
require ( 0x2710 ) ;
require ( arg1 > 0 ) ;
}
/// @custom:selector 0x4aa94288
/// @custom:signature Unresolved_4aa94288(uint256 arg0, uint256 arg1) public pure
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
function Unresolved_4aa94288 ( uint256 arg0, uint256 arg1) public pure {
require ( ! arg0 > 0xffffffffffffffff ) ;
require ( ! ( arg0) > 0xffffffffffffffff ) ;
require ( ! arg1 > 0xffffffffffffffff ) ;
}
/// @custom:selector 0xdf2ab5bb
/// @custom:signature Unresolved_df2ab5bb(address arg0) public pure
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
function Unresolved_df2ab5bb( address arg0) public pure {
require ( arg0 = = ( address ( arg0) ) ) ;
}
/// @custom:selector 0xc8bb1856
/// @custom:signature Unresolved_c8bb1856(uint256 arg0, uint256 arg1) public pure
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
function Unresolved_c8bb1856 ( uint256 arg0, uint256 arg1) public pure {
require ( ! arg0 > 0xffffffffffffffff ) ;
require ( ! ( arg0) > 0xffffffffffffffff ) ;
require ( ! arg1 > 0xffffffffffffffff ) ;
}
/// @custom:selector 0xa4a78f0c
/// @custom:signature selfPermitAllowedIfNecessary(address arg0, uint256 arg1, uint256 arg2, uint8 arg3, bytes32 arg4, bytes32 arg5) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["bool", "uint8", "bytes1", "int8"]
/// @param arg4 ["uint256", "bytes32", "int256"]
/// @param arg5 ["uint256", "bytes32", "int256"]
function selfPermitAllowedIfNecessary( address arg0, uint256 arg1, uint256 arg2, uint8 arg3, bytes32 arg4, bytes32 arg5) public payable {
require ( arg0 = = ( address ( arg0) ) ) ;
require ( arg3 = = ( bytes1 ( arg3) ) ) ;
address var_b = msg. sender;
require ( address ( arg0) . code. length) ;
( bool success, bytes memory ret0) = address ( arg0) . Unresolved_dd62ed3e( var_b) ; // staticcall
require ( ! ret0. length < 0x20 ) ;
require ( ! var_d. length < 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) ;
var_b = msg. sender;
require ( address ( arg0) . code. length) ;
( bool success, bytes memory ret0) = address ( arg0) . { value: 0 ether } Unresolved_8fcbaf0c( var_b) ; // call
}
/// @custom:selector 0xf3995c67
/// @custom:signature selfPermit(address arg0, uint256 arg1, uint256 arg2, uint8 arg3, bytes32 arg4, bytes32 arg5) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["bool", "uint8", "bytes1", "int8"]
/// @param arg4 ["uint256", "bytes32", "int256"]
/// @param arg5 ["uint256", "bytes32", "int256"]
function selfPermit( address arg0, uint256 arg1, uint256 arg2, uint8 arg3, bytes32 arg4, bytes32 arg5) public payable {
require ( arg0 = = ( address ( arg0) ) ) ;
require ( arg3 = = ( bytes1 ( arg3) ) ) ;
address var_b = msg. sender;
require ( address ( arg0) . code. length) ;
( bool success, bytes memory ret0) = address ( arg0) . { value: 0 ether } Unresolved_d505accf( var_b) ; // call
}
/// @custom:selector 0x9b5c7a81
/// @custom:signature swapExactTokensForTokensV1(uint256 arg0, uint256 arg1, address[] arg2, address arg3) public payable
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["address", "uint160", "bytes20", "int160"]
function swapExactTokensForTokensV1( uint256 arg0, uint256 arg1, address [ ] arg2, address arg3) public payable {
require ( ! arg2 > 0xffffffffffffffff ) ;
require ( ! ( arg2) > 0xffffffffffffffff ) ;
require ( arg3 = = ( address ( arg3) ) ) ;
require ( arg0) ;
require ( 0 < ( arg2) ) ;
require ( ! ( ( ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) + 0x20 ) - ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) ) < 0x20 ) ;
require ( ( 0 + ( arg2 + 0x20 ) ) = = ( address ( 0 + ( arg2 + 0x20 ) ) ) ) ;
require ( 0 ) ;
require ( 0 < ( arg2) ) ;
require ( ! ( ( ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) + 0x20 ) - ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) ) < 0x20 ) ;
require ( ( 0 + ( arg2 + 0x20 ) ) = = ( address ( 0 + ( arg2 + 0x20 ) ) ) ) ;
require ( 0x01 < ( arg2) ) ;
require ( ! ( ( ( 0x20 + ( ( 0x04 + arg2) + 0x20 ) ) + 0x20 ) - ( 0x20 + ( ( 0x04 + arg2) + 0x20 ) ) ) < 0x20 ) ;
require ( ( 0x20 + ( arg2 + 0x20 ) ) = = ( address ( 0x20 + ( arg2 + 0x20 ) ) ) ) ;
require ( ! ( address ( 0 + ( arg2 + 0x20 ) ) = = ( address ( 0x20 + ( arg2 + 0x20 ) ) ) ) , "STF" ) ;
require ( address ( 0 + ( arg2 + 0x20 ) ) < ( address ( 0x20 + ( arg2 + 0x20 ) ) ) , "STF" ) ;
require ( address ( 0 + ( arg2 + 0x20 ) ) , "STF" ) ;
uint256 var_d = var_d + 0x48 ;
var_d = var_d + 0xbd ;
require ( ! ( address ( 0 + ( arg2 + 0x20 ) ) = = 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) , "STF" ) ;
require ( ! ( ! address ( this) . balance < arg0) , "STF" ) ;
require ( ! ( address ( this) = = ( address ( this) ) ) , "STF" ) ;
var_d = var_d + 0x84 ;
require ( var_d. length < 0x20 , "STF" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( arg2 + 0x20 ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "STF" ) ;
require ( ! 0x01 = = ( address ( arg3) ) ) ;
require ( ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg2) ) ;
require ( ! 0x02 = = ( address ( arg3) ) ) ;
require ( ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg2) ) ;
require ( ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg2) ) ;
require ( ! var_u) ;
require ( ! var_u < 0x20 ) ;
var_d = var_d + ( uint248 ( ret0. length + 0x3f ) ) ;
require ( ! var_d. length, "STF" ) ;
require ( ! var_d. length, "STF" ) ;
var_l = arg0;
var_d = var_d + 0x64 ;
require ( var_d. length < 0x20 , "ST" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( arg2 + 0x20 ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "ST" ) ;
require ( ! var_u) ;
require ( ! var_u < 0x20 ) ;
var_d = var_d + ( uint248 ( ret0. length + 0x3f ) ) ;
require ( ! var_d. length, "ST" ) ;
require ( ! var_d. length, "ST" ) ;
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . { value: var_l } deposit( ) ; // call
uint256 var_aa = address ( keccak256( var_h) ) ;
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . { value: 0 ether } many_msg_babbage( var_aa) ; // call
require ( ! ret0. length < 0x20 ) ;
if ( ! ( address ( 0 + ( arg2 + 0x20 ) ) ) = = 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) {
}
require ( 0 < ( arg2) ) ;
require ( arg2) ;
}
/// @custom:selector 0xcafe95a0
/// @custom:signature swapTokensForExactTokensV2(uint256 arg0, uint256 arg1, address[] arg2, address arg3) public payable returns (uint256)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["address", "uint160", "bytes20", "int160"]
function swapTokensForExactTokensV2( uint256 arg0, uint256 arg1, address [ ] arg2, address arg3) public payable returns ( uint256 ) {
require ( ! arg2 > 0xffffffffffffffff ) ;
require ( ! ( arg2) > 0xffffffffffffffff ) ;
require ( arg3 = = ( address ( arg3) ) ) ;
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, "Too much requested" ) ;
var_c = msg. data[ 4 : 4 ] ;
require ( ( var_a. length - 0x01 ) < var_a. length, "Too much requested" ) ;
require ( ! ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) , "Too much requested" ) ;
require ( ! ( var_c > arg1) , "Too much requested" ) ;
require ( 0 < ( arg2) ) ;
require ( ! ( ( ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) + 0x20 ) - ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) ) < 0x20 ) ;
require ( ( 0 + ( arg2 + 0x20 ) ) = = ( address ( 0 + ( arg2 + 0x20 ) ) ) ) ;
require ( 0 < ( arg2) ) ;
require ( ! ( ( ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) + 0x20 ) - ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) ) < 0x20 ) ;
require ( ( 0 + ( arg2 + 0x20 ) ) = = ( address ( 0 + ( arg2 + 0x20 ) ) ) ) ;
require ( 0x01 < ( arg2) ) ;
require ( ! ( ( ( 0x20 + ( ( 0x04 + arg2) + 0x20 ) ) + 0x20 ) - ( 0x20 + ( ( 0x04 + arg2) + 0x20 ) ) ) < 0x20 ) ;
require ( ( 0x20 + ( arg2 + 0x20 ) ) = = ( address ( 0x20 + ( arg2 + 0x20 ) ) ) ) ;
require ( ! ( address ( 0 + ( arg2 + 0x20 ) ) = = ( address ( 0x20 + ( arg2 + 0x20 ) ) ) ) , "STF" ) ;
require ( address ( 0 + ( arg2 + 0x20 ) ) < ( address ( 0x20 + ( arg2 + 0x20 ) ) ) , "STF" ) ;
require ( address ( 0 + ( arg2 + 0x20 ) ) , "STF" ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
require ( ! ( address ( 0 + ( arg2 + 0x20 ) ) = = 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) , "STF" ) ;
require ( ! ( ! address ( this) . balance < ( var_c) ) , "STF" ) ;
require ( ! ( address ( this) = = ( address ( msg. sender) ) ) , "STF" ) ;
var_a = var_a + 0x84 ;
require ( var_a. length < 0x20 , "STF" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( arg2 + 0x20 ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "STF" ) ;
require ( ! ( 0x01 = = ( address ( arg3) ) ) , "STF" ) ;
var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
var_c = msg. data[ 36 : 36 ] ;
require ( ! ( 0 < ( var_a. length - 0x01 ) ) , "STF" ) ;
return var_c;
require ( ! ( 0x02 = = ( address ( arg3) ) ) , "STF" ) ;
var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
var_c = msg. data[ 36 : 36 ] ;
require ( ! ( 0 < ( var_a. length - 0x01 ) ) , "STF" ) ;
return var_c;
var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
var_c = msg. data[ 36 : 36 ] ;
require ( ! ( 0 < ( var_a. length - 0x01 ) ) , "STF" ) ;
return var_c;
require ( ! var_aa, "STF" ) ;
require ( ! ( var_aa < 0x20 ) , "STF" ) ;
require ( var_b, "STF" ) ;
var_a = var_a + ( uint248 ( ret0. length + 0x3f ) ) ;
if ( ! var_a. length) {
}
var_a = var_a + 0x64 ;
require ( var_a. length < 0x20 , "ST" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( arg2 + 0x20 ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "ST" ) ;
require ( ! var_aa, "ST" ) ;
require ( ! ( var_aa < 0x20 ) , "ST" ) ;
require ( var_b, "ST" ) ;
var_a = var_a + ( uint248 ( ret0. length + 0x3f ) ) ;
if ( ! var_a. length) {
}
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . { value: var_c } deposit( ) ; // call
uint256 var_af = address ( keccak256( var_c) ) ;
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . { value: 0 ether } many_msg_babbage( var_af) ; // call
require ( ! ret0. length < 0x20 ) ;
if ( ! ( address ( 0 + ( arg2 + 0x20 ) ) ) = = 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) {
}
require ( ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) - 0x01 ) < var_a. length) ;
require ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) < var_a. length) ;
require ( ! ( address ( var_ag) ) = = ( address ( var_ah) ) ) ;
require ( address ( var_ag) < ( address ( var_ah) ) ) ;
require ( address ( var_ag) ) ;
require ( ! ( address ( var_ag) ) = = ( address ( var_ah) ) ) ;
require ( address ( var_ag) < ( address ( var_ah) ) ) ;
require ( address ( var_ag) ) ;
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 ) ;
require ( address ( var_ag) = = ( address ( var_ag) ) ) ;
require ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) < var_a. length) ;
require ( var_ah > 0 ) ;
require ( ! ( uint112( var_u) ) > 0 ) ;
require ( uint112( var_a. length) > 0 ) ;
require ( ! uint112( var_u) ) ;
require ( uint112( var_u) ) ;
require ( var_ah * ( uint112( var_u) ) / ( uint112( var_u) ) = = ( var_ah) ) ;
}
/// @custom:selector 0xe0e189a0
/// @custom:signature Unresolved_e0e189a0(address arg0) public pure
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
function Unresolved_e0e189a0( address arg0) public pure {
require ( arg0 = = ( address ( arg0) ) ) ;
}
/// @custom:selector 0xab0acea4
/// @custom:signature swapExactTokensForTokensV2(uint256 arg0, uint256 arg1, address[] arg2, address arg3) public payable
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["address", "uint160", "bytes20", "int160"]
function swapExactTokensForTokensV2( uint256 arg0, uint256 arg1, address [ ] arg2, address arg3) public payable {
require ( ! arg2 > 0xffffffffffffffff ) ;
require ( ! ( arg2) > 0xffffffffffffffff ) ;
require ( arg3 = = ( address ( arg3) ) ) ;
require ( arg0) ;
require ( 0 < ( arg2) ) ;
require ( ! ( ( ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) + 0x20 ) - ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) ) < 0x20 ) ;
require ( ( 0 + ( arg2 + 0x20 ) ) = = ( address ( 0 + ( arg2 + 0x20 ) ) ) ) ;
require ( 0 ) ;
require ( 0 < ( arg2) ) ;
require ( ! ( ( ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) + 0x20 ) - ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) ) < 0x20 ) ;
require ( ( 0 + ( arg2 + 0x20 ) ) = = ( address ( 0 + ( arg2 + 0x20 ) ) ) ) ;
require ( 0x01 < ( arg2) ) ;
require ( ! ( ( ( 0x20 + ( ( 0x04 + arg2) + 0x20 ) ) + 0x20 ) - ( 0x20 + ( ( 0x04 + arg2) + 0x20 ) ) ) < 0x20 ) ;
require ( ( 0x20 + ( arg2 + 0x20 ) ) = = ( address ( 0x20 + ( arg2 + 0x20 ) ) ) ) ;
require ( ! ( address ( 0 + ( arg2 + 0x20 ) ) = = ( address ( 0x20 + ( arg2 + 0x20 ) ) ) ) , "STF" ) ;
require ( address ( 0 + ( arg2 + 0x20 ) ) < ( address ( 0x20 + ( arg2 + 0x20 ) ) ) , "STF" ) ;
require ( address ( 0 + ( arg2 + 0x20 ) ) , "STF" ) ;
uint256 var_d = var_d + 0x48 ;
var_d = var_d + 0xbd ;
require ( ! ( address ( 0 + ( arg2 + 0x20 ) ) = = 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) , "STF" ) ;
require ( ! ( ! address ( this) . balance < arg0) , "STF" ) ;
require ( ! ( address ( this) = = ( address ( this) ) ) , "STF" ) ;
var_d = var_d + 0x84 ;
require ( var_d. length < 0x20 , "STF" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( arg2 + 0x20 ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "STF" ) ;
require ( ! 0x01 = = ( address ( arg3) ) ) ;
require ( ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg2) ) ;
require ( ! 0x02 = = ( address ( arg3) ) ) ;
require ( ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg2) ) ;
require ( ( arg2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) < ( arg2) ) ;
require ( ! var_u) ;
require ( ! var_u < 0x20 ) ;
var_d = var_d + ( uint248 ( ret0. length + 0x3f ) ) ;
require ( ! var_d. length, "STF" ) ;
require ( ! var_d. length, "STF" ) ;
var_l = arg0;
var_d = var_d + 0x64 ;
require ( var_d. length < 0x20 , "ST" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( arg2 + 0x20 ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "ST" ) ;
require ( ! var_u) ;
require ( ! var_u < 0x20 ) ;
var_d = var_d + ( uint248 ( ret0. length + 0x3f ) ) ;
require ( ! var_d. length, "ST" ) ;
require ( ! var_d. length, "ST" ) ;
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . { value: var_l } deposit( ) ; // call
uint256 var_aa = address ( keccak256( var_h) ) ;
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . { value: 0 ether } many_msg_babbage( var_aa) ; // call
require ( ! ret0. length < 0x20 ) ;
if ( ! ( address ( 0 + ( arg2 + 0x20 ) ) ) = = 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) {
}
require ( 0 < ( arg2) ) ;
require ( arg2) ;
}
/// @custom:selector 0x5ae401dc
/// @custom:signature multicall(uint256 arg0, bytes[] arg1) public payable returns (bytes memory)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
function multicall( uint256 arg0, bytes [ ] arg1) public payable returns ( bytes memory ) {
require ( ! arg1 > 0xffffffffffffffff ) ;
require ( ! ( arg1) > 0xffffffffffffffff ) ;
require ( ! block. timestamp > arg0) ;
require ( ! ( arg1) > 0xffffffffffffffff ) ;
uint256 var_b = var_b + ( 0x20 + ( 0x20 * ( arg1) ) ) ;
require ( ! arg1) ;
require ( arg1 - 0x01 ) ;
require ( ! 0 < ( arg1) ) ;
require ( 0 < ( arg1) ) ;
require ( ! ( ( arg1 + 0x20 ) + ( ( arg1 + 0x20 ) + 0 ) ) > 0xffffffffffffffff ) ;
( bool success, bytes memory ret0) = address ( this) . Unresolved_( var_e) ; // delegatecall
require ( ret0. length = = 0 ) ;
require ( ! var_f < 0x44 ) ;
require ( ! ( ( 0x84 + var_g) - 0x84 ) < 0x20 ) ;
require ( ! var_h > 0xffffffffffffffff ) ;
require ( ( ( 0x84 + var_h) + 0x1f ) < ( 0x84 + var_g) , "" ) ;
require ( ! ( var_i > 0xffffffffffffffff ) , "" ) ;
require ( ! ( ( ( ( var_b + ( uint248 ( var_i + 0x1f ) ) ) + 0x20 ) > 0xffffffffffffffff ) | ( ( ( var_b + ( uint248 ( var_i + 0x1f ) ) ) + 0x20 ) < var_b) ) , "" ) ;
var_b = ( var_b + ( uint248 ( var_i + 0x1f ) ) ) + 0x20 ;
require ( ! ( ( 0x84 + var_g) < ( 0x20 + ( var_i + ( 0x84 + var_h) ) ) ) , "" ) ;
require ( ! ( 0 < ( var_i) ) , "" ) ;
require ( ! ( 0 > ( var_i) ) , "" ) ;
require ( ! ( 0 > var_b. length) , "" ) ;
var_b = var_b + ( uint248 ( ret0. length + 0x3f ) ) ;
return abi. encodePacked( 0x20 , var_b. length) ;
}
/// @custom:selector 0x4659a494
/// @custom:signature selfPermitAllowed(address arg0, uint256 arg1, uint256 arg2, uint8 arg3, bytes32 arg4, bytes32 arg5) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["bool", "uint8", "bytes1", "int8"]
/// @param arg4 ["uint256", "bytes32", "int256"]
/// @param arg5 ["uint256", "bytes32", "int256"]
function selfPermitAllowed( address arg0, uint256 arg1, uint256 arg2, uint8 arg3, bytes32 arg4, bytes32 arg5) public payable {
require ( arg0 = = ( address ( arg0) ) ) ;
require ( arg3 = = ( bytes1 ( arg3) ) ) ;
address var_b = msg. sender;
require ( address ( arg0) . code. length) ;
( bool success, bytes memory ret0) = address ( arg0) . { value: 0 ether } Unresolved_8fcbaf0c( var_b) ; // call
}
/// @custom:selector 0x12210e8a
/// @custom:signature refundETH() public payable
function refundETH( ) public payable {
require ( ! address ( this) . balance, "STE" ) ;
uint256 var_b = var_b + 0x20 ;
require ( var_b. length < 0x20 , "STE" ) ;
require ( ( var_b. length + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 ) < 0x20 , "STE" ) ;
( bool success, bytes memory ret0) = address ( msg. sender) . transfer( address ( this) . balance) ;
require ( ret0. length = = 0 , "STE" ) ;
}
/// @custom:selector 0x9b2c0a37
/// @custom:signature Unresolved_9b2c0a37(uint256 arg0, address arg1) public pure
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
function Unresolved_9b2c0a37( uint256 arg0, address arg1) public pure {
require ( arg1 = = ( address ( arg1) ) ) ;
}
/// @custom:selector 0xac9650d8
/// @custom:signature Unresolved_ac9650d8(uint256 arg0, uint256 arg1) public payable returns (bytes memory)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
function Unresolved_ac9650d8( uint256 arg0, uint256 arg1) public payable returns ( bytes memory ) {
require ( ! arg0 > 0xffffffffffffffff ) ;
require ( ! ( arg0) > 0xffffffffffffffff ) ;
require ( ! ( arg0) > 0xffffffffffffffff ) ;
uint256 var_b = var_b + ( 0x20 + ( 0x20 * ( arg0) ) ) ;
require ( ! arg0) ;
require ( arg0 - 0x01 ) ;
require ( ! 0 < ( arg0) ) ;
require ( 0 < ( arg0) ) ;
require ( ! ( ( arg0 + 0x20 ) + ( ( arg0 + 0x20 ) + 0 ) ) > 0xffffffffffffffff ) ;
( bool success, bytes memory ret0) = address ( this) . Unresolved_( var_e) ; // delegatecall
require ( ret0. length = = 0 ) ;
require ( ! var_f < 0x44 ) ;
require ( ! ( ( 0x84 + var_g) - 0x84 ) < 0x20 ) ;
require ( ! var_h > 0xffffffffffffffff ) ;
require ( ( ( 0x84 + var_h) + 0x1f ) < ( 0x84 + var_g) , "" ) ;
require ( ! ( var_i > 0xffffffffffffffff ) , "" ) ;
require ( ! ( ( ( ( var_b + ( uint248 ( var_i + 0x1f ) ) ) + 0x20 ) > 0xffffffffffffffff ) | ( ( ( var_b + ( uint248 ( var_i + 0x1f ) ) ) + 0x20 ) < var_b) ) , "" ) ;
var_b = ( var_b + ( uint248 ( var_i + 0x1f ) ) ) + 0x20 ;
require ( ! ( ( 0x84 + var_g) < ( 0x20 + ( var_i + ( 0x84 + var_h) ) ) ) , "" ) ;
require ( ! ( 0 < ( var_i) ) , "" ) ;
require ( ! ( 0 > ( var_i) ) , "" ) ;
require ( ! ( 0 > var_b. length) , "" ) ;
var_b = var_b + ( uint248 ( ret0. length + 0x3f ) ) ;
return abi. encodePacked( 0x20 , var_b. length) ;
}
/// @custom:selector 0x49616997
/// @custom:signature unwrapWETH9(uint256 arg0) public payable
/// @param arg0 ["uint256", "bytes32", "int256"]
function unwrapWETH9( uint256 arg0) public payable {
address var_b = address ( this) ;
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . Unresolved_70a08231( var_b) ; // staticcall
require ( ! ( ret0. length < 0x20 ) , "Insufficient WETH9" ) ;
require ( ! ( var_c. length < arg0) , "Insufficient WETH9" ) ;
require ( ! var_c. length) ;
var_b = var_c. length;
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . { value: 0 ether } Unresolved_2e1a7d4d( var_b) ; // call
uint256 var_c = var_c + 0x20 ;
require ( var_c. length < 0x20 , "STE" ) ;
require ( ( var_c. length + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 ) < 0x20 , "STE" ) ;
( bool success, bytes memory ret0) = address ( msg. sender) . transfer( var_c. length) ;
require ( ret0. length = = 0 , "STE" ) ;
}
/// @custom:selector 0x1c58db4f
/// @custom:signature wrapETH(uint256 arg0) public payable
/// @param arg0 ["uint256", "bytes32", "int256"]
function wrapETH( uint256 arg0) public payable {
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . { value: arg0 } deposit( ) ; // call
}
/// @custom:selector 0xe90a182f
/// @custom:signature sweepToken(address arg0, uint256 arg1) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
function sweepToken( address arg0, uint256 arg1) public payable {
require ( arg0 = = ( address ( arg0) ) ) ;
address var_b = address ( this) ;
require ( address ( arg0) . code. length) ;
( bool success, bytes memory ret0) = address ( arg0) . Unresolved_70a08231( var_b) ; // staticcall
require ( ! ( ret0. length < 0x20 ) , "Insufficient token" ) ;
require ( ! ( var_c. length < arg1) , "Insufficient token" ) ;
require ( ! var_c. length, "ST" ) ;
uint256 var_c = var_c + 0x64 ;
require ( var_c. length < 0x20 , "ST" ) ;
( bool success, bytes memory ret0) = address ( arg0) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "ST" ) ;
require ( ! var_l) ;
require ( ! var_l < 0x20 ) ;
var_c = var_c + ( uint248 ( ret0. length + 0x3f ) ) ;
require ( ! var_c. length, "ST" ) ;
require ( ! var_c. length, "ST" ) ;
}
/// @custom:selector 0x49404b7c
/// @custom:signature unwrapWETH9(uint256 arg0, address arg1) public payable
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
function unwrapWETH9( uint256 arg0, address arg1) public payable {
require ( arg1 = = ( address ( arg1) ) ) ;
address var_b = address ( this) ;
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . Unresolved_70a08231( var_b) ; // staticcall
require ( ! ( ret0. length < 0x20 ) , "Insufficient WETH9" ) ;
require ( ! ( var_c. length < arg0) , "Insufficient WETH9" ) ;
require ( ! var_c. length) ;
var_b = var_c. length;
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . { value: 0 ether } Unresolved_2e1a7d4d( var_b) ; // call
uint256 var_c = var_c + 0x20 ;
require ( var_c. length < 0x20 , "STE" ) ;
require ( ( var_c. length + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 ) < 0x20 , "STE" ) ;
( bool success, bytes memory ret0) = address ( arg1) . transfer( var_c. length) ;
require ( ret0. length = = 0 , "STE" ) ;
}
/// @custom:selector 0xf2d5d56b
/// @custom:signature pull(address arg0, uint256 arg1) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
function pull( address arg0, uint256 arg1) public payable {
require ( arg0 = = ( address ( arg0) ) ) ;
uint256 var_e = var_e + 0x84 ;
require ( var_e. length < 0x20 , "STF" ) ;
( bool success, bytes memory ret0) = address ( arg0) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "STF" ) ;
require ( ! var_l) ;
require ( ! var_l < 0x20 ) ;
var_e = var_e + ( uint248 ( ret0. length + 0x3f ) ) ;
require ( ! var_e. length, "STF" ) ;
require ( ! var_e. length, "STF" ) ;
}
/// @custom:selector 0xc2e3140a
/// @custom:signature selfPermitIfNecessary(address arg0, uint256 arg1, uint256 arg2, uint8 arg3, bytes32 arg4, bytes32 arg5) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["bool", "uint8", "bytes1", "int8"]
/// @param arg4 ["uint256", "bytes32", "int256"]
/// @param arg5 ["uint256", "bytes32", "int256"]
function selfPermitIfNecessary( address arg0, uint256 arg1, uint256 arg2, uint8 arg3, bytes32 arg4, bytes32 arg5) public payable {
require ( arg0 = = ( address ( arg0) ) ) ;
require ( arg3 = = ( bytes1 ( arg3) ) ) ;
address var_b = msg. sender;
require ( address ( arg0) . code. length) ;
( bool success, bytes memory ret0) = address ( arg0) . Unresolved_dd62ed3e( var_b) ; // staticcall
require ( ! ret0. length < 0x20 ) ;
require ( ! var_d. length < arg1) ;
var_b = msg. sender;
require ( address ( arg0) . code. length) ;
( bool success, bytes memory ret0) = address ( arg0) . { value: 0 ether } Unresolved_d505accf( var_b) ; // call
}
/// @custom:selector 0x1d4389f5
/// @custom:signature swapTokensForExactTokensV1(uint256 arg0, uint256 arg1, address[] arg2, address arg3) public payable returns (uint256)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
/// @param arg2 ["uint256", "bytes32", "int256"]
/// @param arg3 ["address", "uint160", "bytes20", "int160"]
function swapTokensForExactTokensV1( uint256 arg0, uint256 arg1, address [ ] arg2, address arg3) public payable returns ( uint256 ) {
require ( ! arg2 > 0xffffffffffffffff ) ;
require ( ! ( arg2) > 0xffffffffffffffff ) ;
require ( arg3 = = ( address ( arg3) ) ) ;
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, "Too much requested" ) ;
var_c = msg. data[ 4 : 4 ] ;
require ( ( var_a. length - 0x01 ) < var_a. length, "Too much requested" ) ;
require ( ! ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) , "Too much requested" ) ;
require ( ! ( var_c > arg1) , "Too much requested" ) ;
require ( 0 < ( arg2) ) ;
require ( ! ( ( ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) + 0x20 ) - ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) ) < 0x20 ) ;
require ( ( 0 + ( arg2 + 0x20 ) ) = = ( address ( 0 + ( arg2 + 0x20 ) ) ) ) ;
require ( 0 < ( arg2) ) ;
require ( ! ( ( ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) + 0x20 ) - ( 0 + ( ( 0x04 + arg2) + 0x20 ) ) ) < 0x20 ) ;
require ( ( 0 + ( arg2 + 0x20 ) ) = = ( address ( 0 + ( arg2 + 0x20 ) ) ) ) ;
require ( 0x01 < ( arg2) ) ;
require ( ! ( ( ( 0x20 + ( ( 0x04 + arg2) + 0x20 ) ) + 0x20 ) - ( 0x20 + ( ( 0x04 + arg2) + 0x20 ) ) ) < 0x20 ) ;
require ( ( 0x20 + ( arg2 + 0x20 ) ) = = ( address ( 0x20 + ( arg2 + 0x20 ) ) ) ) ;
require ( ! ( address ( 0 + ( arg2 + 0x20 ) ) = = ( address ( 0x20 + ( arg2 + 0x20 ) ) ) ) , "STF" ) ;
require ( address ( 0 + ( arg2 + 0x20 ) ) < ( address ( 0x20 + ( arg2 + 0x20 ) ) ) , "STF" ) ;
require ( address ( 0 + ( arg2 + 0x20 ) ) , "STF" ) ;
var_a = var_a + 0x48 ;
var_a = var_a + 0xbd ;
require ( ! ( address ( 0 + ( arg2 + 0x20 ) ) = = 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) , "STF" ) ;
require ( ! ( ! address ( this) . balance < ( var_c) ) , "STF" ) ;
require ( ! ( address ( this) = = ( address ( msg. sender) ) ) , "STF" ) ;
var_a = var_a + 0x84 ;
require ( var_a. length < 0x20 , "STF" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( arg2 + 0x20 ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "STF" ) ;
require ( ! ( 0x01 = = ( address ( arg3) ) ) , "STF" ) ;
var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
var_c = msg. data[ 36 : 36 ] ;
require ( ! ( 0 < ( var_a. length - 0x01 ) ) , "STF" ) ;
return var_c;
require ( ! ( 0x02 = = ( address ( arg3) ) ) , "STF" ) ;
var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
var_c = msg. data[ 36 : 36 ] ;
require ( ! ( 0 < ( var_a. length - 0x01 ) ) , "STF" ) ;
return var_c;
var_a = var_a + ( 0x20 + ( 0x20 * ( arg2) ) ) ;
var_c = msg. data[ 36 : 36 ] ;
require ( ! ( 0 < ( var_a. length - 0x01 ) ) , "STF" ) ;
return var_c;
require ( ! var_aa, "STF" ) ;
require ( ! ( var_aa < 0x20 ) , "STF" ) ;
require ( var_b, "STF" ) ;
var_a = var_a + ( uint248 ( ret0. length + 0x3f ) ) ;
if ( ! var_a. length) {
}
var_a = var_a + 0x64 ;
require ( var_a. length < 0x20 , "ST" ) ;
( bool success, bytes memory ret0) = address ( 0 + ( arg2 + 0x20 ) ) . { value: 0 ether } adfepixw( ) ; // call
require ( ret0. length = = 0 , "ST" ) ;
require ( ! var_aa, "ST" ) ;
require ( ! ( var_aa < 0x20 ) , "ST" ) ;
require ( var_b, "ST" ) ;
var_a = var_a + ( uint248 ( ret0. length + 0x3f ) ) ;
if ( ! var_a. length) {
}
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . { value: var_c } deposit( ) ; // call
uint256 var_af = address ( keccak256( var_c) ) ;
require ( address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . code. length) ;
( bool success, bytes memory ret0) = address ( 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) . { value: 0 ether } many_msg_babbage( var_af) ; // call
require ( ! ret0. length < 0x20 ) ;
if ( ! ( address ( 0 + ( arg2 + 0x20 ) ) ) = = 0xa1077a294dde1b09bb078844df40758a5d0f9a27 ) {
}
require ( ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) - 0x01 ) < var_a. length) ;
require ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) < var_a. length) ;
require ( ! ( address ( var_ag) ) = = ( address ( var_ah) ) ) ;
require ( address ( var_ag) < ( address ( var_ah) ) ) ;
require ( address ( var_ag) ) ;
require ( ! ( address ( var_ag) ) = = ( address ( var_ah) ) ) ;
require ( address ( var_ag) < ( address ( var_ah) ) ) ;
require ( address ( var_ag) ) ;
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 ) ;
require ( address ( var_ag) = = ( address ( var_ag) ) ) ;
require ( ( 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + var_a. length) < var_a. length) ;
require ( var_ah > 0 ) ;
require ( ! ( uint112( var_u) ) > 0 ) ;
require ( uint112( var_a. length) > 0 ) ;
require ( ! uint112( var_u) ) ;
require ( uint112( var_u) ) ;
require ( var_ah * ( uint112( var_u) ) / ( uint112( var_u) ) = = ( var_ah) ) ;
}
/// @custom:selector 0x1f0464d1
/// @custom:signature multicall(bytes32 arg0, bytes[] arg1) public payable returns (bytes memory)
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
function multicall( bytes32 arg0, bytes [ ] arg1) public payable returns ( bytes memory ) {
require ( ! arg1 > 0xffffffffffffffff ) ;
require ( ! ( arg1) > 0xffffffffffffffff ) ;
require ( blockhash( block. number - 0x01 ) = = arg0, "Blockhash" ) ;
var_b = 0x20 ;
require ( ! ( arg1) > 0xffffffffffffffff ) ;
uint256 var_e = var_e + ( 0x20 + ( 0x20 * ( arg1) ) ) ;
require ( ! arg1) ;
require ( arg1 - 0x01 ) ;
require ( ! 0 < ( arg1) ) ;
require ( 0 < ( arg1) ) ;
require ( ! ( ( arg1 + 0x20 ) + ( ( arg1 + 0x20 ) + 0 ) ) > 0xffffffffffffffff ) ;
( bool success, bytes memory ret0) = address ( this) . Unresolved_( var_h) ; // delegatecall
require ( ret0. length = = 0 ) ;
require ( ! var_i < 0x44 ) ;
require ( ! ( ( 0x84 + var_j) - 0x84 ) < 0x20 ) ;
require ( ! var_b > 0xffffffffffffffff ) ;
require ( ( ( 0x84 + var_b) + 0x1f ) < ( 0x84 + var_j) , "" ) ;
require ( ! ( var_k > 0xffffffffffffffff ) , "" ) ;
require ( ! ( ( ( ( var_e + ( uint248 ( var_k + 0x1f ) ) ) + 0x20 ) > 0xffffffffffffffff ) | ( ( ( var_e + ( uint248 ( var_k + 0x1f ) ) ) + 0x20 ) < var_e) ) , "" ) ;
var_e = ( var_e + ( uint248 ( var_k + 0x1f ) ) ) + 0x20 ;
require ( ! ( ( 0x84 + var_j) < ( 0x20 + ( var_k + ( 0x84 + var_b) ) ) ) , "" ) ;
require ( ! ( 0 < ( var_k) ) , "" ) ;
require ( ! ( 0 > ( var_k) ) , "" ) ;
require ( ! ( 0 > var_e. length) , "" ) ;
var_e = var_e + ( uint248 ( ret0. length + 0x3f ) ) ;
return abi. encodePacked( 0x20 , var_e. length) ;
}
}
ABI
[
{
"type": "function",
"name": "Unresolved_3068c554",
"inputs": [
{
"name": "arg0",
"type": "address"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_4aa94288",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_9b2c0a37",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "address"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_ac9650d8",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "Unresolved_c8bb1856",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_df2ab5bb",
"inputs": [
{
"name": "arg0",
"type": "address"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_e0e189a0",
"inputs": [
{
"name": "arg0",
"type": "address"
}
],
"outputs": [],
"stateMutability": "pure"
},
{
"type": "function",
"name": "WETH9",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "factoryV1",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "factoryV2",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "multicall",
"inputs": [
{
"name": "arg0",
"type": "bytes32"
},
{
"name": "arg1",
"type": "bytes[]"
}
],
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "pull",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "refundETH",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "selfPermit",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint8"
},
{
"name": "arg4",
"type": "bytes32"
},
{
"name": "arg5",
"type": "bytes32"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "selfPermitAllowed",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint8"
},
{
"name": "arg4",
"type": "bytes32"
},
{
"name": "arg5",
"type": "bytes32"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "selfPermitAllowedIfNecessary",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint8"
},
{
"name": "arg4",
"type": "bytes32"
},
{
"name": "arg5",
"type": "bytes32"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "selfPermitIfNecessary",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "uint256"
},
{
"name": "arg3",
"type": "uint8"
},
{
"name": "arg4",
"type": "bytes32"
},
{
"name": "arg5",
"type": "bytes32"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "stableSwapInfo",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "swapExactTokensForTokensV1",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address[]"
},
{
"name": "arg3",
"type": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "swapExactTokensForTokensV2",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address[]"
},
{
"name": "arg3",
"type": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "swapTokensForExactTokensV1",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address[]"
},
{
"name": "arg3",
"type": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "swapTokensForExactTokensV2",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address[]"
},
{
"name": "arg3",
"type": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "payable"
},
{
"type": "function",
"name": "sweepToken",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "unwrapWETH9",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "unwrapWETH9WithFee",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "uint256"
},
{
"name": "arg2",
"type": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "wrapETH",
"inputs": [
{
"name": "arg0",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "payable"
}
]