Skip to content

PartiallyRefunded status is fully modeled but no code path can ever produce it #783

Description

@dinahmaccodes

Tier: Hard
Description: ShipmentStatus::PartiallyRefunded (types.rs:236-237) has valid-transition rules defined (types.rs:306-311), but resolve_dispute (lib.rs:4869-4970) only implements full release or full refund — never a partial split — so PartiallyRefunded is dead scaffolding for an incomplete feature. It's also missing from purge_status_hashes's cleanup list (storage.rs:1729-1745), a latent storage leak once the status becomes reachable.
Files: contracts/shipment/src/types.rs:236-237, 306-311, contracts/shipment/src/lib.rs:4869-4970, contracts/shipment/src/storage.rs:1729-1745
Tasks:

  • Implement a partial-refund resolution path in resolve_dispute that can produce PartiallyRefunded
  • Add PartiallyRefunded to purge_status_hashes's cleanup list
    Acceptance Criteria:
  • PartiallyRefunded is reachable via a real dispute-resolution path and is correctly purged on archival

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions