Outbound generators:
- swift/mt760.ts: SBLC issuance (FIN Cat-7). 12-tag message built from
InstrumentTerms with deterministic messageHash() for planHash
anchoring. URDG 758 / UCP 600 aware.
- swift/pacs009.ts: FI-to-FI credit transfer (ISO 20022 XML,
pacs.009.001.08). Fixes the pacs.008 mis-routing flagged in the
gap-analysis (pacs.008 is customer-to-bank; pacs.009 is bank-to-bank).
BIC validation on all four agents.
- swift/mt202.ts: FIN equivalent of pacs.009 for non-migrated corridors.
32A amount formatted with SWIFT decimal comma.
Inbound parsers:
- swift/camt.ts: parseCamt025 (receipt / status), parseCamt054
(credit/debit notification), reconcileCamt054 (diffs amount, ccy,
direction, endToEndId so VALIDATING can feed mismatches into
Data.valueMismatch()), parseCamt dispatcher on xmlns marker.
Public surface in swift/index.ts documents channel selection:
pacs.008 stays on the PSP customer leg; pacs.009/MT202 is the
interbank leg; COMMIT requires camt.025 ACSC or camt.054 CRDT
(arch §9.2 accepted !== settled).
Tests: swift.test.ts — 14 cases covering the happy path, validation
errors (bad BIC, malformed date, negative amount, missing pay step),
determinism of messageHash, camt parser + reconciliation.
tsc clean. 74 tests pass across 6 suites.
- services/exceptionManager.ts: single taxonomy (timing/data/control/
business/system) with §12 codes, deterministic route() table, and
handle() dispatch to retry/DLQ/escalate
- services/execution.ts: refactor executePlan to drive the full 12-state
machine (DRAFT -> INITIATED -> ... -> VALIDATING -> COMMITTED -> CLOSED)
via stateMachine.transition(), with a new validatePhase() that
reconciles DLT tx hash + bank message id + per-step amounts before
COMMIT; SoD-gated edges use distinct synthetic actors by default
- api/plans.ts + index.ts: GET /api/plans/:planId/state returning
current transaction_state + full audit trail of transitions
- tests/unit/exceptionManager.test.ts: 14 tests for classification +
routing matrix
59 tests pass. tsc clean.
- Added AccessControl to ComboHandler for role-based access management.
- Implemented gas estimation for plan execution and improved gas limit checks.
- Updated execution and preparation methods to enforce step count limits and role restrictions.
- Enhanced error handling in orchestrator API endpoints with AppError for better validation feedback.
- Integrated request timeout middleware for improved request management.
- Updated Swagger documentation to reflect new API structure and parameters.