Files
CurrenciCombo/docs/Engineering_Ticket_Breakdown.md
T

22 KiB

Engineering Ticket Breakdown

Overview

This document converts all specifications into PR-ready engineering tickets with acceptance criteria, organized by component (Frontend, Backend, Smart Contracts, Integration, Testing).


Frontend Tickets

FE-001: Builder UI - Drag & Drop Canvas

Priority: P0
Estimate: 8 story points
Component: webapp/src/components/builder/Canvas.tsx

Description: Implement drag-and-drop canvas for building financial workflows. Users can drag adapters from palette to canvas, reorder steps, and configure step parameters.

Acceptance Criteria:

  • ✅ Users can drag adapters from palette to canvas
  • ✅ Steps can be reordered by dragging
  • ✅ Step cards display step number, icon, type, and summary
  • ✅ Drop zone highlights when dragging over it
  • ✅ Visual feedback during drag operations
  • ✅ Steps can be edited and removed
  • ✅ Canvas is responsive (mobile/tablet/desktop)

Technical Requirements:

  • Use @dnd-kit/core and @dnd-kit/sortable
  • Support both DeFi and Fiat/DTL adapters
  • Real-time step dependency visualization

Dependencies: None
Related: FE-002, FE-003


FE-002: Builder UI - Adapter Palette

Priority: P0
Estimate: 5 story points
Component: webapp/src/components/builder/StepPalette.tsx

Description: Implement adapter palette sidebar with filtering capabilities. Show DeFi protocols and Fiat/DTL rails separately, with whitelist filtering option.

Acceptance Criteria:

  • ✅ Adapters grouped by type (DeFi, Fiat/DTL)
  • ✅ Filter options: All, DeFi, Fiat/DTL, Whitelisted Only
  • ✅ Search functionality for adapters
  • ✅ Adapters show name, icon, and status (Approved, Deprecated, Restricted)
  • ✅ Draggable adapters with visual feedback
  • ✅ Compliance badge section visible

Technical Requirements:

  • Fetch adapters from /api/adapters endpoint
  • Filter based on user selection and whitelist status
  • Support drag-and-drop to canvas

Dependencies: BE-005 (Adapter Registry API)
Related: FE-001


FE-003: Builder UI - Step Configuration Drawer

Priority: P0
Estimate: 6 story points
Component: webapp/src/components/builder/StepConfigDrawer.tsx

Description: Implement step configuration drawer that opens when user clicks "Edit" on a step. Show step-specific fields and compliance requirements.

Acceptance Criteria:

  • ✅ Drawer slides up from bottom (mobile) or from side (desktop)
  • ✅ Step-specific fields (token, amount, beneficiary, etc.)
  • ✅ Compliance fields auto-populated from user session
  • ✅ Real-time validation (balance checks, IBAN format, etc.)
  • ✅ Dependency visualization (shows which previous steps feed this step)
  • ✅ Save/Cancel buttons

Technical Requirements:

  • Support all step types: borrow, swap, repay, pay
  • Validate inputs before saving
  • Show error messages for invalid inputs

Dependencies: FE-001, BE-004 (Compliance API)
Related: FE-001


FE-004: Builder UI - Compliance Status Dashboard

Priority: P0
Estimate: 4 story points
Component: webapp/src/components/compliance/ComplianceDashboard.tsx

Description: Implement compliance status dashboard overlay showing LEI, DID, KYC, AML status. Always visible badge in header, expandable to full details.

Acceptance Criteria:

  • ✅ Compliance badge in header (✓ LEI, ✓ KYC, ✓ AML, ✓ DID)
  • ✅ Expandable overlay with full compliance details
  • ✅ Workflow-specific compliance validation
  • ✅ Expiration warnings (if KYC/AML expiring soon)
  • ✅ Quick links to update identity or run new checks
  • ✅ Real-time status updates

Technical Requirements:

  • Fetch compliance status from /api/compliance/status
  • Validate compliance for current workflow
  • Show warnings for missing requirements

Dependencies: BE-004 (Compliance API)
Related: FE-001


FE-005: Builder UI - Optional Simulation Panel

Priority: P1
Estimate: 6 story points
Component: webapp/src/components/simulation/SimulationPanel.tsx

Description: Implement optional simulation panel for advanced users. Toggleable simulation feature that shows gas estimates, slippage analysis, liquidity checks, and failure predictions.

