Skip to content

external-events: migrate dossier to split register/ingest ABI#2

Merged
jasny merged 4 commits into
feat/public-eventsfrom
feat/external-events
May 25, 2026
Merged

external-events: migrate dossier to split register/ingest ABI#2
jasny merged 4 commits into
feat/public-eventsfrom
feat/external-events

Conversation

@jasny
Copy link
Copy Markdown
Contributor

@jasny jasny commented May 23, 2026

Summary

  • Migrated ownables/dossier off legacy external-event ABI to split runtime ABI exports:
    • replaced ownable_external_event with ownable_register, ownable_ingest, and ownable_encode_public_event
    • replaced legacy external-event request handling with split register/ingest handlers
  • Updated dossier contract interfaces from register_external_event(ExternalEventMsg, ...) to:
    • register(RegisterPublicEventMsg)
    • ingest(IngestEventMsg)
  • Kept existing lock validation logic and adapted it to decode lock attributes from register event payload bytes.
  • Updated schema exports to include:
    • register_public_event_msg.json
    • ingest_event_msg.json
    • encode_public_event_msg.json
  • Added focused dossier ABI migration unit coverage for:
    • positive register lock payload replay through register_handler, including instantiate/lock setup and unlocked state verification
    • invalid register payload handling
    • encode_public_event payload encoding
    • intentional ingest NotImplemented behavior

Canonical Plan

  • /home/arnold/Projects/eqty/.runs/2026-05-23_18-38-53_external-events/plans/ownables-js.md

Verification

  • cargo test -q in ownables/dossier passed, 6 tests
  • cargo run --example schema in ownables/dossier passed
  • yarn lint passed
  • yarn typecheck passed
  • yarn test passed, 34 files / 285 tests

PR Scope

  • Base: feat/public-events
  • Diff is scoped to ownables/dossier; wallet/mobile files are excluded from the review surface.

Temporary Dependencies

  • None

Upstream Version Replacement Dependency

  • None

Remaining Risks / Follow-up

  • dossier currently returns NotImplemented for ingest; this is intentional for current contract behavior and now has explicit coverage.

@jasny jasny changed the base branch from main to feat/public-events May 24, 2026 19:14
@jasny
Copy link
Copy Markdown
Contributor Author

jasny commented May 24, 2026

Follow-up cleanup applied for replay context naming consistency in external-events flow.

Changes in this PR branch:

  • register_public_event_msg.json -> register_msg.json
  • ingest_event_msg.json -> ingest_msg.json

Scope was limited to direct string references in packages/core/src/services/Ownable.service.ts and packages/core/tests/ownable.service.test.ts.

Verification run:

  • yarn test packages/core/tests/ownable.service.test.ts (pass)
  • yarn lint (pass)
  • yarn typecheck (pass)

@jasny jasny marked this pull request as ready for review May 25, 2026 20:17
@jasny jasny merged commit ea2dfea into feat/public-events May 25, 2026
7 checks passed
@jasny jasny deleted the feat/external-events branch May 25, 2026 20:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant