@@ -93,6 +93,7 @@ contract ClientTest is Test {
9393 actorIdMock.setGetClaimsResult (
9494 hex "8282018081881903E81866D82A5828000181E203922020071E414627E89D421B3BAFCCB24CBA13DDE9B6F388706AC8B1D48E58935C76381908001A003815911A005034D60000 "
9595 );
96+ actorIdMock.setDataCapTransferResult (hex "834100410049838201808200808101 " );
9697 // --- Dummy transfer params ---
9798 transferParams = DataCapTypes.TransferParams ({
9899 to: CommonTypes.FilAddress (transferTo),
@@ -159,13 +160,14 @@ contract ClientTest is Test {
159160 assertEq (clientAllocationIdsBefore.length , 0 );
160161
161162 transferParams.operator_data =
162- hex "828186192710D82A5828000181E203922020F2B9A58BBC9D9856E52EAB85155C1BA298F7E8DF458BD20A3AD767E11572CA221908001A0007E9001A005033401901318183192710011A005034AC " ;
163+ hex "828186192710D82A5828000181E203922020F2B9A58BBC9D9856E52EAB85155C1BA298F7E8DF458BD20A3AD767E11572CA221908001A0007E9001A005033401901318183192710021A005034AC " ;
163164 vm.prank (clientAddress);
164165 client.transfer (transferParams, dealId, false );
165166
166167 CommonTypes.FilActorId[] memory clientAllocationIdsAfter = client.getClientAllocationIdsPerDeal (dealId);
167- assertEq (clientAllocationIdsAfter.length , 1 );
168- assertEq (CommonTypes.FilActorId.unwrap (clientAllocationIdsAfter[0 ]), 1 );
168+ assertEq (clientAllocationIdsAfter.length , 2 );
169+ assertEq (CommonTypes.FilActorId.unwrap (clientAllocationIdsAfter[0 ]), 2 );
170+ assertEq (CommonTypes.FilActorId.unwrap (clientAllocationIdsAfter[1 ]), 1 );
169171 }
170172
171173 function testInvalidClaimExtensionRequest () public {
@@ -485,4 +487,42 @@ contract ClientTest is Test {
485487 vm.expectRevert (abi.encodeWithSelector (ReentrancyGuard.ReentrancyGuardReentrantCall.selector ));
486488 client.transfer (transferParams, dealId, false );
487489 }
490+
491+ function testShouldAddClaimExtensionIdsAfterTransfer () public {
492+ ClientContractMock clientMock = ClientContractMock (setupProxy (address (new ClientContractMock ())));
493+ transferParams.operator_data =
494+ hex "828186192710D82A5828000181E203922020F2B9A58BBC9D9856E52EAB85155C1BA298F7E8DF458BD20A3AD767E11572CA221908001A0007E9001A005033401901318183192710031A005034AC " ;
495+
496+ vm.prank (clientAddress);
497+ clientMock.transfer (transferParams, dealId, false );
498+
499+ poRepMarketMock.setDealProposal (
500+ dealId,
501+ PoRepMarket.DealProposal ({
502+ dealId: 150 ,
503+ client: clientAddress,
504+ provider: SP1,
505+ requirements: SLIThresholds (80 , 500 , 200 , 90 ),
506+ validator: address (validatorMock),
507+ state: PoRepMarket.DealState.Accepted,
508+ railId: 0
509+ })
510+ );
511+ // solhint-disable-next-line reentrancy
512+ transferParams.operator_data =
513+ hex "828286192710D82A5828000181E203922020F2B9A58BBC9D9856E52EAB85155C1BA298F7E8DF458BD20A3AD767E11572CA221908001A0007E9001A0050334019013186192710D82A5828000181E203922020F2B9A58BBC9D9856E52EAB85155C1BA298F7E8DF458BD20A3AD767E11572CA221950001A0007E9001A009C7E801901318183192710041A005034AC " ;
514+ actorIdMock.setDataCapTransferResult (hex "834100410049838201808200808102 " );
515+ vm.expectEmit (true , true , true , true );
516+ emit Client.ValidatorLockupPeriodUpdated (dealId, address (validatorMock));
517+
518+ vm.prank (clientAddress);
519+ clientMock.transfer (transferParams, dealId, false );
520+
521+ Client.Deal memory deal = clientMock.getDeal (dealId);
522+ assertEq (deal.allocationIds.length , 4 );
523+ assertTrue (CommonTypes.FilActorId.unwrap (deal.allocationIds[0 ]) == 3 );
524+ assertTrue (CommonTypes.FilActorId.unwrap (deal.allocationIds[1 ]) == 1 );
525+ assertTrue (CommonTypes.FilActorId.unwrap (deal.allocationIds[2 ]) == 4 );
526+ assertTrue (CommonTypes.FilActorId.unwrap (deal.allocationIds[3 ]) == 2 );
527+ }
488528}
0 commit comments