Skip to content

feat: implement wave-2 compliance elements (A-08/A-09/A-11/B-03/B-04/D-01)#39

Open
heijiLee wants to merge 8 commits into
mainfrom
feat/element-wave2
Open

feat: implement wave-2 compliance elements (A-08/A-09/A-11/B-03/B-04/D-01)#39
heijiLee wants to merge 8 commits into
mainfrom
feat/element-wave2

Conversation

@heijiLee

Copy link
Copy Markdown
Contributor

Summary

  • Implements the six newly documented compliance elements from the docs/elements walkthrough specs as illustrative mock elements: A-08 EntityEligibility, A-09 EquityOwnerLookThrough, A-11 ClaimFreshness, B-03 TransferRestrictionMetadata, B-04 EngineSelection, D-01 HolderCount (stateful).
  • Each follows the existing library pattern (BaseElement/BaseStatefulElement + Governed, operator-gated attestation setters, ReasonCodes.encode(0, ELEMENT_ID, n) with per-element code tables mapped to the docs' §6.2 failure codes) and ships with a dedicated unit test file covering every failure code and boundary (strict-vs-inclusive thresholds, fail-closed defaults, direction rules).
  • A-09 → A-08 wiring goes through a new ILookThroughSource seam; D-01 consumes A-04/A-03 via injected views, snapshots AI-ness at entry, and re-validates caps at commit (reverts ComplianceRejected on gate-to-commit races).
  • DeployStack registers all six (recipe requiredElements intentionally untouched — deferred, recorded in FEATURES/PROGRESS as CMP-003).

Verification

  • forge fmt --check, forge build, forge test --offline: 399/399 (36 suites).
  • RFQ + CLI smoke tests pass. (tools/deploy-v3 mocha step is a local env gap — vendored tool untouched by this diff.)

Specs: docs/compliance/elements/ on the docs/elements branch.

heijiLee added 8 commits July 15, 2026 14:26
Register the six wave-2 illustrative compliance elements (A-08
EntityEligibility, A-09 EquityOwnerLookThrough, A-11 ClaimFreshness, B-03
TransferRestrictionMetadata, B-04 EngineSelection, D-01 HolderCount) in
ElementRegistry via DeployStack. A-09 is deployed first and injected into
A-08's constructor as its ILookThroughSource; D-01 is constructed with the
existing IdentityUniqueness/AccreditedInvestor addresses and CapMode.TWELVE_G,
then wired to the engine via setEngine (mirroring SurveillanceFlag). Recipe
requiredElements are intentionally left untouched.
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