Closes gap-analysis v2 §4 partial (canonical "Execution Reference Set")
and §10.6 SWIFT message ID persistence.
- Migration 006 adds swift_message_id + swift_message_type columns to
executions, with a partial index on swift_message_id for
acknowledgment ingest (camt.025/054 -> original MT760/MT202 lookup).
- db/executions.ts: recordExecution() UPSERT helper, getExecution(),
findBySwiftMessageId() — the three queries the bank-instruction phase
and SWIFT gateway need.
- services/bank.ts.commitBankInstruction now emits a SWIFT reference
alongside the ISO-20022 envelope: MT760 for plans carrying an
issueInstrument step (real generateMt760 output, messageReference
field), MT202 for payment-only plans (synthetic ref).
- services/execution.ts persists the reference set at bank_instruction
complete-time via recordExecution (best-effort; logs on failure,
does not abort the leg).
- 5 unit tests covering MT760 vs MT202 branching, reference uniqueness
across calls, and SQL shape of the UPSERT + SELECT.
Blockscout /api/v2/stats returns average_block_time in milliseconds;
ReportingPage displays it as `${value.toFixed(1)}s` which rendered
~4424s instead of the real ~4.4s. Normalize in the service layer so
every caller gets seconds regardless of upstream format.
Co-Authored-By: Nakamoto, S <defi@defi-oracle.io>
Extends the POC from #2 beyond the Dashboard so every portal page that
can benefit from on-chain signal now pulls from live backends while
preserving its existing UX. Pages without an on-chain analogue (the
IFRS/GAAP/IPSAS report rows, the dbis_core compliance alerts) stay on
sample data with an explicit 'mocked' note.
New shared primitives
---------------------
src/hooks/useLatestTransactions.ts — polls SolaceScan /transactions every 15s
src/hooks/useAddressTransactions.ts — per-address tx feed, 60s polling
src/components/portal/LiveTransactionsPanel.tsx — reusable live-tx card
src/components/portal/LiveChainBanner.tsx — slim status banner
src/components/portal/OnChainBalanceTag.tsx — shared live/off-chain pill
Per-page wiring
---------------
AccountsPage — on-chain pill + META balance + SolaceScan link on
each account row that carries a walletAddress;
overlay renders only on wallet rows (negative check).
SettlementsPage — replaces the static 'Settlement Rate' tile with a
live Chain-138 block + tx-today tile; adds a
LiveTransactionsPanel above the CSD queue so the
page no longer renders identical output when RPC
is dead.
ReportingPage — new On-Chain Reporting Snapshot row (Blockscout
/stats: block depth, total tx, total addrs,
utilisation, avg block time). Clear note that
the IFRS/GAAP/IPSAS rows come from dbis_core and
are still mocked.
TreasuryPage — two new summary tiles: live Chain-138 gas +
aggregated on-chain custody (META) from sample
wallet addresses. Uses the same
useOnChainBalances hook as Accounts.
CompliancePage — AML monitor strip with wallet selector; dedicated
'On-Chain Tx Feed' card shows IN/OUT per tracked
wallet via SolaceScan. dbis_core alerts still
mocked (no public deploy).
TransactionBuilder — LiveChainBanner inserted above the composer so
users know chain health + gas + latency before
composing; transaction-builder-module made a
flex column so the banner doesn't cover the
canvas.
Assertions baked into every live widget
---------------------------------------
- RPC failure flips colour + text to 'degraded'/'—' (no silent freeze).
- Loading state is distinct from both live and degraded.
- Each overlay is only rendered where real data differs from sample data
(walletAddress rows for balances, tracked custody for AML, etc.) so a
page without live overlays is proof-of-scope, not proof-of-brokenness.
Verified locally
----------------
- tsc --noEmit: clean
- npm run build: clean (2066 modules, 565 ms)
Still intentionally mocked
--------------------------
- proxmox.ts — CF-Access protected; a BFF route is now open in
orchestrator PR (see companion PR for /api/proxmox/*).
- dbisCore.ts — no public deployment exists yet.
- Added quick start instructions in README.md for first-time setup, including commands for complete setup, verification, and service start.
- Revised FINAL_STATUS.md to reflect the project's infrastructure completion and readiness for execution, detailing scripts created and documentation status.
- Added multi-platform deployment architecture details (Web App, PWA, DApp) to README.md.
- Included comprehensive troubleshooting guides and fix scripts in README.md.
- Enhanced CHANGELOG.md with new features, fixes, and improvements, including TypeScript error resolutions and updated documentation structure.
- Revised development setup instructions in DEV_SETUP.md to reflect changes in script usage and environment variable setup.
- Revised the development setup section in CURRENT_STATUS.md for clarity and completeness.
- Improved environment variable validation with default values in env.ts.
- Enhanced error handling in errorHandler.ts to provide clearer feedback on validation issues.
- Added a new section in CURRENT_STATUS.md detailing prerequisites and quick start instructions for development setup.
- Updated environment variable validation to include defaults for missing variables in env.ts.
- Improved error handling in errorHandler.ts for better validation feedback.
- Made various code adjustments across services to ensure robustness and clarity.
- 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.
- Integrated ECDSA for signature verification in ComboHandler.
- Updated event emissions to include additional parameters for better tracking.
- Improved gas tracking during execution of combo plans.
- Enhanced database interactions for storing and retrieving plans, including conflict resolution and status updates.
- Added new dependencies for security and database management in orchestrator.