Acceptance Criteria:

  • ✅ Simulation toggle in summary panel (optional for advanced users)
  • ✅ "Simulate" button appears when toggle enabled
  • ✅ Simulation results panel shows:
    • Step-by-step results (success/failure)
    • Gas estimate and cost
    • Slippage analysis
    • Liquidity checks
    • Compliance status
    • Warnings and errors
  • ✅ "Run Simulation Again" and "Proceed to Sign" buttons
  • ✅ Results panel closes/closes on click outside

Technical Requirements:

  • Call /api/plans/{planId}/simulate endpoint
  • Parse and display simulation results
  • Show warnings/errors clearly

Dependencies: BE-003 (Simulation Engine)
Related: FE-001


FE-006: Preview Page - Plan Summary & Signing

Priority: P0
Estimate: 5 story points
Component: webapp/src/app/builder/preview/page.tsx

Description: Enhance preview page to show plan summary, compliance status, and signature panel. Allow users to sign plan with wallet before execution.

Acceptance Criteria:

  • ✅ Display complete plan summary (steps, amounts, fees)
  • ✅ Show compliance status for all steps
  • ✅ Signature panel with hash computation and wallet signing
  • ✅ "Create Plan" button (calls API)
  • ✅ "Execute" button (after plan created and signed)
  • ✅ Error banners for API failures

Technical Requirements:

  • Use useBuilderStore for plan data
  • Integrate SignaturePanel component
  • Use useMutation for API calls

Dependencies: FE-001, BE-001 (Plan API)
Related: FE-007


FE-007: Execution Timeline - Real-Time Updates

Priority: P0
Estimate: 6 story points
Component: webapp/src/components/plan/ExecutionTimeline.tsx

Description: Enhance execution timeline to show real-time status updates via SSE or polling. Display phases (Prepare, Execute DLT, Bank Instruction, Commit) with status indicators.

Acceptance Criteria:

  • ✅ Real-time status updates via SSE (when enabled) or polling
  • ✅ Phase progression visualization (Prepare → Execute DLT → Bank Instruction → Commit)
  • ✅ Status indicators (pending, in_progress, complete, failed)
  • ✅ Terminal states handled correctly (complete, failed, aborted)
  • ✅ DLT transaction hash and ISO message ID displayed
  • ✅ Error messages shown for failed phases

Technical Requirements:

  • Use createPlanStatusStream for SSE
  • Fallback to polling if SSE disabled
  • Handle terminal states correctly (fix Bug 1)

Dependencies: BE-002 (Execution Status API), BE-006 (SSE)
Related: FE-006


Backend Tickets

BE-001: Orchestrator API - Plan Management

Priority: P0
Estimate: 8 story points
Component: orchestrator/src/api/plans.ts

Description: Implement plan management endpoints: create plan, get plan, add signature, validate plan.

Acceptance Criteria:

  • ✅ POST /api/plans - Create execution plan
  • ✅ GET /api/plans/{planId} - Get plan details
  • ✅ POST /api/plans/{planId}/signature - Add user signature
  • ✅ Plan validation (recursion depth, LTV, step dependencies)
  • ✅ Error responses with clear messages
  • ✅ OpenAPI spec documented

Technical Requirements:

  • Validate plan structure
  • Check step dependencies
  • Store plan in database
  • Return plan with computed hash

Dependencies: DB-001 (Plan Schema)
Related: FE-006


BE-002: Orchestrator API - Execution Coordination

Priority: P0
Estimate: 10 story points
Component: orchestrator/src/services/execution.ts

Description: Implement execution coordination service that manages 2PC (two-phase commit) across DLT and banking rails.

Acceptance Criteria:

  • ✅ POST /api/plans/{planId}/execute - Initiate execution
  • ✅ GET /api/plans/{planId}/status - Get execution status
  • ✅ POST /api/plans/{planId}/abort - Abort execution
  • ✅ 2PC pattern implementation (prepare, commit, abort)
  • ✅ Real-time status updates via SSE
  • ✅ Error handling and rollback on failures

Technical Requirements:

  • Coordinate DLT and bank steps
  • Implement prepare/commit/abort phases
  • Handle failure modes (DLT fail, bank fail, liquidity denial)
  • Emit status events for SSE

Dependencies: BE-001, BE-007 (DLT Handler), BE-008 (Bank Connector)
Related: FE-007


BE-003: Simulation Engine API

Priority: P1
Estimate: 8 story points
Component: orchestrator/src/services/simulation.ts

Description: Implement optional simulation engine that provides dry-run execution, gas estimation, slippage calculation, and liquidity checks.

Acceptance Criteria:

  • ✅ POST /api/plans/{planId}/simulate - Run simulation
  • ✅ Gas estimation for all steps
  • ✅ Slippage calculation for swaps
  • ✅ Liquidity checks for trades
  • ✅ Failure prediction
  • ✅ Step-by-step results
  • ✅ Response time < 5 seconds

