Files
dbis_core/docs/flows/cross-chain-settlement-flow.md
defiQUG 849e6a8357
Some checks failed
CI / test (push) Has been cancelled
CI / security (push) Has been cancelled
CI / build (push) Has been cancelled
Initial commit
2025-12-12 15:02:56 -08:00

118 lines
3.7 KiB
Markdown

# Cross-Chain Settlement Flow
## Overview
Cross-chain settlement enables atomic swaps across multiple ledger types (sovereign, CBDC, commodity, security token chains). This flow documents the complete process from commitment creation through atomic swap execution.
## Prerequisites
- Source and destination chains are registered
- Valid cross-chain settlement request
- Sufficient balance/position in source chain
- Cross-chain contract service operational
## Visual Flow Diagram
```
┌─────────────┐
│ Settlement │
│ Request │
└──────┬──────┘
│ 1. Create Settlement Record
┌─────────────────────────┐
│ Create Settlement Record│
│ - Settlement ID │
│ - Chain types & IDs │
│ - Amount & asset type │
└──────┬──────────────────┘
│ 2. Create Commitments
┌─────────────────────────┐
│ Create Cross-Chain │
│ Commitments │
│ - Source commitment │
│ - Target commitment │
└──────┬──────────────────┘
│ 3. Execute Atomic Swap
┌─────────────────────────┐
│ Execute Atomic Swap │
│ - Verify commitments │
│ - Execute on both chains│
│ - Verify success │
└──────┬──────────────────┘
│ 4. Update Status
┌─────────────┐
│ Settlement │
│ Complete │
└─────────────┘
```
## Step-by-Step Process
### Step 1: Create Settlement Record
1. Receive cross-chain settlement request
2. Generate settlement ID: `CCS-{uuid}`
3. Create settlement record with source/target chain details
4. Set status: `pending`
**Code Reference**: `src/core/settlement/cross-chain/cross-chain-settlement.service.ts:29-48`
### Step 2: Create Commitments
1. Create commitments for both chains
2. Store commitment hashes
3. Link to settlement record
**Code Reference**: `src/core/settlement/cross-chain/cross-chain-settlement.service.ts:85-124`
### Step 3: Execute Atomic Swap
1. Call cross-chain contract service
2. Verify both commitments
3. Execute swap on both chains atomically
4. Verify execution success
**Code Reference**: `src/core/settlement/cross-chain/cross-chain-contract.service.ts`
### Step 4: Update Status
1. If successful: Set status `settled`
2. If failed: Set status `failed`
3. Record completion timestamp
**Code Reference**: `src/core/settlement/cross-chain/cross-chain-settlement.service.ts:60-79`
## Error Handling
- Commitment creation failure: Rollback, return error
- Atomic swap failure: Rollback both chains, mark failed
- Verification failure: Mark failed, create reconciliation record
## Integration Points
- Cross-Chain Settlement Service: `src/core/settlement/cross-chain/cross-chain-settlement.service.ts`
- Cross-Chain Contract Service: `src/core/settlement/cross-chain/cross-chain-contract.service.ts`
- Atomic Settlement Service: `src/core/settlement/isn/atomic-settlement.service.ts`
## Performance Metrics
- Total End-to-End: < 200ms target
- Throughput: 5,000+ settlements/second
## Security Considerations
- Atomic execution ensures both chains update or neither
- Commitment verification prevents tampering
- Hash verification ensures integrity
---
**Related Flows**:
- [Atomic Settlement Flow](./atomic-settlement-flow.md)
- [GSS Settlement Flow](./gss-settlement-flow.md)