@@ -94,6 +94,7 @@ contract ClientTest is Test {
9494 actorIdMock.setGetClaimsResult (
9595 hex "8282018081881903E81866D82A5828000181E203922020071E414627E89D421B3BAFCCB24CBA13DDE9B6F388706AC8B1D48E58935C76381908001A003815911A005034D60000 "
9696 );
97+ actorIdMock.setDataCapTransferResult (hex "834100410049838201808200808101 " );
9798 // --- Dummy transfer params ---
9899 transferParams = DataCapTypes.TransferParams ({
99100 to: CommonTypes.FilAddress (transferTo),
@@ -162,13 +163,14 @@ contract ClientTest is Test {
162163 assertEq (clientAllocationIdsBefore.length , 0 );
163164
164165 transferParams.operator_data =
165- hex "828186192710D82A5828000181E203922020F2B9A58BBC9D9856E52EAB85155C1BA298F7E8DF458BD20A3AD767E11572CA221908001A0007E9001A005033401901318183192710011A005034AC " ;
166+ hex "828186192710D82A5828000181E203922020F2B9A58BBC9D9856E52EAB85155C1BA298F7E8DF458BD20A3AD767E11572CA221908001A0007E9001A005033401901318183192710021A005034AC " ;
166167 vm.prank (clientAddress);
167168 client.transfer (transferParams, dealId, false );
168169
169170 CommonTypes.FilActorId[] memory clientAllocationIdsAfter = client.getClientAllocationIdsPerDeal (dealId);
170- assertEq (clientAllocationIdsAfter.length , 1 );
171- assertEq (CommonTypes.FilActorId.unwrap (clientAllocationIdsAfter[0 ]), 1 );
171+ assertEq (clientAllocationIdsAfter.length , 2 );
172+ assertEq (CommonTypes.FilActorId.unwrap (clientAllocationIdsAfter[0 ]), 2 );
173+ assertEq (CommonTypes.FilActorId.unwrap (clientAllocationIdsAfter[1 ]), 1 );
172174 }
173175
174176 function testInvalidClaimExtensionRequest () public {
@@ -702,4 +704,42 @@ contract ClientTest is Test {
702704 vm.expectRevert (Client.GetClaimsCallFailed.selector );
703705 clientMock.isDataSizeMatching (dealId);
704706 }
707+
708+ function testShouldAddClaimExtensionIdsAfterTransfer () public {
709+ ClientContractMock clientMock = ClientContractMock (setupProxy (address (new ClientContractMock ())));
710+ transferParams.operator_data =
711+ hex "828186192710D82A5828000181E203922020F2B9A58BBC9D9856E52EAB85155C1BA298F7E8DF458BD20A3AD767E11572CA221908001A0007E9001A005033401901318183192710031A005034AC " ;
712+
713+ vm.prank (clientAddress);
714+ clientMock.transfer (transferParams, dealId, false );
715+
716+ poRepMarketMock.setDealProposal (
717+ dealId,
718+ PoRepMarket.DealProposal ({
719+ dealId: 150 ,
720+ client: clientAddress,
721+ provider: SP1,
722+ requirements: SLIThresholds (80 , 500 , 200 , 90 ),
723+ validator: address (validatorMock),
724+ state: PoRepMarket.DealState.Accepted,
725+ railId: 0
726+ })
727+ );
728+ // solhint-disable-next-line reentrancy
729+ transferParams.operator_data =
730+ hex "828286192710D82A5828000181E203922020F2B9A58BBC9D9856E52EAB85155C1BA298F7E8DF458BD20A3AD767E11572CA221908001A0007E9001A0050334019013186192710D82A5828000181E203922020F2B9A58BBC9D9856E52EAB85155C1BA298F7E8DF458BD20A3AD767E11572CA221950001A0007E9001A009C7E801901318183192710041A005034AC " ;
731+ actorIdMock.setDataCapTransferResult (hex "834100410049838201808200808102 " );
732+ vm.expectEmit (true , true , true , true );
733+ emit Client.ValidatorLockupPeriodUpdated (dealId, address (validatorMock));
734+
735+ vm.prank (clientAddress);
736+ clientMock.transfer (transferParams, dealId, false );
737+
738+ Client.Deal memory deal = clientMock.getDeal (dealId);
739+ assertEq (deal.allocationIds.length , 4 );
740+ assertTrue (CommonTypes.FilActorId.unwrap (deal.allocationIds[0 ]) == 3 );
741+ assertTrue (CommonTypes.FilActorId.unwrap (deal.allocationIds[1 ]) == 1 );
742+ assertTrue (CommonTypes.FilActorId.unwrap (deal.allocationIds[2 ]) == 4 );
743+ assertTrue (CommonTypes.FilActorId.unwrap (deal.allocationIds[3 ]) == 2 );
744+ }
705745}
0 commit comments