Skip to content

Release 2026 02 17 ocp v31 archive captable

Cursor Agent edited this page Jun 22, 2026 · 4 revisions

Release: OCP v31 Patch 0.0.4 (ArchiveCapTable choice)

Historical — current source: OpenCapTable-v35; see Releases

Date: 2026-02-17 Author: NC Networks: devnet

Summary

Patch release for OpenCapTable-v31 adding a system-operator-only ArchiveCapTable choice for archiving cap tables when issuer IDs change in the source database.

What's Being Deployed

Package Version Description
OpenCapTable-v31 0.0.4 Add ArchiveCapTable choice with empty-maps assertion

Breaking Changes

None. This is an additive change (new choice only).

Changes

  1. New ArchiveCapTable choice

    • Controlled by context.system_operator (not issuer)
    • Asserts all 46 entity maps are empty before archiving (safety gate; issuer archived separately)
    • Archives the issuer contract, then self-archives (consuming choice)
    • Template: scripts/codegen/templates/CapTable.daml.template
  2. Test coverage

    • testArchiveCapTableEmpty — empty cap table succeeds
    • testArchiveCapTableFailsWithEntities — non-empty map rejects
    • testArchiveCapTableIssuerFails — issuer party rejected
    • testArchiveCapTableRandoFails — random party rejected
  3. Version propagation

    • Updated package references from OpenCapTable-v31-0.0.3 to OpenCapTable-v31-0.0.4

Pre-Deployment Checklist

  • npm run build — All packages built successfully
  • npm run test — All tests passing
  • Upload OCP DAR to devnet
  • Upload OCP DAR to mainnet

Post-Deployment Checklist

  • Run archiveCapTable.ts script for affected issuer (canton repo)
  • Verify deployCapTables auto-redeploys with new issuer ID

Deployment Commands

npm run build
npm run test
npm run upload-dar -- --package ocp --network devnet
npm run upload-dar -- --package ocp --network mainnet
npm run verify-dars

Migration Notes for SDK consumers

No SDK changes required. The new ArchiveCapTable choice is exercised directly via ExerciseCommand (not through the OCP SDK). Consumers using getCapTableState or CapTableBatch are unaffected.

Related

  • PR #174: Add ArchiveCapTable choice
  • Canton PR #368: archiveCapTable script
  • Linear: ENG-604

Generated: 2026-02-17

Clone this wiki locally