@@ -973,6 +973,38 @@ contract EulerIntegrationTest is BaseTest {
973
973
assertEq (_manager.shares (lPair3, USDC), 0 , "pair3 shares " );
974
974
}
975
975
976
+ // The following two test cases show that even with a third party intentionally / accidentally
977
+ // transfers the underlying tokens to the asset manager, it would still function (deposit/withdraw) as normal
978
+ function testResilientEvenWithUnexpectedTokens_Deposit () external allNetworks allPairs {
979
+ // arrange
980
+ _deal (address (USDC), address (_manager), 1_000_000e6 );
981
+
982
+ // act - adjustManagement should still succeed despite extra tokens
983
+ int256 lAmtToManage = 2e6 ;
984
+ _manager.adjustManagement (_pair, USDC == _pair.token0 () ? lAmtToManage : int256 (0 ), USDC == _pair.token1 () ? lAmtToManage : int256 (0 ));
985
+
986
+ // assert
987
+ assertGt (USDC.balanceOf (address (_manager)), 0 );
988
+ assertApproxEqAbs (_manager.getBalance (_pair, USDC), uint256 (lAmtToManage), 1 );
989
+ }
990
+
991
+ function testResilientEvenWithUnexpectedTokens_Withdraw () external allNetworks allPairs {
992
+ // arrange
993
+ int256 lAmtToManage = 2e6 ;
994
+ _increaseManagementOneToken (lAmtToManage);
995
+ uint256 lUnexpectedTokens = 33222 ;
996
+ _deal (address (USDC), address (_manager), lUnexpectedTokens);
997
+
998
+ // act
999
+ uint256 lBalance = _manager.getBalance (_pair, USDC);
1000
+ _manager.adjustManagement (_pair, _pair.token0 () == USDC ? - int256 (lBalance) : int256 (0 ), _pair.token1 () == USDC ? - int256 (lBalance) : int256 (0 ));
1001
+
1002
+ // assert
1003
+ assertEq (_manager.getBalance (_pair, USDC), 0 );
1004
+ assertEq (USDCVault.balanceOf (address (_manager)), 0 );
1005
+ assertEq (USDC.balanceOf (address (_manager)), lUnexpectedTokens);
1006
+ }
1007
+
976
1008
// this test shows that the asset manager should still function properly with investing, divesting, showing balance
977
1009
// even if an external party transfers unsolicited shares into it
978
1010
function testResilientEvenInExternalShareTransfer () external allNetworks allPairs {
0 commit comments