@originals/sdk 1.2.0 → 1.4.3

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 (401) hide show
  1. package/package.json +4 -1
  2. package/.eslintrc.json +0 -33
  3. package/.turbo/turbo-build.log +0 -1
  4. package/dist/adapters/FeeOracleMock.d.ts +0 -6
  5. package/dist/adapters/FeeOracleMock.js +0 -8
  6. package/dist/adapters/index.d.ts +0 -4
  7. package/dist/adapters/index.js +0 -4
  8. package/dist/adapters/providers/OrdHttpProvider.d.ts +0 -56
  9. package/dist/adapters/providers/OrdHttpProvider.js +0 -110
  10. package/dist/adapters/providers/OrdMockProvider.d.ts +0 -70
  11. package/dist/adapters/providers/OrdMockProvider.js +0 -75
  12. package/dist/adapters/types.d.ts +0 -71
  13. package/dist/adapters/types.js +0 -1
  14. package/dist/bitcoin/BitcoinManager.d.ts +0 -15
  15. package/dist/bitcoin/BitcoinManager.js +0 -262
  16. package/dist/bitcoin/BroadcastClient.d.ts +0 -30
  17. package/dist/bitcoin/BroadcastClient.js +0 -35
  18. package/dist/bitcoin/OrdinalsClient.d.ts +0 -21
  19. package/dist/bitcoin/OrdinalsClient.js +0 -105
  20. package/dist/bitcoin/PSBTBuilder.d.ts +0 -24
  21. package/dist/bitcoin/PSBTBuilder.js +0 -80
  22. package/dist/bitcoin/fee-calculation.d.ts +0 -14
  23. package/dist/bitcoin/fee-calculation.js +0 -31
  24. package/dist/bitcoin/providers/OrdNodeProvider.d.ts +0 -38
  25. package/dist/bitcoin/providers/OrdNodeProvider.js +0 -67
  26. package/dist/bitcoin/providers/OrdinalsProvider.d.ts +0 -33
  27. package/dist/bitcoin/providers/OrdinalsProvider.js +0 -50
  28. package/dist/bitcoin/providers/types.d.ts +0 -63
  29. package/dist/bitcoin/providers/types.js +0 -1
  30. package/dist/bitcoin/transactions/commit.d.ts +0 -89
  31. package/dist/bitcoin/transactions/commit.js +0 -311
  32. package/dist/bitcoin/transactions/index.d.ts +0 -7
  33. package/dist/bitcoin/transactions/index.js +0 -8
  34. package/dist/bitcoin/transfer.d.ts +0 -9
  35. package/dist/bitcoin/transfer.js +0 -26
  36. package/dist/bitcoin/utxo-selection.d.ts +0 -78
  37. package/dist/bitcoin/utxo-selection.js +0 -237
  38. package/dist/bitcoin/utxo.d.ts +0 -26
  39. package/dist/bitcoin/utxo.js +0 -78
  40. package/dist/contexts/credentials-v1.json +0 -195
  41. package/dist/contexts/credentials-v2-examples.json +0 -5
  42. package/dist/contexts/credentials-v2.json +0 -301
  43. package/dist/contexts/credentials.json +0 -195
  44. package/dist/contexts/data-integrity-v2.json +0 -81
  45. package/dist/contexts/dids.json +0 -57
  46. package/dist/contexts/ed255192020.json +0 -93
  47. package/dist/contexts/ordinals-plus.json +0 -23
  48. package/dist/contexts/originals.json +0 -22
  49. package/dist/core/OriginalsSDK.d.ts +0 -158
  50. package/dist/core/OriginalsSDK.js +0 -274
  51. package/dist/crypto/Multikey.d.ts +0 -30
  52. package/dist/crypto/Multikey.js +0 -149
  53. package/dist/crypto/Signer.d.ts +0 -21
  54. package/dist/crypto/Signer.js +0 -196
  55. package/dist/crypto/noble-init.d.ts +0 -18
  56. package/dist/crypto/noble-init.js +0 -106
  57. package/dist/did/BtcoDidResolver.d.ts +0 -57
  58. package/dist/did/BtcoDidResolver.js +0 -166
  59. package/dist/did/DIDManager.d.ts +0 -101
  60. package/dist/did/DIDManager.js +0 -493
  61. package/dist/did/Ed25519Verifier.d.ts +0 -30
  62. package/dist/did/Ed25519Verifier.js +0 -59
  63. package/dist/did/KeyManager.d.ts +0 -17
  64. package/dist/did/KeyManager.js +0 -207
  65. package/dist/did/WebVHManager.d.ts +0 -100
  66. package/dist/did/WebVHManager.js +0 -304
  67. package/dist/did/createBtcoDidDocument.d.ts +0 -10
  68. package/dist/did/createBtcoDidDocument.js +0 -42
  69. package/dist/did/providers/OrdinalsClientProviderAdapter.d.ts +0 -23
  70. package/dist/did/providers/OrdinalsClientProviderAdapter.js +0 -51
  71. package/dist/events/EventEmitter.d.ts +0 -115
  72. package/dist/events/EventEmitter.js +0 -198
  73. package/dist/events/index.d.ts +0 -7
  74. package/dist/events/index.js +0 -6
  75. package/dist/events/types.d.ts +0 -286
  76. package/dist/events/types.js +0 -9
  77. package/dist/examples/basic-usage.d.ts +0 -3
  78. package/dist/examples/basic-usage.js +0 -62
  79. package/dist/examples/run.d.ts +0 -1
  80. package/dist/examples/run.js +0 -4
  81. package/dist/index.d.ts +0 -39
  82. package/dist/index.js +0 -47
  83. package/dist/lifecycle/BatchOperations.d.ts +0 -147
  84. package/dist/lifecycle/BatchOperations.js +0 -251
  85. package/dist/lifecycle/LifecycleManager.d.ts +0 -116
  86. package/dist/lifecycle/LifecycleManager.js +0 -971
  87. package/dist/lifecycle/OriginalsAsset.d.ts +0 -164
  88. package/dist/lifecycle/OriginalsAsset.js +0 -380
  89. package/dist/lifecycle/ProvenanceQuery.d.ts +0 -126
  90. package/dist/lifecycle/ProvenanceQuery.js +0 -220
  91. package/dist/lifecycle/ResourceVersioning.d.ts +0 -73
  92. package/dist/lifecycle/ResourceVersioning.js +0 -127
  93. package/dist/migration/MigrationManager.d.ts +0 -86
  94. package/dist/migration/MigrationManager.js +0 -412
  95. package/dist/migration/audit/AuditLogger.d.ts +0 -51
  96. package/dist/migration/audit/AuditLogger.js +0 -156
  97. package/dist/migration/checkpoint/CheckpointManager.d.ts +0 -31
  98. package/dist/migration/checkpoint/CheckpointManager.js +0 -96
  99. package/dist/migration/checkpoint/CheckpointStorage.d.ts +0 -26
  100. package/dist/migration/checkpoint/CheckpointStorage.js +0 -89
  101. package/dist/migration/index.d.ts +0 -22
  102. package/dist/migration/index.js +0 -27
  103. package/dist/migration/operations/BaseMigration.d.ts +0 -48
  104. package/dist/migration/operations/BaseMigration.js +0 -83
  105. package/dist/migration/operations/PeerToBtcoMigration.d.ts +0 -25
  106. package/dist/migration/operations/PeerToBtcoMigration.js +0 -67
  107. package/dist/migration/operations/PeerToWebvhMigration.d.ts +0 -19
  108. package/dist/migration/operations/PeerToWebvhMigration.js +0 -46
  109. package/dist/migration/operations/WebvhToBtcoMigration.d.ts +0 -25
  110. package/dist/migration/operations/WebvhToBtcoMigration.js +0 -67
  111. package/dist/migration/rollback/RollbackManager.d.ts +0 -29
  112. package/dist/migration/rollback/RollbackManager.js +0 -146
  113. package/dist/migration/state/StateMachine.d.ts +0 -25
  114. package/dist/migration/state/StateMachine.js +0 -76
  115. package/dist/migration/state/StateTracker.d.ts +0 -36
  116. package/dist/migration/state/StateTracker.js +0 -123
  117. package/dist/migration/types.d.ts +0 -306
  118. package/dist/migration/types.js +0 -33
  119. package/dist/migration/validation/BitcoinValidator.d.ts +0 -13
  120. package/dist/migration/validation/BitcoinValidator.js +0 -83
  121. package/dist/migration/validation/CredentialValidator.d.ts +0 -13
  122. package/dist/migration/validation/CredentialValidator.js +0 -46
  123. package/dist/migration/validation/DIDCompatibilityValidator.d.ts +0 -16
  124. package/dist/migration/validation/DIDCompatibilityValidator.js +0 -127
  125. package/dist/migration/validation/LifecycleValidator.d.ts +0 -10
  126. package/dist/migration/validation/LifecycleValidator.js +0 -52
  127. package/dist/migration/validation/StorageValidator.d.ts +0 -10
  128. package/dist/migration/validation/StorageValidator.js +0 -65
  129. package/dist/migration/validation/ValidationPipeline.d.ts +0 -29
  130. package/dist/migration/validation/ValidationPipeline.js +0 -180
  131. package/dist/storage/LocalStorageAdapter.d.ts +0 -11
  132. package/dist/storage/LocalStorageAdapter.js +0 -53
  133. package/dist/storage/MemoryStorageAdapter.d.ts +0 -6
  134. package/dist/storage/MemoryStorageAdapter.js +0 -21
  135. package/dist/storage/StorageAdapter.d.ts +0 -16
  136. package/dist/storage/StorageAdapter.js +0 -1
  137. package/dist/storage/index.d.ts +0 -2
  138. package/dist/storage/index.js +0 -2
  139. package/dist/types/bitcoin.d.ts +0 -84
  140. package/dist/types/bitcoin.js +0 -1
  141. package/dist/types/common.d.ts +0 -82
  142. package/dist/types/common.js +0 -1
  143. package/dist/types/credentials.d.ts +0 -75
  144. package/dist/types/credentials.js +0 -1
  145. package/dist/types/did.d.ts +0 -26
  146. package/dist/types/did.js +0 -1
  147. package/dist/types/index.d.ts +0 -5
  148. package/dist/types/index.js +0 -5
  149. package/dist/types/network.d.ts +0 -78
  150. package/dist/types/network.js +0 -145
  151. package/dist/utils/EventLogger.d.ts +0 -71
  152. package/dist/utils/EventLogger.js +0 -232
  153. package/dist/utils/Logger.d.ts +0 -106
  154. package/dist/utils/Logger.js +0 -257
  155. package/dist/utils/MetricsCollector.d.ts +0 -110
  156. package/dist/utils/MetricsCollector.js +0 -264
  157. package/dist/utils/bitcoin-address.d.ts +0 -38
  158. package/dist/utils/bitcoin-address.js +0 -113
  159. package/dist/utils/cbor.d.ts +0 -2
  160. package/dist/utils/cbor.js +0 -9
  161. package/dist/utils/encoding.d.ts +0 -37
  162. package/dist/utils/encoding.js +0 -120
  163. package/dist/utils/hash.d.ts +0 -1
  164. package/dist/utils/hash.js +0 -5
  165. package/dist/utils/retry.d.ts +0 -10
  166. package/dist/utils/retry.js +0 -35
  167. package/dist/utils/satoshi-validation.d.ts +0 -60
  168. package/dist/utils/satoshi-validation.js +0 -156
  169. package/dist/utils/serialization.d.ts +0 -14
  170. package/dist/utils/serialization.js +0 -76
  171. package/dist/utils/telemetry.d.ts +0 -17
  172. package/dist/utils/telemetry.js +0 -24
  173. package/dist/utils/validation.d.ts +0 -5
  174. package/dist/utils/validation.js +0 -98
  175. package/dist/vc/CredentialManager.d.ts +0 -22
  176. package/dist/vc/CredentialManager.js +0 -227
  177. package/dist/vc/Issuer.d.ts +0 -27
  178. package/dist/vc/Issuer.js +0 -70
  179. package/dist/vc/Verifier.d.ts +0 -16
  180. package/dist/vc/Verifier.js +0 -50
  181. package/dist/vc/cryptosuites/bbs.d.ts +0 -44
  182. package/dist/vc/cryptosuites/bbs.js +0 -213
  183. package/dist/vc/cryptosuites/bbsSimple.d.ts +0 -9
  184. package/dist/vc/cryptosuites/bbsSimple.js +0 -12
  185. package/dist/vc/cryptosuites/eddsa.d.ts +0 -30
  186. package/dist/vc/cryptosuites/eddsa.js +0 -81
  187. package/dist/vc/documentLoader.d.ts +0 -16
  188. package/dist/vc/documentLoader.js +0 -59
  189. package/dist/vc/proofs/data-integrity.d.ts +0 -21
  190. package/dist/vc/proofs/data-integrity.js +0 -15
  191. package/dist/vc/utils/jsonld.d.ts +0 -2
  192. package/dist/vc/utils/jsonld.js +0 -15
  193. package/src/adapters/FeeOracleMock.ts +0 -9
  194. package/src/adapters/index.ts +0 -5
  195. package/src/adapters/providers/OrdHttpProvider.ts +0 -126
  196. package/src/adapters/providers/OrdMockProvider.ts +0 -101
  197. package/src/adapters/types.ts +0 -66
  198. package/src/bitcoin/BitcoinManager.ts +0 -330
  199. package/src/bitcoin/BroadcastClient.ts +0 -54
  200. package/src/bitcoin/OrdinalsClient.ts +0 -119
  201. package/src/bitcoin/PSBTBuilder.ts +0 -106
  202. package/src/bitcoin/fee-calculation.ts +0 -38
  203. package/src/bitcoin/providers/OrdNodeProvider.ts +0 -92
  204. package/src/bitcoin/providers/OrdinalsProvider.ts +0 -56
  205. package/src/bitcoin/providers/types.ts +0 -59
  206. package/src/bitcoin/transactions/commit.ts +0 -465
  207. package/src/bitcoin/transactions/index.ts +0 -13
  208. package/src/bitcoin/transfer.ts +0 -43
  209. package/src/bitcoin/utxo-selection.ts +0 -322
  210. package/src/bitcoin/utxo.ts +0 -113
  211. package/src/contexts/credentials-v1.json +0 -237
  212. package/src/contexts/credentials-v2-examples.json +0 -5
  213. package/src/contexts/credentials-v2.json +0 -340
  214. package/src/contexts/credentials.json +0 -237
  215. package/src/contexts/data-integrity-v2.json +0 -81
  216. package/src/contexts/dids.json +0 -58
  217. package/src/contexts/ed255192020.json +0 -93
  218. package/src/contexts/ordinals-plus.json +0 -23
  219. package/src/contexts/originals.json +0 -22
  220. package/src/core/OriginalsSDK.ts +0 -416
  221. package/src/crypto/Multikey.ts +0 -194
  222. package/src/crypto/Signer.ts +0 -254
  223. package/src/crypto/noble-init.ts +0 -121
  224. package/src/did/BtcoDidResolver.ts +0 -227
  225. package/src/did/DIDManager.ts +0 -694
  226. package/src/did/Ed25519Verifier.ts +0 -68
  227. package/src/did/KeyManager.ts +0 -236
  228. package/src/did/WebVHManager.ts +0 -489
  229. package/src/did/createBtcoDidDocument.ts +0 -59
  230. package/src/did/providers/OrdinalsClientProviderAdapter.ts +0 -68
  231. package/src/events/EventEmitter.ts +0 -222
  232. package/src/events/index.ts +0 -19
  233. package/src/events/types.ts +0 -331
  234. package/src/examples/basic-usage.ts +0 -78
  235. package/src/examples/run.ts +0 -5
  236. package/src/index.ts +0 -84
  237. package/src/lifecycle/BatchOperations.ts +0 -373
  238. package/src/lifecycle/LifecycleManager.ts +0 -1218
  239. package/src/lifecycle/OriginalsAsset.ts +0 -524
  240. package/src/lifecycle/ProvenanceQuery.ts +0 -280
  241. package/src/lifecycle/ResourceVersioning.ts +0 -163
  242. package/src/migration/MigrationManager.ts +0 -527
  243. package/src/migration/audit/AuditLogger.ts +0 -176
  244. package/src/migration/checkpoint/CheckpointManager.ts +0 -112
  245. package/src/migration/checkpoint/CheckpointStorage.ts +0 -101
  246. package/src/migration/index.ts +0 -33
  247. package/src/migration/operations/BaseMigration.ts +0 -126
  248. package/src/migration/operations/PeerToBtcoMigration.ts +0 -105
  249. package/src/migration/operations/PeerToWebvhMigration.ts +0 -62
  250. package/src/migration/operations/WebvhToBtcoMigration.ts +0 -105
  251. package/src/migration/rollback/RollbackManager.ts +0 -170
  252. package/src/migration/state/StateMachine.ts +0 -92
  253. package/src/migration/state/StateTracker.ts +0 -156
  254. package/src/migration/types.ts +0 -344
  255. package/src/migration/validation/BitcoinValidator.ts +0 -107
  256. package/src/migration/validation/CredentialValidator.ts +0 -62
  257. package/src/migration/validation/DIDCompatibilityValidator.ts +0 -151
  258. package/src/migration/validation/LifecycleValidator.ts +0 -64
  259. package/src/migration/validation/StorageValidator.ts +0 -79
  260. package/src/migration/validation/ValidationPipeline.ts +0 -213
  261. package/src/storage/LocalStorageAdapter.ts +0 -61
  262. package/src/storage/MemoryStorageAdapter.ts +0 -29
  263. package/src/storage/StorageAdapter.ts +0 -25
  264. package/src/storage/index.ts +0 -3
  265. package/src/types/bitcoin.ts +0 -98
  266. package/src/types/common.ts +0 -92
  267. package/src/types/credentials.ts +0 -88
  268. package/src/types/did.ts +0 -31
  269. package/src/types/external-shims.d.ts +0 -53
  270. package/src/types/index.ts +0 -7
  271. package/src/types/network.ts +0 -175
  272. package/src/utils/EventLogger.ts +0 -298
  273. package/src/utils/Logger.ts +0 -322
  274. package/src/utils/MetricsCollector.ts +0 -358
  275. package/src/utils/bitcoin-address.ts +0 -130
  276. package/src/utils/cbor.ts +0 -12
  277. package/src/utils/encoding.ts +0 -127
  278. package/src/utils/hash.ts +0 -6
  279. package/src/utils/retry.ts +0 -46
  280. package/src/utils/satoshi-validation.ts +0 -196
  281. package/src/utils/serialization.ts +0 -96
  282. package/src/utils/telemetry.ts +0 -40
  283. package/src/utils/validation.ts +0 -119
  284. package/src/vc/CredentialManager.ts +0 -273
  285. package/src/vc/Issuer.ts +0 -100
  286. package/src/vc/Verifier.ts +0 -47
  287. package/src/vc/cryptosuites/bbs.ts +0 -253
  288. package/src/vc/cryptosuites/bbsSimple.ts +0 -21
  289. package/src/vc/cryptosuites/eddsa.ts +0 -99
  290. package/src/vc/documentLoader.ts +0 -67
  291. package/src/vc/proofs/data-integrity.ts +0 -33
  292. package/src/vc/utils/jsonld.ts +0 -18
  293. package/test/logs/did_webvh_QmNTn9Kkp8dQ75WrF9xqJ2kuDp9QhKc3aPiERRMj8XoTBN_example_com.jsonl +0 -1
  294. package/test/logs/did_webvh_QmNu4MNr8Lr5txx5gYNhuhZDchXsZEu3hJXKYuphpWTPDp_example_com_users_etc_passwd.jsonl +0 -1
  295. package/test/logs/did_webvh_QmR9MrGZACzjKETA8SBRNCKG11HxU85c4bVR2qN5eDCfsD_example_com.jsonl +0 -1
  296. package/test/logs/did_webvh_QmUc5suaqRM2P4nrXxZwqYMfqzhdMqjuL7oJaJbEpCQVCd_example_com_users_etc_passwd.jsonl +0 -1
  297. package/test/logs/did_webvh_QmUkiB2RCV2VZ1RTXsCebWN25Eiy9TLvpzDWAJNjhgvB4X_example_com_etc_passwd.jsonl +0 -1
  298. package/test/logs/did_webvh_QmUoRTe8UMwpAQXZSAW7pjAgZK1tq2X3C6Kfxq3UXGcaGy_example_com_secret.jsonl +0 -1
  299. package/test/logs/did_webvh_QmWWot3chx1t6KwTmcE5i2FeDZ5JMkQw3qXycsKDVmJ9Be_example_com_users_alice.jsonl +0 -1
  300. package/test/logs/did_webvh_QmWvVgALL5kjZdpgR7KZay7J8UiiUr834kkRmWeFAxjAuC_example_com_users_etc_passwd.jsonl +0 -1
  301. package/test/logs/did_webvh_QmWwaRQHUZAFcKihFC6xR6tRTTrQhHPTku6azf1egWbpy1_example_com_users_alice.jsonl +0 -1
  302. package/test/logs/did_webvh_QmXJLtkz23r7AozbtXsZMKWnVU6rd38CkVtjdWuATU3Yp6_example_com_users_alice123_profile.jsonl +0 -1
  303. package/test/logs/did_webvh_QmYsce448po14oDE1wXbyaP6wY9HQgHSKLwdezn1k577SF_example_com_my_org_user_name_test_123.jsonl +0 -1
  304. package/test/logs/did_webvh_QmZBeNzzqajxdfwcDUPZ4P8C5YSXyRztrAwmPiKuKUxmAK_example_com.jsonl +0 -1
  305. package/test/logs/did_webvh_QmZhJsqxizwVbRtqCUkmE6XQunSxtxMt3gbTYadVBNAaEq_example_com.jsonl +0 -1
  306. package/test/logs/did_webvh_QmZk7NHU2D57RzzbMq4tWW9gBa9AqtVTWfiRM6RFdwGVj2_example_com.jsonl +0 -1
  307. package/test/logs/did_webvh_QmZshSXp9w8ovH62zGGBS1b5pGGPsuYiu1VQ935sga2hWF_example_com_level1_level2.jsonl +0 -1
  308. package/test/logs/did_webvh_QmbWAmw7HQL7vKJyCsctZihXf1rmT4sGvggKCPKWcUWjw1_example_com.jsonl +0 -1
  309. package/test/logs/did_webvh_QmbdLUMbYs3juR39TLB6hhrFWLcNg45ybUzeBJCS1MhCh1_example_com_C_Windows_System32.jsonl +0 -1
  310. package/test/logs/did_webvh_QmcaQ1Ma4gkSbae85aCm8Mv4rvdT2Sb2RR3JzYwrm5XBq8_example_com_etc_passwd.jsonl +0 -1
  311. package/test/logs/did_webvh_QmcbA7WQhsBqZSoDpKJHjV8Q5o53h8vmgJhQfo6rqTY5ho_example_com.jsonl +0 -1
  312. package/test/logs/did_webvh_Qmdy8uWr2gkUJrXsThynAug3DASTWwb3onEj89LKmMGZYB_example_com.jsonl +0 -1
  313. package/tests/__mocks__/bbs-signatures.js +0 -17
  314. package/tests/__mocks__/mf-base58.js +0 -24
  315. package/tests/e2e/README.md +0 -97
  316. package/tests/e2e/example.spec.ts +0 -78
  317. package/tests/fixtures/did-documents.ts +0 -247
  318. package/tests/index.test.ts +0 -21
  319. package/tests/integration/BatchOperations.test.ts +0 -531
  320. package/tests/integration/CompleteLifecycle.e2e.test.ts +0 -735
  321. package/tests/integration/CredentialManager.test.ts +0 -42
  322. package/tests/integration/DIDManager.test.ts +0 -41
  323. package/tests/integration/DidPeerToWebVhFlow.test.ts +0 -351
  324. package/tests/integration/Events.test.ts +0 -435
  325. package/tests/integration/Lifecycle.transfer.btco.integration.test.ts +0 -25
  326. package/tests/integration/LifecycleManager.test.ts +0 -21
  327. package/tests/integration/MultikeyFlow.test.ts +0 -52
  328. package/tests/integration/TelemetryIntegration.test.ts +0 -395
  329. package/tests/integration/WebVhPublish.test.ts +0 -48
  330. package/tests/integration/migration/peer-to-webvh.test.ts +0 -172
  331. package/tests/manual/test-commit-creation.ts +0 -323
  332. package/tests/mocks/MockKeyStore.ts +0 -38
  333. package/tests/mocks/adapters/MemoryStorageAdapter.ts +0 -24
  334. package/tests/mocks/adapters/MockFeeOracle.ts +0 -11
  335. package/tests/mocks/adapters/MockOrdinalsProvider.ts +0 -76
  336. package/tests/mocks/adapters/OrdMockProvider.test.ts +0 -176
  337. package/tests/mocks/adapters/index.ts +0 -6
  338. package/tests/performance/BatchOperations.perf.test.ts +0 -403
  339. package/tests/performance/logging.perf.test.ts +0 -336
  340. package/tests/sdk.test.ts +0 -43
  341. package/tests/security/bitcoin-penetration-tests.test.ts +0 -622
  342. package/tests/setup.bun.ts +0 -69
  343. package/tests/setup.jest.ts +0 -23
  344. package/tests/stress/batch-operations-stress.test.ts +0 -571
  345. package/tests/unit/adapters/FeeOracleMock.test.ts +0 -40
  346. package/tests/unit/bitcoin/BitcoinManager.test.ts +0 -293
  347. package/tests/unit/bitcoin/BroadcastClient.test.ts +0 -52
  348. package/tests/unit/bitcoin/OrdNodeProvider.test.ts +0 -53
  349. package/tests/unit/bitcoin/OrdinalsClient.test.ts +0 -381
  350. package/tests/unit/bitcoin/OrdinalsClientProvider.test.ts +0 -102
  351. package/tests/unit/bitcoin/PSBTBuilder.test.ts +0 -84
  352. package/tests/unit/bitcoin/fee-calculation.test.ts +0 -261
  353. package/tests/unit/bitcoin/transactions/commit.test.ts +0 -649
  354. package/tests/unit/bitcoin/transfer.test.ts +0 -31
  355. package/tests/unit/bitcoin/utxo-selection-new.test.ts +0 -502
  356. package/tests/unit/bitcoin/utxo.more.test.ts +0 -39
  357. package/tests/unit/bitcoin/utxo.selection.test.ts +0 -38
  358. package/tests/unit/core/OriginalsSDK.test.ts +0 -152
  359. package/tests/unit/crypto/Multikey.test.ts +0 -206
  360. package/tests/unit/crypto/Signer.test.ts +0 -408
  361. package/tests/unit/did/BtcoDidResolver.test.ts +0 -611
  362. package/tests/unit/did/DIDManager.more.test.ts +0 -43
  363. package/tests/unit/did/DIDManager.test.ts +0 -185
  364. package/tests/unit/did/Ed25519Verifier.test.ts +0 -160
  365. package/tests/unit/did/KeyManager.test.ts +0 -452
  366. package/tests/unit/did/OrdinalsClientProviderAdapter.test.ts +0 -45
  367. package/tests/unit/did/WebVHManager.test.ts +0 -435
  368. package/tests/unit/did/createBtcoDidDocument.test.ts +0 -67
  369. package/tests/unit/did/providers/OrdinalsClientProviderAdapter.test.ts +0 -159
  370. package/tests/unit/events/EventEmitter.test.ts +0 -407
  371. package/tests/unit/lifecycle/BatchOperations.test.ts +0 -527
  372. package/tests/unit/lifecycle/LifecycleManager.keymanagement.test.ts +0 -312
  373. package/tests/unit/lifecycle/LifecycleManager.prov.test.ts +0 -18
  374. package/tests/unit/lifecycle/LifecycleManager.test.ts +0 -213
  375. package/tests/unit/lifecycle/LifecycleManager.transfer.unit.test.ts +0 -30
  376. package/tests/unit/lifecycle/OriginalsAsset.test.ts +0 -176
  377. package/tests/unit/lifecycle/ProvenanceQuery.test.ts +0 -577
  378. package/tests/unit/lifecycle/ResourceVersioning.test.ts +0 -651
  379. package/tests/unit/storage/MemoryStorageAdapter.test.ts +0 -93
  380. package/tests/unit/types/network.test.ts +0 -255
  381. package/tests/unit/utils/EventIntegration.test.ts +0 -384
  382. package/tests/unit/utils/Logger.test.ts +0 -473
  383. package/tests/unit/utils/MetricsCollector.test.ts +0 -358
  384. package/tests/unit/utils/bitcoin-address.test.ts +0 -250
  385. package/tests/unit/utils/cbor.test.ts +0 -35
  386. package/tests/unit/utils/encoding.test.ts +0 -318
  387. package/tests/unit/utils/hash.test.ts +0 -12
  388. package/tests/unit/utils/retry.test.ts +0 -100
  389. package/tests/unit/utils/satoshi-validation.test.ts +0 -354
  390. package/tests/unit/utils/serialization.test.ts +0 -124
  391. package/tests/unit/utils/telemetry.test.ts +0 -52
  392. package/tests/unit/utils/validation.test.ts +0 -141
  393. package/tests/unit/vc/CredentialManager.test.ts +0 -487
  394. package/tests/unit/vc/Issuer.test.ts +0 -107
  395. package/tests/unit/vc/Verifier.test.ts +0 -525
  396. package/tests/unit/vc/bbs.test.ts +0 -282
  397. package/tests/unit/vc/cryptosuites/eddsa.test.ts +0 -398
  398. package/tests/unit/vc/documentLoader.test.ts +0 -121
  399. package/tests/unit/vc/proofs/data-integrity.test.ts +0 -24
  400. package/tsconfig.json +0 -31
  401. package/tsconfig.test.json +0 -15
