@originals/sdk 1.4.2 → 1.4.5

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 (424) hide show
  1. package/dist/adapters/FeeOracleMock.d.ts +6 -0
  2. package/dist/adapters/FeeOracleMock.js +8 -0
  3. package/{src/adapters/index.ts → dist/adapters/index.d.ts} +0 -1
  4. package/dist/adapters/index.js +4 -0
  5. package/dist/adapters/providers/OrdHttpProvider.d.ts +56 -0
  6. package/dist/adapters/providers/OrdHttpProvider.js +110 -0
  7. package/dist/adapters/providers/OrdMockProvider.d.ts +70 -0
  8. package/dist/adapters/providers/OrdMockProvider.js +75 -0
  9. package/dist/adapters/types.d.ts +71 -0
  10. package/dist/adapters/types.js +1 -0
  11. package/dist/bitcoin/BitcoinManager.d.ts +15 -0
  12. package/dist/bitcoin/BitcoinManager.js +262 -0
  13. package/dist/bitcoin/BroadcastClient.d.ts +30 -0
  14. package/dist/bitcoin/BroadcastClient.js +35 -0
  15. package/dist/bitcoin/OrdinalsClient.d.ts +21 -0
  16. package/dist/bitcoin/OrdinalsClient.js +105 -0
  17. package/dist/bitcoin/PSBTBuilder.d.ts +24 -0
  18. package/dist/bitcoin/PSBTBuilder.js +80 -0
  19. package/dist/bitcoin/fee-calculation.d.ts +14 -0
  20. package/{src/bitcoin/fee-calculation.ts → dist/bitcoin/fee-calculation.js} +5 -12
  21. package/dist/bitcoin/providers/OrdNodeProvider.d.ts +38 -0
  22. package/dist/bitcoin/providers/OrdNodeProvider.js +67 -0
  23. package/dist/bitcoin/providers/OrdinalsProvider.d.ts +33 -0
  24. package/dist/bitcoin/providers/OrdinalsProvider.js +50 -0
  25. package/dist/bitcoin/providers/types.d.ts +63 -0
  26. package/dist/bitcoin/providers/types.js +1 -0
  27. package/dist/bitcoin/transactions/commit.d.ts +89 -0
  28. package/dist/bitcoin/transactions/commit.js +311 -0
  29. package/dist/bitcoin/transactions/index.d.ts +7 -0
  30. package/{src/bitcoin/transactions/index.ts → dist/bitcoin/transactions/index.js} +1 -6
  31. package/dist/bitcoin/transfer.d.ts +9 -0
  32. package/dist/bitcoin/transfer.js +26 -0
  33. package/dist/bitcoin/utxo-selection.d.ts +78 -0
  34. package/dist/bitcoin/utxo-selection.js +237 -0
  35. package/dist/bitcoin/utxo.d.ts +26 -0
  36. package/dist/bitcoin/utxo.js +78 -0
  37. package/dist/contexts/credentials-v1.json +195 -0
  38. package/dist/contexts/credentials-v2-examples.json +5 -0
  39. package/dist/contexts/credentials-v2.json +301 -0
  40. package/dist/contexts/credentials.json +195 -0
  41. package/dist/contexts/data-integrity-v2.json +81 -0
  42. package/dist/contexts/dids.json +57 -0
  43. package/dist/contexts/ed255192020.json +93 -0
  44. package/dist/contexts/ordinals-plus.json +23 -0
  45. package/dist/contexts/originals.json +22 -0
  46. package/dist/core/OriginalsSDK.d.ts +158 -0
  47. package/dist/core/OriginalsSDK.js +274 -0
  48. package/dist/crypto/Multikey.d.ts +30 -0
  49. package/dist/crypto/Multikey.js +149 -0
  50. package/dist/crypto/Signer.d.ts +21 -0
  51. package/dist/crypto/Signer.js +196 -0
  52. package/dist/crypto/noble-init.d.ts +18 -0
  53. package/dist/crypto/noble-init.js +106 -0
  54. package/dist/did/BtcoDidResolver.d.ts +57 -0
  55. package/dist/did/BtcoDidResolver.js +166 -0
  56. package/dist/did/DIDManager.d.ts +101 -0
  57. package/dist/did/DIDManager.js +493 -0
  58. package/dist/did/Ed25519Verifier.d.ts +30 -0
  59. package/dist/did/Ed25519Verifier.js +59 -0
  60. package/dist/did/KeyManager.d.ts +17 -0
  61. package/dist/did/KeyManager.js +207 -0
  62. package/dist/did/WebVHManager.d.ts +100 -0
  63. package/dist/did/WebVHManager.js +312 -0
  64. package/dist/did/createBtcoDidDocument.d.ts +10 -0
  65. package/dist/did/createBtcoDidDocument.js +42 -0
  66. package/dist/did/providers/OrdinalsClientProviderAdapter.d.ts +23 -0
  67. package/dist/did/providers/OrdinalsClientProviderAdapter.js +51 -0
  68. package/dist/events/EventEmitter.d.ts +115 -0
  69. package/dist/events/EventEmitter.js +198 -0
  70. package/dist/events/index.d.ts +7 -0
  71. package/dist/events/index.js +6 -0
  72. package/dist/events/types.d.ts +286 -0
  73. package/dist/events/types.js +9 -0
  74. package/dist/examples/basic-usage.d.ts +3 -0
  75. package/dist/examples/basic-usage.js +62 -0
  76. package/dist/examples/create-module-original.d.ts +32 -0
  77. package/dist/examples/create-module-original.js +376 -0
  78. package/dist/examples/full-lifecycle-flow.d.ts +56 -0
  79. package/dist/examples/full-lifecycle-flow.js +419 -0
  80. package/dist/examples/run.d.ts +12 -0
  81. package/dist/examples/run.js +51 -0
  82. package/dist/index.d.ts +43 -0
  83. package/dist/index.js +52 -0
  84. package/dist/kinds/KindRegistry.d.ts +76 -0
  85. package/dist/kinds/KindRegistry.js +216 -0
  86. package/dist/kinds/index.d.ts +33 -0
  87. package/{src/kinds/index.ts → dist/kinds/index.js} +6 -44
  88. package/dist/kinds/types.d.ts +363 -0
  89. package/dist/kinds/types.js +25 -0
  90. package/dist/kinds/validators/AgentValidator.d.ts +14 -0
  91. package/dist/kinds/validators/AgentValidator.js +155 -0
  92. package/dist/kinds/validators/AppValidator.d.ts +14 -0
  93. package/dist/kinds/validators/AppValidator.js +135 -0
  94. package/dist/kinds/validators/DatasetValidator.d.ts +14 -0
  95. package/dist/kinds/validators/DatasetValidator.js +148 -0
  96. package/dist/kinds/validators/DocumentValidator.d.ts +14 -0
  97. package/dist/kinds/validators/DocumentValidator.js +180 -0
  98. package/dist/kinds/validators/MediaValidator.d.ts +14 -0
  99. package/dist/kinds/validators/MediaValidator.js +172 -0
  100. package/dist/kinds/validators/ModuleValidator.d.ts +14 -0
  101. package/dist/kinds/validators/ModuleValidator.js +140 -0
  102. package/dist/kinds/validators/base.d.ts +96 -0
  103. package/dist/kinds/validators/base.js +218 -0
  104. package/{src/kinds/validators/index.ts → dist/kinds/validators/index.d.ts} +0 -2
  105. package/dist/kinds/validators/index.js +10 -0
  106. package/dist/lifecycle/BatchOperations.d.ts +147 -0
  107. package/dist/lifecycle/BatchOperations.js +251 -0
  108. package/dist/lifecycle/LifecycleManager.d.ts +362 -0
  109. package/dist/lifecycle/LifecycleManager.js +1692 -0
  110. package/dist/lifecycle/OriginalsAsset.d.ts +164 -0
  111. package/dist/lifecycle/OriginalsAsset.js +380 -0
  112. package/dist/lifecycle/ProvenanceQuery.d.ts +126 -0
  113. package/dist/lifecycle/ProvenanceQuery.js +220 -0
  114. package/dist/lifecycle/ResourceVersioning.d.ts +73 -0
  115. package/dist/lifecycle/ResourceVersioning.js +127 -0
  116. package/dist/migration/MigrationManager.d.ts +86 -0
  117. package/dist/migration/MigrationManager.js +412 -0
  118. package/dist/migration/audit/AuditLogger.d.ts +51 -0
  119. package/dist/migration/audit/AuditLogger.js +156 -0
  120. package/dist/migration/checkpoint/CheckpointManager.d.ts +31 -0
  121. package/dist/migration/checkpoint/CheckpointManager.js +96 -0
  122. package/dist/migration/checkpoint/CheckpointStorage.d.ts +26 -0
  123. package/dist/migration/checkpoint/CheckpointStorage.js +89 -0
  124. package/dist/migration/index.d.ts +22 -0
  125. package/{src/migration/index.ts → dist/migration/index.js} +0 -6
  126. package/dist/migration/operations/BaseMigration.d.ts +48 -0
  127. package/dist/migration/operations/BaseMigration.js +83 -0
  128. package/dist/migration/operations/PeerToBtcoMigration.d.ts +25 -0
  129. package/dist/migration/operations/PeerToBtcoMigration.js +67 -0
  130. package/dist/migration/operations/PeerToWebvhMigration.d.ts +19 -0
  131. package/dist/migration/operations/PeerToWebvhMigration.js +46 -0
  132. package/dist/migration/operations/WebvhToBtcoMigration.d.ts +25 -0
  133. package/dist/migration/operations/WebvhToBtcoMigration.js +67 -0
  134. package/dist/migration/rollback/RollbackManager.d.ts +29 -0
  135. package/dist/migration/rollback/RollbackManager.js +146 -0
  136. package/dist/migration/state/StateMachine.d.ts +25 -0
  137. package/dist/migration/state/StateMachine.js +76 -0
  138. package/dist/migration/state/StateTracker.d.ts +36 -0
  139. package/dist/migration/state/StateTracker.js +123 -0
  140. package/dist/migration/types.d.ts +306 -0
  141. package/dist/migration/types.js +33 -0
  142. package/dist/migration/validation/BitcoinValidator.d.ts +13 -0
  143. package/dist/migration/validation/BitcoinValidator.js +83 -0
  144. package/dist/migration/validation/CredentialValidator.d.ts +13 -0
  145. package/dist/migration/validation/CredentialValidator.js +46 -0
  146. package/dist/migration/validation/DIDCompatibilityValidator.d.ts +16 -0
  147. package/dist/migration/validation/DIDCompatibilityValidator.js +127 -0
  148. package/dist/migration/validation/LifecycleValidator.d.ts +10 -0
  149. package/dist/migration/validation/LifecycleValidator.js +52 -0
  150. package/dist/migration/validation/StorageValidator.d.ts +10 -0
  151. package/dist/migration/validation/StorageValidator.js +65 -0
  152. package/dist/migration/validation/ValidationPipeline.d.ts +29 -0
  153. package/dist/migration/validation/ValidationPipeline.js +180 -0
  154. package/dist/resources/ResourceManager.d.ts +231 -0
  155. package/dist/resources/ResourceManager.js +573 -0
  156. package/{src/resources/index.ts → dist/resources/index.d.ts} +3 -13
  157. package/dist/resources/index.js +10 -0
  158. package/dist/resources/types.d.ts +93 -0
  159. package/dist/resources/types.js +80 -0
  160. package/dist/storage/LocalStorageAdapter.d.ts +11 -0
  161. package/dist/storage/LocalStorageAdapter.js +53 -0
  162. package/dist/storage/MemoryStorageAdapter.d.ts +6 -0
  163. package/dist/storage/MemoryStorageAdapter.js +21 -0
  164. package/dist/storage/StorageAdapter.d.ts +16 -0
  165. package/dist/storage/StorageAdapter.js +1 -0
  166. package/{src/storage/index.ts → dist/storage/index.d.ts} +0 -1
  167. package/dist/storage/index.js +2 -0
  168. package/dist/types/bitcoin.d.ts +84 -0
  169. package/dist/types/bitcoin.js +1 -0
  170. package/dist/types/common.d.ts +82 -0
  171. package/dist/types/common.js +1 -0
  172. package/dist/types/credentials.d.ts +75 -0
  173. package/dist/types/credentials.js +1 -0
  174. package/dist/types/did.d.ts +26 -0
  175. package/dist/types/did.js +1 -0
  176. package/{src/types/index.ts → dist/types/index.d.ts} +0 -2
  177. package/dist/types/index.js +5 -0
  178. package/dist/types/network.d.ts +78 -0
  179. package/dist/types/network.js +145 -0
  180. package/dist/utils/EventLogger.d.ts +71 -0
  181. package/dist/utils/EventLogger.js +232 -0
  182. package/dist/utils/Logger.d.ts +106 -0
  183. package/dist/utils/Logger.js +257 -0
  184. package/dist/utils/MetricsCollector.d.ts +110 -0
  185. package/dist/utils/MetricsCollector.js +264 -0
  186. package/dist/utils/bitcoin-address.d.ts +38 -0
  187. package/dist/utils/bitcoin-address.js +113 -0
  188. package/dist/utils/cbor.d.ts +2 -0
  189. package/dist/utils/cbor.js +9 -0
  190. package/dist/utils/encoding.d.ts +37 -0
  191. package/dist/utils/encoding.js +120 -0
  192. package/dist/utils/hash.d.ts +1 -0
  193. package/dist/utils/hash.js +5 -0
  194. package/dist/utils/retry.d.ts +10 -0
  195. package/dist/utils/retry.js +35 -0
  196. package/dist/utils/satoshi-validation.d.ts +60 -0
  197. package/dist/utils/satoshi-validation.js +156 -0
  198. package/dist/utils/serialization.d.ts +14 -0
  199. package/dist/utils/serialization.js +76 -0
  200. package/dist/utils/telemetry.d.ts +17 -0
  201. package/dist/utils/telemetry.js +24 -0
  202. package/dist/utils/validation.d.ts +5 -0
  203. package/dist/utils/validation.js +98 -0
  204. package/dist/vc/CredentialManager.d.ts +329 -0
  205. package/dist/vc/CredentialManager.js +615 -0
  206. package/dist/vc/Issuer.d.ts +27 -0
  207. package/dist/vc/Issuer.js +70 -0
  208. package/dist/vc/Verifier.d.ts +16 -0
  209. package/dist/vc/Verifier.js +50 -0
  210. package/dist/vc/cryptosuites/bbs.d.ts +44 -0
  211. package/dist/vc/cryptosuites/bbs.js +213 -0
  212. package/dist/vc/cryptosuites/bbsSimple.d.ts +9 -0
  213. package/dist/vc/cryptosuites/bbsSimple.js +12 -0
  214. package/dist/vc/cryptosuites/eddsa.d.ts +30 -0
  215. package/dist/vc/cryptosuites/eddsa.js +81 -0
  216. package/dist/vc/documentLoader.d.ts +16 -0
  217. package/dist/vc/documentLoader.js +59 -0
  218. package/dist/vc/proofs/data-integrity.d.ts +21 -0
  219. package/dist/vc/proofs/data-integrity.js +15 -0
  220. package/dist/vc/utils/jsonld.d.ts +2 -0
  221. package/dist/vc/utils/jsonld.js +15 -0
  222. package/package.json +5 -1
  223. package/.eslintrc.json +0 -33
  224. package/src/adapters/FeeOracleMock.ts +0 -9
  225. package/src/adapters/providers/OrdHttpProvider.ts +0 -126
  226. package/src/adapters/providers/OrdMockProvider.ts +0 -101
  227. package/src/adapters/types.ts +0 -66
  228. package/src/bitcoin/BitcoinManager.ts +0 -330
  229. package/src/bitcoin/BroadcastClient.ts +0 -54
  230. package/src/bitcoin/OrdinalsClient.ts +0 -119
  231. package/src/bitcoin/PSBTBuilder.ts +0 -106
  232. package/src/bitcoin/providers/OrdNodeProvider.ts +0 -92
  233. package/src/bitcoin/providers/OrdinalsProvider.ts +0 -56
  234. package/src/bitcoin/providers/types.ts +0 -59
  235. package/src/bitcoin/transactions/commit.ts +0 -465
  236. package/src/bitcoin/transfer.ts +0 -43
  237. package/src/bitcoin/utxo-selection.ts +0 -322
  238. package/src/bitcoin/utxo.ts +0 -113
  239. package/src/contexts/credentials-v1.json +0 -237
  240. package/src/contexts/credentials-v2-examples.json +0 -5
  241. package/src/contexts/credentials-v2.json +0 -340
  242. package/src/contexts/credentials.json +0 -237
  243. package/src/contexts/data-integrity-v2.json +0 -81
  244. package/src/contexts/dids.json +0 -58
  245. package/src/contexts/ed255192020.json +0 -93
  246. package/src/contexts/ordinals-plus.json +0 -23
  247. package/src/contexts/originals.json +0 -22
  248. package/src/core/OriginalsSDK.ts +0 -416
  249. package/src/crypto/Multikey.ts +0 -194
  250. package/src/crypto/Signer.ts +0 -254
  251. package/src/crypto/noble-init.ts +0 -121
  252. package/src/did/BtcoDidResolver.ts +0 -227
  253. package/src/did/DIDManager.ts +0 -694
  254. package/src/did/Ed25519Verifier.ts +0 -68
  255. package/src/did/KeyManager.ts +0 -236
  256. package/src/did/WebVHManager.ts +0 -498
  257. package/src/did/createBtcoDidDocument.ts +0 -59
  258. package/src/did/providers/OrdinalsClientProviderAdapter.ts +0 -68
  259. package/src/events/EventEmitter.ts +0 -222
  260. package/src/events/index.ts +0 -19
  261. package/src/events/types.ts +0 -331
  262. package/src/examples/basic-usage.ts +0 -78
  263. package/src/examples/create-module-original.ts +0 -435
  264. package/src/examples/full-lifecycle-flow.ts +0 -514
  265. package/src/examples/run.ts +0 -60
  266. package/src/index.ts +0 -150
  267. package/src/kinds/KindRegistry.ts +0 -290
  268. package/src/kinds/types.ts +0 -470
  269. package/src/kinds/validators/AgentValidator.ts +0 -257
  270. package/src/kinds/validators/AppValidator.ts +0 -211
  271. package/src/kinds/validators/DatasetValidator.ts +0 -242
  272. package/src/kinds/validators/DocumentValidator.ts +0 -311
  273. package/src/kinds/validators/MediaValidator.ts +0 -269
  274. package/src/kinds/validators/ModuleValidator.ts +0 -225
  275. package/src/kinds/validators/base.ts +0 -276
  276. package/src/lifecycle/BatchOperations.ts +0 -373
  277. package/src/lifecycle/LifecycleManager.ts +0 -2126
  278. package/src/lifecycle/OriginalsAsset.ts +0 -524
  279. package/src/lifecycle/ProvenanceQuery.ts +0 -280
  280. package/src/lifecycle/ResourceVersioning.ts +0 -163
  281. package/src/migration/MigrationManager.ts +0 -527
  282. package/src/migration/audit/AuditLogger.ts +0 -176
  283. package/src/migration/checkpoint/CheckpointManager.ts +0 -112
  284. package/src/migration/checkpoint/CheckpointStorage.ts +0 -101
  285. package/src/migration/operations/BaseMigration.ts +0 -126
  286. package/src/migration/operations/PeerToBtcoMigration.ts +0 -105
  287. package/src/migration/operations/PeerToWebvhMigration.ts +0 -62
  288. package/src/migration/operations/WebvhToBtcoMigration.ts +0 -105
  289. package/src/migration/rollback/RollbackManager.ts +0 -170
  290. package/src/migration/state/StateMachine.ts +0 -92
  291. package/src/migration/state/StateTracker.ts +0 -156
  292. package/src/migration/types.ts +0 -344
  293. package/src/migration/validation/BitcoinValidator.ts +0 -107
  294. package/src/migration/validation/CredentialValidator.ts +0 -62
  295. package/src/migration/validation/DIDCompatibilityValidator.ts +0 -151
  296. package/src/migration/validation/LifecycleValidator.ts +0 -64
  297. package/src/migration/validation/StorageValidator.ts +0 -79
  298. package/src/migration/validation/ValidationPipeline.ts +0 -213
  299. package/src/resources/ResourceManager.ts +0 -655
  300. package/src/resources/types.ts +0 -202
  301. package/src/storage/LocalStorageAdapter.ts +0 -61
  302. package/src/storage/MemoryStorageAdapter.ts +0 -29
  303. package/src/storage/StorageAdapter.ts +0 -25
  304. package/src/types/bitcoin.ts +0 -98
  305. package/src/types/common.ts +0 -92
  306. package/src/types/credentials.ts +0 -88
  307. package/src/types/did.ts +0 -31
  308. package/src/types/external-shims.d.ts +0 -53
  309. package/src/types/network.ts +0 -175
  310. package/src/utils/EventLogger.ts +0 -298
  311. package/src/utils/Logger.ts +0 -322
  312. package/src/utils/MetricsCollector.ts +0 -358
  313. package/src/utils/bitcoin-address.ts +0 -130
  314. package/src/utils/cbor.ts +0 -12
  315. package/src/utils/encoding.ts +0 -127
  316. package/src/utils/hash.ts +0 -6
  317. package/src/utils/retry.ts +0 -46
  318. package/src/utils/satoshi-validation.ts +0 -196
  319. package/src/utils/serialization.ts +0 -96
  320. package/src/utils/telemetry.ts +0 -40
  321. package/src/utils/validation.ts +0 -119
  322. package/src/vc/CredentialManager.ts +0 -918
  323. package/src/vc/Issuer.ts +0 -100
  324. package/src/vc/Verifier.ts +0 -47
  325. package/src/vc/cryptosuites/bbs.ts +0 -253
  326. package/src/vc/cryptosuites/bbsSimple.ts +0 -21
  327. package/src/vc/cryptosuites/eddsa.ts +0 -99
  328. package/src/vc/documentLoader.ts +0 -67
  329. package/src/vc/proofs/data-integrity.ts +0 -33
  330. package/src/vc/utils/jsonld.ts +0 -18
  331. package/tests/__mocks__/bbs-signatures.js +0 -17
  332. package/tests/__mocks__/mf-base58.js +0 -24
  333. package/tests/fixtures/did-documents.ts +0 -247
  334. package/tests/index.test.ts +0 -21
  335. package/tests/integration/BatchOperations.test.ts +0 -531
  336. package/tests/integration/CompleteLifecycle.e2e.test.ts +0 -735
  337. package/tests/integration/CredentialManager.test.ts +0 -42
  338. package/tests/integration/DIDManager.test.ts +0 -41
  339. package/tests/integration/DidPeerToWebVhFlow.test.ts +0 -351
  340. package/tests/integration/Events.test.ts +0 -435
  341. package/tests/integration/Lifecycle.transfer.btco.integration.test.ts +0 -25
  342. package/tests/integration/LifecycleManager.test.ts +0 -21
  343. package/tests/integration/MultikeyFlow.test.ts +0 -52
  344. package/tests/integration/TelemetryIntegration.test.ts +0 -395
  345. package/tests/integration/WebVhPublish.test.ts +0 -48
  346. package/tests/integration/createTypedOriginal.test.ts +0 -379
  347. package/tests/integration/migration/peer-to-webvh.test.ts +0 -172
  348. package/tests/manual/test-commit-creation.ts +0 -323
  349. package/tests/mocks/MockKeyStore.ts +0 -38
  350. package/tests/mocks/adapters/MemoryStorageAdapter.ts +0 -24
  351. package/tests/mocks/adapters/MockFeeOracle.ts +0 -11
  352. package/tests/mocks/adapters/MockOrdinalsProvider.ts +0 -76
  353. package/tests/mocks/adapters/OrdMockProvider.test.ts +0 -176
  354. package/tests/mocks/adapters/index.ts +0 -6
  355. package/tests/performance/BatchOperations.perf.test.ts +0 -403
  356. package/tests/performance/logging.perf.test.ts +0 -336
  357. package/tests/sdk.test.ts +0 -43
  358. package/tests/security/bitcoin-penetration-tests.test.ts +0 -622
  359. package/tests/setup.bun.ts +0 -69
  360. package/tests/setup.jest.ts +0 -23
  361. package/tests/stress/batch-operations-stress.test.ts +0 -571
  362. package/tests/unit/adapters/FeeOracleMock.test.ts +0 -40
  363. package/tests/unit/bitcoin/BitcoinManager.test.ts +0 -293
  364. package/tests/unit/bitcoin/BroadcastClient.test.ts +0 -52
  365. package/tests/unit/bitcoin/OrdNodeProvider.test.ts +0 -53
  366. package/tests/unit/bitcoin/OrdinalsClient.test.ts +0 -381
  367. package/tests/unit/bitcoin/OrdinalsClientProvider.test.ts +0 -102
  368. package/tests/unit/bitcoin/PSBTBuilder.test.ts +0 -84
  369. package/tests/unit/bitcoin/fee-calculation.test.ts +0 -261
  370. package/tests/unit/bitcoin/transactions/commit.test.ts +0 -649
  371. package/tests/unit/bitcoin/transfer.test.ts +0 -31
  372. package/tests/unit/bitcoin/utxo-selection-new.test.ts +0 -502
  373. package/tests/unit/bitcoin/utxo.more.test.ts +0 -39
  374. package/tests/unit/bitcoin/utxo.selection.test.ts +0 -38
  375. package/tests/unit/core/OriginalsSDK.test.ts +0 -152
  376. package/tests/unit/crypto/Multikey.test.ts +0 -206
  377. package/tests/unit/crypto/Signer.test.ts +0 -408
  378. package/tests/unit/did/BtcoDidResolver.test.ts +0 -611
  379. package/tests/unit/did/DIDManager.more.test.ts +0 -43
  380. package/tests/unit/did/DIDManager.test.ts +0 -185
  381. package/tests/unit/did/Ed25519Verifier.test.ts +0 -160
  382. package/tests/unit/did/KeyManager.test.ts +0 -452
  383. package/tests/unit/did/OrdinalsClientProviderAdapter.test.ts +0 -45
  384. package/tests/unit/did/WebVHManager.test.ts +0 -435
  385. package/tests/unit/did/createBtcoDidDocument.test.ts +0 -67
  386. package/tests/unit/did/providers/OrdinalsClientProviderAdapter.test.ts +0 -159
  387. package/tests/unit/events/EventEmitter.test.ts +0 -407
  388. package/tests/unit/kinds/KindRegistry.test.ts +0 -329
  389. package/tests/unit/kinds/types.test.ts +0 -409
  390. package/tests/unit/kinds/validators.test.ts +0 -651
  391. package/tests/unit/lifecycle/BatchOperations.test.ts +0 -527
  392. package/tests/unit/lifecycle/LifecycleManager.cleanapi.test.ts +0 -441
  393. package/tests/unit/lifecycle/LifecycleManager.keymanagement.test.ts +0 -312
  394. package/tests/unit/lifecycle/LifecycleManager.prov.test.ts +0 -18
  395. package/tests/unit/lifecycle/LifecycleManager.test.ts +0 -213
  396. package/tests/unit/lifecycle/LifecycleManager.transfer.unit.test.ts +0 -30
  397. package/tests/unit/lifecycle/OriginalsAsset.test.ts +0 -176
  398. package/tests/unit/lifecycle/ProvenanceQuery.test.ts +0 -577
  399. package/tests/unit/lifecycle/ResourceVersioning.test.ts +0 -651
  400. package/tests/unit/resources/ResourceManager.test.ts +0 -740
  401. package/tests/unit/storage/MemoryStorageAdapter.test.ts +0 -93
  402. package/tests/unit/types/network.test.ts +0 -255
  403. package/tests/unit/utils/EventIntegration.test.ts +0 -384
  404. package/tests/unit/utils/Logger.test.ts +0 -473
  405. package/tests/unit/utils/MetricsCollector.test.ts +0 -358
  406. package/tests/unit/utils/bitcoin-address.test.ts +0 -250
  407. package/tests/unit/utils/cbor.test.ts +0 -35
  408. package/tests/unit/utils/encoding.test.ts +0 -318
  409. package/tests/unit/utils/hash.test.ts +0 -12
  410. package/tests/unit/utils/retry.test.ts +0 -100
  411. package/tests/unit/utils/satoshi-validation.test.ts +0 -354
  412. package/tests/unit/utils/serialization.test.ts +0 -124
  413. package/tests/unit/utils/telemetry.test.ts +0 -52
  414. package/tests/unit/utils/validation.test.ts +0 -141
  415. package/tests/unit/vc/CredentialManager.helpers.test.ts +0 -527
  416. package/tests/unit/vc/CredentialManager.test.ts +0 -487
  417. package/tests/unit/vc/Issuer.test.ts +0 -107
  418. package/tests/unit/vc/Verifier.test.ts +0 -525
  419. package/tests/unit/vc/bbs.test.ts +0 -282
  420. package/tests/unit/vc/cryptosuites/eddsa.test.ts +0 -398
  421. package/tests/unit/vc/documentLoader.test.ts +0 -121
  422. package/tests/unit/vc/proofs/data-integrity.test.ts +0 -24
  423. package/tsconfig.json +0 -31
  424. package/tsconfig.test.json +0 -15
