src/compliance/travelRule.ts always creates a TravelRuleRecord with the originator/beneficiary fields hardcoded empty:
originator: {}, // pull from KycProfile
beneficiary: {},
...
status: 'PENDING_DATA',
Nothing in src/ currently reads from KycProfile to fill these in, and nothing ever transitions status away from PENDING_DATA. So every Travel Rule record created above the $1000 threshold is written and then permanently incomplete — the compliance data this table exists to capture never actually gets recorded.
Task
- Look up the counterparty's
KycProfile (and the local user's) at the point detectTravelRule is called and populate originator/beneficiary with the required VASP + customer fields.
- Transition
status once the record has real data (vs. still-pending if a lookup is missing).
- Add unit coverage for both the populated and the still-missing-data paths.
src/compliance/travelRule.tsalways creates aTravelRuleRecordwith the originator/beneficiary fields hardcoded empty:Nothing in
src/currently reads fromKycProfileto fill these in, and nothing ever transitionsstatusaway fromPENDING_DATA. So every Travel Rule record created above the$1000threshold is written and then permanently incomplete — the compliance data this table exists to capture never actually gets recorded.Task
KycProfile(and the local user's) at the pointdetectTravelRuleis called and populateoriginator/beneficiarywith the required VASP + customer fields.statusonce the record has real data (vs. still-pending if a lookup is missing).