Technical Requirements:

  • Integrate with price oracles
  • Calculate gas estimates
  • Check liquidity pools
  • Predict failures

Dependencies: BE-001, External (Price Oracles)
Related: FE-005


BE-004: Compliance Engine API

Priority: P0
Estimate: 6 story points
Component: orchestrator/src/services/compliance.ts

Description: Implement compliance engine that validates LEI, DID, KYC, AML requirements and injects compliance data into ISO messages.

Acceptance Criteria:

  • ✅ GET /api/compliance/status - Get user compliance status
  • ✅ POST /api/compliance/check - Validate workflow compliance
  • ✅ LEI/DID/KYC/AML validation
  • ✅ Compliance data injection into ISO messages
  • ✅ Real-time status checks
  • ✅ Expiration warnings

Technical Requirements:

  • Integrate with KYC/AML providers (Onfido, Chainalysis)
  • Validate LEI format
  • Generate compliance assertions
  • Inject into ISO message supplementary data

Dependencies: External (KYC/AML Providers)
Related: FE-004, BE-009 (ISO Message Generation)


BE-005: Adapter Registry API

Priority: P0
Estimate: 5 story points
Component: orchestrator/src/api/adapters.ts

Description: Implement adapter registry API that lists available adapters (DeFi + Fiat/DTL) with filtering and whitelist support.

Acceptance Criteria:

  • ✅ GET /api/adapters - List adapters with filtering
  • ✅ GET /api/adapters/{adapterId} - Get adapter details
  • ✅ Filter by type (DeFi, Fiat/DTL, All)
  • ✅ Filter by whitelist status
  • ✅ Search functionality
  • ✅ Adapter metadata (name, version, status, chainIds)

Technical Requirements:

  • Fetch from adapter registry contract (on-chain)
  • Cache adapter list
  • Support filtering and search

Dependencies: SC-003 (Adapter Registry Contract)
Related: FE-002


BE-006: Server-Sent Events (SSE) for Real-Time Updates

Priority: P1
Estimate: 4 story points
Component: orchestrator/src/api/sse.ts

Description: Implement SSE endpoint for real-time execution status updates. Feature flag controlled.

Acceptance Criteria:

  • ✅ GET /api/plans/{planId}/status/stream - SSE endpoint
  • ✅ Real-time status events
  • ✅ Phase progression updates
  • ✅ Error events
  • ✅ Graceful connection handling
  • ✅ Feature flag controlled

Technical Requirements:

  • Use EventSource-compatible endpoint
  • Emit events on status changes
  • Handle disconnections gracefully

Dependencies: BE-002
Related: FE-007


BE-007: DLT Handler Service

Priority: P0
Estimate: 10 story points
Component: orchestrator/src/services/dlt.ts

Description: Implement DLT handler service that interacts with handler smart contract for atomic execution of DLT steps.

Acceptance Criteria:

  • ✅ Execute DLT steps via handler contract
  • ✅ Support 2PC prepare/commit/abort
  • ✅ Gas estimation
  • ✅ Transaction monitoring
  • ✅ Rollback on failure
  • ✅ Error handling

Technical Requirements:

  • Integrate with handler contract (SC-001)
  • Use Web3/Ethers.js
  • Monitor transaction status
  • Handle reentrancy protection

Dependencies: SC-001 (Handler Contract)
Related: BE-002


BE-008: Bank Connector Service

Priority: P0
Estimate: 10 story points
Component: orchestrator/src/services/bank.ts

Description: Implement bank connector service that generates ISO-20022 messages and sends them to banking rails (SWIFT, SEPA, FedNow, etc.).

Acceptance Criteria:

  • ✅ Generate ISO-20022 pacs.008 messages
  • ✅ Inject compliance data (LEI, DID, KYC, AML)
  • ✅ Inject plan metadata and digital signature
  • ✅ Support 2PC prepare phase (provisional messages)
  • ✅ Send to banking rails
  • ✅ Monitor settlement status
  • ✅ Generate camt.056 for cancellation

Technical Requirements:

  • ISO-20022 message generation
  • Bank API integration
  • Compliance data injection
  • Error handling

Dependencies: BE-004, BE-009 (ISO Message Generation)
Related: BE-002


BE-009: ISO-20022 Message Generation

Priority: P0
Estimate: 6 story points
Component: orchestrator/src/services/iso20022.ts

Description: Implement ISO-20022 message generation service that creates pacs.008, camt.052/053, camt.056 messages with plan metadata and compliance data.

