@psavelis/enterprise-blockchain 0.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/README.md +15 -2
  2. package/dist/aid-settlement/application/reconciler.d.ts +13 -0
  3. package/dist/aid-settlement/application/reconciler.d.ts.map +1 -0
  4. package/dist/aid-settlement/application/reconciler.js +77 -0
  5. package/dist/aid-settlement/domain/entities.d.ts +24 -0
  6. package/dist/aid-settlement/domain/entities.d.ts.map +1 -0
  7. package/dist/aid-settlement/domain/entities.js +1 -0
  8. package/dist/aid-settlement/domain/ports.d.ts +10 -0
  9. package/dist/aid-settlement/domain/ports.d.ts.map +1 -0
  10. package/dist/aid-settlement/domain/ports.js +1 -0
  11. package/dist/aid-settlement/index.d.ts +19 -0
  12. package/dist/aid-settlement/index.d.ts.map +1 -0
  13. package/dist/aid-settlement/index.js +23 -0
  14. package/dist/aid-settlement/infrastructure/in-memory-store.d.ts +12 -0
  15. package/dist/aid-settlement/infrastructure/in-memory-store.d.ts.map +1 -0
  16. package/dist/aid-settlement/infrastructure/in-memory-store.js +17 -0
  17. package/dist/credentialing/application/clearance-evaluator.d.ts +10 -0
  18. package/dist/credentialing/application/clearance-evaluator.d.ts.map +1 -0
  19. package/dist/credentialing/application/clearance-evaluator.js +63 -0
  20. package/dist/credentialing/domain/entities.d.ts +28 -0
  21. package/dist/credentialing/domain/entities.d.ts.map +1 -0
  22. package/dist/credentialing/domain/entities.js +1 -0
  23. package/dist/credentialing/domain/ports.d.ts +9 -0
  24. package/dist/credentialing/domain/ports.d.ts.map +1 -0
  25. package/dist/credentialing/domain/ports.js +1 -0
  26. package/dist/credentialing/index.d.ts +19 -0
  27. package/dist/credentialing/index.d.ts.map +1 -0
  28. package/dist/credentialing/index.js +23 -0
  29. package/dist/credentialing/infrastructure/in-memory-store.d.ts +11 -0
  30. package/dist/credentialing/infrastructure/in-memory-store.d.ts.map +1 -0
  31. package/dist/credentialing/infrastructure/in-memory-store.js +14 -0
  32. package/dist/hsm/application/asymmetric-key-service.d.ts +23 -0
  33. package/dist/hsm/application/asymmetric-key-service.d.ts.map +1 -0
  34. package/dist/hsm/application/asymmetric-key-service.js +109 -0
  35. package/dist/hsm/application/envelope-encryption-service.d.ts +18 -0
  36. package/dist/hsm/application/envelope-encryption-service.d.ts.map +1 -0
  37. package/dist/hsm/application/envelope-encryption-service.js +59 -0
  38. package/dist/hsm/application/symmetric-key-service.d.ts +34 -0
  39. package/dist/hsm/application/symmetric-key-service.d.ts.map +1 -0
  40. package/dist/hsm/application/symmetric-key-service.js +107 -0
  41. package/dist/hsm/domain/entities.d.ts +104 -0
  42. package/dist/hsm/domain/entities.d.ts.map +1 -0
  43. package/dist/hsm/domain/entities.js +10 -0
  44. package/dist/hsm/domain/ports.d.ts +20 -0
  45. package/dist/hsm/domain/ports.d.ts.map +1 -0
  46. package/dist/hsm/domain/ports.js +1 -0
  47. package/dist/hsm/index.d.ts +48 -0
  48. package/dist/hsm/index.d.ts.map +1 -0
  49. package/dist/hsm/index.js +97 -0
  50. package/dist/hsm/infrastructure/audit-log-factory.d.ts +59 -0
  51. package/dist/hsm/infrastructure/audit-log-factory.d.ts.map +1 -0
  52. package/dist/hsm/infrastructure/audit-log-factory.js +95 -0
  53. package/dist/hsm/infrastructure/audit-log.d.ts +8 -0
  54. package/dist/hsm/infrastructure/audit-log.d.ts.map +1 -0
  55. package/dist/hsm/infrastructure/audit-log.js +18 -0
  56. package/dist/hsm/infrastructure/file-audit-log.d.ts +55 -0
  57. package/dist/hsm/infrastructure/file-audit-log.d.ts.map +1 -0
  58. package/dist/hsm/infrastructure/file-audit-log.js +128 -0
  59. package/dist/hsm/infrastructure/key-store.d.ts +9 -0
  60. package/dist/hsm/infrastructure/key-store.d.ts.map +1 -0
  61. package/dist/hsm/infrastructure/key-store.js +12 -0
  62. package/dist/hsm/infrastructure/syslog-audit-log.d.ts +64 -0
  63. package/dist/hsm/infrastructure/syslog-audit-log.d.ts.map +1 -0
  64. package/dist/hsm/infrastructure/syslog-audit-log.js +167 -0
  65. package/dist/index.d.ts +22 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +37 -0
  68. package/dist/integrations/besu-client/error-mapper.d.ts +9 -0
  69. package/dist/integrations/besu-client/error-mapper.d.ts.map +1 -0
  70. package/dist/integrations/besu-client/error-mapper.js +22 -0
  71. package/dist/integrations/besu-client/index.d.ts +65 -0
  72. package/dist/integrations/besu-client/index.d.ts.map +1 -0
  73. package/dist/integrations/besu-client/index.js +276 -0
  74. package/dist/integrations/besu-client/ports.d.ts +44 -0
  75. package/dist/integrations/besu-client/ports.d.ts.map +1 -0
  76. package/dist/integrations/besu-client/ports.js +1 -0
  77. package/dist/integrations/corda-gateway/index.d.ts +37 -0
  78. package/dist/integrations/corda-gateway/index.d.ts.map +1 -0
  79. package/dist/integrations/corda-gateway/index.js +234 -0
  80. package/dist/integrations/corda-gateway/ports.d.ts +33 -0
  81. package/dist/integrations/corda-gateway/ports.d.ts.map +1 -0
  82. package/dist/integrations/corda-gateway/ports.js +1 -0
  83. package/dist/integrations/fabric-gateway/index.d.ts +78 -0
  84. package/dist/integrations/fabric-gateway/index.d.ts.map +1 -0
  85. package/dist/integrations/fabric-gateway/index.js +214 -0
  86. package/dist/integrations/fabric-gateway/ports.d.ts +50 -0
  87. package/dist/integrations/fabric-gateway/ports.d.ts.map +1 -0
  88. package/dist/integrations/fabric-gateway/ports.js +1 -0
  89. package/dist/integrations/index.d.ts +19 -0
  90. package/dist/integrations/index.d.ts.map +1 -0
  91. package/dist/integrations/index.js +19 -0
  92. package/dist/integrations/shared/env.d.ts +4 -0
  93. package/dist/integrations/shared/env.d.ts.map +1 -0
  94. package/dist/integrations/shared/env.js +24 -0
  95. package/dist/integrations/shared/retry.d.ts +79 -0
  96. package/dist/integrations/shared/retry.d.ts.map +1 -0
  97. package/dist/integrations/shared/retry.js +315 -0
  98. package/dist/mpc/adapters.d.ts +36 -0
  99. package/dist/mpc/adapters.d.ts.map +1 -0
  100. package/dist/mpc/adapters.js +46 -0
  101. package/dist/mpc/crypto.d.ts +2 -0
  102. package/dist/mpc/crypto.d.ts.map +1 -0
  103. package/dist/mpc/crypto.js +2 -0
  104. package/dist/mpc/dsa.d.ts +134 -0
  105. package/dist/mpc/dsa.d.ts.map +1 -0
  106. package/dist/mpc/dsa.js +127 -0
  107. package/dist/mpc/field.d.ts +127 -0
  108. package/dist/mpc/field.d.ts.map +1 -0
  109. package/dist/mpc/field.js +209 -0
  110. package/dist/mpc/hybrid-kem.d.ts +96 -0
  111. package/dist/mpc/hybrid-kem.d.ts.map +1 -0
  112. package/dist/mpc/hybrid-kem.js +136 -0
  113. package/dist/mpc/index.d.ts +135 -0
  114. package/dist/mpc/index.d.ts.map +1 -0
  115. package/dist/mpc/index.js +348 -0
  116. package/dist/mpc/kyber.d.ts +134 -0
  117. package/dist/mpc/kyber.d.ts.map +1 -0
  118. package/dist/mpc/kyber.js +143 -0
  119. package/dist/mpc/ports.d.ts +67 -0
  120. package/dist/mpc/ports.d.ts.map +1 -0
  121. package/dist/mpc/ports.js +9 -0
  122. package/dist/mpc/quantum.d.ts +80 -0
  123. package/dist/mpc/quantum.d.ts.map +1 -0
  124. package/dist/mpc/quantum.js +180 -0
  125. package/dist/p2mr/adapters.d.ts +31 -0
  126. package/dist/p2mr/adapters.d.ts.map +1 -0
  127. package/dist/p2mr/adapters.js +35 -0
  128. package/dist/p2mr/index.d.ts +63 -0
  129. package/dist/p2mr/index.d.ts.map +1 -0
  130. package/dist/p2mr/index.js +59 -0
  131. package/dist/p2mr/merkle-tree.d.ts +109 -0
  132. package/dist/p2mr/merkle-tree.d.ts.map +1 -0
  133. package/dist/p2mr/merkle-tree.js +239 -0
  134. package/dist/p2mr/p2mr-output.d.ts +142 -0
  135. package/dist/p2mr/p2mr-output.d.ts.map +1 -0
  136. package/dist/p2mr/p2mr-output.js +150 -0
  137. package/dist/p2mr/ports.d.ts +52 -0
  138. package/dist/p2mr/ports.d.ts.map +1 -0
  139. package/dist/p2mr/ports.js +9 -0
  140. package/dist/p2mr/script-interpreter.d.ts +92 -0
  141. package/dist/p2mr/script-interpreter.d.ts.map +1 -0
  142. package/dist/p2mr/script-interpreter.js +535 -0
  143. package/dist/p2mr/script-leaf.d.ts +70 -0
  144. package/dist/p2mr/script-leaf.d.ts.map +1 -0
  145. package/dist/p2mr/script-leaf.js +203 -0
  146. package/dist/p2mr/spend-proof.d.ts +95 -0
  147. package/dist/p2mr/spend-proof.d.ts.map +1 -0
  148. package/dist/p2mr/spend-proof.js +358 -0
  149. package/dist/p2mr/types.d.ts +209 -0
  150. package/dist/p2mr/types.d.ts.map +1 -0
  151. package/dist/p2mr/types.js +9 -0
  152. package/dist/privacy/application/view-projector.d.ts +13 -0
  153. package/dist/privacy/application/view-projector.d.ts.map +1 -0
  154. package/dist/privacy/application/view-projector.js +85 -0
  155. package/dist/privacy/domain/entities.d.ts +26 -0
  156. package/dist/privacy/domain/entities.d.ts.map +1 -0
  157. package/dist/privacy/domain/entities.js +1 -0
  158. package/dist/privacy/domain/ports.d.ts +7 -0
  159. package/dist/privacy/domain/ports.d.ts.map +1 -0
  160. package/dist/privacy/domain/ports.js +1 -0
  161. package/dist/privacy/index.d.ts +21 -0
  162. package/dist/privacy/index.d.ts.map +1 -0
  163. package/dist/privacy/index.js +25 -0
  164. package/dist/privacy/infrastructure/in-memory-store.d.ts +8 -0
  165. package/dist/privacy/infrastructure/in-memory-store.d.ts.map +1 -0
  166. package/dist/privacy/infrastructure/in-memory-store.js +7 -0
  167. package/dist/protocols/besu-port.d.ts +80 -0
  168. package/dist/protocols/besu-port.d.ts.map +1 -0
  169. package/dist/protocols/besu-port.js +1 -0
  170. package/dist/protocols/corda-port.d.ts +103 -0
  171. package/dist/protocols/corda-port.d.ts.map +1 -0
  172. package/dist/protocols/corda-port.js +9 -0
  173. package/dist/protocols/credentialing-port.d.ts +11 -0
  174. package/dist/protocols/credentialing-port.d.ts.map +1 -0
  175. package/dist/protocols/credentialing-port.js +1 -0
  176. package/dist/protocols/fabric-port.d.ts +89 -0
  177. package/dist/protocols/fabric-port.d.ts.map +1 -0
  178. package/dist/protocols/fabric-port.js +9 -0
  179. package/dist/protocols/index.d.ts +14 -0
  180. package/dist/protocols/index.d.ts.map +1 -0
  181. package/dist/protocols/index.js +7 -0
  182. package/dist/protocols/p2mr-port.d.ts +159 -0
  183. package/dist/protocols/p2mr-port.d.ts.map +1 -0
  184. package/dist/protocols/p2mr-port.js +12 -0
  185. package/dist/protocols/privacy-port.d.ts +9 -0
  186. package/dist/protocols/privacy-port.d.ts.map +1 -0
  187. package/dist/protocols/privacy-port.js +1 -0
  188. package/dist/protocols/traceability-port.d.ts +12 -0
  189. package/dist/protocols/traceability-port.d.ts.map +1 -0
  190. package/dist/protocols/traceability-port.js +1 -0
  191. package/dist/shared/collection-store.d.ts +12 -0
  192. package/dist/shared/collection-store.d.ts.map +1 -0
  193. package/dist/shared/collection-store.js +26 -0
  194. package/dist/shared/commit.d.ts +24 -0
  195. package/dist/shared/commit.d.ts.map +1 -0
  196. package/dist/shared/commit.js +50 -0
  197. package/dist/shared/crypto.d.ts +2 -0
  198. package/dist/shared/crypto.d.ts.map +1 -0
  199. package/dist/shared/crypto.js +4 -0
  200. package/dist/shared/date.d.ts +2 -0
  201. package/dist/shared/date.d.ts.map +1 -0
  202. package/dist/shared/date.js +3 -0
  203. package/dist/shared/index.d.ts +9 -0
  204. package/dist/shared/index.d.ts.map +1 -0
  205. package/dist/shared/index.js +11 -0
  206. package/dist/shared/logger.d.ts +37 -0
  207. package/dist/shared/logger.d.ts.map +1 -0
  208. package/dist/shared/logger.js +45 -0
  209. package/dist/shared/store.d.ts +25 -0
  210. package/dist/shared/store.d.ts.map +1 -0
  211. package/dist/shared/store.js +18 -0
  212. package/dist/shared/telemetry-sdk.d.ts +26 -0
  213. package/dist/shared/telemetry-sdk.d.ts.map +1 -0
  214. package/dist/shared/telemetry-sdk.js +97 -0
  215. package/dist/shared/telemetry.d.ts +86 -0
  216. package/dist/shared/telemetry.d.ts.map +1 -0
  217. package/dist/shared/telemetry.js +137 -0
  218. package/dist/stark-settlement/application/aggregator-service.d.ts +112 -0
  219. package/dist/stark-settlement/application/aggregator-service.d.ts.map +1 -0
  220. package/dist/stark-settlement/application/aggregator-service.js +256 -0
  221. package/dist/stark-settlement/application/ledger-service.d.ts +114 -0
  222. package/dist/stark-settlement/application/ledger-service.d.ts.map +1 -0
  223. package/dist/stark-settlement/application/ledger-service.js +318 -0
  224. package/dist/stark-settlement/application/settlement-service.d.ts +104 -0
  225. package/dist/stark-settlement/application/settlement-service.d.ts.map +1 -0
  226. package/dist/stark-settlement/application/settlement-service.js +251 -0
  227. package/dist/stark-settlement/domain/entities.d.ts +365 -0
  228. package/dist/stark-settlement/domain/entities.d.ts.map +1 -0
  229. package/dist/stark-settlement/domain/entities.js +29 -0
  230. package/dist/stark-settlement/domain/ports.d.ts +485 -0
  231. package/dist/stark-settlement/domain/ports.d.ts.map +1 -0
  232. package/dist/stark-settlement/domain/ports.js +14 -0
  233. package/dist/stark-settlement/domain/value-objects.d.ts +268 -0
  234. package/dist/stark-settlement/domain/value-objects.d.ts.map +1 -0
  235. package/dist/stark-settlement/domain/value-objects.js +500 -0
  236. package/dist/stark-settlement/index.d.ts +172 -0
  237. package/dist/stark-settlement/index.d.ts.map +1 -0
  238. package/dist/stark-settlement/index.js +193 -0
  239. package/dist/stark-settlement/infrastructure/adapters/audit-adapter.d.ts +52 -0
  240. package/dist/stark-settlement/infrastructure/adapters/audit-adapter.d.ts.map +1 -0
  241. package/dist/stark-settlement/infrastructure/adapters/audit-adapter.js +154 -0
  242. package/dist/stark-settlement/infrastructure/adapters/bitcoin-adapter.d.ts +88 -0
  243. package/dist/stark-settlement/infrastructure/adapters/bitcoin-adapter.d.ts.map +1 -0
  244. package/dist/stark-settlement/infrastructure/adapters/bitcoin-adapter.js +187 -0
  245. package/dist/stark-settlement/infrastructure/adapters/clock-adapter.d.ts +59 -0
  246. package/dist/stark-settlement/infrastructure/adapters/clock-adapter.d.ts.map +1 -0
  247. package/dist/stark-settlement/infrastructure/adapters/clock-adapter.js +85 -0
  248. package/dist/stark-settlement/infrastructure/adapters/dilithium-adapter.d.ts +60 -0
  249. package/dist/stark-settlement/infrastructure/adapters/dilithium-adapter.d.ts.map +1 -0
  250. package/dist/stark-settlement/infrastructure/adapters/dilithium-adapter.js +104 -0
  251. package/dist/stark-settlement/infrastructure/adapters/event-emitter-adapter.d.ts +115 -0
  252. package/dist/stark-settlement/infrastructure/adapters/event-emitter-adapter.d.ts.map +1 -0
  253. package/dist/stark-settlement/infrastructure/adapters/event-emitter-adapter.js +191 -0
  254. package/dist/stark-settlement/infrastructure/adapters/fiat-adapter.d.ts +65 -0
  255. package/dist/stark-settlement/infrastructure/adapters/fiat-adapter.d.ts.map +1 -0
  256. package/dist/stark-settlement/infrastructure/adapters/fiat-adapter.js +207 -0
  257. package/dist/stark-settlement/infrastructure/adapters/mock-stark-adapter.d.ts +73 -0
  258. package/dist/stark-settlement/infrastructure/adapters/mock-stark-adapter.d.ts.map +1 -0
  259. package/dist/stark-settlement/infrastructure/adapters/mock-stark-adapter.js +287 -0
  260. package/dist/stark-settlement/infrastructure/adapters/solana-adapter.d.ts +78 -0
  261. package/dist/stark-settlement/infrastructure/adapters/solana-adapter.d.ts.map +1 -0
  262. package/dist/stark-settlement/infrastructure/adapters/solana-adapter.js +172 -0
  263. package/dist/stark-settlement/infrastructure/adapters/starknet-proof-adapter.d.ts +56 -0
  264. package/dist/stark-settlement/infrastructure/adapters/starknet-proof-adapter.d.ts.map +1 -0
  265. package/dist/stark-settlement/infrastructure/adapters/starknet-proof-adapter.js +261 -0
  266. package/dist/stark-settlement/infrastructure/adapters/stone-proof-adapter.d.ts +125 -0
  267. package/dist/stark-settlement/infrastructure/adapters/stone-proof-adapter.d.ts.map +1 -0
  268. package/dist/stark-settlement/infrastructure/adapters/stone-proof-adapter.js +416 -0
  269. package/dist/stark-settlement/infrastructure/persistence/ledger-store.d.ts +68 -0
  270. package/dist/stark-settlement/infrastructure/persistence/ledger-store.d.ts.map +1 -0
  271. package/dist/stark-settlement/infrastructure/persistence/ledger-store.js +238 -0
  272. package/dist/stark-settlement/infrastructure/persistence/offset-store.d.ts +30 -0
  273. package/dist/stark-settlement/infrastructure/persistence/offset-store.d.ts.map +1 -0
  274. package/dist/stark-settlement/infrastructure/persistence/offset-store.js +57 -0
  275. package/dist/stark-settlement/infrastructure/persistence/outbox-store.d.ts +45 -0
  276. package/dist/stark-settlement/infrastructure/persistence/outbox-store.d.ts.map +1 -0
  277. package/dist/stark-settlement/infrastructure/persistence/outbox-store.js +171 -0
  278. package/dist/traceability/application/recall-assessor.d.ts +13 -0
  279. package/dist/traceability/application/recall-assessor.d.ts.map +1 -0
  280. package/dist/traceability/application/recall-assessor.js +74 -0
  281. package/dist/traceability/domain/entities.d.ts +23 -0
  282. package/dist/traceability/domain/entities.d.ts.map +1 -0
  283. package/dist/traceability/domain/entities.js +1 -0
  284. package/dist/traceability/domain/ports.d.ts +23 -0
  285. package/dist/traceability/domain/ports.d.ts.map +1 -0
  286. package/dist/traceability/domain/ports.js +1 -0
  287. package/dist/traceability/domain/recall.d.ts +12 -0
  288. package/dist/traceability/domain/recall.d.ts.map +1 -0
  289. package/dist/traceability/domain/recall.js +1 -0
  290. package/dist/traceability/index.d.ts +22 -0
  291. package/dist/traceability/index.d.ts.map +1 -0
  292. package/dist/traceability/index.js +26 -0
  293. package/dist/traceability/infrastructure/in-memory-store.d.ts +13 -0
  294. package/dist/traceability/infrastructure/in-memory-store.d.ts.map +1 -0
  295. package/dist/traceability/infrastructure/in-memory-store.js +24 -0
  296. package/package.json +12 -9
