@@ -1833,25 +1833,60 @@ contract SuperformRouterPlusTest is ProtocolActions {
1833
1833
vm.expectRevert (ISuperformRouterPlusAsync.COMPLETE_REBALANCE_DIFFERENT_TOKEN.selector );
1834
1834
SuperformRouterPlusAsync (ROUTER_PLUS_ASYNC_SOURCE).completeCrossChainRebalance { value: 1 ether }(completeArgs);
1835
1835
1836
+ // Test COMPLETE_REBALANCE_DIFFERENT_TOKEN error
1837
+ completeArgs.liqRequests[0 ][0 ].txData = "invalid-tx-data " ;
1838
+ completeArgs.liqRequests[0 ][0 ].token = getContract (SOURCE_CHAIN, "DAI " );
1839
+ completeArgs.liqRequests[0 ][0 ].interimToken = address (0x123 );
1840
+
1841
+ vm.expectRevert (ISuperformRouterPlusAsync.COMPLETE_REBALANCE_DIFFERENT_TOKEN.selector );
1842
+ SuperformRouterPlusAsync (ROUTER_PLUS_ASYNC_SOURCE).completeCrossChainRebalance { value: 1 ether }(completeArgs);
1843
+
1836
1844
// Reset token
1837
- // completeArgs.liqRequests[0][0].token = getContract(SOURCE_CHAIN, "DAI" );
1845
+ completeArgs.liqRequests[0 ][0 ].interimToken = address ( 0 );
1838
1846
1839
- // // Test COMPLETE_REBALANCE_DIFFERENT_BRIDGE_ID error
1840
- // completeArgs.liqRequests[0][0].bridgeId = 2;
1841
- // vm.expectRevert(ISuperformRouterPlusAsync.COMPLETE_REBALANCE_DIFFERENT_BRIDGE_ID.selector);
1842
- // SuperformRouterPlusAsync(ROUTER_PLUS_ASYNC_SOURCE).completeCrossChainRebalance{ value: 1 ether
1843
- // }(completeArgs);
1847
+ // Test COMPLETE_REBALANCE_DIFFERENT_BRIDGE_ID error
1848
+ completeArgs.liqRequests[0 ][0 ].bridgeId = 2 ;
1849
+ vm.expectRevert (ISuperformRouterPlusAsync.COMPLETE_REBALANCE_DIFFERENT_BRIDGE_ID.selector );
1850
+ SuperformRouterPlusAsync (ROUTER_PLUS_ASYNC_SOURCE).completeCrossChainRebalance { value: 1 ether }(completeArgs);
1844
1851
1845
- // // Reset bridgeId
1846
- // completeArgs.liqRequests[0][0].bridgeId = 1;
1852
+ // Reset bridgeId
1853
+ completeArgs.liqRequests[0 ][0 ].bridgeId = 1 ;
1854
+
1855
+ // Test COMPLETE_REBALANCE_DIFFERENT_CHAIN error
1856
+ completeArgs.liqRequests[0 ][0 ].liqDstChainId = OP;
1857
+ vm.expectRevert (ISuperformRouterPlusAsync.COMPLETE_REBALANCE_DIFFERENT_CHAIN.selector );
1858
+ SuperformRouterPlusAsync (ROUTER_PLUS_ASYNC_SOURCE).completeCrossChainRebalance { value: 1 ether }(completeArgs);
1847
1859
1848
- // // Test COMPLETE_REBALANCE_DIFFERENT_CHAIN error
1849
- // completeArgs.liqRequests[0][0].liqDstChainId = OP;
1850
- // vm.expectRevert(ISuperformRouterPlusAsync.COMPLETE_REBALANCE_DIFFERENT_CHAIN.selector);
1860
+ // Reset liqDstChainId
1861
+ completeArgs.liqRequests[0 ][0 ].liqDstChainId = SOURCE_CHAIN;
1862
+
1863
+ /// @FIXME: This line is not reacheable
1864
+ // vm.expectRevert(ISuperformRouterPlusAsync.COMPLETE_REBALANCE_DIFFERENT_RECEIVER.selector);
1865
+ // completeArgs.receiverAddressSP = address(0x123);
1851
1866
// SuperformRouterPlusAsync(ROUTER_PLUS_ASYNC_SOURCE).completeCrossChainRebalance{ value: 1 ether
1852
1867
// }(completeArgs);
1868
+ vm.stopPrank ();
1869
+
1870
+ sfData.liqRequest.token = address (0 );
1853
1871
1872
+ data = IBaseSuperformRouterPlus.XChainRebalanceData ({
1873
+ rebalanceSelector: IBaseRouter.singleDirectSingleVaultDeposit.selector ,
1874
+ interimAsset: getContract (SOURCE_CHAIN, "DAI " ),
1875
+ slippage: 100 ,
1876
+ expectedAmountInterimAsset: 1e18 ,
1877
+ rebalanceToAmbIds: abi.encode (new uint8 [](0 )),
1878
+ rebalanceToDstChainIds: abi.encode (new uint64 [](0 )),
1879
+ rebalanceToSfData: abi.encode (sfData)
1880
+ });
1881
+
1882
+ vm.startPrank (ROUTER_PLUS_SOURCE);
1883
+ SuperformRouterPlusAsync (ROUTER_PLUS_ASYNC_SOURCE).setXChainRebalanceCallData (deployer, 2 , data);
1854
1884
vm.stopPrank ();
1885
+
1886
+ vm.startPrank (deployer);
1887
+ completeArgs.routerPlusPayloadId = 2 ;
1888
+ vm.expectRevert (ISuperformRouterPlusAsync.COMPLETE_REBALANCE_INVALID_TX_DATA_UPDATE.selector );
1889
+ SuperformRouterPlusAsync (ROUTER_PLUS_ASYNC_SOURCE).completeCrossChainRebalance { value: 1 ether }(completeArgs);
1855
1890
}
1856
1891
1857
1892
//////////////////////////////////////////////////////////////
0 commit comments