@@ -12,7 +12,6 @@ import {SessionKeyRegistry} from "@session-key-registry/SessionKeyRegistry.sol";
1212import {PDPListener} from "@pdp/PDPVerifier.sol " ;
1313import {MyERC1967Proxy} from "@pdp/ERC1967Proxy.sol " ;
1414import {FilecoinPayV1} from "@fws-payments/FilecoinPayV1.sol " ;
15- import {Errors} from "../src/Errors.sol " ;
1615import {MockERC20, MockPDPVerifier} from "./mocks/SharedMocks.sol " ;
1716import {IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol " ;
1817
@@ -217,139 +216,70 @@ contract FilecoinWarmStorageServiceOwnerTest is MockFVMTest {
217216 console.log ("Service provider field correctly set to creator: " , provider1);
218217 }
219218
219+ // NOTE: Disabled for GA - Storage provider changes are not permitted
220+ // See: https://github.com/FilOzone/filecoin-services/issues/203
220221 function testStorageProviderChangedUpdatesOnlyOwnerField () public {
221- console.log ("=== Test: storageProviderChanged updates only owner field === " );
222+ console.log ("=== Test: storageProviderChanged reverts (not yet supported) === " );
222223
223224 uint256 dataSetId = createDataSet (provider1, client);
224225
225- // Get initial state
226- FilecoinWarmStorageService.DataSetInfoView memory infoBefore = viewContract.getDataSet (dataSetId);
227- assertEq (infoBefore.serviceProvider, provider1, "Initial owner should be provider1 " );
228-
229- // Change storage provider
230- vm.expectEmit (true , true , true , true );
231- emit DataSetServiceProviderChanged (dataSetId, provider1, provider2);
232-
226+ // Change storage provider should revert at FWSS listener
233227 vm.prank (provider2);
228+ vm.expectRevert ("Storage provider changes are not yet supported " );
234229 pdpVerifier.changeDataSetServiceProvider (dataSetId, provider2, address (serviceContract), new bytes (0 ));
235230
236- // Check updated state
237- FilecoinWarmStorageService.DataSetInfoView memory infoAfter = viewContract.getDataSet (dataSetId);
238-
239- assertEq (infoAfter.serviceProvider, provider2, "Service provider should be updated to provider2 " );
240- assertEq (infoAfter.payee, provider1, "Payee should remain unchanged " );
241- assertEq (infoAfter.payer, client, "Payer should remain unchanged " );
242-
243- console.log ("Service provider updated from " , provider1, "to " , provider2);
244- console.log ("Payee remained unchanged: " , provider1);
231+ console.log ("Storage provider change correctly rejected " );
245232 }
246233
234+ // NOTE: Disabled for GA - Storage provider changes are not permitted
235+ // See: https://github.com/FilOzone/filecoin-services/issues/203
247236 function testStorageProviderChangedRevertsForUnregisteredProvider () public {
248- console.log ("=== Test: storageProviderChanged reverts for unregistered provider === " );
237+ console.log ("=== Test: storageProviderChanged reverts (not yet supported) === " );
249238
250239 uint256 dataSetId = createDataSet (provider1, client);
251240
252241 address unregisteredAddress = address (0x999 );
253242
254- // Try to change to unregistered provider
243+ // Try to change to unregistered provider, expect a revert
255244 vm.prank (address (pdpVerifier));
256- vm.expectRevert (abi.encodeWithSelector (Errors.ProviderNotRegistered. selector , unregisteredAddress) );
245+ vm.expectRevert (" Storage provider changes are not yet supported " );
257246 serviceContract.storageProviderChanged (dataSetId, provider1, unregisteredAddress, new bytes (0 ));
258247
259- console.log ("Correctly reverted for unregistered provider " );
248+ console.log ("Correctly reverted (feature not yet supported) " );
260249 }
261250
251+ // NOTE: Disabled for GA - Storage provider changes are not permitted
252+ // See: https://github.com/FilOzone/filecoin-services/issues/203
262253 function testStorageProviderChangedSucceedsForAnyRegisteredProvider () public {
263- console.log ("=== Test: storageProviderChanged succeeds for any registered provider === " );
254+ console.log ("=== Test: storageProviderChanged reverts (not yet supported) === " );
264255
265256 uint256 dataSetId = createDataSet (provider1, client);
266257
267- // Change to shouldn't require provider be approved
258+ // Change to registered provider should revert
268259 vm.prank (address (pdpVerifier));
260+ vm.expectRevert ("Storage provider changes are not yet supported " );
269261 serviceContract.storageProviderChanged (dataSetId, provider1, unauthorizedProvider, new bytes (0 ));
270262
271- // Verify the service provider was changed
272- FilecoinWarmStorageService.DataSetInfoView memory info = viewContract.getDataSet (dataSetId);
273- assertEq (info.serviceProvider, unauthorizedProvider, "Service provider should be updated " );
274-
275- console.log ("Successfully changed to registered provider (approval not required) " );
263+ console.log ("Correctly reverted (feature not yet supported) " );
276264 }
277265
266+ // NOTE: Disabled for GA - Storage provider changes are not permitted
267+ // See: https://github.com/FilOzone/filecoin-services/issues/203
278268 function testStorageProviderChangedRevertsForWrongOldOwner () public {
279- console.log ("=== Test: storageProviderChanged reverts for wrong old owner === " );
269+ console.log ("=== Test: storageProviderChanged reverts (not yet supported) === " );
280270
281271 uint256 dataSetId = createDataSet (provider1, client);
282272
283- // Try to change with wrong old owner
273+ // Try to change with wrong old owner - now reverts before validation
284274 vm.prank (address (pdpVerifier));
285- vm.expectRevert (
286- abi.encodeWithSelector (
287- Errors.OldServiceProviderMismatch.selector ,
288- dataSetId,
289- provider1, // actual owner
290- provider3 // wrong old owner passed
291- )
292- );
275+ vm.expectRevert ("Storage provider changes are not yet supported " );
293276 serviceContract.storageProviderChanged (
294277 dataSetId,
295278 provider3, // wrong old owner
296279 provider2,
297280 new bytes (0 )
298281 );
299282
300- console.log ("Correctly reverted for wrong old owner " );
301- }
302-
303- function testTerminateServiceUsesOwnerForAuthorization () public {
304- console.log ("=== Test: terminateService uses owner for authorization === " );
305-
306- uint256 dataSetId = createDataSet (provider1, client);
307-
308- // Change owner to provider2
309- vm.prank (provider2);
310- pdpVerifier.changeDataSetServiceProvider (dataSetId, provider2, address (serviceContract), new bytes (0 ));
311-
312- // Provider1 (original creator but no longer owner) should not be able to terminate
313- vm.prank (provider1);
314- vm.expectRevert (
315- abi.encodeWithSelector (
316- Errors.CallerNotPayerOrPayee.selector ,
317- dataSetId,
318- client, // payer
319- provider2, // current owner
320- provider1 // caller
321- )
322- );
323- serviceContract.terminateService (dataSetId);
324-
325- // Provider2 (current owner) should be able to terminate
326- vm.prank (provider2);
327- serviceContract.terminateService (dataSetId);
328-
329- console.log ("Only current owner (provider2) could terminate, not original creator (provider1) " );
330- }
331-
332- function testMultipleOwnerChanges () public {
333- console.log ("=== Test: Multiple owner changes === " );
334-
335- uint256 dataSetId = createDataSet (provider1, client);
336-
337- // First change: provider1 -> provider2
338- vm.prank (provider2);
339- pdpVerifier.changeDataSetServiceProvider (dataSetId, provider2, address (serviceContract), new bytes (0 ));
340-
341- FilecoinWarmStorageService.DataSetInfoView memory info1 = viewContract.getDataSet (dataSetId);
342- assertEq (info1.serviceProvider, provider2, "Service provider should be provider2 after first change " );
343-
344- // Second change: provider2 -> provider3
345- vm.prank (provider3);
346- pdpVerifier.changeDataSetServiceProvider (dataSetId, provider3, address (serviceContract), new bytes (0 ));
347-
348- FilecoinWarmStorageService.DataSetInfoView memory info2 = viewContract.getDataSet (dataSetId);
349- assertEq (info2.serviceProvider, provider3, "Service provider should be provider3 after second change " );
350- assertEq (info2.payee, provider1, "Payee should still be original provider1 " );
351-
352- console.log ("Service provider changed successfully: provider1 -> provider2 -> provider3 " );
353- console.log ("Payee remained as provider1 throughout " );
283+ console.log ("Correctly reverted (feature not yet supported) " );
354284 }
355285}
0 commit comments