@@ -0,0 +1,485 @@
1
+ /**
2
+ * Port Interfaces for Aggregated STARK Settlement Layer (Hexagonal Architecture)
3
+ *
4
+ * Ports define the boundaries of the domain:
5
+ * - Input ports: How the application receives requests
6
+ * - Output ports: How the application interacts with external systems
7
+ *
8
+ * All ports are pure interfaces with no implementation details.
9
+ * Adapters in the infrastructure layer implement these ports.
10
+ *
11
+ * @see modules/p2mr/src/ports.ts for similar hexagonal pattern
12
+ * @see docs/adr/ADR-0001-hexagonal-architecture.md
13
+ */
14
+ import type { AssetType, MirrorAccount, LedgerTransaction, TransactionPayload, BaseProof, Tier1Proof, Tier2BlockProof, OutboxEntry, NetTransfer, SolanaSettlementResult, BitcoinSettlementResult, FiatSettlementResult, DepositEvent, AuditRecord, RaftNode } from "./entities.js";
15
+ /**
16
+ * Port for STARK proof generation and verification.
17
+ *
18
+ * Implementations:
19
+ * - StarknetProofAdapter: Real proof generation via starknet.js
20
+ * - MockProofAdapter: Simulated proofs for testing
21
+ */
22
+ export interface StarkProofGeneratorPort {
23
+ /**
24
+ * Generate a base proof for a single transaction.
25
+ *
26
+ * @param tx - The ledger transaction to prove
27
+ * @param preStateRoot - State root before the transaction
28
+ * @param postStateRoot - State root after the transaction
29
+ * @returns Base proof with STARK data and public inputs
30
+ */
31
+ generateBaseProof(tx: LedgerTransaction, preStateRoot: string, postStateRoot: string): Promise<BaseProof>;
32
+ /**
33
+ * Aggregate 128 base proofs into a Tier-1 proof using recursive verification.
34
+ *
35
+ * @param baseProofs - Exactly 128 base proofs to aggregate
36
+ * @returns Aggregated Tier-1 proof
37
+ * @throws If baseProofs.length !== 128
38
+ */
39
+ aggregateTier1(baseProofs: readonly BaseProof[]): Promise<Tier1Proof>;
40
+ /**
41
+ * Aggregate 64 Tier-1 proofs into a final Tier-2 block proof.
42
+ *
43
+ * @param tier1Proofs - Exactly 64 Tier-1 proofs to aggregate
44
+ * @returns Final block proof ready for settlement
45
+ * @throws If tier1Proofs.length !== 64
46
+ */
47
+ aggregateTier2(tier1Proofs: readonly Tier1Proof[]): Promise<Tier2BlockProof>;
48
+ /**
49
+ * Verify a Tier-2 block proof off-chain.
50
+ *
51
+ * @param blockProof - The block proof to verify
52
+ * @returns true if proof is valid
53
+ */
54
+ verifyBlockProof(blockProof: Tier2BlockProof): Promise<boolean>;
55
+ /**
56
+ * Get the verification key hash for the current proof system.
57
+ */
58
+ getVerificationKeyHash(): Promise<string>;
59
+ }
60
+ /**
61
+ * Port for ledger state persistence.
62
+ *
63
+ * Implementations:
64
+ * - InMemoryLedgerStore: For testing and demos
65
+ * - PostgresLedgerStore: For production (future)
66
+ */
67
+ export interface LedgerPersistencePort {
68
+ /**
69
+ * Create a new mirror account.
70
+ */
71
+ createAccount(account: MirrorAccount): Promise<void>;
72
+ /**
73
+ * Get an account by ID.
74
+ */
75
+ getAccount(accountId: string): Promise<MirrorAccount | null>;
76
+ /**
77
+ * Get an account by external address and asset type.
78
+ */
79
+ getAccountByAddress(externalAddress: string, assetType: AssetType): Promise<MirrorAccount | null>;
80
+ /**
81
+ * Update an account's balance.
82
+ *
83
+ * @param accountId - Account to update
84
+ * @param delta - Amount to add (positive) or subtract (negative)
85
+ * @param newProofRoot - Updated proof root
86
+ */
87
+ updateAccountBalance(accountId: string, delta: bigint, newProofRoot: string): Promise<void>;
88
+ /**
89
+ * Get all accounts for an asset type.
90
+ */
91
+ getAccountsByAssetType(assetType: AssetType): Promise<readonly MirrorAccount[]>;
92
+ /**
93
+ * Append a transaction to the ledger (append-only).
94
+ */
95
+ appendTransaction(tx: LedgerTransaction): Promise<void>;
96
+ /**
97
+ * Get a transaction by ID.
98
+ */
99
+ getTransaction(txId: string): Promise<LedgerTransaction | null>;
100
+ /**
101
+ * Get transactions by idempotency key (for duplicate detection).
102
+ */
103
+ getTransactionsByIdempotencyKey(idempotencyKey: string): Promise<readonly LedgerTransaction[]>;
104
+ /**
105
+ * Get pending transactions (not yet proved).
106
+ */
107
+ getPendingTransactions(limit: number): Promise<readonly LedgerTransaction[]>;
108
+ /**
109
+ * Update transaction status.
110
+ */
111
+ updateTransactionStatus(txId: string, status: LedgerTransaction["status"]): Promise<void>;
112
+ /**
113
+ * Save a base proof.
114
+ */
115
+ saveBaseProof(proof: BaseProof): Promise<void>;
116
+ /**
117
+ * Get a base proof by ID.
118
+ */
119
+ getBaseProof(proofId: string): Promise<BaseProof | null>;
120
+ /**
121
+ * Get base proofs that haven't been aggregated into Tier-1.
122
+ */
123
+ getUnaggregatedBaseProofs(limit: number): Promise<readonly BaseProof[]>;
124
+ /**
125
+ * Save a Tier-1 proof.
126
+ */
127
+ saveTier1Proof(proof: Tier1Proof): Promise<void>;
128
+ /**
129
+ * Get a Tier-1 proof by ID.
130
+ */
131
+ getTier1Proof(proofId: string): Promise<Tier1Proof | null>;
132
+ /**
133
+ * Get Tier-1 proofs that haven't been aggregated into Tier-2.
134
+ */
135
+ getUnaggregatedTier1Proofs(limit: number): Promise<readonly Tier1Proof[]>;
136
+ /**
137
+ * Save a Tier-2 block proof.
138
+ */
139
+ saveTier2Proof(proof: Tier2BlockProof): Promise<void>;
140
+ /**
141
+ * Get a Tier-2 proof by ID.
142
+ */
143
+ getTier2Proof(blockProofId: string): Promise<Tier2BlockProof | null>;
144
+ /**
145
+ * Get the latest block proof.
146
+ */
147
+ getLatestBlockProof(): Promise<Tier2BlockProof | null>;
148
+ }
149
+ /**
150
+ * Port for the settlement outbox queue.
151
+ *
152
+ * Implements append-only queue with exactly-once consumption semantics.
153
+ */
154
+ export interface OutboxPort {
155
+ /**
156
+ * Append an entry to the outbox.
157
+ * Returns the stored entry with the assigned sequential offset.
158
+ */
159
+ appendEntry(entry: OutboxEntry): Promise<OutboxEntry>;
160
+ /**
161
+ * Get pending entries for an asset type.
162
+ */
163
+ getPendingEntries(assetType: AssetType, limit: number): Promise<readonly OutboxEntry[]>;
164
+ /**
165
+ * Get an entry by ID.
166
+ */
167
+ getEntry(entryId: string): Promise<OutboxEntry | null>;
168
+ /**
169
+ * Mark an entry as processing (in-flight).
170
+ */
171
+ markProcessing(entryId: string): Promise<void>;
172
+ /**
173
+ * Mark an entry as settled.
174
+ */
175
+ markSettled(entryId: string, settlementTxId: string): Promise<void>;
176
+ /**
177
+ * Mark an entry as failed.
178
+ */
179
+ markFailed(entryId: string, errorMessage: string): Promise<void>;
180
+ /**
181
+ * Get entries that need retry (failed but under max retries).
182
+ */
183
+ getRetryableEntries(assetType: AssetType, limit: number): Promise<readonly OutboxEntry[]>;
184
+ }
185
+ /**
186
+ * Port for tracking consumer offsets in the outbox.
187
+ *
188
+ * Enables exactly-once processing by tracking the last processed offset.
189
+ */
190
+ export interface OffsetTrackingPort {
191
+ /**
192
+ * Get the current offset for a consumer.
193
+ */
194
+ getOffset(consumerId: string, assetType: AssetType): Promise<bigint>;
195
+ /**
196
+ * Commit a new offset (atomically).
197
+ */
198
+ commitOffset(consumerId: string, assetType: AssetType, offset: bigint): Promise<void>;
199
+ /**
200
+ * Get all consumer offsets for an asset type.
201
+ */
202
+ getConsumerOffsets(assetType: AssetType): Promise<ReadonlyMap<string, bigint>>;
203
+ }
204
+ /**
205
+ * Port for Solana settlement operations.
206
+ */
207
+ export interface SolanaSettlementPort {
208
+ /**
209
+ * Execute a batched transfer using VersionedTransaction with lookup tables.
210
+ *
211
+ * @param transfers - Net transfers to execute
212
+ * @param blockProof - Block proof for commitment
213
+ * @returns Settlement result with signature
214
+ */
215
+ executeBatchedTransfer(transfers: readonly NetTransfer[], blockProof: Tier2BlockProof): Promise<SolanaSettlementResult>;
216
+ /**
217
+ * Subscribe to deposit events on specified addresses.
218
+ */
219
+ subscribeDeposits(addresses: readonly string[], callback: (deposit: DepositEvent) => void): Promise<{
220
+ unsubscribe: () => void;
221
+ }>;
222
+ /**
223
+ * Get the current slot for health checks.
224
+ */
225
+ getHealth(): Promise<{
226
+ healthy: boolean;
227
+ slot: number;
228
+ }>;
229
+ /**
230
+ * Get or create an address lookup table for batch optimization.
231
+ */
232
+ getOrCreateLookupTable(addresses: readonly string[]): Promise<string>;
233
+ }
234
+ /**
235
+ * Port for Bitcoin settlement operations.
236
+ */
237
+ export interface BitcoinSettlementPort {
238
+ /**
239
+ * Execute a batched UTXO spend using PSBT.
240
+ *
241
+ * @param transfers - Net transfers to execute
242
+ * @param blockProof - Block proof for OP_RETURN commitment
243
+ * @returns Settlement result with txid
244
+ */
245
+ executeBatchedSpend(transfers: readonly NetTransfer[], blockProof: Tier2BlockProof): Promise<BitcoinSettlementResult>;
246
+ /**
247
+ * Watch addresses for incoming deposits.
248
+ */
249
+ watchAddresses(addresses: readonly string[], callback: (deposit: DepositEvent) => void): Promise<{
250
+ unwatch: () => void;
251
+ }>;
252
+ /**
253
+ * Get the current block height for health checks.
254
+ */
255
+ getHealth(): Promise<{
256
+ healthy: boolean;
257
+ blockHeight: number;
258
+ }>;
259
+ /**
260
+ * Get UTXOs for an address.
261
+ */
262
+ getUtxos(address: string): Promise<readonly {
263
+ txid: string;
264
+ vout: number;
265
+ value: bigint;
266
+ confirmed: boolean;
267
+ }[]>;
268
+ }
269
+ /**
270
+ * Port for fiat settlement operations (mock ISO 20022).
271
+ */
272
+ export interface FiatSettlementPort {
273
+ /**
274
+ * Execute a credit transfer via ISO 20022 pain.001.
275
+ *
276
+ * @param transfers - Net transfers to execute
277
+ * @param blockProof - Block proof for remittance info
278
+ * @returns Settlement result with message ID
279
+ */
280
+ executeTransfer(transfers: readonly NetTransfer[], blockProof: Tier2BlockProof): Promise<FiatSettlementResult>;
281
+ /**
282
+ * Get the health status of the fiat rail.
283
+ */
284
+ getHealth(): Promise<{
285
+ healthy: boolean;
286
+ }>;
287
+ }
288
+ /**
289
+ * Port for bidirectional gRPC streaming of outbox entries.
290
+ */
291
+ export interface OutboxListenerPort {
292
+ /**
293
+ * Start streaming outbox entries for an asset type.
294
+ *
295
+ * @param assetType - Asset type to stream
296
+ * @param onEntry - Callback for each entry
297
+ * @param onError - Error callback
298
+ * @returns Control object to stop streaming
299
+ */
300
+ startStreaming(assetType: AssetType, onEntry: (entry: OutboxEntry) => Promise<void>, onError: (error: Error) => void): Promise<{
301
+ stop: () => void;
302
+ }>;
303
+ /**
304
+ * Acknowledge processing of an entry (commits offset).
305
+ */
306
+ acknowledge(entryId: string, offset: bigint): Promise<void>;
307
+ }
308
+ /**
309
+ * Port for ML-DSA-65 (Dilithium) signing operations.
310
+ *
311
+ * Reuses the existing MPC module's ML-DSA implementation.
312
+ */
313
+ export interface DilithiumSigningPort {
314
+ /**
315
+ * Generate an ML-DSA-65 keypair.
316
+ */
317
+ generateKeyPair(): {
318
+ publicKey: Uint8Array;
319
+ secretKey: Uint8Array;
320
+ };
321
+ /**
322
+ * Sign a message with ML-DSA-65.
323
+ */
324
+ sign(message: Uint8Array, secretKey: Uint8Array): Uint8Array;
325
+ /**
326
+ * Verify an ML-DSA-65 signature.
327
+ */
328
+ verify(message: Uint8Array, signature: Uint8Array, publicKey: Uint8Array): boolean;
329
+ /**
330
+ * Get the SHA-256 hash of a public key.
331
+ */
332
+ hashPublicKey(publicKey: Uint8Array): string;
333
+ }
334
+ /**
335
+ * Port for signing transaction payloads.
336
+ *
337
+ * Combines serialization and ML-DSA signing.
338
+ */
339
+ export interface TransactionSigningPort {
340
+ /**
341
+ * Sign a transaction payload.
342
+ *
343
+ * @param payload - Transaction payload to sign
344
+ * @param secretKey - ML-DSA-65 secret key
345
+ * @returns Signature bytes
346
+ */
347
+ signPayload(payload: TransactionPayload, secretKey: Uint8Array): Uint8Array;
348
+ /**
349
+ * Verify a transaction signature.
350
+ *
351
+ * @param payload - Original payload
352
+ * @param signature - Signature to verify
353
+ * @param publicKey - Signer's public key
354
+ * @returns true if valid
355
+ */
356
+ verifyPayload(payload: TransactionPayload, signature: Uint8Array, publicKey: Uint8Array): boolean;
357
+ /**
358
+ * Serialize a payload to canonical bytes for signing.
359
+ */
360
+ serializePayload(payload: TransactionPayload): Uint8Array;
361
+ }
362
+ /**
363
+ * Port for audit logging (compliance).
364
+ */
365
+ export interface AuditPort {
366
+ /**
367
+ * Append an audit record.
368
+ */
369
+ append(record: Omit<AuditRecord, "recordId" | "previousHash" | "recordHash">): Promise<AuditRecord>;
370
+ /**
371
+ * Get audit records for an entity.
372
+ */
373
+ getRecordsForEntity(entityId: string): Promise<readonly AuditRecord[]>;
374
+ /**
375
+ * Verify the integrity of the audit chain.
376
+ */
377
+ verifyChainIntegrity(): Promise<{
378
+ valid: boolean;
379
+ lastValidRecord: string | null;
380
+ errorMessage: string | null;
381
+ }>;
382
+ /**
383
+ * Get the latest audit record.
384
+ */
385
+ getLatestRecord(): Promise<AuditRecord | null>;
386
+ }
387
+ /**
388
+ * Port for Raft consensus operations (HA cluster).
389
+ */
390
+ export interface RaftPort {
391
+ /**
392
+ * Get the current node state.
393
+ */
394
+ getNodeState(): Promise<RaftNode>;
395
+ /**
396
+ * Check if this node is the leader.
397
+ */
398
+ isLeader(): Promise<boolean>;
399
+ /**
400
+ * Get the current leader ID (null if no leader).
401
+ */
402
+ getLeaderId(): Promise<string | null>;
403
+ /**
404
+ * Propose a value to the cluster (must be leader).
405
+ */
406
+ propose<T>(value: T): Promise<{
407
+ accepted: boolean;
408
+ term: bigint;
409
+ }>;
410
+ /**
411
+ * Wait for leadership (blocks until this node becomes leader).
412
+ */
413
+ waitForLeadership(timeoutMs: number): Promise<boolean>;
414
+ }
415
+ /**
416
+ * Port for time operations (enables deterministic testing).
417
+ */
418
+ export interface ClockPort {
419
+ /**
420
+ * Get the current timestamp in milliseconds.
421
+ */
422
+ now(): number;
423
+ /**
424
+ * Generate a UUID v4.
425
+ */
426
+ uuid(): string;
427
+ }
428
+ /**
429
+ * Domain events emitted by the settlement layer.
430
+ */
431
+ export type SettlementEvent = {
432
+ type: "transaction:submitted";
433
+ tx: LedgerTransaction;
434
+ } | {
435
+ type: "proof:base:generated";
436
+ proof: BaseProof;
437
+ } | {
438
+ type: "proof:tier1:generated";
439
+ proof: Tier1Proof;
440
+ } | {
441
+ type: "proof:tier2:generated";
442
+ proof: Tier2BlockProof;
443
+ } | {
444
+ type: "settlement:initiated";
445
+ entry: OutboxEntry;
446
+ } | {
447
+ type: "settlement:completed";
448
+ entry: OutboxEntry;
449
+ result: SolanaSettlementResult | BitcoinSettlementResult | FiatSettlementResult;
450
+ } | {
451
+ type: "settlement:failed";
452
+ entry: OutboxEntry;
453
+ error: string;
454
+ } | {
455
+ type: "deposit:detected";
456
+ event: DepositEvent;
457
+ } | {
458
+ type: "deposit:mirrored";
459
+ event: DepositEvent;
460
+ tx: LedgerTransaction;
461
+ };
462
+ /**
463
+ * Port for domain event emission (observable pattern).
464
+ */
465
+ export interface EventEmitterPort {
466
+ /**
467
+ * Emit a domain event.
468
+ */
469
+ emit(event: SettlementEvent): void;
470
+ /**
471
+ * Subscribe to domain events.
472
+ */
473
+ subscribe(handler: (event: SettlementEvent) => void): {
474
+ unsubscribe: () => void;
475
+ };
476
+ /**
477
+ * Subscribe to a specific event type.
478
+ */
479
+ on<T extends SettlementEvent["type"]>(eventType: T, handler: (event: Extract<SettlementEvent, {
480
+ type: T;
481
+ }>) => void): {
482
+ unsubscribe: () => void;
483
+ };
484
+ }
485
+ //# sourceMappingURL=ports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../src/stark-settlement/domain/ports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Port Interfaces for Aggregated STARK Settlement Layer (Hexagonal Architecture)
3
+ *
4
+ * Ports define the boundaries of the domain:
5
+ * - Input ports: How the application receives requests
6
+ * - Output ports: How the application interacts with external systems
7
+ *
8
+ * All ports are pure interfaces with no implementation details.
9
+ * Adapters in the infrastructure layer implement these ports.
10
+ *
11
+ * @see modules/p2mr/src/ports.ts for similar hexagonal pattern
12
+ * @see docs/adr/ADR-0001-hexagonal-architecture.md
13
+ */
14
+ export {};