Skip to content

Commit bde75d9

Browse files
committed
wip: update test_crossChainRebalance_updateSuperformData_DifferentReceiverError()
1 parent 60dc92d commit bde75d9

File tree

1 file changed

+174
-0
lines changed

1 file changed

+174
-0
lines changed

test/unit/router-plus/SuperformRouterPlus.t.sol

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2004,7 +2004,181 @@ contract SuperformRouterPlusTest is ProtocolActions {
20042004
liqRequests: liqRequests
20052005
});
20062006

2007+
// vm.startPrank(deployer);
2008+
2009+
// uint64 REBALANCE_FROM = ETH;
2010+
// uint64 REBALANCE_TO = OP;
2011+
2012+
// // Step 1: Initial XCHAIN Deposit
2013+
// _xChainDeposit(superformId5ETH, REBALANCE_FROM, 1);
2014+
2015+
// // Step 2: Start cross-chain rebalance
2016+
// vm.makePersistent(getContract(SOURCE_CHAIN, "SuperformRouterPlusAsync"));
2017+
// vm.makePersistent(getContract(SOURCE_CHAIN, "DAI"));
2018+
// vm.selectFork(FORKS[SOURCE_CHAIN]);
2019+
// // ISuperformRouterPlus.InitiateXChainRebalanceArgs memory args =
2020+
// // _buildInitiateXChainRebalanceArgs(REBALANCE_FROM, REBALANCE_TO, deployer);
2021+
2022+
// ISuperformRouterPlus.InitiateXChainRebalanceArgs memory args;
2023+
// args.id = superformId5ETH;
2024+
// args.sharesToRedeem = SuperPositions(SUPER_POSITIONS_SOURCE).balanceOf(deployer, superformId5ETH);
2025+
// args.interimAsset = getContract(SOURCE_CHAIN, "DAI");
2026+
// args.receiverAddressSP = address(deployer);
2027+
// vm.selectFork(FORKS[REBALANCE_FROM]);
2028+
// uint256 expectedAmountOfRebalanceFrom = IBaseForm(superform5ETH).previewRedeemFrom(args.sharesToRedeem);
2029+
// // conversion from DAI on DSTCHAIN to DAI on SOURCE CHAIN
2030+
// args.expectedAmountInterimAsset = _convertDecimals(
2031+
// expectedAmountOfRebalanceFrom,
2032+
// getContract(REBALANCE_FROM, "DAI"),
2033+
// args.interimAsset,
2034+
// REBALANCE_FROM,
2035+
// SOURCE_CHAIN
2036+
// );
2037+
// //vm.selectFork(initialFork);
2038+
// args.finalizeSlippage = 100; // 1%
2039+
// //args.callData = _callDataRebalanceFromXChain(args.interimAsset, superformId5ETH, REBALANCE_FROM);
2040+
2041+
// LiqBridgeTxDataArgs memory liqBridgeTxDataArgs = LiqBridgeTxDataArgs(
2042+
// 1,
2043+
// getContract(REBALANCE_TO, "DAI"),
2044+
// getContract(REBALANCE_TO, "DAI"),
2045+
// getContract(REBALANCE_TO, "DAI"),
2046+
// getContract(SOURCE_CHAIN, "SuperformRouterPlusAsync"),
2047+
// REBALANCE_TO,
2048+
// REBALANCE_TO,
2049+
// REBALANCE_TO,
2050+
// false,
2051+
// getContract(SOURCE_CHAIN, "SuperformRouterPlusAsync"),
2052+
// uint256(REBALANCE_TO),
2053+
// 1e18,
2054+
// //1e18,
2055+
// true,
2056+
// /// @dev placeholder value, not used
2057+
// 0,
2058+
// 1,
2059+
// 1,
2060+
// 1,
2061+
// address(0)
2062+
// );
2063+
2064+
// SingleVaultSFData memory data = SingleVaultSFData(
2065+
// superformId5ETH,
2066+
// 1e18,
2067+
// 1e18,
2068+
// 100,
2069+
// LiqRequest(_buildLiqBridgeTxData(liqBridgeTxDataArgs, false), getContract(REBALANCE_FROM, "DAI"), address(0), 1, SOURCE_CHAIN, 0),
2070+
// "",
2071+
// false,
2072+
// false,
2073+
// ROUTER_PLUS_ASYNC_SOURCE,
2074+
// deployer,
2075+
// ""
2076+
// );
2077+
2078+
// args.callData = abi.encodeCall(
2079+
// IBaseRouter.singleXChainSingleVaultWithdraw, SingleXChainSingleVaultStateReq(AMBs, REBALANCE_FROM, data)
2080+
// );
2081+
2082+
// /// @dev rebalance to call data formulation for a xchain deposit
2083+
// args.rebalanceToSelector = IBaseRouter.singleXChainSingleVaultDeposit.selector;
2084+
2085+
// args.rebalanceToAmbIds = new uint8[][](1);
2086+
// args.rebalanceToAmbIds[0] = AMBs;
2087+
// args.rebalanceToDstChainIds = new uint64[](1);
2088+
// args.rebalanceToDstChainIds[0] = REBALANCE_TO;
2089+
2090+
// vm.selectFork(FORKS[REBALANCE_TO]);
2091+
2092+
// (address superformRebalanceTo,,) = superformId4OP.getSuperform();
2093+
// address underlyingTokenRebalanceTo = IBaseForm(superformRebalanceTo).getVaultAsset();
2094+
// /// data for a bridge from Router to Core State Registry
2095+
// // LiqBridgeTxDataArgs memory liqBridgeTxDataArgs = LiqBridgeTxDataArgs(
2096+
// // 1,
2097+
// // args.interimAsset,
2098+
// // getContract(SOURCE_CHAIN, ERC20(underlyingTokenRebalanceTo).symbol()),
2099+
// // underlyingTokenRebalanceTo,
2100+
// // getContract(SOURCE_CHAIN, "SuperformRouter"),
2101+
// // SOURCE_CHAIN,
2102+
// // REBALANCE_TO,
2103+
// // REBALANCE_TO,
2104+
// // false,
2105+
// // getContract(REBALANCE_TO, "CoreStateRegistry"),
2106+
// // uint256(REBALANCE_TO),
2107+
// // 1e18,
2108+
// // //1e18,
2109+
// // false,
2110+
// // /// @dev placeholder value, not used
2111+
// // 0,
2112+
// // 1,
2113+
// // 1,
2114+
// // 1,
2115+
// // address(0)
2116+
// // );
2117+
2118+
// // conversion from USDC on SOURCE CHAIN to DAI on DSTCHAIN
2119+
// uint256 expectedAmountToReceiveAfterBridge = _convertDecimals(
2120+
// args.expectedAmountInterimAsset,
2121+
// args.interimAsset,
2122+
// getContract(REBALANCE_TO, "DAI"),
2123+
// SOURCE_CHAIN,
2124+
// REBALANCE_TO
2125+
// );
2126+
2127+
// uint256 expectedOutputAmount = IBaseForm(superform4OP).previewDepositTo(expectedAmountToReceiveAfterBridge);
2128+
2129+
// SingleVaultSFData memory sfData = SingleVaultSFData({
2130+
// superformId: superformId4OP,
2131+
// amount: expectedAmountToReceiveAfterBridge,
2132+
// outputAmount: expectedOutputAmount,
2133+
// maxSlippage: 100,
2134+
// liqRequest: LiqRequest({
2135+
// txData: _buildLiqBridgeTxData(liqBridgeTxDataArgs, false),
2136+
// token: args.interimAsset,
2137+
// interimToken: address(0),
2138+
// bridgeId: 1,
2139+
// liqDstChainId: REBALANCE_TO,
2140+
// nativeAmount: 0
2141+
// }),
2142+
// permit2data: "",
2143+
// hasDstSwap: false,
2144+
// retain4626: false,
2145+
// receiverAddress: address(deployer),
2146+
// receiverAddressSP: address(deployer),
2147+
// extraFormData: ""
2148+
// });
2149+
// args.rebalanceToSfData = abi.encode(sfData);
2150+
2151+
// vm.selectFork(REBALANCE_FROM);
2152+
2153+
// vm.startPrank(deployer);
2154+
2155+
// SuperPositions(SUPER_POSITIONS_SOURCE).increaseAllowance(
2156+
// ROUTER_PLUS_SOURCE, superformId5ETH, args.sharesToRedeem
2157+
// );
2158+
// vm.recordLogs();
2159+
// SuperformRouterPlus(ROUTER_PLUS_SOURCE).startCrossChainRebalance{ value: 2 ether }(args);
2160+
2161+
// // Step 3: Process XChain Withdraw (rebalance from)
2162+
// uint256 balanceOfInterimAssetBefore =
2163+
// MockERC20(args.interimAsset).balanceOf(getContract(SOURCE_CHAIN, "SuperformRouterPlusAsync"));
2164+
2165+
// _processXChainWithdrawOneVault(SOURCE_CHAIN, REBALANCE_FROM, vm.getRecordedLogs(), 2);
2166+
2167+
// vm.selectFork(FORKS[SOURCE_CHAIN]);
2168+
// uint256 balanceOfInterimAssetAfter =
2169+
// MockERC20(args.interimAsset).balanceOf(getContract(SOURCE_CHAIN, "SuperformRouterPlusAsync"));
2170+
2171+
// uint256 interimAmountOnRouterPlusAsync = balanceOfInterimAssetAfter - balanceOfInterimAssetBefore;
2172+
2173+
// ISuperformRouterPlusAsync.CompleteCrossChainRebalanceArgs memory completeArgs =
2174+
// _buildCompleteCrossChainRebalanceArgs(interimAmountOnRouterPlusAsync, superformId4OP, REBALANCE_TO);
2175+
2176+
// Step 4: Complete cross-chain rebalance
20072177
vm.startPrank(deployer);
2178+
//completeArgs.amountReceivedInterimAsset = completeArgs.amountReceivedInterimAsset / 3;
2179+
//completeArgs.liqRequests[0][0].token = getContract(SOURCE_CHAIN, "DAI");
2180+
//completeArgs.liqRequests[0][0].interimToken = getContract(SOURCE_CHAIN, "DAI");
2181+
completeArgs.receiverAddressSP = address(12345);
20082182
vm.expectRevert(ISuperformRouterPlusAsync.COMPLETE_REBALANCE_DIFFERENT_RECEIVER.selector);
20092183
SuperformRouterPlusAsync(ROUTER_PLUS_ASYNC_SOURCE).completeCrossChainRebalance{ value: 1 ether }(completeArgs);
20102184
vm.stopPrank();

0 commit comments

Comments
 (0)