Acceptance Criteria:

  • ✅ Generate pacs.008 (payment instruction)
  • ✅ Generate camt.052/053 (bank statements)
  • ✅ Generate camt.056 (cancellation request)
  • ✅ Inject plan ID, digital signature, compliance data
  • ✅ Inject DLT transaction reference
  • ✅ Inject notary proof
  • ✅ Validate XML structure

Technical Requirements:

  • Use ISO-20022 XML schemas
  • Template-based generation
  • Compliance data injection
  • XML validation

Dependencies: BE-004, BE-010 (Notary Service)
Related: BE-008


BE-010: Notary Service Integration

Priority: P0
Estimate: 5 story points
Component: orchestrator/src/services/notary.ts

Description: Implement notary service integration that registers plans, finalizes executions, and provides audit proofs.

Acceptance Criteria:

  • ✅ POST /api/notary/register - Register plan
  • ✅ GET /api/notary/proof/{planId} - Get notary proof
  • ✅ Register plan with notary contract
  • ✅ Finalize plan (success or failure)
  • ✅ Retrieve notary proof for audit

Technical Requirements:

  • Integrate with notary registry contract (SC-002)
  • Register plan hashes
  • Finalize executions
  • Provide audit trail

Dependencies: SC-002 (Notary Registry Contract)
Related: BE-001, BE-002


BE-011: Receipt Generation Service

Priority: P0
Estimate: 4 story points
Component: orchestrator/src/services/receipts.ts

Description: Implement receipt generation service that aggregates DLT transactions, ISO messages, and notary proofs for audit trail.

Acceptance Criteria:

  • ✅ GET /api/receipts/{planId} - Get execution receipts
  • ✅ Aggregate DLT transaction receipts
  • ✅ Aggregate ISO message receipts
  • ✅ Aggregate notary proofs
  • ✅ Generate audit trail report

Technical Requirements:

  • Query DLT transactions
  • Query ISO messages
  • Query notary proofs
  • Aggregate into receipt structure

Dependencies: BE-002, BE-009, BE-010
Related: FE-008


Smart Contract Tickets

SC-001: Handler/Aggregator Contract

Priority: P0
Estimate: 13 story points
Component: contracts/ComboHandler.sol

Description: Implement handler/aggregator contract that executes multi-step combos atomically, supports 2PC, and integrates with adapter registry.

Acceptance Criteria:

  • ✅ Execute multi-step combos atomically
  • ✅ Support 2PC (prepare, commit, abort)
  • ✅ Validate adapter whitelist
  • ✅ Reentrancy protection
  • ✅ Gas optimization
  • ✅ Event emission for off-chain tracking
  • ✅ Security audit passed

Technical Requirements:

  • Use OpenZeppelin contracts (Ownable, ReentrancyGuard)
  • Integrate with adapter registry
  • Support step execution with error handling
  • Emit events for all state changes

Dependencies: SC-003 (Adapter Registry)
Related: BE-007


SC-002: Notary Registry Contract

Priority: P0
Estimate: 8 story points
Component: contracts/NotaryRegistry.sol

Description: Implement notary registry contract that stores plan hashes, codehashes, and provides immutable audit trail.

Acceptance Criteria:

  • ✅ Register execution plans
  • ✅ Finalize plan executions (success/failure)
  • ✅ Register adapter codehashes
  • ✅ Verify codehash matches
  • ✅ Query plans by creator
  • ✅ Immutable audit trail

Technical Requirements:

  • Store plan proofs
  • Store codehashes
  • Provide query functions
  • Emit events for all registrations

Dependencies: None
Related: BE-010


SC-003: Adapter Registry Contract

Priority: P0
Estimate: 6 story points
Component: contracts/AdapterRegistry.sol

Description: Implement adapter registry contract that manages whitelist/blacklist of adapters, tracks versions, and enforces upgrade controls.

Acceptance Criteria:

  • ✅ Register adapters (DeFi + Fiat/DTL)
  • ✅ Whitelist/blacklist adapters
  • ✅ Check whitelist status
  • ✅ List adapters by type
  • ✅ Multi-sig for admin functions
  • ✅ Timelock for critical operations

Technical Requirements:

  • Use OpenZeppelin AccessControl
  • Support adapter metadata
  • Provide query functions
  • Emit events for all changes

Dependencies: None
Related: BE-005, SC-001


SC-004: Adapter Interface & Example Adapters

Priority: P0
Estimate: 10 story points
Component: contracts/adapters/

Description: Implement IAdapter interface and example adapters (Uniswap V3, Aave, ISO-20022 Pay) to demonstrate integration pattern.