@@ -1,344 +0,0 @@
1
- /**
2
- * Migration system types and interfaces
3
- * Defines all types used across the migration infrastructure
4
- */
5
-
6
- import { DIDDocument, VerifiableCredential } from '../types';
7
-
8
- /**
9
- * DID layer types
10
- */
11
- export type DIDLayer = 'peer' | 'webvh' | 'btco';
12
-
13
- /**
14
- * Migration state enum
15
- */
16
- export enum MigrationStateEnum {
17
- PENDING = 'pending', // Migration queued
18
- VALIDATING = 'validating', // Running validation pipeline
19
- CHECKPOINTED = 'checkpointed', // Checkpoint created
20
- IN_PROGRESS = 'in_progress', // Active migration
21
- ANCHORING = 'anchoring', // Bitcoin anchoring (btco only)
22
- COMPLETED = 'completed', // Successfully completed
23
- FAILED = 'failed', // Failed, rollback initiated
24
- ROLLED_BACK = 'rolled_back', // Rolled back successfully
25
- QUARANTINED = 'quarantined' // Rollback failed, needs manual intervention
26
- }
27
-
28
- /**
29
- * Migration error types
30
- */
31
- export enum MigrationErrorType {
32
- VALIDATION_ERROR = 'validation_error', // Pre-migration validation failed
33
- STORAGE_ERROR = 'storage_error', // Storage adapter failure
34
- BITCOIN_ERROR = 'bitcoin_error', // Bitcoin anchoring failed
35
- CREDENTIAL_ERROR = 'credential_error', // Credential re-issuance failed
36
- NETWORK_ERROR = 'network_error', // Network/connectivity failure
37
- ROLLBACK_ERROR = 'rollback_error', // Rollback failed (critical)
38
- TIMEOUT_ERROR = 'timeout_error', // Operation timeout
39
- UNKNOWN_ERROR = 'unknown_error' // Unexpected error
40
- }
41
-
42
- /**
43
- * Migration options for initiating a migration
44
- */
45
- export interface MigrationOptions {
46
- sourceDid: string; // Source DID to migrate from
47
- targetLayer: DIDLayer; // Target layer
48
- credentialIssuance?: boolean; // Require VC issuance (default: true)
49
- batchMode?: boolean; // Batch operation flag
50
- partialMode?: { // For large files
51
- chunkSize: number; // Bytes per chunk
52
- resumable: boolean; // Support resume
53
- };
54
- estimateCostOnly?: boolean; // Return cost estimate without migrating
55
- metadata?: Record<string, any>; // Additional migration metadata
56
- domain?: string; // For webvh migrations
57
- satoshi?: string; // For btco migrations
58
- feeRate?: number; // For btco migrations
59
- }
60
-
61
- /**
62
- * Batch migration options
63
- */
64
- export interface BatchMigrationOptions extends MigrationOptions {
65
- maxConcurrent?: number; // Max concurrent migrations
66
- continueOnError?: boolean; // Continue batch if individual migration fails
67
- }
68
-
69
- /**
70
- * Cost estimate for a migration
71
- */
72
- export interface CostEstimate {
73
- storageCost: number; // Storage cost in currency units
74
- networkFees: number; // Bitcoin network fees (btco only)
75
- totalCost: number; // Total cost
76
- currency: string; // Currency unit (e.g., 'sats', 'USD')
77
- }
78
-
79
- /**
80
- * Validation error
81
- */
82
- export interface ValidationError {
83
- code: string;
84
- message: string;
85
- field?: string;
86
- details?: any;
87
- }
88
-
89
- /**
90
- * Validation warning
91
- */
92
- export interface ValidationWarning {
93
- code: string;
94
- message: string;
95
- field?: string;
96
- }
97
-
98
- /**
99
- * Migration validation result
100
- */
101
- export interface MigrationValidationResult {
102
- valid: boolean;
103
- errors: ValidationError[]; // Blocking errors
104
- warnings: ValidationWarning[]; // Non-blocking issues
105
- estimatedCost: CostEstimate;
106
- estimatedDuration: number; // milliseconds
107
- }
108
-
109
- /**
110
- * Migration checkpoint data
111
- */
112
- export interface MigrationCheckpoint {
113
- checkpointId?: string;
114
- migrationId: string;
115
- timestamp: number;
116
- sourceDid: string;
117
- sourceLayer: DIDLayer;
118
- didDocument: DIDDocument;
119
- credentials: VerifiableCredential[];
120
- storageReferences: Record<string, any>;
121
- lifecycleState: any;
122
- ownershipProofs: any[];
123
- metadata: Record<string, any>;
124
- }
125
-
126
- /**
127
- * Rollback result
128
- */
129
- export interface RollbackResult {
130
- success: boolean;
131
- migrationId: string;
132
- checkpointId?: string;
133
- restoredState: MigrationStateEnum;
134
- duration: number; // milliseconds
135
- errors?: MigrationError[];
136
- }
137
-
138
- /**
139
- * Migration state tracking
140
- */
141
- export interface MigrationState {
142
- migrationId: string;
143
- state: MigrationStateEnum;
144
- sourceDid: string;
145
- sourceLayer: DIDLayer;
146
- targetDid?: string;
147
- targetLayer: DIDLayer;
148
- progress: number; // 0-100
149
- currentOperation: string;
150
- startTime: number;
151
- endTime?: number;
152
- error?: MigrationError;
153
- checkpointId?: string;
154
- }
155
-
156
- /**
157
- * Migration error details
158
- */
159
- export interface MigrationError {
160
- type: MigrationErrorType;
161
- code: string;
162
- message: string;
163
- technicalDetails?: string;
164
- suggestedRecovery?: string;
165
- migrationId?: string;
166
- sourceDid?: string;
167
- targetDid?: string;
168
- timestamp: number;
169
- stack?: string;
170
- }
171
-
172
- /**
173
- * Migration audit record
174
- */
175
- export interface MigrationAuditRecord {
176
- migrationId: string;
177
- timestamp: number;
178
- initiator: string; // User/system identifier
179
- sourceDid: string;
180
- sourceLayer: DIDLayer;
181
- targetDid: string | null; // null if failed before creation
182
- targetLayer: DIDLayer;
183
- finalState: MigrationStateEnum;
184
- validationResults: MigrationValidationResult;
185
- costActual: CostEstimate; // Actual costs incurred
186
- duration: number; // milliseconds
187
- checkpointId?: string; // For rollback reference
188
- errors: MigrationError[]; // Any errors encountered
189
- metadata: Record<string, any>; // Custom metadata
190
- signature?: string; // Cryptographic signature
191
- }
192
-
193
- /**
194
- * Migration result
195
- */
196
- export interface MigrationResult {
197
- migrationId: string;
198
- success: boolean;
199
- sourceDid: string;
200
- targetDid?: string;
201
- sourceLayer: DIDLayer;
202
- targetLayer: DIDLayer;
203
- state: MigrationStateEnum;
204
- duration: number;
205
- cost: CostEstimate;
206
- auditRecord?: MigrationAuditRecord; // Optional - undefined when AuditLogger disabled (v1.0)
207
- error?: MigrationError;
208
- }
209
-
210
- /**
211
- * Batch migration result
212
- */
213
- export interface BatchMigrationResult {
214
- batchId: string;
215
- total: number;
216
- completed: number;
217
- failed: number;
218
- inProgress: number;
219
- results: Map<string, MigrationResult>; // sourceDid → result
220
- overallProgress: number; // 0-100
221
- startTime: number;
222
- endTime?: number;
223
- errors: MigrationError[];
224
- }
225
-
226
- /**
227
- * Partial migration progress
228
- */
229
- export interface PartialMigrationProgress {
230
- totalChunks: number;
231
- completedChunks: number;
232
- currentChunk: number;
233
- bytesTransferred: number;
234
- totalBytes: number;
235
- percentComplete: number;
236
- estimatedTimeRemaining: number; // milliseconds
237
- }
238
-
239
- /**
240
- * Migration event types
241
- */
242
- export type MigrationEventType =
243
- | 'migration:started'
244
- | 'migration:validated'
245
- | 'migration:checkpointed'
246
- | 'migration:in_progress'
247
- | 'migration:anchoring'
248
- | 'migration:completed'
249
- | 'migration:failed'
250
- | 'migration:rolledback'
251
- | 'migration:quarantine'
252
- | 'batch:progress';
253
-
254
- /**
255
- * Migration event payload
256
- */
257
- export interface MigrationEvent {
258
- type: MigrationEventType;
259
- migrationId: string;
260
- timestamp: number;
261
- state: MigrationStateEnum;
262
- data?: any;
263
- }
264
-
265
- /**
266
- * Storage migration context
267
- */
268
- export interface StorageMigrationContext {
269
- sourceDid: string;
270
- targetDid: string;
271
- sourceLayer: DIDLayer;
272
- targetLayer: DIDLayer;
273
- resources: Array<{
274
- id: string;
275
- hash: string;
276
- contentType: string;
277
- size: number;
278
- url?: string;
279
- }>;
280
- }
281
-
282
- /**
283
- * Bitcoin anchoring context
284
- */
285
- export interface BitcoinAnchoringContext {
286
- didDocument: DIDDocument;
287
- migrationMetadata: Record<string, any>;
288
- network: 'mainnet' | 'testnet' | 'signet';
289
- feeRate?: number;
290
- satoshi?: string;
291
- }
292
-
293
- /**
294
- * Lifecycle migration context
295
- */
296
- export interface LifecycleMigrationContext {
297
- sourceDid: string;
298
- targetDid: string;
299
- currentState: any;
300
- eventHistory: any[];
301
- migrationId: string;
302
- }
303
-
304
- /**
305
- * Validator interface
306
- */
307
- export interface IValidator {
308
- validate(options: MigrationOptions): Promise<MigrationValidationResult>;
309
- }
310
-
311
- /**
312
- * Checkpoint manager interface
313
- */
314
- export interface ICheckpointManager {
315
- createCheckpoint(migrationId: string, options: MigrationOptions): Promise<MigrationCheckpoint>;
316
- getCheckpoint(checkpointId: string): Promise<MigrationCheckpoint | null>;
317
- deleteCheckpoint(checkpointId: string): Promise<void>;
318
- }
319
-
320
- /**
321
- * Rollback manager interface
322
- */
323
- export interface IRollbackManager {
324
- rollback(migrationId: string, checkpointId: string): Promise<RollbackResult>;
325
- }
326
-
327
- /**
328
- * State tracker interface
329
- */
330
- export interface IStateTracker {
331
- createMigration(options: MigrationOptions): Promise<MigrationState>;
332
- updateState(migrationId: string, updates: Partial<MigrationState>): Promise<void>;
333
- getState(migrationId: string): Promise<MigrationState | null>;
334
- queryStates(filters: Partial<MigrationState>): Promise<MigrationState[]>;
335
- }
336
-
337
- /**
338
- * Audit logger interface
339
- */
340
- export interface IAuditLogger {
341
- logMigration(record: MigrationAuditRecord): Promise<void>;
342
- getMigrationHistory(did: string): Promise<MigrationAuditRecord[]>;
343
- getSystemMigrationLogs(filters: any): Promise<MigrationAuditRecord[]>;
344
- }
@@ -1,107 +0,0 @@
1
- /**
2
- * BitcoinValidator - Validates Bitcoin network requirements for btco migrations
3
- */
4
-
5
- import {
6
- MigrationOptions,
7
- MigrationValidationResult,
8
- ValidationError,
9
- ValidationWarning,
10
- IValidator
11
- } from '../types';
12
- import { OriginalsConfig } from '../../types';
13
- import { BitcoinManager } from '../../bitcoin/BitcoinManager';
14
-
15
- export class BitcoinValidator implements IValidator {
16
- constructor(
17
- private config: OriginalsConfig,
18
- private bitcoinManager: BitcoinManager
19
- ) {}
20
-
21
- async validate(options: MigrationOptions): Promise<MigrationValidationResult> {
22
- const errors: ValidationError[] = [];
23
- const warnings: ValidationWarning[] = [];
24
-
25
- try {
26
- // Only validate for btco migrations
27
- if (options.targetLayer !== 'btco') {
28
- return this.createResult(true, errors, warnings, 0, 0);
29
- }
30
-
31
- // Check if Bitcoin provider is configured
32
- const ordinalsProvider = this.config.ordinalsProvider;
33
- if (!ordinalsProvider) {
34
- errors.push({
35
- code: 'BITCOIN_PROVIDER_REQUIRED',
36
- message: 'Ordinals provider is required for btco migrations',
37
- details: { targetLayer: options.targetLayer }
38
- });
39
- return this.createResult(false, errors, warnings, 0, 0);
40
- }
41
-
42
- // Estimate Bitcoin network fees
43
- let networkFees = 0;
44
- let estimatedDuration = 600000; // 10 minutes default
45
-
46
- try {
47
- // Estimate fee for a typical inscription (assume 1KB data)
48
- const estimatedSize = 1024; // bytes
49
- const feeRate = options.feeRate || 10; // sats/vB
50
- networkFees = estimatedSize * feeRate;
51
-
52
- // Check if fee is within reasonable limits
53
- if (feeRate > 1000) {
54
- warnings.push({
55
- code: 'HIGH_FEE_RATE',
56
- message: `Fee rate of ${feeRate} sat/vB is unusually high`,
57
- field: 'feeRate'
58
- });
59
- }
60
- } catch (error) {
61
- warnings.push({
62
- code: 'FEE_ESTIMATION_FAILED',
63
- message: `Could not estimate Bitcoin network fees: ${error instanceof Error ? error.message : String(error)}`
64
- });
65
- networkFees = 10240; // Default fallback: ~1KB at 10 sat/vB
66
- }
67
-
68
- // Validate network (should be signet for testnet)
69
- if (this.config.network !== 'mainnet' && this.config.network !== 'signet') {
70
- warnings.push({
71
- code: 'NETWORK_MISMATCH',
72
- message: `Network '${this.config.network}' will use signet for Bitcoin anchoring`
73
- });
74
- }
75
-
76
- return this.createResult(true, errors, warnings, networkFees, estimatedDuration);
77
- } catch (error) {
78
- errors.push({
79
- code: 'BITCOIN_VALIDATION_ERROR',
80
- message: 'Error validating Bitcoin requirements',
81
- details: { error: error instanceof Error ? error.message : String(error) }
82
- });
83
- return this.createResult(false, errors, warnings, 0, 0);
84
- }
85
- }
86
-
87
- private createResult(
88
- valid: boolean,
89
- errors: ValidationError[],
90
- warnings: ValidationWarning[],
91
- networkFees: number,
92
- duration: number
93
- ): MigrationValidationResult {
94
- return {
95
- valid,
96
- errors,
97
- warnings,
98
- estimatedCost: {
99
- storageCost: 0,
100
- networkFees,
101
- totalCost: networkFees,
102
- currency: 'sats'
103
- },
104
- estimatedDuration: duration
105
- };
106
- }
107
- }
@@ -1,62 +0,0 @@
1
- /**
2
- * CredentialValidator - Validates credential compatibility for migration
3
- */
4
-
5
- import {
6
- MigrationOptions,
7
- MigrationValidationResult,
8
- ValidationError,
9
- ValidationWarning,
10
- IValidator
11
- } from '../types';
12
- import { OriginalsConfig } from '../../types';
13
- import { CredentialManager } from '../../vc/CredentialManager';
14
-
15
- export class CredentialValidator implements IValidator {
16
- constructor(
17
- private config: OriginalsConfig,
18
- private credentialManager: CredentialManager
19
- ) {}
20
-
21
- async validate(options: MigrationOptions): Promise<MigrationValidationResult> {
22
- const errors: ValidationError[] = [];
23
- const warnings: ValidationWarning[] = [];
24
-
25
- try {
26
- // Credential validation is optional if credentialIssuance is false
27
- if (options.credentialIssuance === false) {
28
- return this.createResult(true, errors, warnings);
29
- }
30
-
31
- // All credential types are compatible with all layers
32
- // This validator primarily checks that credential issuance is possible
33
-
34
- // For now, credentials are always compatible
35
- // Future enhancements could include schema validation
36
-
37
- return this.createResult(true, errors, warnings);
38
- } catch (error) {
39
- errors.push({
40
- code: 'CREDENTIAL_VALIDATION_ERROR',
41
- message: 'Error validating credential compatibility',
42
- details: { error: error instanceof Error ? error.message : String(error) }
43
- });
44
- return this.createResult(false, errors, warnings);
45
- }
46
- }
47
-
48
- private createResult(valid: boolean, errors: ValidationError[], warnings: ValidationWarning[]): MigrationValidationResult {
49
- return {
50
- valid,
51
- errors,
52
- warnings,
53
- estimatedCost: {
54
- storageCost: 0,
55
- networkFees: 0,
56
- totalCost: 0,
57
- currency: 'sats'
58
- },
59
- estimatedDuration: 50 // Credential validation typically takes ~50ms
60
- };
61
- }
62
- }
@@ -1,151 +0,0 @@
1
- /**
2
- * DIDCompatibilityValidator - Validates DID document compatibility between layers
3
- */
4
-
5
- import {
6
- MigrationOptions,
7
- MigrationValidationResult,
8
- ValidationError,
9
- ValidationWarning,
10
- IValidator
11
- } from '../types';
12
- import { OriginalsConfig } from '../../types';
13
- import { DIDManager } from '../../did/DIDManager';
14
-
15
- export class DIDCompatibilityValidator implements IValidator {
16
- constructor(
17
- private config: OriginalsConfig,
18
- private didManager: DIDManager
19
- ) {}
20
-
21
- async validate(options: MigrationOptions): Promise<MigrationValidationResult> {
22
- const errors: ValidationError[] = [];
23
- const warnings: ValidationWarning[] = [];
24
-
25
- try {
26
- // Resolve source DID
27
- const sourceDid = await this.didManager.resolveDID(options.sourceDid);
28
- if (!sourceDid) {
29
- errors.push({
30
- code: 'SOURCE_DID_NOT_FOUND',
31
- message: `Could not resolve source DID: ${options.sourceDid}`,
32
- field: 'sourceDid'
33
- });
34
- return this.createResult(false, errors, warnings);
35
- }
36
-
37
- // Extract source layer from DID
38
- const sourceLayer = this.extractLayer(options.sourceDid);
39
- if (!sourceLayer) {
40
- errors.push({
41
- code: 'INVALID_SOURCE_DID_FORMAT',
42
- message: 'Source DID has unsupported format',
43
- field: 'sourceDid',
44
- details: { did: options.sourceDid }
45
- });
46
- return this.createResult(false, errors, warnings);
47
- }
48
-
49
- // Validate migration path
50
- const pathErrors = this.validateMigrationPath(sourceLayer, options.targetLayer);
51
- errors.push(...pathErrors);
52
-
53
- if (errors.length > 0) {
54
- return this.createResult(false, errors, warnings);
55
- }
56
-
57
- // Validate verification methods compatibility
58
- if (sourceDid.verificationMethod && Array.isArray(sourceDid.verificationMethod)) {
59
- for (const vm of sourceDid.verificationMethod) {
60
- if (!this.isVerificationMethodCompatible(vm, options.targetLayer)) {
61
- warnings.push({
62
- code: 'VERIFICATION_METHOD_INCOMPATIBLE',
63
- message: `Verification method ${vm.id} may not be compatible with ${options.targetLayer}`,
64
- field: 'verificationMethod'
65
- });
66
- }
67
- }
68
- }
69
-
70
- // Validate service endpoints
71
- if (sourceDid.service && Array.isArray(sourceDid.service)) {
72
- if (options.targetLayer === 'peer' && sourceDid.service.length > 0) {
73
- warnings.push({
74
- code: 'SERVICE_ENDPOINTS_ON_PEER',
75
- message: 'Service endpoints on peer DIDs may have limited discoverability'
76
- });
77
- }
78
- }
79
-
80
- return this.createResult(true, errors, warnings);
81
- } catch (error) {
82
- errors.push({
83
- code: 'DID_VALIDATION_ERROR',
84
- message: 'Error validating DID compatibility',
85
- details: { error: error instanceof Error ? error.message : String(error) }
86
- });
87
- return this.createResult(false, errors, warnings);
88
- }
89
- }
90
-
91
- private extractLayer(did: string): string | null {
92
- if (did.startsWith('did:peer:')) return 'peer';
93
- if (did.startsWith('did:webvh:')) return 'webvh';
94
- if (did.startsWith('did:btco:')) return 'btco';
95
- return null;
96
- }
97
-
98
- private validateMigrationPath(sourceLayer: string, targetLayer: string): ValidationError[] {
99
- const errors: ValidationError[] = [];
100
-
101
- // Check for invalid reverse migrations
102
- const layerOrder = { peer: 0, webvh: 1, btco: 2 };
103
- const sourceOrder = layerOrder[sourceLayer as keyof typeof layerOrder];
104
- const targetOrder = layerOrder[targetLayer as keyof typeof layerOrder];
105
-
106
- if (sourceOrder === undefined || targetOrder === undefined) {
107
- errors.push({
108
- code: 'INVALID_LAYER',
109
- message: 'Invalid source or target layer',
110
- details: { sourceLayer, targetLayer }
111
- });
112
- return errors;
113
- }
114
-
115
- if (sourceOrder >= targetOrder) {
116
- errors.push({
117
- code: 'INVALID_MIGRATION_PATH',
118
- message: `Cannot migrate from ${sourceLayer} to ${targetLayer}. Migrations must move forward through layers (peer → webvh → btco)`,
119
- details: { sourceLayer, targetLayer }
120
- });
121
- }
122
-
123
- return errors;
124
- }
125
-
126
- private isVerificationMethodCompatible(vm: any, targetLayer: string): boolean {
127
- // All verification method types are compatible with all layers
128
- // This is a placeholder for more sophisticated compatibility checks
129
- if (!vm.type) return false;
130
-
131
- // Common types that are widely supported
132
- const supportedTypes = ['Multikey', 'Ed25519VerificationKey2020', 'EcdsaSecp256k1VerificationKey2019'];
133
-
134
- return supportedTypes.includes(vm.type);
135
- }
136
-
137
- private createResult(valid: boolean, errors: ValidationError[], warnings: ValidationWarning[]): MigrationValidationResult {
138
- return {
139
- valid,
140
- errors,
141
- warnings,
142
- estimatedCost: {
143
- storageCost: 0,
144
- networkFees: 0,
145
- totalCost: 0,
146
- currency: 'sats'
147
- },
148
- estimatedDuration: 100 // DID validation typically takes ~100ms
149
- };
150
- }
151
- }