@bopen-io/wallet-toolbox 2.0.5-idb-fix.2 → 2.1.21-parity-fix.0

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 (356) hide show
  1. package/CHANGELOG.md +186 -2
  2. package/README.md +111 -28
  3. package/docs/client.md +1390 -448
  4. package/docs/go-client-vs-ts-server-compat.md +95 -0
  5. package/docs/monitor.md +257 -15
  6. package/docs/services.md +301 -98
  7. package/docs/setup.md +20 -12
  8. package/docs/storage.md +169 -149
  9. package/docs/sync-architecture-review.md +438 -0
  10. package/docs/sync-fix-plan.md +239 -0
  11. package/docs/wallet.md +1390 -448
  12. package/out/src/CWIStyleWalletManager.d.ts +57 -5
  13. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  14. package/out/src/CWIStyleWalletManager.js +291 -48
  15. package/out/src/CWIStyleWalletManager.js.map +1 -1
  16. package/out/src/Setup.d.ts +6 -1
  17. package/out/src/Setup.d.ts.map +1 -1
  18. package/out/src/Setup.js +4 -7
  19. package/out/src/Setup.js.map +1 -1
  20. package/out/src/SetupClient.d.ts +6 -1
  21. package/out/src/SetupClient.d.ts.map +1 -1
  22. package/out/src/SetupClient.js +3 -3
  23. package/out/src/SetupClient.js.map +1 -1
  24. package/out/src/Wallet.d.ts.map +1 -1
  25. package/out/src/Wallet.js +6 -4
  26. package/out/src/Wallet.js.map +1 -1
  27. package/out/src/WalletAuthenticationManager.d.ts +1 -1
  28. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  29. package/out/src/WalletAuthenticationManager.js +41 -31
  30. package/out/src/WalletAuthenticationManager.js.map +1 -1
  31. package/out/src/WalletPermissionsManager.d.ts +4 -2
  32. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  33. package/out/src/WalletPermissionsManager.js +163 -72
  34. package/out/src/WalletPermissionsManager.js.map +1 -1
  35. package/out/src/__tests/CWIStyleWalletManager.test.js +292 -10
  36. package/out/src/__tests/CWIStyleWalletManager.test.js.map +1 -1
  37. package/out/src/__tests/ShamirWalletManager.test.js +4 -4
  38. package/out/src/__tests/ShamirWalletManager.test.js.map +1 -1
  39. package/out/src/__tests/WalletPermissionsManager.flows.test.js +113 -1
  40. package/out/src/__tests/WalletPermissionsManager.flows.test.js.map +1 -1
  41. package/out/src/fundWalletP2PKH.d.ts +48 -0
  42. package/out/src/fundWalletP2PKH.d.ts.map +1 -0
  43. package/out/src/fundWalletP2PKH.js +239 -0
  44. package/out/src/fundWalletP2PKH.js.map +1 -0
  45. package/out/src/index.all.d.ts +3 -2
  46. package/out/src/index.all.d.ts.map +1 -1
  47. package/out/src/index.all.js +3 -2
  48. package/out/src/index.all.js.map +1 -1
  49. package/out/src/index.mobile.d.ts +1 -0
  50. package/out/src/index.mobile.d.ts.map +1 -1
  51. package/out/src/index.mobile.js +1 -0
  52. package/out/src/index.mobile.js.map +1 -1
  53. package/out/src/mockchain/MockChainMigrations.d.ts +20 -0
  54. package/out/src/mockchain/MockChainMigrations.d.ts.map +1 -0
  55. package/out/src/mockchain/MockChainMigrations.js +67 -0
  56. package/out/src/mockchain/MockChainMigrations.js.map +1 -0
  57. package/out/src/mockchain/MockChainStorage.d.ts +58 -0
  58. package/out/src/mockchain/MockChainStorage.d.ts.map +1 -0
  59. package/out/src/mockchain/MockChainStorage.js +101 -0
  60. package/out/src/mockchain/MockChainStorage.js.map +1 -0
  61. package/out/src/mockchain/MockChainTracker.d.ts +28 -0
  62. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -0
  63. package/out/src/mockchain/MockChainTracker.js +95 -0
  64. package/out/src/mockchain/MockChainTracker.js.map +1 -0
  65. package/out/src/mockchain/MockMiner.d.ts +16 -0
  66. package/out/src/mockchain/MockMiner.d.ts.map +1 -0
  67. package/out/src/mockchain/MockMiner.js +137 -0
  68. package/out/src/mockchain/MockMiner.js.map +1 -0
  69. package/out/src/mockchain/MockServices.d.ts +44 -0
  70. package/out/src/mockchain/MockServices.d.ts.map +1 -0
  71. package/out/src/mockchain/MockServices.js +505 -0
  72. package/out/src/mockchain/MockServices.js.map +1 -0
  73. package/out/src/mockchain/index.d.ts +9 -0
  74. package/out/src/mockchain/index.d.ts.map +1 -0
  75. package/out/src/mockchain/index.js +18 -0
  76. package/out/src/mockchain/index.js.map +1 -0
  77. package/out/src/mockchain/merkleTree.d.ts +13 -0
  78. package/out/src/mockchain/merkleTree.d.ts.map +1 -0
  79. package/out/src/mockchain/merkleTree.js +113 -0
  80. package/out/src/mockchain/merkleTree.js.map +1 -0
  81. package/out/src/monitor/Monitor.d.ts +31 -6
  82. package/out/src/monitor/Monitor.d.ts.map +1 -1
  83. package/out/src/monitor/Monitor.js +74 -12
  84. package/out/src/monitor/Monitor.js.map +1 -1
  85. package/out/src/monitor/MonitorDaemon.d.ts +2 -1
  86. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  87. package/out/src/monitor/MonitorDaemon.js +1 -4
  88. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  89. package/out/src/monitor/index.all.d.ts +4 -0
  90. package/out/src/monitor/index.all.d.ts.map +1 -0
  91. package/out/src/monitor/index.all.js +43 -0
  92. package/out/src/monitor/index.all.js.map +1 -0
  93. package/out/src/monitor/tasks/TaskArcSSE.d.ts +27 -0
  94. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -0
  95. package/out/src/monitor/tasks/TaskArcSSE.js +260 -0
  96. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -0
  97. package/out/src/monitor/tasks/TaskMineBlock.d.ts +13 -0
  98. package/out/src/monitor/tasks/TaskMineBlock.d.ts.map +1 -0
  99. package/out/src/monitor/tasks/TaskMineBlock.js +29 -0
  100. package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -0
  101. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts +26 -0
  102. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -0
  103. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +124 -0
  104. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -0
  105. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +34 -0
  106. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -0
  107. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +131 -0
  108. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -0
  109. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +23 -0
  110. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -0
  111. package/out/src/monitor/tasks/TaskReviewUtxos.js +71 -0
  112. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -0
  113. package/out/src/monitor/tasks/TaskSendWaiting.d.ts +14 -1
  114. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  115. package/out/src/monitor/tasks/TaskSendWaiting.js +109 -30
  116. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  117. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.d.ts +2 -0
  118. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.d.ts.map +1 -0
  119. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.js +257 -0
  120. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.js.map +1 -0
  121. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.d.ts +2 -0
  122. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.d.ts.map +1 -0
  123. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.js +161 -0
  124. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.js.map +1 -0
  125. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.d.ts +2 -0
  126. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.d.ts.map +1 -0
  127. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.js +214 -0
  128. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.js.map +1 -0
  129. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.d.ts +2 -0
  130. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.d.ts.map +1 -0
  131. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.js +92 -0
  132. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.js.map +1 -0
  133. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.d.ts +2 -0
  134. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.d.ts.map +1 -0
  135. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.js +139 -0
  136. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.js.map +1 -0
  137. package/out/src/monitor/tasks/index.all.d.ts +19 -0
  138. package/out/src/monitor/tasks/index.all.d.ts.map +1 -0
  139. package/out/src/monitor/tasks/index.all.js +35 -0
  140. package/out/src/monitor/tasks/index.all.js.map +1 -0
  141. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  142. package/out/src/sdk/PrivilegedKeyManager.js +3 -1
  143. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  144. package/out/src/sdk/WalletServices.interfaces.d.ts +5 -3
  145. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  146. package/out/src/sdk/WalletStorage.interfaces.d.ts +11 -0
  147. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  148. package/out/src/sdk/types.d.ts +1 -1
  149. package/out/src/sdk/types.d.ts.map +1 -1
  150. package/out/src/services/Services.d.ts +22 -4
  151. package/out/src/services/Services.d.ts.map +1 -1
  152. package/out/src/services/Services.js +196 -36
  153. package/out/src/services/Services.js.map +1 -1
  154. package/out/src/services/__tests/getFiatExchangeRate.test.d.ts +2 -0
  155. package/out/src/services/__tests/getFiatExchangeRate.test.d.ts.map +1 -0
  156. package/out/src/services/__tests/getFiatExchangeRate.test.js +156 -0
  157. package/out/src/services/__tests/getFiatExchangeRate.test.js.map +1 -0
  158. package/out/src/services/__tests/verifyBeef.test.js.map +1 -1
  159. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  160. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +20 -4
  161. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  162. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
  163. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +1 -0
  164. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  165. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +1 -1
  166. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  167. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  168. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +24 -6
  169. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  170. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.js +1 -1
  171. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.js.map +1 -1
  172. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +1 -1
  173. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  174. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  175. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +8 -8
  176. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  177. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.d.ts +2 -0
  178. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.d.ts.map +1 -0
  179. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.js +43 -0
  180. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.js.map +1 -0
  181. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.d.ts +2 -0
  182. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.d.ts.map +1 -0
  183. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.js +109 -0
  184. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.js.map +1 -0
  185. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js +3 -8
  186. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js.map +1 -1
  187. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +22 -0
  188. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -0
  189. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +54 -0
  190. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -0
  191. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
  192. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +3 -42
  193. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  194. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
  195. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js +2 -41
  196. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  197. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  198. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +3 -42
  199. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  200. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +2 -20
  201. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  202. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +5 -55
  203. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  204. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  205. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +27 -21
  206. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  207. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  208. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +9 -36
  209. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  210. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  211. package/out/src/services/createDefaultWalletServicesOptions.js +20 -5
  212. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  213. package/out/src/services/index.d.ts +1 -0
  214. package/out/src/services/index.d.ts.map +1 -1
  215. package/out/src/services/index.js +1 -0
  216. package/out/src/services/index.js.map +1 -1
  217. package/out/src/services/providers/ArcSSEClient.d.ts +57 -0
  218. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -0
  219. package/out/src/services/providers/ArcSSEClient.js +111 -0
  220. package/out/src/services/providers/ArcSSEClient.js.map +1 -0
  221. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  222. package/out/src/services/providers/Bitails.js +10 -1
  223. package/out/src/services/providers/Bitails.js.map +1 -1
  224. package/out/src/services/providers/SdkWhatsOnChain.d.ts +1 -1
  225. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  226. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  227. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  228. package/out/src/services/providers/WhatsOnChain.js +2 -0
  229. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  230. package/out/src/services/providers/__tests/ArcSSEClient.test.d.ts +2 -0
  231. package/out/src/services/providers/__tests/ArcSSEClient.test.d.ts.map +1 -0
  232. package/out/src/services/providers/__tests/ArcSSEClient.test.js +256 -0
  233. package/out/src/services/providers/__tests/ArcSSEClient.test.js.map +1 -0
  234. package/out/src/services/providers/__tests/exchangeRates.test.js +4 -0
  235. package/out/src/services/providers/__tests/exchangeRates.test.js.map +1 -1
  236. package/out/src/services/providers/exchangeRates.d.ts +1 -1
  237. package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
  238. package/out/src/services/providers/exchangeRates.js +21 -14
  239. package/out/src/services/providers/exchangeRates.js.map +1 -1
  240. package/out/src/storage/StorageIdb.d.ts +8 -0
  241. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  242. package/out/src/storage/StorageIdb.js +156 -119
  243. package/out/src/storage/StorageIdb.js.map +1 -1
  244. package/out/src/storage/StorageKnex.d.ts +12 -1
  245. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  246. package/out/src/storage/StorageKnex.js +165 -83
  247. package/out/src/storage/StorageKnex.js.map +1 -1
  248. package/out/src/storage/StorageProvider.d.ts +16 -1
  249. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  250. package/out/src/storage/StorageProvider.js +71 -0
  251. package/out/src/storage/StorageProvider.js.map +1 -1
  252. package/out/src/storage/StorageReaderWriter.d.ts +2 -1
  253. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  254. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  255. package/out/src/storage/WalletStorageManager.d.ts +5 -12
  256. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  257. package/out/src/storage/WalletStorageManager.js +26 -48
  258. package/out/src/storage/WalletStorageManager.js.map +1 -1
  259. package/out/src/storage/__test/findStaleMerkleRoots.test.d.ts +2 -0
  260. package/out/src/storage/__test/findStaleMerkleRoots.test.d.ts.map +1 -0
  261. package/out/src/storage/__test/findStaleMerkleRoots.test.js +41 -0
  262. package/out/src/storage/__test/findStaleMerkleRoots.test.js.map +1 -0
  263. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.d.ts +2 -0
  264. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.d.ts.map +1 -0
  265. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.js +73 -0
  266. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.js.map +1 -0
  267. package/out/src/storage/__test/getBeefForTransaction.test.js +49 -2
  268. package/out/src/storage/__test/getBeefForTransaction.test.js.map +1 -1
  269. package/out/src/storage/adminServer/adminServer.d.ts +26 -0
  270. package/out/src/storage/adminServer/adminServer.d.ts.map +1 -0
  271. package/out/src/storage/adminServer/adminServer.js +547 -0
  272. package/out/src/storage/adminServer/adminServer.js.map +1 -0
  273. package/out/src/storage/adminServer/adminUi.d.ts +2 -0
  274. package/out/src/storage/adminServer/adminUi.d.ts.map +1 -0
  275. package/out/src/storage/adminServer/adminUi.js +1024 -0
  276. package/out/src/storage/adminServer/adminUi.js.map +1 -0
  277. package/out/src/storage/adminServer/index.all.d.ts +3 -0
  278. package/out/src/storage/adminServer/index.all.d.ts.map +1 -0
  279. package/out/src/storage/adminServer/index.all.js +19 -0
  280. package/out/src/storage/adminServer/index.all.js.map +1 -0
  281. package/out/src/storage/index.all.d.ts +1 -0
  282. package/out/src/storage/index.all.d.ts.map +1 -1
  283. package/out/src/storage/index.all.js +1 -0
  284. package/out/src/storage/index.all.js.map +1 -1
  285. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  286. package/out/src/storage/methods/ListOutputsSpecOp.js +24 -7
  287. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  288. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js +153 -1
  289. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js.map +1 -1
  290. package/out/src/storage/methods/__test/offsetKey.test.js +133 -286
  291. package/out/src/storage/methods/__test/offsetKey.test.js.map +1 -1
  292. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  293. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +16 -11
  294. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  295. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  296. package/out/src/storage/methods/createAction.js +76 -37
  297. package/out/src/storage/methods/createAction.js.map +1 -1
  298. package/out/src/storage/methods/generateChange.d.ts +25 -0
  299. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  300. package/out/src/storage/methods/generateChange.js +88 -15
  301. package/out/src/storage/methods/generateChange.js.map +1 -1
  302. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  303. package/out/src/storage/methods/listActionsIdb.js +17 -3
  304. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  305. package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
  306. package/out/src/storage/methods/listActionsKnex.js +28 -2
  307. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  308. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
  309. package/out/src/storage/methods/listOutputsKnex.js +83 -50
  310. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  311. package/out/src/storage/remoting/StorageServer.d.ts +1 -0
  312. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  313. package/out/src/storage/remoting/StorageServer.js +59 -8
  314. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  315. package/out/src/storage/remoting/__test/StorageClient.man.test.d.ts +2 -0
  316. package/out/src/storage/remoting/__test/StorageClient.man.test.d.ts.map +1 -0
  317. package/out/src/storage/remoting/__test/StorageClient.man.test.js +487 -0
  318. package/out/src/storage/remoting/__test/StorageClient.man.test.js.map +1 -0
  319. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  320. package/out/src/storage/schema/KnexMigrations.js +41 -1
  321. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  322. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  323. package/out/src/storage/sync/StorageMySQLDojoReader.js +4 -0
  324. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  325. package/out/src/utility/Format.d.ts.map +1 -1
  326. package/out/src/utility/Format.js +1 -0
  327. package/out/src/utility/Format.js.map +1 -1
  328. package/out/src/utility/brc114ActionTimeLabels.d.ts +9 -0
  329. package/out/src/utility/brc114ActionTimeLabels.d.ts.map +1 -0
  330. package/out/src/utility/brc114ActionTimeLabels.js +51 -0
  331. package/out/src/utility/brc114ActionTimeLabels.js.map +1 -0
  332. package/out/src/utility/index.all.d.ts +1 -0
  333. package/out/src/utility/index.all.d.ts.map +1 -1
  334. package/out/src/utility/index.all.js +1 -0
  335. package/out/src/utility/index.all.js.map +1 -1
  336. package/out/src/utility/utilityHelpers.d.ts +5 -0
  337. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  338. package/out/src/utility/utilityHelpers.js +24 -1
  339. package/out/src/utility/utilityHelpers.js.map +1 -1
  340. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +10 -3
  341. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  342. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +34 -1
  343. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  344. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.d.ts +1 -19
  345. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.d.ts.map +1 -1
  346. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js +0 -52
  347. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +1 -1
  348. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts +1 -3
  349. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts.map +1 -1
  350. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +0 -24
  351. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -1
  352. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +1 -19
  353. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +1 -1
  354. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +0 -52
  355. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -1
  356. package/package.json +6 -5
