diff --git a/foundry/test/Constants.sol b/foundry/test/Constants.sol index 6675759..2f77465 100644 --- a/foundry/test/Constants.sol +++ b/foundry/test/Constants.sol @@ -3,7 +3,15 @@ pragma solidity ^0.8.26; import "forge-std/Test.sol"; -contract Constants is Test { +contract BaseConstants { + address BASE_USDC = 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913; + address BASE_MAG7 = 0x9E6A46f294bB67c20F1D1E7AfB0bBEf614403B55; + + // uniswap v2 + address USDC_MAG7_POOL = 0x739c2431670A12E2cF8e11E3603eB96e6728a789; +} + +contract Constants is Test, BaseConstants { address ADMIN = makeAddr("admin"); //admin=us address BOB = makeAddr("bob"); //bob=someone!=us address FUND_RESCUER = makeAddr("fundRescuer"); diff --git a/foundry/test/TychoRouter.t.sol b/foundry/test/TychoRouter.t.sol index e503f7e..6033feb 100644 --- a/foundry/test/TychoRouter.t.sol +++ b/foundry/test/TychoRouter.t.sol @@ -978,4 +978,26 @@ contract TychoRouterTest is TychoRouterTestSetup { assertEq(IERC20(WBTC_ADDR).balanceOf(tychoRouterAddr), 102718); } + + // Base Network Tests + // Make sure to set the RPC_URL to base network + function testSwapSingleBase() public { + vm.skip(true); + vm.rollFork(26857267); + uint256 amountIn = 10 * 10 ** 6; + deal(BASE_USDC, tychoRouterAddr, amountIn); + + bytes memory protocolData = encodeUniswapV2Swap( + BASE_USDC, USDC_MAG7_POOL, tychoRouterAddr, true + ); + + bytes memory swap = encodeSwap( + uint8(0), uint8(1), uint24(0), address(usv2Executor), protocolData + ); + bytes[] memory swaps = new bytes[](1); + swaps[0] = swap; + + tychoRouter.exposedSwap(amountIn, 2, pleEncode(swaps)); + assertGt(IERC20(BASE_MAG7).balanceOf(tychoRouterAddr), 1379830606); + } } diff --git a/foundry/test/executors/UniswapV2Executor.t.sol b/foundry/test/executors/UniswapV2Executor.t.sol index 01722eb..0b4d705 100644 --- a/foundry/test/executors/UniswapV2Executor.t.sol +++ b/foundry/test/executors/UniswapV2Executor.t.sol @@ -156,4 +156,21 @@ contract UniswapV2ExecutorTest is UniswapV2ExecutorExposed, Test, Constants { vm.expectRevert(UniswapV2Executor__InvalidTarget.selector); uniswapV2Exposed.swap(amountIn, protocolData); } + + // Base Network Tests + // Make sure to set the RPC_URL to base network + function testSwapBaseNetwork() public { + vm.skip(true); + vm.rollFork(26857267); + uint256 amountIn = 10 * 10 ** 6; + bool zeroForOne = true; + bytes memory protocolData = + abi.encodePacked(BASE_USDC, USDC_MAG7_POOL, BOB, zeroForOne); + + deal(BASE_USDC, address(uniswapV2Exposed), amountIn); + + uniswapV2Exposed.swap(amountIn, protocolData); + + assertEq(IERC20(BASE_MAG7).balanceOf(BOB), 1379830606); + } }