@@ -1,323 +0,0 @@
1
- /**
2
- * Manual Test: Commit Transaction Creation
3
- *
4
- * This script demonstrates and verifies commit transaction creation without broadcasting.
5
- * It uses test data (NOT real keys) to ensure the commit transaction logic works correctly.
6
- *
7
- * Expected Output:
8
- * - Valid P2TR commit address
9
- * - Valid PSBT with correct inputs and outputs
10
- * - Reveal keypair for subsequent reveal transaction
11
- * - Inscription script data (script, control block, leaf version)
12
- * - Fee calculation matching expected values
13
- *
14
- * Usage:
15
- * ```bash
16
- * bun run tests/manual/test-commit-creation.ts
17
- * ```
18
- *
19
- * IMPORTANT: This script does NOT broadcast transactions. It only creates and verifies
20
- * the PSBT structure for commit transactions.
21
- */
22
-
23
- import { createCommitTransaction } from '../../src/bitcoin/transactions/commit.js';
24
- import type { Utxo } from '../../src/types/bitcoin.js';
25
- import * as btc from '@scure/btc-signer';
26
-
27
- // ANSI color codes for output
28
- const colors = {
29
- reset: '\x1b[0m',
30
- bright: '\x1b[1m',
31
- green: '\x1b[32m',
32
- blue: '\x1b[34m',
33
- yellow: '\x1b[33m',
34
- red: '\x1b[31m'
35
- };
36
-
37
- function log(message: string, color = colors.reset) {
38
- console.log(`${color}${message}${colors.reset}`);
39
- }
40
-
41
- function logSection(title: string) {
42
- console.log('\n' + '='.repeat(80));
43
- log(title, colors.bright + colors.blue);
44
- console.log('='.repeat(80));
45
- }
46
-
47
- function logSuccess(message: string) {
48
- log(`✓ ${message}`, colors.green);
49
- }
50
-
51
- function logInfo(message: string) {
52
- log(`ℹ ${message}`, colors.blue);
53
- }
54
-
55
- function logWarning(message: string) {
56
- log(`⚠ ${message}`, colors.yellow);
57
- }
58
-
59
- function logError(message: string) {
60
- log(`✗ ${message}`, colors.red);
61
- }
62
-
63
- /**
64
- * Create mock UTXOs for testing (NOT real UTXOs)
65
- */
66
- function createMockUtxos(): Utxo[] {
67
- return [
68
- {
69
- txid: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
70
- vout: 0,
71
- value: 50000,
72
- scriptPubKey: '0014' + 'b'.repeat(40), // Mock P2WPKH scriptPubKey
73
- address: 'bc1qtest1234567890'
74
- },
75
- {
76
- txid: 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',
77
- vout: 1,
78
- value: 30000,
79
- scriptPubKey: '0014' + 'c'.repeat(40),
80
- address: 'bc1qtest0987654321'
81
- }
82
- ];
83
- }
84
-
85
- /**
86
- * Verify PSBT structure without decoding (basic checks)
87
- */
88
- function verifyPsbtStructure(psbt: btc.Transaction, expectedInputCount: number): boolean {
89
- try {
90
- logInfo(`PSBT Input Count: ${psbt.inputsLength}`);
91
- logInfo(`PSBT Output Count: ${psbt.outputsLength}`);
92
-
93
- if (psbt.inputsLength !== expectedInputCount) {
94
- logError(`Expected ${expectedInputCount} inputs, got ${psbt.inputsLength}`);
95
- return false;
96
- }
97
-
98
- if (psbt.outputsLength < 1) {
99
- logError(`Expected at least 1 output, got ${psbt.outputsLength}`);
100
- return false;
101
- }
102
-
103
- logSuccess('PSBT structure is valid');
104
- return true;
105
- } catch (error) {
106
- logError(`Failed to verify PSBT: ${error instanceof Error ? error.message : 'Unknown error'}`);
107
- return false;
108
- }
109
- }
110
-
111
- /**
112
- * Main test function
113
- */
114
- async function main() {
115
- logSection('Commit Transaction Creation Test');
116
-
117
- try {
118
- // Test 1: Create simple text inscription
119
- logSection('Test 1: Simple Text Inscription');
120
-
121
- const inscription1Content = Buffer.from('Hello, Ordinals!');
122
- const mockUtxos1 = createMockUtxos();
123
-
124
- logInfo('Creating commit transaction...');
125
- logInfo(`Content: "${inscription1Content.toString()}"`);
126
- logInfo(`Content Type: text/plain`);
127
- logInfo(`Available UTXOs: ${mockUtxos1.length}`);
128
- logInfo(`Total Value: ${mockUtxos1.reduce((sum, u) => sum + u.value, 0)} sats`);
129
-
130
- const result1 = await createCommitTransaction({
131
- content: inscription1Content,
132
- contentType: 'text/plain',
133
- utxos: mockUtxos1,
134
- changeAddress: 'bc1qtest_change_address_12345',
135
- feeRate: 10,
136
- network: 'mainnet'
137
- });
138
-
139
- logSuccess('Commit transaction created successfully');
140
-
141
- // Verify commit address
142
- logInfo(`Commit Address: ${result1.commitAddress}`);
143
- if (result1.commitAddress.startsWith('bc1p')) {
144
- logSuccess('Commit address is valid P2TR (bc1p...)');
145
- } else {
146
- logWarning(`Unexpected address format: ${result1.commitAddress}`);
147
- }
148
-
149
- // Verify PSBT
150
- logInfo(`PSBT Base64 Length: ${result1.commitPsbtBase64.length} chars`);
151
- logInfo(`PSBT Base64 (first 50 chars): ${result1.commitPsbtBase64.substring(0, 50)}...`);
152
-
153
- // Verify PSBT structure
154
- const psbtValid = verifyPsbtStructure(result1.commitPsbt, 1);
155
- if (!psbtValid) {
156
- throw new Error('PSBT structure validation failed');
157
- }
158
-
159
- // Verify commit amount and fees
160
- logInfo(`Commit Amount: ${result1.commitAmount} sats`);
161
- logInfo(`Commit Fee: ${result1.fees.commit} sats`);
162
-
163
- if (result1.commitAmount < 546) {
164
- logError('Commit amount is below dust limit!');
165
- } else {
166
- logSuccess('Commit amount meets dust limit');
167
- }
168
-
169
- if (result1.fees.commit <= 0) {
170
- logError('Invalid fee amount!');
171
- } else {
172
- logSuccess(`Fee calculation: ${result1.fees.commit} sats at 10 sat/vB`);
173
- }
174
-
175
- // Verify reveal keypair
176
- logInfo(`Reveal Private Key Length: ${result1.revealPrivateKey.length} chars`);
177
- logInfo(`Reveal Public Key Length: ${result1.revealPublicKey.length} chars`);
178
-
179
- if (result1.revealPrivateKey.length === 64 && result1.revealPublicKey.length === 64) {
180
- logSuccess('Reveal keypair has correct format (32 bytes each in hex)');
181
- } else {
182
- logWarning('Unexpected reveal keypair format');
183
- }
184
-
185
- // Verify inscription script
186
- logInfo(`Inscription Script Length: ${result1.inscriptionScript.script.length} bytes`);
187
- logInfo(`Control Block Length: ${result1.inscriptionScript.controlBlock.length} bytes`);
188
- logInfo(`Leaf Version: 0x${result1.inscriptionScript.leafVersion.toString(16)}`);
189
-
190
- if (result1.inscriptionScript.leafVersion === 0xc0) {
191
- logSuccess('Leaf version is correct (0xc0)');
192
- } else {
193
- logWarning(`Unexpected leaf version: 0x${result1.inscriptionScript.leafVersion.toString(16)}`);
194
- }
195
-
196
- // Verify selected UTXOs
197
- logInfo(`Selected UTXOs: ${result1.selectedUtxos.length}`);
198
- const totalSelectedValue = result1.selectedUtxos.reduce((sum, u) => sum + u.value, 0);
199
- logInfo(`Total Selected Value: ${totalSelectedValue} sats`);
200
-
201
- const expectedMinimum = result1.commitAmount + result1.fees.commit;
202
- if (totalSelectedValue >= expectedMinimum) {
203
- logSuccess(`Selected UTXOs cover commit + fees (${totalSelectedValue} >= ${expectedMinimum})`);
204
- } else {
205
- logError(`Insufficient selected value (${totalSelectedValue} < ${expectedMinimum})`);
206
- }
207
-
208
- // Test 2: JSON content with metadata
209
- logSection('Test 2: JSON Content with Metadata');
210
-
211
- const inscription2Content = Buffer.from(JSON.stringify({
212
- message: 'Test inscription',
213
- timestamp: Date.now()
214
- }));
215
-
216
- const result2 = await createCommitTransaction({
217
- content: inscription2Content,
218
- contentType: 'application/json',
219
- utxos: createMockUtxos(),
220
- changeAddress: 'bc1qtest_change_address_12345',
221
- feeRate: 20,
222
- network: 'mainnet',
223
- metadata: {
224
- title: 'Test JSON Inscription',
225
- author: 'Manual Test Script'
226
- }
227
- });
228
-
229
- logSuccess('JSON inscription commit transaction created');
230
- logInfo(`Commit Address: ${result2.commitAddress}`);
231
- logInfo(`Fee Rate: 20 sat/vB`);
232
- logInfo(`Commit Fee: ${result2.fees.commit} sats`);
233
-
234
- // Verify fee scales with fee rate (should be ~2x the first test)
235
- const feeRatio = result2.fees.commit / result1.fees.commit;
236
- logInfo(`Fee Ratio (20 sat/vB vs 10 sat/vB): ${feeRatio.toFixed(2)}x`);
237
-
238
- if (feeRatio >= 1.8 && feeRatio <= 2.2) {
239
- logSuccess('Fee scales correctly with fee rate');
240
- } else {
241
- logWarning(`Fee ratio outside expected range: ${feeRatio.toFixed(2)}x`);
242
- }
243
-
244
- // Test 3: Large content (1KB)
245
- logSection('Test 3: Large Content (1KB)');
246
-
247
- const largeContent = Buffer.alloc(1024, 'a');
248
-
249
- const result3 = await createCommitTransaction({
250
- content: largeContent,
251
- contentType: 'text/plain',
252
- utxos: [
253
- {
254
- txid: 'c'.repeat(64),
255
- vout: 0,
256
- value: 500000, // Larger UTXO for larger content
257
- scriptPubKey: '0014' + 'd'.repeat(40),
258
- address: 'bc1qtest_large_utxo'
259
- }
260
- ],
261
- changeAddress: 'bc1qtest_change_address_12345',
262
- feeRate: 10,
263
- network: 'mainnet'
264
- });
265
-
266
- logSuccess('Large content inscription commit transaction created');
267
- logInfo(`Content Size: ${largeContent.length} bytes`);
268
- logInfo(`Inscription Script Size: ${result3.inscriptionScript.script.length} bytes`);
269
- logInfo(`Commit Fee: ${result3.fees.commit} sats`);
270
-
271
- // Test 4: Testnet address
272
- logSection('Test 4: Testnet Address Generation');
273
-
274
- const result4 = await createCommitTransaction({
275
- content: Buffer.from('Testnet inscription'),
276
- contentType: 'text/plain',
277
- utxos: createMockUtxos(),
278
- changeAddress: 'tb1qtest_testnet_change',
279
- feeRate: 5,
280
- network: 'testnet'
281
- });
282
-
283
- logInfo(`Testnet Commit Address: ${result4.commitAddress}`);
284
-
285
- if (result4.commitAddress.startsWith('tb1p')) {
286
- logSuccess('Testnet address is valid (tb1p...)');
287
- } else {
288
- logWarning(`Unexpected testnet address format: ${result4.commitAddress}`);
289
- }
290
-
291
- // Final summary
292
- logSection('Test Summary');
293
- logSuccess('All tests completed successfully!');
294
- logInfo('Commit transaction creation is working correctly');
295
- logInfo('PSBT structure is valid');
296
- logInfo('Fee calculation is accurate');
297
- logInfo('P2TR address generation is correct');
298
- logInfo('Inscription script data is properly formatted');
299
-
300
- console.log('\n' + '='.repeat(80));
301
- logSuccess('✓ Manual verification complete - commit.ts is ready for use');
302
- console.log('='.repeat(80) + '\n');
303
-
304
- // IMPORTANT REMINDER
305
- logWarning('REMINDER: This script does NOT broadcast transactions');
306
- logWarning(' It only creates and verifies PSBT structure');
307
- logWarning(' DO NOT use these test keys or addresses for real Bitcoin');
308
-
309
- } catch (error) {
310
- logSection('Test Failed');
311
- logError(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
312
- if (error instanceof Error && error.stack) {
313
- console.error(error.stack);
314
- }
315
- process.exit(1);
316
- }
317
- }
318
-
319
- // Run the tests
320
- main().catch(error => {
321
- console.error('Unhandled error:', error);
322
- process.exit(1);
323
- });
@@ -1,38 +0,0 @@
1
- import { KeyStore } from '../../src/types';
2
-
3
- /**
4
- * MockKeyStore is a simple in-memory implementation of the KeyStore interface
5
- * for testing purposes.
6
- */
7
- export class MockKeyStore implements KeyStore {
8
- private keys: Map<string, string> = new Map();
9
-
10
- async getPrivateKey(verificationMethodId: string): Promise<string | null> {
11
- return this.keys.get(verificationMethodId) || null;
12
- }
13
-
14
- async setPrivateKey(verificationMethodId: string, privateKey: string): Promise<void> {
15
- this.keys.set(verificationMethodId, privateKey);
16
- }
17
-
18
- /**
19
- * Helper method for testing: clear all stored keys
20
- */
21
- clear(): void {
22
- this.keys.clear();
23
- }
24
-
25
- /**
26
- * Helper method for testing: get all stored keys
27
- */
28
- getAllKeys(): Map<string, string> {
29
- return new Map(this.keys);
30
- }
31
-
32
- /**
33
- * Helper method: get all verification method IDs
34
- */
35
- getAllVerificationMethodIds(): string[] {
36
- return Array.from(this.keys.keys());
37
- }
38
- }
@@ -1,24 +0,0 @@
1
- import type { StorageAdapter, StorageGetResult, StoragePutOptions } from '../../../src/adapters/types';
2
-
3
- export class MemoryStorageAdapter implements StorageAdapter {
4
- private readonly keyToObject: Map<string, { content: Buffer; contentType: string }> = new Map();
5
-
6
- async put(objectKey: string, data: Buffer | string, options: StoragePutOptions = {}): Promise<string> {
7
- const content = Buffer.isBuffer(data) ? data : Buffer.from(data);
8
- const contentType = options.contentType || 'application/octet-stream';
9
- this.keyToObject.set(objectKey, { content, contentType });
10
- return `memory://${objectKey}`;
11
- }
12
-
13
- async get(objectKey: string): Promise<StorageGetResult | null> {
14
- const entry = this.keyToObject.get(objectKey);
15
- if (!entry) return null;
16
- return { content: Buffer.from(entry.content), contentType: entry.contentType };
17
- }
18
-
19
- async delete(objectKey: string): Promise<boolean> {
20
- return this.keyToObject.delete(objectKey);
21
- }
22
- }
23
-
24
-
@@ -1,11 +0,0 @@
1
- import type { FeeOracleAdapter } from '../../../src/adapters/types';
2
-
3
- export class MockFeeOracle implements FeeOracleAdapter {
4
- constructor(private readonly defaultRate: number = 10) {}
5
- async estimateFeeRate(targetBlocks: number = 1): Promise<number> {
6
- const multiplier = Math.max(1, Math.min(6, targetBlocks));
7
- return this.defaultRate * multiplier;
8
- }
9
- }
10
-
11
-
@@ -1,76 +0,0 @@
1
- import type { OrdinalsProvider } from '../../../src/adapters/types';
2
-
3
- export class MockOrdinalsProvider implements OrdinalsProvider {
4
- async createInscription(params: { data: Buffer; contentType: string; feeRate?: number }) {
5
- return {
6
- inscriptionId: 'insc-mock',
7
- revealTxId: 'tx-reveal-mock',
8
- commitTxId: 'tx-commit-mock',
9
- satoshi: '123',
10
- txid: 'tx-mock',
11
- vout: 0,
12
- blockHeight: 1,
13
- content: params.data,
14
- contentType: params.contentType,
15
- feeRate: params.feeRate
16
- };
17
- }
18
-
19
- async getInscriptionById(id: string) {
20
- if (!id) return null;
21
- return {
22
- inscriptionId: id,
23
- content: Buffer.from(''),
24
- contentType: 'text/plain',
25
- txid: 'tx-mock',
26
- vout: 0,
27
- satoshi: '123'
28
- };
29
- }
30
-
31
- async transferInscription(
32
- inscriptionId: string,
33
- toAddress: string,
34
- options?: { feeRate?: number }
35
- ): Promise<{
36
- txid: string;
37
- vin: Array<{ txid: string; vout: number }>;
38
- vout: Array<{ value: number; scriptPubKey: string; address?: string }>;
39
- fee: number;
40
- blockHeight?: number;
41
- confirmations?: number;
42
- satoshi?: string;
43
- }> {
44
- if (!inscriptionId) {
45
- throw new Error('inscriptionId required');
46
- }
47
- return {
48
- txid: 'tx-transfer-mock',
49
- vin: [{ txid: 'tx-prev', vout: 0 }],
50
- vout: [{ value: 10_000, scriptPubKey: 'script', address: toAddress }],
51
- fee: options?.feeRate ? Math.round(options.feeRate) : 100,
52
- blockHeight: 2,
53
- confirmations: 0,
54
- satoshi: '123'
55
- };
56
- }
57
-
58
- async getInscriptionsBySatoshi(satoshi: string) {
59
- if (!satoshi) return [];
60
- return [{ inscriptionId: 'insc-mock' }];
61
- }
62
-
63
- async broadcastTransaction(_txHexOrObj: unknown): Promise<string> {
64
- return 'txid-mock';
65
- }
66
-
67
- async getTransactionStatus(_txid: string): Promise<{ confirmed: boolean; blockHeight?: number; confirmations?: number }> {
68
- return { confirmed: false };
69
- }
70
-
71
- async estimateFee(blocks: number = 1): Promise<number> {
72
- return 10 * Math.max(1, blocks);
73
- }
74
- }
75
-
76
-
@@ -1,176 +0,0 @@
1
- import { describe, test, expect } from 'bun:test';
2
- import { OrdMockProvider } from '../../../src/adapters/providers/OrdMockProvider';
3
-
4
- describe('OrdMockProvider', () => {
5
- test('createInscription and retrieval works', async () => {
6
- const prov = new OrdMockProvider();
7
- const data = Buffer.from('hello');
8
- const res = await prov.createInscription({ data, contentType: 'text/plain' });
9
- expect(typeof res.inscriptionId).toBe('string');
10
- const fetched = await prov.getInscriptionById(res.inscriptionId);
11
- expect(fetched?.txid).toBe(res.txid);
12
- });
13
-
14
- test('broadcastTransaction returns mock txid', async () => {
15
- const prov = new OrdMockProvider();
16
- const txid = await prov.broadcastTransaction('mock-tx-hex');
17
- expect(txid).toBe('mock-broadcast-txid');
18
- });
19
-
20
- test('getTransactionStatus returns confirmed status', async () => {
21
- const prov = new OrdMockProvider();
22
- const status = await prov.getTransactionStatus('any-txid');
23
- expect(status.confirmed).toBe(true);
24
- expect(status.blockHeight).toBe(1);
25
- expect(status.confirmations).toBe(1);
26
- });
27
-
28
- test('estimateFee with default blocks', async () => {
29
- const prov = new OrdMockProvider();
30
- const fee = await prov.estimateFee();
31
- expect(fee).toBeGreaterThanOrEqual(1);
32
- });
33
-
34
- test('estimateFee with multiple blocks reduces fee', async () => {
35
- const prov = new OrdMockProvider({ feeRate: 10 });
36
- const fee1 = await prov.estimateFee(1);
37
- const fee3 = await prov.estimateFee(3);
38
- expect(fee1).toBe(10);
39
- expect(fee3).toBe(8); // 10 - (3-1) = 8
40
- });
41
-
42
- test('transferInscription throws error for non-existent inscription', async () => {
43
- const prov = new OrdMockProvider();
44
- await expect(prov.transferInscription('non-existent', 'bc1qaddress'))
45
- .rejects.toThrow('inscription not found');
46
- });
47
-
48
- test('constructor accepts custom state', async () => {
49
- const customState = new Map();
50
- customState.set('test-id', {
51
- inscriptionId: 'test-id',
52
- content: Buffer.from('test'),
53
- contentType: 'text/plain',
54
- txid: 'test-txid',
55
- vout: 0,
56
- satoshi: 'test-sat'
57
- });
58
-
59
- const prov = new OrdMockProvider({
60
- inscriptionsById: customState,
61
- feeRate: 10
62
- });
63
-
64
- const inscription = await prov.getInscriptionById('test-id');
65
- expect(inscription).toBeDefined();
66
- expect(inscription?.inscriptionId).toBe('test-id');
67
- });
68
-
69
- test('getInscriptionById returns null for non-existent id', async () => {
70
- const prov = new OrdMockProvider();
71
- const inscription = await prov.getInscriptionById('non-existent');
72
- expect(inscription).toBeNull();
73
- });
74
-
75
- test('getInscriptionsBySatoshi returns empty array for non-existent satoshi', async () => {
76
- const prov = new OrdMockProvider();
77
- const inscriptions = await prov.getInscriptionsBySatoshi('999999');
78
- expect(inscriptions).toEqual([]);
79
- });
80
-
81
- test('getInscriptionsBySatoshi returns list of inscriptions for satoshi', async () => {
82
- const prov = new OrdMockProvider();
83
- const data = Buffer.from('test data');
84
- const res = await prov.createInscription({ data, contentType: 'text/plain' });
85
-
86
- // Get the satoshi from the created inscription
87
- const inscriptions = await prov.getInscriptionsBySatoshi(res.satoshi!);
88
- expect(inscriptions.length).toBeGreaterThan(0);
89
- expect(inscriptions[0].inscriptionId).toBe(res.inscriptionId);
90
- });
91
-
92
- test('createInscription with custom feeRate', async () => {
93
- const prov = new OrdMockProvider();
94
- const data = Buffer.from('test data');
95
- const res = await prov.createInscription({
96
- data,
97
- contentType: 'text/plain',
98
- feeRate: 15
99
- });
100
- expect(res.feeRate).toBe(15);
101
- });
102
-
103
- test('createInscription returns all expected fields', async () => {
104
- const prov = new OrdMockProvider();
105
- const data = Buffer.from('test data');
106
- const res = await prov.createInscription({ data, contentType: 'text/plain' });
107
-
108
- expect(res.inscriptionId).toBeDefined();
109
- expect(res.revealTxId).toBeDefined();
110
- expect(res.commitTxId).toBeUndefined();
111
- expect(res.satoshi).toBeDefined();
112
- expect(res.txid).toBeDefined();
113
- expect(res.vout).toBe(0);
114
- expect(res.blockHeight).toBe(1);
115
- expect(res.content).toEqual(data);
116
- expect(res.contentType).toBe('text/plain');
117
- });
118
-
119
- test('transferInscription returns proper transaction details', async () => {
120
- const prov = new OrdMockProvider();
121
- const data = Buffer.from('test data');
122
- const res = await prov.createInscription({ data, contentType: 'text/plain' });
123
-
124
- const transfer = await prov.transferInscription(res.inscriptionId, 'bc1qaddress', { feeRate: 10 });
125
-
126
- expect(transfer.txid).toBeDefined();
127
- expect(transfer.vin).toBeDefined();
128
- expect(transfer.vin.length).toBeGreaterThan(0);
129
- expect(transfer.vin[0].txid).toBe(res.txid);
130
- expect(transfer.vin[0].vout).toBe(res.vout);
131
- expect(transfer.vout).toBeDefined();
132
- expect(transfer.vout[0].value).toBe(546);
133
- expect(transfer.vout[0].scriptPubKey).toBe('script');
134
- expect(transfer.fee).toBe(100);
135
- expect(transfer.blockHeight).toBe(1);
136
- expect(transfer.confirmations).toBe(0);
137
- expect(transfer.satoshi).toBe(res.satoshi);
138
- });
139
-
140
- test('transferInscription without options', async () => {
141
- const prov = new OrdMockProvider();
142
- const data = Buffer.from('test data');
143
- const res = await prov.createInscription({ data, contentType: 'text/plain' });
144
-
145
- const transfer = await prov.transferInscription(res.inscriptionId, 'bc1qaddress');
146
-
147
- expect(transfer.txid).toBeDefined();
148
- });
149
-
150
- test('constructor with partial state including inscriptionsBySatoshi', async () => {
151
- const inscriptionsBySatoshi = new Map();
152
- inscriptionsBySatoshi.set('12345', ['insc-1', 'insc-2']);
153
-
154
- const prov = new OrdMockProvider({
155
- inscriptionsBySatoshi,
156
- feeRate: 8
157
- });
158
-
159
- const inscriptions = await prov.getInscriptionsBySatoshi('12345');
160
- expect(inscriptions.length).toBe(2);
161
- expect(inscriptions[0].inscriptionId).toBe('insc-1');
162
- expect(inscriptions[1].inscriptionId).toBe('insc-2');
163
- });
164
-
165
- test('createInscription generates numeric satoshi identifier', async () => {
166
- const prov = new OrdMockProvider();
167
- const data = Buffer.from('test');
168
- const res = await prov.createInscription({ data, contentType: 'text/plain' });
169
-
170
- // Verify satoshi is numeric
171
- expect(res.satoshi).toBeDefined();
172
- expect(Number.isNaN(Number(res.satoshi))).toBe(false);
173
- expect(Number(res.satoshi!)).toBeGreaterThan(0);
174
- });
175
- });
176
-
@@ -1,6 +0,0 @@
1
- export * from './MemoryStorageAdapter';
2
- export * from './MockFeeOracle';
3
- export * from './MockOrdinalsProvider';
4
- export * from '../MockKeyStore';
5
-
6
-