Skip to content

Test pricing, termination, and calldata limit contract+client changes in devnet #113

@BigLep

Description

@BigLep

Context

The pricing/termination/calldata-limits work stream requires coordinated changes across Synapse, filecoin-services (FWSS), PDPVerifier, and Curio. These changes need end-to-end validation in foc-devnet before mainnet rollout.

Upstream work:

Done Criteria

Deploy custom PDPVerifier, FWSS, and Curio into devnet. Use new Synapse to run through the new flows covering the scenarios below. All scenarios should be validated (either manually or via automated scenario scripts).

Onboarding

  • createDataSet collects the new SP cleanup deposit (0.1 FIL bond) and the updated client fees
  • Pieces are successfully added and proven after onboarding

Pricing

  • Synapse reports correct costs and projections to the client
  • Contract charges the correct amounts from the client
  • Rails are visible doing one-time payments as expected
  • Verify batch size handling and gas costs are reasonable

Termination — Agreed (immediate)

  • Client signs a 712 authorisation, SP relays terminateService with valid extraData
  • Lockup drops to zero, rail finalises immediately (~same tx)
  • Curio detects the immediate path and skips to deleteDataSet + cleanupPieces
  • SP gets cleanup deposit back after cleanupPieces completes
  • CDN rails terminate at deletion time (not at terminateService)

Termination — Standard (30-day lockup)

  • SP-initiated termination (empty extraData) takes the 30-day path
  • Client-initiated termination takes the 30-day path
  • Curio cleans up properly after lockup elapses (deleteDataSet + cleanupPieces)
  • SP gets cleanup deposit back

Termination — Abandonment

  • After 30 days with no proof and no terminateService, anyone can call deleteDataSet
  • FWSS performs rail tear-down inline in the dataSetDeleted callback
  • Bond goes to the keeper who does the cleanup

Calldata Limits

Edge Cases

  • Termination by client vs SP — non-immediate paths behave correctly
  • Pre-deposit cleanup of old data sets (may require careful extended setup — assess feasibility)
  • cleanupPieces batching works for large data sets
  • Gas costs are within acceptable bounds across all operations

Why Important

These are sequential, coordinated contract changes across multiple repos with announce/execute deploy gates. Validating in devnet before mainnet rollout is critical to avoid production issues. The contracts can't be easily rolled back once executed on mainnet.

Notes

  • Contracts have announce/execute deploy pattern — we want to get PDPVerifier and FWSS deployment announced and a compatible Curio commit ready ASAP so we can execute the upgrade on our schedule after full devnet validation.
  • The DeleteDataSetTerminateService 712 typehash rename will break existing SDK session keys — devnet is the right place to validate this transition.
  • Discussion origin: https://filecoinproject.slack.com/archives/C08TVNKJV7C (2026-05-20, biglep + rvagg)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    🐱 Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions