DDO: CurioDealView v1
This page defines the DDO market contract interface expected by Market 2.0.
Contract Control for Storage Providers
Storage providers decide which DDO market contracts Curio will trust.
From the Curio UI, each contract is either:
Allowed: new DDO deals can reference this contract.
Blocked: new DDO deals using this contract are rejected.
Removed: contract is no longer configured; new DDO deals using this contract are rejected.
What This Means Operationally
Allowing a contract enables new intake for that contract.
Blocking or removing a contract stops new intake immediately.
This policy applies to new submissions and deal updates that introduce DDO market verification.
Adding a New Contract Safely
Before allowing a contract, providers should verify:
The contract implements
CurioDealViewV1correctly.verifyDealchecks the same deal semantics Curio will pass in (provider,client,piece CID,start epoch,duration,allocation, finalization fields).getDealStateuses the expectedOpen/Active/Finalizedmeanings.The contract's state transitions and finalization behavior are clear for payout and replay safety.
Only after this review should the contract be set to Allowed.
Operational review guidance is documented in:
Interface
Contracts integrated with Curio for DDO verification should implement ICurioDealViewV1.
Versioning
version() must return 1 for this interface.
CurioDealView Field Semantics
CurioDealView Field SemanticsdealId: the market deal identifier referenced bymarket_deal_id.state: Curio sendsOpenduring intake verification.startEpoch: must be0when unused.allocationId: must be0when unused.finalizedEpoch: must be0for non-finalized intake verification.
Curio Verification Checks
When market_address is set for a DDO deal, Curio performs read-only verification:
Contract is allowlisted by the provider.
version()is supported and returns1.Curio builds a
CurioDealViewfrom local deal details and callsverifyDeal(...).verifyDeal(...)must returntrue.
If verifyDeal reverts with DealNotFound(uint256), Curio treats the market deal as missing.
The interface also includes getDealState(...) for deal-state queries.
Read-Only Boundary
Curio does not call write methods for this verification path.
This verification path only decides whether the contract accepts the proposed deal during intake.
Payment, settlement, and notification-driven state transitions are outside this read-only boundary.
Last updated