package/CHANGELOG.md CHANGED
@@ -4,6 +4,190 @@ This document captures the history of significant changes to the wallet-toolbox
4
4
  The git commit history contains the details but is unable to draw
5
5
  attention to changes that materially alter behavior or extend functionality.
6
6
 
7
+ ## @bopen-io/wallet-toolbox 2.1.21-parity-fix.0
8
+
9
+ StorageIdb aligned with StorageKnex canon. Six functional divergences fixed.
10
+
11
+ - **CRIT** `filterOutputTagMaps` user-scope filter was dead code (`&& r.txid` on a table with no txid field). `getOutputTagMapsForUser` leaked rows across accounts. Fixes cross-account sync chunk contamination.
12
+ - **HIGH** `filterOutputs` / `filterTransactions` no longer treat an empty `txStatus` / `status` array as a reject-all filter. Matches Knex.
13
+ - **HIGH** `filterX` methods now throw `WERR_INVALID_PARAMETER` on undefined values in `partial`. Matches Knex's `Undefined binding(s) detected`. Surfaces mergeFind bugs that used to present as misleading "Result must be unique."
14
+ - **MED** Truthiness guards on integer-ID / string partial fields swept to `!== undefined` across every filter method (~106 replacements). Fixes silent filter skip for `lockTime=0`, `version=0`, empty strings.
15
+ - **MED** `updateIdb` returns actual affected-row count instead of always `1`.
16
+ - **LOW** `filterProvenTxReqs` drops the `&& r.txid` user-scope bypass (same shape as CRIT finding; latent unless a row lacks a txid).
17
+
18
+ Based on 2.1.21 content; published to `@bopen-io` npm scope pending canonical review (PR bsv-blockchain/wallet-toolbox#151).
19
+
20
+ ## wallet-toolbox 2.1.21
21
+
22
+ - Fix spending authorization bypass in querySpentSince, PR#150
23
+
24
+ ## wallet-toolbox 2.1.20
25
+
26
+ - Update cdn.projectbabbage.com valid blockheaders file hash.
27
+ -
28
+ ## wallet-toolbox 2.1.19
29
+
30
+ - Merge PR#146. GenerateChange change to better handle dust situations. Redundant trimInputBeef knownTxids safety check.
31
+ - recovery-key-and-password fix
32
+
33
+ ## wallet-toolbox 2.1.18
34
+
35
+ - fix provideRecoveryKey guard blocking recovery-key-and-password mode
36
+ - set authenticationFlow to existing-user after recovery key token lookup
37
+
38
+ ## wallet-toolbox 2.1.17
39
+
40
+ - add admin web server for visibility into storage and monitor by operations admin
41
+ - add recentlyActiveUsers to StorageProvider with optimized override in StorageKnex
42
+
43
+ ## wallet-toolbox 2.1.16
44
+
45
+ - update Services getStatusForTxids to internally handle provider batch limit
46
+
47
+ ## wallet-toolbox 2.1.15
48
+
49
+ - audit fix
50
+
51
+ ## wallet-toolbox 2.1.14
52
+
53
+ - fix update timestamp on all updated currencies
54
+
55
+ ## wallet-toolbox 2.1.13
56
+
57
+ - update all supported currencies in single exchangeratesapi.io request.
58
+
59
+ ## wallet-toolbox 2.1.12
60
+
61
+ - Add fundWalletFromP2PKHOutpoints
62
+
63
+ ## wallet-toolbox 2.1.11
64
+
65
+ - Add UMP v3 token support with Argon2id password key derivation.
66
+ - Introduce `derivePasswordKey()` abstraction that dispatches to Argon2id for v3 tokens and PBKDF2-SHA512 (7777 rounds) for legacy tokens.
67
+ - Use `hash-wasm` for password-key derivation support in browser/webview-compatible contexts.
68
+ - Extend `UMPToken` with optional `umpVersion` and `passwordKdf` metadata fields.
69
+ - Update `buildAndSend` to write v3 KDF metadata fields (`umpVersion`, `kdfAlgorithm`, `kdfParams`) to on-chain tokens.
70
+ - Update `parseLookupAnswer`, `serializeUMPToken`, and `deserializeUMPToken` to parse and round-trip v3 KDF metadata.
71
+ - Export `ARGON2ID_DEFAULT_*` constants (`iterations`, `memoryKiB`, `parallelism`, `hashLength`).
72
+ - Keep legacy token behavior unchanged.
73
+
74
+ ## wallet-toolbox 2.1.10
75
+
76
+ - TaskReviewUtxos added
77
+ - TaskReviewProvenTxs added
78
+ - TaskReviewDoubleSpends added
79
+ - exchangeratesapi.io api key removed from Services. Defaults changed to rely on public chaintracks service which has private api key.
80
+ - Fix bugs in TaskSendWaiting
81
+ - Add Task namespace with all monitor tasks exports.
82
+ - adminStats now splits out abandoned transactions from failed.
83
+ - admin site support changes.
84
+
85
+ ## wallet-toolbox 2.1.9
86
+
87
+ - Fix batch sending bug in TaskSendWaiting
88
+
89
+ ## wallet-toolbox 2.1.8
90
+
91
+ - Drop no longer required verifyAndRepairBeef method
92
+ - Simplify collectCommission tests in offsetKey.test.ts
93
+ - Remove duplicate BulkFileDataReader class.
94
+ - Reorg createDefault*ChaintracksOptions to reduce duplicated code.
95
+ - Reorg auth-method-interactors
96
+ - Flip waitForAuthentication grouped permission request event (now first) and activation (now second)
97
+
98
+ ## wallet-toolbox 2.1.7
99
+
100
+ - Sonarqube recommended changes...
101
+
102
+ ## wallet-toolbox 2.1.6
103
+
104
+ - Improve change-making algorithm: cap change outputs per transaction to 8 (gradual UTXO pool build-up, smaller BEEFs). Enforce dynamic dust floor so no change output is worth less than 2× the fee to spend it.
105
+
106
+ ## wallet-toolbox 2.1.5
107
+
108
+ - Update deps, docs, lint
109
+
110
+ ## wallet-toolbox 2.1.4
111
+
112
+ - Change `Monitor`: Add SSE event hooks.
113
+ - Add `ArcSSEClient` to drive SSE event hooks on mobile
114
+
115
+ ## wallet-toolbox 2.1.3
116
+
117
+ - Change `Monitor`: no retry for invalid beefs in TaskSendWaiting. Cleanup logging.
118
+
119
+ ## wallet-toolbox 2.1.2
120
+
121
+ - Fix Chaintracks no longer hangs if bulk ingestor fails to reach chain tip.
122
+
123
+ ## wallet-toolbox 2.1.1
124
+
125
+ ### Add `teratest` and `mock` chain types
126
+
127
+ - Change `Chain` type from `'main' | 'test'` to `'main' | 'test' | 'teratest' | 'mock'`.
128
+
129
+ **`teratest` chain:**
130
+
131
+ - Add ARC URL `https://arc-teratest.taal.com` for the teratest network.
132
+ - Chaintracks URL follows existing `${chain}net-chaintracks.babbage.systems` pattern.
133
+ - WhatsOnChain URL follows existing `https://api.whatsonchain.com/v1/bsv/${network}` pattern.
134
+ - Bitails is not available on teratest (only `main` and `test`).
135
+
136
+ **`mock` chain — full self-contained mock blockchain:**
137
+
138
+ - Add new `src/mockchain/` module with `MockServices`, `MockChainTracker`, `MockMiner`, `MockChainStorage`, and merkle tree utilities.
139
+ - `MockServices` implements the `WalletServices` interface against a local SQLite database (3 tables: `mockchain_block_headers`, `mockchain_transactions`, `mockchain_utxos`).
140
+ - Transactions are validated with full script execution via `@bsv/sdk` `Transaction.verify()`.
141
+ - Coinbase maturity rule enforced (100 block confirmations required before spending).
142
+ - On-demand block mining via `MockServices.mineBlock()`.
143
+ - Chain reorganization simulation via `MockServices.reorg()` with `txidMap` for controlling which transactions land in which new blocks.
144
+ - Add `TaskMineBlock` monitor task for periodic mining (10 minutes) with `mineNow` static flag for on-demand triggering.
145
+ - `Monitor.services` type widened from `Services` to `Services | WalletServices` to support mock chain.
146
+ - `Services` class, `createDefaultWalletServicesOptions`, and external service providers (`WhatsOnChain`, `Bitails`) throw explicit errors if instantiated with `'mock'` chain.
147
+
148
+ **Explicit chain handling across codebase:**
149
+
150
+ - Convert chain-dependent ternaries to explicit switch statements in `toWalletNetwork`, `genesisHeader`, `Bitails` constructor, WoC WebSocket ingestors, and `ChaintracksStorageNoDb`.
151
+ - Each chain value (`main`, `test`, `teratest`, `mock`) is handled explicitly rather than falling through a catch-all else branch.
152
+
153
+ ## wallet-toolbox 2.0.24
154
+
155
+ Optimize createAction (fewer db transactions)
156
+ Add postBeef services soft timeout failover
157
+ PR 130 randomBytesHex in Setup
158
+
159
+ ## wallet-toolbox 2.0.23
160
+
161
+ Add output table indices to speed up listOutputs and createAction
162
+
163
+ ## wallet-toolbox 2.0.20
164
+
165
+ Add BRC-115 new manifest specs to support group and counterparty permissions.
166
+
167
+ ## wallet-toolbox 2.0.19
168
+
169
+ Add BRC-114 action time labels for filtering actions by creation time.
170
+
171
+ ## wallet-toolbox 2.0.18
172
+
173
+ Update bsv/auth-express-middleware 2.0.4
174
+
175
+ ## wallet-toolbox 2.0.17
176
+
177
+ Update @bsv/sdk to 2.0.4 to fix StorageServer failing from stale AuthFetch sessions.
178
+
179
+ ## wallet-toolbox 2.0.9
180
+
181
+ Added support for more currency types.
182
+
183
+ ## wallet-toolbox 2.0.8
184
+
185
+ Add check for cross session signAction errors.
186
+
187
+ ## wallet-toolbox 2.0.7
188
+
189
+ Add StorageClient.man.test.ts to stress test storage.babbage.systems
190
+
7
191
  ## wallet-toolbox 2.0.5
8
192
 
9
193
  Change sqlite support to better-sqlite3, all tests resolved. Support for existing databases confirmed.
@@ -276,7 +460,7 @@ Changes to improve computing balances (sum of satoshis) over various sets of wal
276
460
  ## wallet-toolbox 1.3.29
277
461
 
278
462
  - add verifyUnlockScripts to both createAction and signAction flows
279
-
463
+
280
464
  ## wallet-toolbox 1.3.28
281
465
 
282
466
  - adminStats now includes monitorStats and servicesStats of type ServicesCallHistory (wallet-toolbox/src/sdk/WalletServices.interfaces.ts)
@@ -307,7 +491,7 @@ New outputs created by `createAction` / `signAction` that are NOT assigned to a
307
491
  Implications:
308
492
 
309
493
  - Outputs transferred to a second party, either through internalizeAction or custom means, MUST NOT be assigned to a basket
310
- as this allows them to be spent without your wallet being notified that they are no longer spendable. This is a usage guideline, it is not enforced.
494
+ as this allows them to be spent without your wallet being notified that they are no longer spendable. This is a usage guideline, it is not enforced.
311
495
  - These outputs will NOT be returned by `listOutputs`, as it only returns spendable outputs.
312
496
  - These outputs WILL be returned by `listActions` with the includeOutputs option set to true.
313
497
  - Your wallet will mark any output you include as inputs in your own transactions as spent at the time of transaction creation.
package/README.md CHANGED
@@ -1,43 +1,126 @@
1
- # BSV WALLET TOOLBOX
1
+ # BSV Wallet Toolbox
2
+
3
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/bsv-blockchain/wallet-toolbox/push.yaml?branch=master&label=build)](https://github.com/bsv-blockchain/wallet-toolbox/actions)
4
+ [![npm version](https://img.shields.io/npm/v/@bsv/wallet-toolbox)](https://www.npmjs.com/package/@bsv/wallet-toolbox)
5
+ [![npm downloads](https://img.shields.io/npm/dm/@bsv/wallet-toolbox)](https://www.npmjs.com/package/@bsv/wallet-toolbox)
6
+ [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=bsv-blockchain_wallet-toolbox&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=bsv-blockchain_wallet-toolbox)
7
+ [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=bsv-blockchain_wallet-toolbox&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=bsv-blockchain_wallet-toolbox)
8
+ [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=bsv-blockchain_wallet-toolbox&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=bsv-blockchain_wallet-toolbox)
9
+ [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=bsv-blockchain_wallet-toolbox&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=bsv-blockchain_wallet-toolbox)
10
+ [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=bsv-blockchain_wallet-toolbox&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=bsv-blockchain_wallet-toolbox)
11
+ [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=bsv-blockchain_wallet-toolbox&metric=bugs)](https://sonarcloud.io/summary/new_code?id=bsv-blockchain_wallet-toolbox)
12
+ [![CodeQL](https://github.com/bsv-blockchain/wallet-toolbox/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/bsv-blockchain/wallet-toolbox/actions/workflows/github-code-scanning/codeql)
13
+ [![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=bsv-blockchain_wallet-toolbox&metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=bsv-blockchain_wallet-toolbox)
14
+ [![License](https://img.shields.io/github/license/bsv-blockchain/wallet-toolbox)](./LICENSE.txt)
15
+
16
+ A [BRC-100](https://github.com/bitcoin-sv/BRCs/blob/master/wallet/0100.md) conforming wallet implementation for the BSV blockchain, built on the [BSV SDK](https://bsv-blockchain.github.io/ts-sdk). Provides persistent storage, protocol-based key derivation, transaction monitoring, chain tracking, and signing — everything needed to build wallet-powered applications on BSV.
17
+
18
+ ## Overview
19
+
20
+ The Wallet Toolbox is the reference implementation of the BRC-100 wallet interface. It connects the BSV SDK's cryptographic primitives to real storage backends, network services, and signing flows so that application developers don't have to wire these layers together themselves.
21
+
22
+ ### What's Inside
23
+
24
+ | Module | Description |
25
+ |--------|-------------|
26
+ | **Wallet** | Full BRC-100 wallet — action creation, signing, certificate management, identity discovery, output tracking |
27
+ | **Storage** | Pluggable persistence with three backends: **SQLite/MySQL** (via Knex), **IndexedDB** (browser/mobile), and **remote** (client/server over HTTP) |
28
+ | **Services** | Network layer — ARC transaction broadcasting, chain tracking (Chaintracks), merkle proof verification, UTXO lookups via WhatsOnChain |
29
+ | **Monitor** | Background daemon that watches pending transactions, rebroadcasts failures, handles chain reorganizations, and manages proof acquisition |
30
+ | **Signer** | `WalletSigner` bridges any BRC-100 wallet to the SDK's `Transaction` signing interface |
31
+ | **Key Management** | `PrivilegedKeyManager` for secure key storage with Shamir secret sharing and obfuscation; protocol-based key derivation per BRC-42/43 |
32
+ | **Permissions** | `WalletPermissionsManager` for fine-grained per-app, per-protocol permission control with grouped approval flows |
33
+ | **MockChain** | In-memory blockchain for testing — mock mining, UTXO tracking, and merkle proof generation without a network |
34
+ | **Entropy** | `EntropyCollector` gathers mouse/touch entropy for high-quality randomness in browser environments |
35
+
36
+ ### Packages
37
+
38
+ The toolbox publishes three npm packages from this repo:
39
+
40
+ - **[`@bsv/wallet-toolbox`](https://www.npmjs.com/package/@bsv/wallet-toolbox)** — Full package with all storage backends (SQLite, MySQL, IndexedDB, remote)
41
+ - **[`@bsv/wallet-toolbox-client`](https://www.npmjs.com/package/@bsv/wallet-toolbox-client)** — Browser build; excludes Node-only backends (Knex/SQLite/MySQL)
42
+ - **[`@bsv/wallet-toolbox-mobile`](https://www.npmjs.com/package/@bsv/wallet-toolbox-mobile)** — Mobile build; IndexedDB and remote storage only
43
+
44
+ ## Getting Started
45
+
46
+ ### Installation
47
+
48
+ ```bash
49
+ # Full (Node.js servers, CLIs)
50
+ npm install @bsv/wallet-toolbox
51
+
52
+ # Browser apps
53
+ npm install @bsv/wallet-toolbox-client
54
+
55
+ # React Native / mobile
56
+ npm install @bsv/wallet-toolbox-mobile
57
+ ```
58
+
59
+ ### Quick Example
60
+
61
+ ```typescript
62
+ import { SetupWallet } from '@bsv/wallet-toolbox'
63
+
64
+ // Create a wallet with SQLite storage and default mainnet services
65
+ const wallet = await SetupWallet({
66
+ env: 'main',
67
+ endpointUrl: 'https://your-storage-server.example.com'
68
+ })
69
+
70
+ // Create a transaction
71
+ const result = await wallet.createAction({
72
+ description: 'Send payment',
73
+ outputs: [{
74
+ lockingScript: '76a914...88ac',
75
+ satoshis: 1000,
76
+ outputDescription: 'payment'
77
+ }]
78
+ })
79
+ ```
2
80
 
3
- BSV BLOCKCHAIN | BRC100 Conforming Wallet, Wallet Storage and Wallet Signer Components
4
-
5
- ## Objective
6
-
7
- The BSV Wallet Toolbox builds on the [SDK](https://bsv-blockchain.github.io/ts-sdk).
8
-
9
- It aims to support building sophisticated applications and services on the BSV Blockchain technology stack.
81
+ ## Documentation
10
82
 
11
- By providing interlocking building blocks for persistent storage and protocol based key derivation, it serves as an essential toolbox for developers looking to build on the BSV Blockchain.
83
+ [Full API documentation](https://bsv-blockchain.github.io/wallet-toolbox) is available on GitHub Pages.
12
84
 
13
- ## Documentation
85
+ The codebase has detailed JSDoc annotations throughout — these will surface inline in editors like VS Code.
14
86
 
15
- [The Docs](https://bsv-blockchain.github.io/wallet-toolbox) are available here on Github pages.
87
+ ## Development
16
88
 
17
- The Toolbox is richly documented with code-level annotations. This should show up well within editors like VSCode.
89
+ ```bash
90
+ git clone https://github.com/bsv-blockchain/wallet-toolbox.git
91
+ cd wallet-toolbox
92
+ npm install
93
+ npm run build
94
+ npm test
95
+ ```
18
96
 
19
- ## Contribution Guidelines
97
+ Tests use Jest. Files named `*.man.test.ts` are manual/integration tests excluded from CI — they require network access or long runtimes and are run locally by developers.
20
98
 
21
- We're always looking for contributors to help us improve the SDK. Whether it's bug reports, feature requests, or pull requests - all contributions are welcome.
99
+ ## Contributing
22
100
 
23
- 1. **Fork & Clone**: Fork this repository and clone it to your local machine.
24
- 2. **Set Up**: Run `npm install` to install all dependencies.
25
- 3. **Make Changes**: Create a new branch and make your changes.
26
- 4. **Test**: Ensure all tests pass by running `npm test`.
27
- 5. **Commit**: Commit your changes and push to your fork.
28
- 6. **Pull Request**: Open a pull request from your fork to this repository.
29
- For more details, check the [contribution guidelines](./CONTRIBUTING.md).
101
+ We welcome bug reports, feature requests, and pull requests.
30
102
 
31
- ## Support & Contacts
103
+ 1. Fork and clone the repository
104
+ 2. `npm install`
105
+ 3. Create a feature branch
106
+ 4. Make your changes and ensure `npm test` passes
107
+ 5. Open a pull request
32
108
 
33
- Project Owners: Thomas Giacomo and Darren Kellenschwiler
109
+ See [CONTRIBUTING.md](./CONTRIBUTING.md) for full guidelines.
34
110
 
35
- Development Team Lead: Ty Everett
111
+ ## Contributors
36
112
 
37
- For questions, bug reports, or feature requests, please open an issue on GitHub or contact us directly.
113
+ | | Name | GitHub | Role |
114
+ |---|------|--------|------|
115
+ | | Tone Engel | [@tonesnotes](https://github.com/tonesnotes) | Lead developer, maintainer |
116
+ | | Darren Kellenschwiler | [@sirdeggen](https://github.com/sirdeggen) | Core contributor |
117
+ | | Brayden Langley | [@BraydenLangley](https://github.com/BraydenLangley) | Core contributor |
118
+ | | Ty Everett | [@ty-everett](https://github.com/ty-everett) | Core contributor, reviewer |
119
+ | | Jackie Lu | [@jackielu3](https://github.com/jackielu3) | Contributor |
120
+ | | David Case | [@shruggr](https://github.com/shruggr) | Contributor |
121
+ | | Stephen Thomson | [@Stephen-Thomson](https://github.com/Stephen-Thomson) | Contributor |
122
+ | | Chance Barimbao | [@ChanceBarimbao](https://github.com/ChanceBarimbao) | Contributor |
38
123
 
39
124
  ## License
40
125
 
41
- The license for the code in this repository is the Open BSV License. Refer to [LICENSE.txt](./LICENSE.txt) for the license text.
42
-
43
- Thank you for being a part of the BSV Blockchain Libraries Project. Let's build the future of BSV Blockchain together!
126
+ Released under the [Open BSV License](./LICENSE.txt).