Acceptance Criteria:

  • ✅ IAdapter interface defined
  • ✅ Uniswap V3 adapter implemented
  • ✅ Aave adapter implemented
  • ✅ ISO-20022 Pay adapter implemented
  • ✅ All adapters pass tests
  • ✅ Documentation for adding new adapters

Technical Requirements:

  • Follow IAdapter interface
  • Support executeStep function
  • Support prepareStep (if applicable)
  • Emit events for off-chain tracking

Dependencies: SC-003
Related: INT-001


Integration Tickets

INT-001: Bank Connector Integration

Priority: P0
Estimate: 8 story points
Component: orchestrator/src/integrations/bank/

Description: Implement bank connector adapters for different banking rails (SWIFT, SEPA, FedNow, ISO-20022).

Acceptance Criteria:

  • ✅ SWIFT MT connector
  • ✅ SEPA connector
  • ✅ FedNow connector
  • ✅ ISO-20022 generic connector
  • ✅ Support 2PC prepare phase
  • ✅ Error handling and retry logic

Technical Requirements:

  • Bank API integration
  • ISO-20022 message generation
  • Error handling
  • Retry logic

Dependencies: BE-009
Related: BE-008


INT-002: Compliance Provider Integration

Priority: P0
Estimate: 6 story points
Component: orchestrator/src/integrations/compliance/

Description: Integrate with KYC/AML providers (Onfido, Chainalysis) and Entra Verified ID for compliance verification.

Acceptance Criteria:

  • ✅ Onfido KYC integration
  • ✅ Chainalysis AML integration
  • ✅ Entra Verified ID integration
  • ✅ LEI validation
  • ✅ DID verification
  • ✅ Error handling

Technical Requirements:

  • Provider API integration
  • Credential verification
  • Status caching
  • Error handling

Dependencies: External (KYC/AML Providers)
Related: BE-004


Testing Tickets

TEST-001: E2E Tests - Builder Flow

Priority: P0
Estimate: 8 story points
Component: tests/e2e/builder.spec.ts

Description: Implement end-to-end tests for builder flow: drag-drop, configure steps, create plan, sign, execute.

Acceptance Criteria:

  • ✅ Test drag-and-drop from palette to canvas
  • ✅ Test step reordering
  • ✅ Test step configuration
  • ✅ Test plan creation
  • ✅ Test plan signing
  • ✅ Test plan execution
  • ✅ Test error scenarios

Technical Requirements:

  • Use Playwright
  • Test all user flows
  • Test error cases
  • CI/CD integration

Dependencies: FE-001, FE-002, FE-003, BE-001, BE-002
Related: All Frontend/Backend tickets


TEST-002: E2E Tests - Failure Scenarios

Priority: P0
Estimate: 6 story points
Component: tests/e2e/failures.spec.ts

Description: Implement end-to-end tests for failure scenarios: DLT failure, bank failure, liquidity denial, rollback.

Acceptance Criteria:

  • ✅ Test DLT failure after bank prepare
  • ✅ Test bank failure after DLT commit
  • ✅ Test liquidity denial
  • ✅ Test rollback mechanisms
  • ✅ Test audit trail generation

Technical Requirements:

  • Mock failure scenarios
  • Test recovery mechanisms
  • Verify audit logs

Dependencies: BE-002, BE-011
Related: BE-002


TEST-003: Smart Contract Tests

Priority: P0
Estimate: 10 story points
Component: contracts/test/

Description: Implement comprehensive smart contract tests for handler, notary, and adapter registry contracts.

Acceptance Criteria:

  • ✅ Unit tests for all contracts
  • ✅ Integration tests
  • ✅ Fuzz tests for edge cases
  • ✅ Gas optimization tests
  • ✅ Security tests (reentrancy, access control)

Technical Requirements:

  • Use Hardhat/Foundry
  • High test coverage (>90%)
  • Security audit ready

Dependencies: SC-001, SC-002, SC-003
Related: All Smart Contract tickets


Summary

Total Tickets: 28

  • Frontend: 7 tickets
  • Backend: 11 tickets
  • Smart Contracts: 4 tickets
  • Integration: 2 tickets
  • Testing: 3 tickets
  • Documentation: 1 ticket (already completed)

Priority Breakdown

  • P0 (Critical): 24 tickets
  • P1 (High): 2 tickets (Simulation, SSE - optional features)

Estimated Story Points

  • Total: ~180 story points
  • Frontend: ~40 story points
  • Backend: ~80 story points
  • Smart Contracts: ~37 story points
  • Integration: ~14 story points
  • Testing: ~24 story points

Document Version: 1.0
Last Updated: 2025-01-15
Author: Engineering Team