@bsv/wallet-toolbox 2.13.0 → 2.13.2

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 (659) hide show
  1. package/CHANGELOG.md +283 -1
  2. package/README.md +403 -5
  3. package/docs/README.md +8 -1
  4. package/docs/client.md +13057 -4632
  5. package/docs/identity-verification.md +196 -0
  6. package/docs/monitor.md +505 -190
  7. package/docs/services.md +4013 -1153
  8. package/docs/setup.md +98 -58
  9. package/docs/storage.md +5780 -1609
  10. package/docs/wallet.md +10155 -10871
  11. package/out/src/CWIStyleWalletManager.d.ts +6 -8
  12. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  13. package/out/src/CWIStyleWalletManager.js +170 -125
  14. package/out/src/CWIStyleWalletManager.js.map +1 -1
  15. package/out/src/Setup.d.ts +2 -0
  16. package/out/src/Setup.d.ts.map +1 -1
  17. package/out/src/Setup.js +3 -2
  18. package/out/src/Setup.js.map +1 -1
  19. package/out/src/ShamirWalletManager.d.ts.map +1 -1
  20. package/out/src/ShamirWalletManager.js +34 -19
  21. package/out/src/ShamirWalletManager.js.map +1 -1
  22. package/out/src/SimpleWalletManager.d.ts.map +1 -1
  23. package/out/src/SimpleWalletManager.js +7 -6
  24. package/out/src/SimpleWalletManager.js.map +1 -1
  25. package/out/src/Wallet.d.ts +50 -11
  26. package/out/src/Wallet.d.ts.map +1 -1
  27. package/out/src/Wallet.js +183 -107
  28. package/out/src/Wallet.js.map +1 -1
  29. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  30. package/out/src/WalletAuthenticationManager.js +282 -26
  31. package/out/src/WalletAuthenticationManager.js.map +1 -1
  32. package/out/src/WalletLogger.js +1 -1
  33. package/out/src/WalletLogger.js.map +1 -1
  34. package/out/src/WalletPermissionsManager.d.ts +30 -17
  35. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  36. package/out/src/WalletPermissionsManager.js +540 -312
  37. package/out/src/WalletPermissionsManager.js.map +1 -1
  38. package/out/src/WalletSettingsManager.d.ts +3 -2
  39. package/out/src/WalletSettingsManager.d.ts.map +1 -1
  40. package/out/src/WalletSettingsManager.js +141 -6
  41. package/out/src/WalletSettingsManager.js.map +1 -1
  42. package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
  43. package/out/src/entropy/EntropyCollector.js +3 -2
  44. package/out/src/entropy/EntropyCollector.js.map +1 -1
  45. package/out/src/fundWalletP2PKH.d.ts.map +1 -1
  46. package/out/src/fundWalletP2PKH.js +143 -44
  47. package/out/src/fundWalletP2PKH.js.map +1 -1
  48. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
  49. package/out/src/mockchain/MockChainTracker.js +5 -5
  50. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  51. package/out/src/mockchain/MockServices.d.ts.map +1 -1
  52. package/out/src/mockchain/MockServices.js +32 -8
  53. package/out/src/mockchain/MockServices.js.map +1 -1
  54. package/out/src/monitor/Monitor.d.ts +17 -0
  55. package/out/src/monitor/Monitor.d.ts.map +1 -1
  56. package/out/src/monitor/Monitor.js +206 -42
  57. package/out/src/monitor/Monitor.js.map +1 -1
  58. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  59. package/out/src/monitor/MonitorDaemon.js +64 -16
  60. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  61. package/out/src/monitor/monitorValidation.d.ts +12 -0
  62. package/out/src/monitor/monitorValidation.d.ts.map +1 -0
  63. package/out/src/monitor/monitorValidation.js +133 -0
  64. package/out/src/monitor/monitorValidation.js.map +1 -0
  65. package/out/src/monitor/tasks/TaskArcSSE.d.ts +2 -0
  66. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  67. package/out/src/monitor/tasks/TaskArcSSE.js +28 -12
  68. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  69. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +5 -0
  70. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  71. package/out/src/monitor/tasks/TaskCheckForProofs.js +29 -24
  72. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  73. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  74. package/out/src/monitor/tasks/TaskCheckNoSends.js +11 -3
  75. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  76. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  77. package/out/src/monitor/tasks/TaskFailAbandoned.js +9 -4
  78. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  79. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  80. package/out/src/monitor/tasks/TaskNewHeader.js +3 -1
  81. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  82. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts.map +1 -1
  83. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js +9 -3
  84. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js.map +1 -1
  85. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  86. package/out/src/monitor/tasks/TaskReorg.js +4 -4
  87. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  88. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
  89. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +17 -7
  90. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  91. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +18 -1
  92. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
  93. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +99 -21
  94. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  95. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +4 -4
  96. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
  97. package/out/src/monitor/tasks/TaskReviewUtxos.js +41 -13
  98. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  99. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  100. package/out/src/monitor/tasks/TaskSendWaiting.js +52 -11
  101. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  102. package/out/src/monitor/tasks/TaskUnFail.d.ts +1 -0
  103. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  104. package/out/src/monitor/tasks/TaskUnFail.js +26 -8
  105. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  106. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  107. package/out/src/sdk/PrivilegedKeyManager.js +3 -2
  108. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  109. package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
  110. package/out/src/sdk/WalletErrorFromJson.js +112 -2
  111. package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
  112. package/out/src/sdk/WalletServices.interfaces.d.ts +17 -1
  113. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  114. package/out/src/services/Services.d.ts +4 -0
  115. package/out/src/services/Services.d.ts.map +1 -1
  116. package/out/src/services/Services.js +260 -117
  117. package/out/src/services/Services.js.map +1 -1
  118. package/out/src/services/chaintracker/BHServiceClient.d.ts +21 -4
  119. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
  120. package/out/src/services/chaintracker/BHServiceClient.js +267 -66
  121. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  122. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +25 -3
  123. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  124. package/out/src/services/chaintracker/ChaintracksChainTracker.js +188 -53
  125. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  126. package/out/src/services/chaintracker/LocalChainTracker.d.ts +26 -0
  127. package/out/src/services/chaintracker/LocalChainTracker.d.ts.map +1 -1
  128. package/out/src/services/chaintracker/LocalChainTracker.js +180 -10
  129. package/out/src/services/chaintracker/LocalChainTracker.js.map +1 -1
  130. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
  131. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +59 -7
  132. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
  133. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +6 -0
  134. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +1 -1
  135. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +7 -0
  136. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
  137. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +2 -0
  138. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
  139. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +9 -0
  140. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
  141. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +19 -0
  142. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  143. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +237 -61
  144. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  145. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +16 -0
  146. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
  147. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +150 -26
  148. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  149. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +30 -1
  150. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  151. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +346 -30
  152. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  153. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +32 -1
  154. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
  155. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +375 -43
  156. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
  157. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  158. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +28 -3
  159. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  160. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
  161. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +33 -9
  162. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  163. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
  164. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
  165. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.d.ts.map +1 -1
  166. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js +4 -2
  167. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js.map +1 -1
  168. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +2 -0
  169. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  170. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +17 -4
  171. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  172. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts +2 -0
  173. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
  174. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +40 -20
  175. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
  176. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  177. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +14 -0
  178. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  179. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +6 -0
  180. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -1
  181. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +56 -9
  182. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -1
  183. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
  184. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +6 -3
  185. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
  186. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +4 -0
  187. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
  188. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +27 -9
  189. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  190. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts +8 -0
  191. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
  192. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +49 -5
  193. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
  194. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +1 -1
  195. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  196. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +90 -21
  197. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  198. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +3 -1
  199. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
  200. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +185 -38
  201. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  202. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  203. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +59 -6
  204. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  205. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts +2 -0
  206. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
  207. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +89 -39
  208. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  209. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +10 -0
  210. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  211. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +225 -24
  212. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  213. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +2 -1
  214. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  215. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +265 -96
  216. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  217. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +3 -0
  218. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
  219. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +225 -86
  220. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  221. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +3 -0
  222. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  223. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +121 -35
  224. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  225. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +2 -2
  226. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
  227. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
  228. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  229. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
  230. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  231. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  232. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  233. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  234. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +1 -7
  235. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  236. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
  237. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +1 -7
  238. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
  239. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
  240. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +1 -7
  241. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  242. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +18 -0
  243. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -1
  244. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +204 -14
  245. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -1
  246. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +6 -1
  247. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  248. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +486 -82
  249. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  250. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
  251. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +17 -1
  252. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  253. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts.map +1 -1
  254. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js +12 -2
  255. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js.map +1 -1
  256. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  257. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +99 -30
  258. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  259. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +1 -0
  260. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  261. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +23 -15
  262. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  263. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +7 -0
  264. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  265. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +90 -24
  266. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  267. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +2 -1
  268. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
  269. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +57 -11
  270. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
  271. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts +9 -0
  272. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts.map +1 -1
  273. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js +100 -14
  274. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js.map +1 -1
  275. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  276. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  277. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts +2 -0
  278. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -1
  279. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +104 -8
  280. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -1
  281. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts +1 -0
  282. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts.map +1 -1
  283. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js +79 -15
  284. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js.map +1 -1
  285. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +3 -0
  286. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
  287. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +15 -0
  288. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  289. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +6 -1
  290. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  291. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +311 -93
  292. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  293. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts +4 -0
  294. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts.map +1 -0
  295. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js +33 -0
  296. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js.map +1 -0
  297. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  298. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  299. package/out/src/services/classifyOutputUtxo.d.ts.map +1 -1
  300. package/out/src/services/classifyOutputUtxo.js +19 -10
  301. package/out/src/services/classifyOutputUtxo.js.map +1 -1
  302. package/out/src/services/fiatRateValidation.d.ts +12 -0
  303. package/out/src/services/fiatRateValidation.d.ts.map +1 -0
  304. package/out/src/services/fiatRateValidation.js +138 -0
  305. package/out/src/services/fiatRateValidation.js.map +1 -0
  306. package/out/src/services/getCanonicalMerklePath.d.ts +15 -0
  307. package/out/src/services/getCanonicalMerklePath.d.ts.map +1 -0
  308. package/out/src/services/getCanonicalMerklePath.js +90 -0
  309. package/out/src/services/getCanonicalMerklePath.js.map +1 -0
  310. package/out/src/services/providers/ARC.d.ts +3 -16
  311. package/out/src/services/providers/ARC.d.ts.map +1 -1
  312. package/out/src/services/providers/ARC.js +36 -37
  313. package/out/src/services/providers/ARC.js.map +1 -1
  314. package/out/src/services/providers/ArcSSEClient.d.ts +25 -19
  315. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  316. package/out/src/services/providers/ArcSSEClient.js +352 -85
  317. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  318. package/out/src/services/providers/Arcade.d.ts +1 -0
  319. package/out/src/services/providers/Arcade.d.ts.map +1 -1
  320. package/out/src/services/providers/Arcade.js +56 -41
  321. package/out/src/services/providers/Arcade.js.map +1 -1
  322. package/out/src/services/providers/Bitails.d.ts +3 -0
  323. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  324. package/out/src/services/providers/Bitails.js +79 -12
  325. package/out/src/services/providers/Bitails.js.map +1 -1
  326. package/out/src/services/providers/SdkWhatsOnChain.d.ts +8 -2
  327. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  328. package/out/src/services/providers/SdkWhatsOnChain.js +83 -10
  329. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  330. package/out/src/services/providers/WhatsOnChain.d.ts +3 -0
  331. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  332. package/out/src/services/providers/WhatsOnChain.js +221 -69
  333. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  334. package/out/src/services/providers/arcProviderConfig.d.ts +27 -0
  335. package/out/src/services/providers/arcProviderConfig.d.ts.map +1 -0
  336. package/out/src/services/providers/arcProviderConfig.js +83 -0
  337. package/out/src/services/providers/arcProviderConfig.js.map +1 -0
  338. package/out/src/services/providers/arcTxDataValidation.d.ts +4 -0
  339. package/out/src/services/providers/arcTxDataValidation.d.ts.map +1 -0
  340. package/out/src/services/providers/arcTxDataValidation.js +92 -0
  341. package/out/src/services/providers/arcTxDataValidation.js.map +1 -0
  342. package/out/src/services/providers/exchangeRates.d.ts +3 -3
  343. package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
  344. package/out/src/services/providers/exchangeRates.js +153 -226
  345. package/out/src/services/providers/exchangeRates.js.map +1 -1
  346. package/out/src/services/providers/getBeefForTxid.d.ts.map +1 -1
  347. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  348. package/out/src/services/providers/whatsOnChainHelpers.d.ts +2 -2
  349. package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +1 -1
  350. package/out/src/services/providers/whatsOnChainHelpers.js +11 -8
  351. package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -1
  352. package/out/src/services/validateMerklePathResult.d.ts +30 -0
  353. package/out/src/services/validateMerklePathResult.d.ts.map +1 -0
  354. package/out/src/services/validateMerklePathResult.js +272 -0
  355. package/out/src/services/validateMerklePathResult.js.map +1 -0
  356. package/out/src/services/validatePostBeefResult.d.ts +17 -0
  357. package/out/src/services/validatePostBeefResult.d.ts.map +1 -0
  358. package/out/src/services/validatePostBeefResult.js +334 -0
  359. package/out/src/services/validatePostBeefResult.js.map +1 -0
  360. package/out/src/services/validateRawTxResult.d.ts +6 -0
  361. package/out/src/services/validateRawTxResult.d.ts.map +1 -0
  362. package/out/src/services/validateRawTxResult.js +77 -0
  363. package/out/src/services/validateRawTxResult.js.map +1 -0
  364. package/out/src/services/validateScriptHashHistoryResult.d.ts +5 -0
  365. package/out/src/services/validateScriptHashHistoryResult.d.ts.map +1 -0
  366. package/out/src/services/validateScriptHashHistoryResult.js +99 -0
  367. package/out/src/services/validateScriptHashHistoryResult.js.map +1 -0
  368. package/out/src/services/validateStatusForTxidsResult.d.ts +8 -0
  369. package/out/src/services/validateStatusForTxidsResult.d.ts.map +1 -0
  370. package/out/src/services/validateStatusForTxidsResult.js +181 -0
  371. package/out/src/services/validateStatusForTxidsResult.js.map +1 -0
  372. package/out/src/services/validateUtxoStatusResult.d.ts +6 -0
  373. package/out/src/services/validateUtxoStatusResult.d.ts.map +1 -0
  374. package/out/src/services/validateUtxoStatusResult.js +126 -0
  375. package/out/src/services/validateUtxoStatusResult.js.map +1 -0
  376. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +3 -2
  377. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -1
  378. package/out/src/signer/actionBatch/ActionBatchPlanner.js +4 -3
  379. package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -1
  380. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +6 -5
  381. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -1
  382. package/out/src/signer/actionBatch/ActionBatchWorkspace.js +70 -76
  383. package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -1
  384. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +2 -2
  385. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -1
  386. package/out/src/signer/actionBatch/actionBatchBootstrap.js +3 -3
  387. package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -1
  388. package/out/src/signer/methods/acquireDirectCertificate.d.ts +3 -2
  389. package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
  390. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  391. package/out/src/signer/methods/buildSignableTransaction.d.ts +6 -5
  392. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  393. package/out/src/signer/methods/buildSignableTransaction.js +6 -11
  394. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  395. package/out/src/signer/methods/createAction.d.ts +4 -3
  396. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  397. package/out/src/signer/methods/createAction.js +4 -2
  398. package/out/src/signer/methods/createAction.js.map +1 -1
  399. package/out/src/signer/methods/createNoSendExpiryAction.d.ts +3 -3
  400. package/out/src/signer/methods/createNoSendExpiryAction.d.ts.map +1 -1
  401. package/out/src/signer/methods/createNoSendExpiryAction.js +9 -4
  402. package/out/src/signer/methods/createNoSendExpiryAction.js.map +1 -1
  403. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  404. package/out/src/signer/methods/internalizeAction.js +2 -2
  405. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  406. package/out/src/signer/methods/proveCertificate.d.ts +3 -2
  407. package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
  408. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  409. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  410. package/out/src/signer/methods/signAction.js +3 -2
  411. package/out/src/signer/methods/signAction.js.map +1 -1
  412. package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -1
  413. package/out/src/signer/methods/verifyUnlockScripts.js +12 -17
  414. package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -1
  415. package/out/src/storage/StorageIdb.d.ts +5 -3
  416. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  417. package/out/src/storage/StorageIdb.js +15 -20
  418. package/out/src/storage/StorageIdb.js.map +1 -1
  419. package/out/src/storage/StorageKnex.d.ts +5 -3
  420. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  421. package/out/src/storage/StorageKnex.js +143 -93
  422. package/out/src/storage/StorageKnex.js.map +1 -1
  423. package/out/src/storage/StorageProvider.d.ts +19 -9
  424. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  425. package/out/src/storage/StorageProvider.js +229 -145
  426. package/out/src/storage/StorageProvider.js.map +1 -1
  427. package/out/src/storage/StorageReader.d.ts +1 -1
  428. package/out/src/storage/StorageReader.d.ts.map +1 -1
  429. package/out/src/storage/StorageReader.js +9 -42
  430. package/out/src/storage/StorageReader.js.map +1 -1
  431. package/out/src/storage/StorageReaderWriter.d.ts +1 -0
  432. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  433. package/out/src/storage/StorageReaderWriter.js +37 -36
  434. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  435. package/out/src/storage/StorageSyncReader.d.ts +1 -1
  436. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  437. package/out/src/storage/StorageSyncReader.js +3 -36
  438. package/out/src/storage/StorageSyncReader.js.map +1 -1
  439. package/out/src/storage/WalletStorageManager.d.ts +8 -7
  440. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  441. package/out/src/storage/WalletStorageManager.js +38 -65
  442. package/out/src/storage/WalletStorageManager.js.map +1 -1
  443. package/out/src/storage/adminServer/adminServer.d.ts +1 -1
  444. package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
  445. package/out/src/storage/adminServer/adminServer.js +16 -44
  446. package/out/src/storage/adminServer/adminServer.js.map +1 -1
  447. package/out/src/storage/methods/ListActionsSpecOp.d.ts +2 -2
  448. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  449. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  450. package/out/src/storage/methods/ListOutputsSpecOp.d.ts +7 -4
  451. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  452. package/out/src/storage/methods/ListOutputsSpecOp.js +1 -0
  453. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  454. package/out/src/storage/methods/actionBatch.d.ts.map +1 -1
  455. package/out/src/storage/methods/actionBatch.js +3 -2
  456. package/out/src/storage/methods/actionBatch.js.map +1 -1
  457. package/out/src/storage/methods/actionBatchBlobs.d.ts +2 -0
  458. package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -1
  459. package/out/src/storage/methods/actionBatchBlobs.js +40 -22
  460. package/out/src/storage/methods/actionBatchBlobs.js.map +1 -1
  461. package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -1
  462. package/out/src/storage/methods/actionBatchValidation.js +22 -30
  463. package/out/src/storage/methods/actionBatchValidation.js.map +1 -1
  464. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +7 -2
  465. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  466. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +57 -44
  467. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  468. package/out/src/storage/methods/createAction.d.ts +7 -6
  469. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  470. package/out/src/storage/methods/createAction.js +7 -5
  471. package/out/src/storage/methods/createAction.js.map +1 -1
  472. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  473. package/out/src/storage/methods/generateChange.js +12 -11
  474. package/out/src/storage/methods/generateChange.js.map +1 -1
  475. package/out/src/storage/methods/getBeefForTransaction.js +5 -7
  476. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  477. package/out/src/storage/methods/internalizeAction.d.ts +3 -3
  478. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  479. package/out/src/storage/methods/internalizeAction.js +134 -129
  480. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  481. package/out/src/storage/methods/listActionsIdb.d.ts +3 -2
  482. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  483. package/out/src/storage/methods/listActionsIdb.js +2 -2
  484. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  485. package/out/src/storage/methods/listActionsKnex.d.ts +3 -2
  486. package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
  487. package/out/src/storage/methods/listActionsKnex.js +10 -9
  488. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  489. package/out/src/storage/methods/listCertificates.d.ts +3 -2
  490. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  491. package/out/src/storage/methods/listCertificates.js.map +1 -1
  492. package/out/src/storage/methods/listOutputsIdb.d.ts +3 -2
  493. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  494. package/out/src/storage/methods/listOutputsIdb.js +11 -11
  495. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  496. package/out/src/storage/methods/listOutputsKnex.d.ts +3 -2
  497. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
  498. package/out/src/storage/methods/listOutputsKnex.js +15 -23
  499. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  500. package/out/src/storage/methods/noSendExpiry.d.ts +3 -3
  501. package/out/src/storage/methods/noSendExpiry.d.ts.map +1 -1
  502. package/out/src/storage/methods/noSendExpiry.js +10 -8
  503. package/out/src/storage/methods/noSendExpiry.js.map +1 -1
  504. package/out/src/storage/methods/preparedBeef.d.ts.map +1 -1
  505. package/out/src/storage/methods/preparedBeef.js +13 -14
  506. package/out/src/storage/methods/preparedBeef.js.map +1 -1
  507. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  508. package/out/src/storage/methods/processAction.js +37 -6
  509. package/out/src/storage/methods/processAction.js.map +1 -1
  510. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts +1 -1
  511. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts.map +1 -1
  512. package/out/src/storage/methods/reconcileFailedTransactionInputs.js.map +1 -1
  513. package/out/src/storage/methods/reviewStatusIdb.d.ts +1 -1
  514. package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
  515. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  516. package/out/src/storage/methods/reviewUtxoOutputs.d.ts +1 -0
  517. package/out/src/storage/methods/reviewUtxoOutputs.d.ts.map +1 -1
  518. package/out/src/storage/methods/reviewUtxoOutputs.js +51 -4
  519. package/out/src/storage/methods/reviewUtxoOutputs.js.map +1 -1
  520. package/out/src/storage/methods/validateSyncProof.d.ts.map +1 -1
  521. package/out/src/storage/methods/validateSyncProof.js +3 -3
  522. package/out/src/storage/methods/validateSyncProof.js.map +1 -1
  523. package/out/src/storage/portable/index.d.ts.map +1 -1
  524. package/out/src/storage/portable/index.js +21 -13
  525. package/out/src/storage/portable/index.js.map +1 -1
  526. package/out/src/storage/remoting/BinaryJson.d.ts +11 -0
  527. package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -1
  528. package/out/src/storage/remoting/BinaryJson.js +37 -0
  529. package/out/src/storage/remoting/BinaryJson.js.map +1 -1
  530. package/out/src/storage/remoting/KnexSessionManager.d.ts +26 -2
  531. package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -1
  532. package/out/src/storage/remoting/KnexSessionManager.js +222 -30
  533. package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
  534. package/out/src/storage/remoting/KnexSyncTransferStore.d.ts.map +1 -1
  535. package/out/src/storage/remoting/KnexSyncTransferStore.js +3 -4
  536. package/out/src/storage/remoting/KnexSyncTransferStore.js.map +1 -1
  537. package/out/src/storage/remoting/StorageClient.d.ts +6 -1
  538. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  539. package/out/src/storage/remoting/StorageClient.js +63 -6
  540. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  541. package/out/src/storage/remoting/StorageClientBase.d.ts +23 -6
  542. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  543. package/out/src/storage/remoting/StorageClientBase.js +148 -19
  544. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  545. package/out/src/storage/remoting/StorageMobile.d.ts +5 -0
  546. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  547. package/out/src/storage/remoting/StorageMobile.js +11 -9
  548. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  549. package/out/src/storage/remoting/StorageServer.d.ts +5 -1
  550. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  551. package/out/src/storage/remoting/StorageServer.js +95 -19
  552. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  553. package/out/src/storage/remoting/SyncTransfer.d.ts.map +1 -1
  554. package/out/src/storage/remoting/SyncTransfer.js +3 -2
  555. package/out/src/storage/remoting/SyncTransfer.js.map +1 -1
  556. package/out/src/storage/schema/KnexMigrations.d.ts +1 -0
  557. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  558. package/out/src/storage/schema/KnexMigrations.js +28 -6
  559. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  560. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
  561. package/out/src/storage/schema/entities/EntityOutput.js +11 -4
  562. package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
  563. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +2 -1
  564. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
  565. package/out/src/storage/schema/entities/EntityProvenTx.js +93 -39
  566. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  567. package/out/src/storage/schema/entities/EntityProvenTxReq.js +1 -1
  568. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  569. package/out/src/storage/schema/entities/EntitySyncState.js +1 -1
  570. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  571. package/out/src/storage/schema/tables/TableCertificate.d.ts +1 -1
  572. package/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -1
  573. package/out/src/storage/schema/tables/TableCertificateField.d.ts +1 -1
  574. package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -1
  575. package/out/src/storage/schema/tables/TableCommission.d.ts +1 -1
  576. package/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -1
  577. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +1 -1
  578. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -1
  579. package/out/src/storage/schema/tables/TableOutput.d.ts +1 -1
  580. package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
  581. package/out/src/storage/schema/tables/TableOutputBasket.d.ts +1 -1
  582. package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -1
  583. package/out/src/storage/schema/tables/TableOutputTag.d.ts +1 -1
  584. package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -1
  585. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +1 -1
  586. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -1
  587. package/out/src/storage/schema/tables/TableProvenTx.d.ts +1 -1
  588. package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -1
  589. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +1 -1
  590. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -1
  591. package/out/src/storage/schema/tables/TableSettings.d.ts +1 -1
  592. package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
  593. package/out/src/storage/schema/tables/TableSyncState.d.ts +1 -1
  594. package/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -1
  595. package/out/src/storage/schema/tables/TableTransaction.d.ts +1 -1
  596. package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
  597. package/out/src/storage/schema/tables/TableTransaction.js.map +1 -1
  598. package/out/src/storage/schema/tables/TableTxLabel.d.ts +1 -1
  599. package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -1
  600. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +1 -1
  601. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -1
  602. package/out/src/storage/schema/tables/TableUser.d.ts +1 -1
  603. package/out/src/storage/schema/tables/TableUser.d.ts.map +1 -1
  604. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  605. package/out/src/storage/sync/StorageMySQLDojoReader.js +8 -7
  606. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  607. package/out/src/utility/actionBatchDigest.d.ts.map +1 -1
  608. package/out/src/utility/actionBatchDigest.js +9 -7
  609. package/out/src/utility/actionBatchDigest.js.map +1 -1
  610. package/out/src/utility/actionBatchPack.d.ts.map +1 -1
  611. package/out/src/utility/actionBatchPack.js +7 -12
  612. package/out/src/utility/actionBatchPack.js.map +1 -1
  613. package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -1
  614. package/out/src/utility/brc153ReferenceLabels.js +4 -4
  615. package/out/src/utility/brc153ReferenceLabels.js.map +1 -1
  616. package/out/src/utility/brc177NoSendExpiry.d.ts +2 -2
  617. package/out/src/utility/brc177NoSendExpiry.d.ts.map +1 -1
  618. package/out/src/utility/canonicalizeAtomicBeef.js +2 -2
  619. package/out/src/utility/canonicalizeAtomicBeef.js.map +1 -1
  620. package/out/src/utility/exactActionSpend.d.ts +11 -0
  621. package/out/src/utility/exactActionSpend.d.ts.map +1 -0
  622. package/out/src/utility/exactActionSpend.js +11 -0
  623. package/out/src/utility/exactActionSpend.js.map +1 -0
  624. package/out/src/utility/identityUtils.d.ts +44 -4
  625. package/out/src/utility/identityUtils.d.ts.map +1 -1
  626. package/out/src/utility/identityUtils.js +376 -61
  627. package/out/src/utility/identityUtils.js.map +1 -1
  628. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
  629. package/out/src/utility/parseTxScriptOffsets.js +1 -19
  630. package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
  631. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  632. package/out/src/utility/tscProofToMerklePath.js +35 -4
  633. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  634. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  635. package/out/src/utility/utilityHelpers.js +8 -6
  636. package/out/src/utility/utilityHelpers.js.map +1 -1
  637. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  638. package/out/src/utility/utilityHelpers.noBuffer.js +6 -6
  639. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  640. package/out/src/utility/verifyOverlayOutput.d.ts +12 -0
  641. package/out/src/utility/verifyOverlayOutput.d.ts.map +1 -0
  642. package/out/src/utility/verifyOverlayOutput.js +22 -0
  643. package/out/src/utility/verifyOverlayOutput.js.map +1 -0
  644. package/out/src/utility/walletResultGuards.d.ts +14 -0
  645. package/out/src/utility/walletResultGuards.d.ts.map +1 -0
  646. package/out/src/utility/walletResultGuards.js +28 -0
  647. package/out/src/utility/walletResultGuards.js.map +1 -0
  648. package/out/src/wab-client/WABClient.d.ts +3 -17
  649. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  650. package/out/src/wab-client/WABClient.js +30 -14
  651. package/out/src/wab-client/WABClient.js.map +1 -1
  652. package/out/src/wab-client/WABResponseValidation.d.ts +48 -0
  653. package/out/src/wab-client/WABResponseValidation.d.ts.map +1 -0
  654. package/out/src/wab-client/WABResponseValidation.js +321 -0
  655. package/out/src/wab-client/WABResponseValidation.js.map +1 -0
  656. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  657. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +3 -2
  658. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  659. package/package.json +5 -5
@@ -4,9 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.WhatsOnChain = exports.WhatsOnChainNoServices = void 0;
7
+ exports.validateWocChainInfo = validateWocChainInfo;
7
8
  exports.convertWocToBlockHeaderHex = convertWocToBlockHeaderHex;
8
9
  exports.getWhatsOnChainBlockHeaderByHash = getWhatsOnChainBlockHeaderByHash;
9
10
  const sdk_1 = require("@bsv/sdk");
11
+ const utils_1 = require("@bsv/sdk/primitives/utils");
10
12
  const tscProofToMerklePath_1 = require("../../utility/tscProofToMerklePath");
11
13
  const SdkWhatsOnChain_1 = __importDefault(require("./SdkWhatsOnChain"));
12
14
  const WERR_errors_1 = require("../../sdk/WERR_errors");
@@ -15,17 +17,106 @@ const utilityHelpers_1 = require("../../utility/utilityHelpers");
15
17
  const utilityHelpers_noBuffer_1 = require("../../utility/utilityHelpers.noBuffer");
16
18
  const Services_1 = require("../Services");
17
19
  const whatsOnChainHelpers_1 = require("./whatsOnChainHelpers");
20
+ const blockHeaderUtilities_1 = require("../chaintracker/chaintracks/util/blockHeaderUtilities");
21
+ const validateMerklePathResult_1 = require("../validateMerklePathResult");
22
+ const validateStatusForTxidsResult_1 = require("../validateStatusForTxidsResult");
23
+ const validateRawTxResult_1 = require("../validateRawTxResult");
24
+ const validateUtxoStatusResult_1 = require("../validateUtxoStatusResult");
25
+ const validateScriptHashHistoryResult_1 = require("../validateScriptHashHistoryResult");
26
+ const validatePostBeefResult_1 = require("../validatePostBeefResult");
27
+ const HEX_32_BYTES = /^[0-9a-fA-F]{64}$/;
28
+ const UINT32_MAX = 0xffffffff;
29
+ const MAX_BLOCK_HEIGHT = 0x7fffffff;
30
+ function requirePlainDataRecord(value, name) {
31
+ if (value == null || typeof value !== 'object' || Array.isArray(value)) {
32
+ throw new Error(`${name} must be a plain data object.`);
33
+ }
34
+ const prototype = Object.getPrototypeOf(value);
35
+ if (prototype !== Object.prototype && prototype !== null) {
36
+ throw new Error(`${name} must be a plain data object.`);
37
+ }
38
+ const descriptors = Object.getOwnPropertyDescriptors(value);
39
+ if (Object.getOwnPropertySymbols(value).length !== 0 ||
40
+ Object.keys(descriptors).length > 64 ||
41
+ Object.values(descriptors).some(d => d.get != null || d.set != null)) {
42
+ throw new Error(`${name} must contain only bounded data properties.`);
43
+ }
44
+ }
45
+ function requireDenseWocArray(value, name) {
46
+ if (!Array.isArray(value) || value.length > validateUtxoStatusResult_1.MAX_UTXO_STATUS_DETAILS) {
47
+ throw new Error(`${name} must be a bounded dense array.`);
48
+ }
49
+ const descriptors = Object.getOwnPropertyDescriptors(value);
50
+ if (Object.getOwnPropertySymbols(value).length !== 0 ||
51
+ Object.values(descriptors).some(descriptor => descriptor.get != null || descriptor.set != null)) {
52
+ throw new Error(`${name} must be a bounded dense array.`);
53
+ }
54
+ const expectedKeys = new Set(['length', ...Array.from({ length: value.length }, (_, index) => String(index))]);
55
+ if (Object.keys(descriptors).some(key => !expectedKeys.has(key)) ||
56
+ Object.keys(descriptors).length !== expectedKeys.size) {
57
+ throw new Error(`${name} must be a bounded dense array.`);
58
+ }
59
+ return value;
60
+ }
61
+ function requireInteger(value, name, maximum) {
62
+ if (!Number.isSafeInteger(value) || value < 0 || value > maximum) {
63
+ throw new Error(`${name} must be an integer between 0 and ${maximum}.`);
64
+ }
65
+ return value;
66
+ }
67
+ function requireFiniteNumber(value, name, maximum = Number.MAX_VALUE) {
68
+ if (typeof value !== 'number' || !Number.isFinite(value) || value < 0 || value > maximum) {
69
+ throw new Error(`${name} must be a finite non-negative number.`);
70
+ }
71
+ return value;
72
+ }
73
+ function requireHex32(value, name) {
74
+ if (typeof value !== 'string' || !HEX_32_BYTES.test(value))
75
+ throw new Error(`${name} must be 32 hex bytes.`);
76
+ return value.toLowerCase();
77
+ }
78
+ function requireHeaderBits(value) {
79
+ if (typeof value === 'string') {
80
+ if (!/^[0-9a-fA-F]{1,8}$/.test(value))
81
+ throw new Error('WhatsOnChain header bits are invalid.');
82
+ return Number.parseInt(value, 16);
83
+ }
84
+ return requireInteger(value, 'WhatsOnChain header bits', UINT32_MAX);
85
+ }
86
+ function validateWocChainInfo(value, expectedChain) {
87
+ requirePlainDataRecord(value, 'WhatsOnChain chain info');
88
+ if (value.chain !== expectedChain) {
89
+ throw new Error(`WhatsOnChain returned chain ${String(value.chain)} for configured chain ${expectedChain}.`);
90
+ }
91
+ if (typeof value.pruned !== 'boolean')
92
+ throw new Error('WhatsOnChain chain info pruned must be boolean.');
93
+ return {
94
+ chain: value.chain,
95
+ blocks: requireInteger(value.blocks, 'WhatsOnChain chain info blocks', MAX_BLOCK_HEIGHT),
96
+ headers: requireInteger(value.headers, 'WhatsOnChain chain info headers', MAX_BLOCK_HEIGHT),
97
+ bestblockhash: requireHex32(value.bestblockhash, 'WhatsOnChain chain info bestblockhash'),
98
+ difficulty: requireFiniteNumber(value.difficulty, 'WhatsOnChain chain info difficulty'),
99
+ mediantime: requireInteger(value.mediantime, 'WhatsOnChain chain info mediantime', UINT32_MAX),
100
+ verificationprogress: requireFiniteNumber(value.verificationprogress, 'WhatsOnChain chain info verificationprogress', 2),
101
+ pruned: value.pruned,
102
+ chainwork: requireHex32(value.chainwork, 'WhatsOnChain chain info chainwork')
103
+ };
104
+ }
18
105
  class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
19
106
  requestGate;
20
107
  constructor(chain = 'main', config = {}) {
21
108
  if (chain === 'mock')
22
109
  throw new Error("WhatsOnChain does not support 'mock' chain. Use MockServices directly.");
23
110
  super(chain, config);
24
- this.requestGate = config.requestGate;
111
+ const requestGate = Object.getOwnPropertyDescriptor(config, 'requestGate')?.value;
112
+ if (requestGate !== undefined && typeof requestGate !== 'function') {
113
+ throw new Error('WhatsOnChain request gate must be a function or absent.');
114
+ }
115
+ this.requestGate = requestGate;
25
116
  }
26
117
  async requestWithAnonymousAuthFallback(url, requestOptions) {
27
118
  await this.requestGate?.();
28
- const response = await this.httpClient.request(url, requestOptions);
119
+ const response = await this.request(url, requestOptions);
29
120
  if ((response.status !== 401 && response.status !== 403) || this.apiKey.trim() === '') {
30
121
  return response;
31
122
  }
@@ -35,7 +126,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
35
126
  await this.requestGate();
36
127
  else
37
128
  await (0, utilityHelpers_1.wait)(350);
38
- return await this.httpClient.request(url, {
129
+ return await this.request(url, {
39
130
  method: 'GET',
40
131
  headers: { Accept: 'application/json' }
41
132
  });
@@ -62,6 +153,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
62
153
  * [{"txid":"6815f8014db74eab8b7f75925c68929597f1d97efa970109d990824c25e5e62c","error":"unknown"}]
63
154
  */
64
155
  async getStatusForTxids(txids) {
156
+ const normalizedTxids = txids.map((txid, index) => (0, validateMerklePathResult_1.normalizeTxid)(txid, `txids[${index}]`));
65
157
  const r = {
66
158
  name: 'WoC',
67
159
  status: 'error',
@@ -71,21 +163,20 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
71
163
  const requestOptions = {
72
164
  method: 'POST',
73
165
  headers: this.getHttpHeaders(),
74
- data: { txids }
166
+ data: { txids: normalizedTxids }
75
167
  };
76
168
  const url = `${this.URL}/txs/status`;
77
169
  try {
78
- const response = await this.httpClient.request(url, requestOptions);
170
+ const response = await this.request(url, requestOptions);
79
171
  if (!response.data || !response.ok || response.status !== 200) {
80
172
  throw new WERR_errors_1.WERR_INVALID_OPERATION('Unable to get status for txids at this timei.');
81
173
  }
82
174
  const data = response.data;
83
- for (const txid of txids) {
175
+ for (const txid of normalizedTxids) {
84
176
  const d = data.find(d => d.txid === txid);
85
177
  if (d == null || d.error === 'unknown')
86
178
  r.results.push({ txid, status: 'unknown', depth: undefined });
87
179
  else if (d.error !== undefined) {
88
- console.log(`WhatsOnChain getStatusForTxids unexpected error ${d.error} ${txid}`);
89
180
  r.results.push({ txid, status: 'unknown', depth: undefined });
90
181
  }
91
182
  else if (d.confirmations === undefined)
@@ -94,10 +185,13 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
94
185
  r.results.push({ txid, status: 'mined', depth: d.confirmations });
95
186
  }
96
187
  r.status = 'success';
188
+ return (0, validateStatusForTxidsResult_1.validateStatusForTxidsResult)(r, normalizedTxids, r.name);
97
189
  }
98
190
  catch (error_) {
99
191
  const e = WalletError_1.WalletError.fromUnknown(error_);
192
+ r.status = 'error';
100
193
  r.error = e;
194
+ r.results = [];
101
195
  }
102
196
  return r;
103
197
  }
@@ -111,7 +205,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
111
205
  method: 'GET',
112
206
  headers: this.getHttpHeaders()
113
207
  };
114
- const response = await this.httpClient.request(`${this.URL}/tx/hash/${txid}/propagation`, requestOptions);
208
+ const response = await this.request(`${this.URL}/tx/hash/${txid}/propagation`, requestOptions);
115
209
  // response.statusText is often, but not always 'OK' on success...
116
210
  if (!response.data || !response.ok || response.status !== 200) {
117
211
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('txid', `valid transaction. '${txid}' response ${response.statusText}`);
@@ -124,15 +218,16 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
124
218
  * @returns raw transaction as hex string or undefined if txid not found in mined block.
125
219
  */
126
220
  async getRawTx(txid) {
221
+ const normalizedTxid = (0, validateMerklePathResult_1.normalizeTxid)(txid);
127
222
  const headers = this.getHttpHeaders();
128
223
  headers['Cache-Control'] = 'no-cache';
129
224
  const requestOptions = {
130
225
  method: 'GET',
131
226
  headers
132
227
  };
133
- const url = `${this.URL}/tx/${txid}/hex`;
228
+ const url = `${this.URL}/tx/${normalizedTxid}/hex`;
134
229
  for (let retry = 0; retry < 2; retry++) {
135
- const response = await this.httpClient.request(url, requestOptions);
230
+ const response = await this.request(url, requestOptions);
136
231
  if (response.statusText === 'Too Many Requests' && retry < 2) {
137
232
  await (0, utilityHelpers_1.wait)(2000);
138
233
  continue;
@@ -143,21 +238,28 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
143
238
  if (!response.data || !response.ok || response.status !== 200) {
144
239
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('txid', `valid transaction. '${txid}' response ${response.statusText}`);
145
240
  }
146
- return response.data;
241
+ if (response.data.length === 0 ||
242
+ response.data.length > validateRawTxResult_1.MAX_RAW_TRANSACTION_BYTES * 2 ||
243
+ response.data.length % 2 !== 0 ||
244
+ !/^[0-9a-fA-F]+$/.test(response.data)) {
245
+ throw new WERR_errors_1.WERR_INVALID_OPERATION('WhatsOnChain returned malformed or excessive raw transaction data.');
246
+ }
247
+ return response.data.toLowerCase();
147
248
  }
148
249
  throw new WERR_errors_1.WERR_INTERNAL();
149
250
  }
150
251
  async getRawTxResult(txid) {
151
- const r = { name: 'WoC', txid: (0, utilityHelpers_noBuffer_1.asString)(txid) };
252
+ const normalizedTxid = (0, validateMerklePathResult_1.normalizeTxid)(txid);
253
+ const r = { name: 'WoC', txid: normalizedTxid };
152
254
  try {
153
- const rawTxHex = await this.getRawTx(txid);
255
+ const rawTxHex = await this.getRawTx(normalizedTxid);
154
256
  if (rawTxHex)
155
257
  r.rawTx = (0, utilityHelpers_noBuffer_1.asArray)(rawTxHex);
156
258
  }
157
259
  catch (err) {
158
260
  r.error = WalletError_1.WalletError.fromUnknown(err);
159
261
  }
160
- return r;
262
+ return (0, validateRawTxResult_1.validateRawTxResult)(r, normalizedTxid, 'WoC');
161
263
  }
162
264
  /**
163
265
  * WhatsOnChain does not natively support a postBeef end-point aware of multiple txids of interest in the Beef.
@@ -169,6 +271,9 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
169
271
  * @returns
170
272
  */
171
273
  async postBeef(beef, txids) {
274
+ const request = (0, validatePostBeefResult_1.snapshotPostBeefRequest)(beef, txids);
275
+ beef = sdk_1.Beef.fromBinaryStrict(request.beefBytes);
276
+ txids = request.txids;
172
277
  const r = {
173
278
  name: 'WoC',
174
279
  status: 'success',
@@ -179,7 +284,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
179
284
  const nn = () => ({ name: 'WoCpostBeef', when: new Date().toISOString() });
180
285
  const nne = () => ({ ...nn(), beef: beef.toHex(), txids: txids.join(',') });
181
286
  for (const txid of txids) {
182
- const rawTx = sdk_1.Utils.toHex(beef.findTxid(txid).rawTx);
287
+ const rawTx = (0, utils_1.toHex)(beef.findTxid(txid).rawTx);
183
288
  if (delay) {
184
289
  // For multiple txids, give WoC time to propagate each one.
185
290
  await (0, utilityHelpers_1.wait)(3000);
@@ -199,14 +304,15 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
199
304
  else {
200
305
  r.notes.push({ ...nne(), what: 'postBeefError' });
201
306
  }
202
- return r;
307
+ return (0, validatePostBeefResult_1.validatePostBeefResultOrServiceError)(r, txids, 'WoC');
203
308
  }
204
309
  /**
205
310
  * @param rawTx raw transaction to broadcast as hex string
206
311
  * @returns txid returned by transaction processor of transaction broadcast
207
312
  */
208
313
  async postRawTx(rawTx) {
209
- const txid = sdk_1.Utils.toHex((0, utilityHelpers_1.doubleSha256BE)(sdk_1.Utils.toArray(rawTx, 'hex')));
314
+ rawTx = (0, validatePostBeefResult_1.normalizePostRawHex)(rawTx, validateRawTxResult_1.MAX_RAW_TRANSACTION_BYTES);
315
+ const txid = (0, utils_1.toHex)((0, utilityHelpers_1.doubleSha256BE)((0, utils_1.toArray)(rawTx, 'hex')));
210
316
  const r = {
211
317
  txid,
212
318
  status: 'success',
@@ -226,7 +332,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
226
332
  const retryLimit = 5;
227
333
  for (let retry = 0; retry < retryLimit; retry++) {
228
334
  try {
229
- const response = await this.httpClient.request(url, requestOptions);
335
+ const response = await this.request(url, requestOptions);
230
336
  if (response.statusText === 'Too Many Requests' && retry < 2) {
231
337
  r.notes.push({ ...nn(), what: 'postRawTxRateLimit' });
232
338
  await (0, utilityHelpers_1.wait)(2000);
@@ -254,7 +360,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
254
360
  r.serviceError = true;
255
361
  r.data = `${e.code} ${e.description}`;
256
362
  }
257
- return r;
363
+ return (0, validatePostBeefResult_1.validatePostTxResultOrServiceError)(r, txid, 'WoC');
258
364
  }
259
365
  r.status = 'error';
260
366
  r.serviceError = true;
@@ -263,7 +369,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
263
369
  what: 'postRawTxRetryLimit',
264
370
  retryLimit
265
371
  });
266
- return r;
372
+ return (0, validatePostBeefResult_1.validatePostTxResultOrServiceError)(r, txid, 'WoC');
267
373
  }
268
374
  async updateBsvExchangeRate(rate, updateMsecs) {
269
375
  if (rate != null) {
@@ -277,7 +383,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
277
383
  headers: this.getHttpHeaders()
278
384
  };
279
385
  for (let retry = 0; retry < 2; retry++) {
280
- const response = await this.httpClient.request(`${this.URL}/exchangerate`, requestOptions);
386
+ const response = await this.request(`${this.URL}/exchangerate`, requestOptions);
281
387
  if (response.statusText === 'Too Many Requests' && retry < 2) {
282
388
  await (0, utilityHelpers_1.wait)(2000);
283
389
  continue;
@@ -305,7 +411,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
305
411
  const requestOptions = { method: 'GET', headers: this.getHttpHeaders() };
306
412
  for (let retry = 0; retry <= 2; retry++) {
307
413
  try {
308
- const response = await this.httpClient.request(url, requestOptions);
414
+ const response = await this.request(url, requestOptions);
309
415
  if (response.statusText === 'Too Many Requests' && retry < 2) {
310
416
  await (0, utilityHelpers_1.wait)(2000);
311
417
  continue;
@@ -326,14 +432,27 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
326
432
  throw new WERR_errors_1.WERR_INVALID_OPERATION(`WoC getUtxoStatus response ${response.statusText}`);
327
433
  }
328
434
  const data = response.data;
329
- if (data.script !== scriptHash || !Array.isArray(data.result))
330
- throw new WERR_errors_1.WERR_INTERNAL('data. is not an array');
435
+ requirePlainDataRecord(data, 'WhatsOnChain UTXO status');
436
+ if (data.script !== scriptHash)
437
+ throw new WERR_errors_1.WERR_INTERNAL('WhatsOnChain UTXO status script hash mismatch');
438
+ const details = requireDenseWocArray(data.result, 'WhatsOnChain UTXO status result').map((candidate, index) => {
439
+ requirePlainDataRecord(candidate, `WhatsOnChain UTXO status result[${index}]`);
440
+ return {
441
+ txid: requireHex32(candidate.tx_hash, `WhatsOnChain UTXO status result[${index}].tx_hash`),
442
+ satoshis: requireInteger(candidate.value, `WhatsOnChain UTXO status result[${index}].value`, Number.MAX_SAFE_INTEGER),
443
+ height: requireInteger(candidate.height, `WhatsOnChain UTXO status result[${index}].height`, MAX_BLOCK_HEIGHT),
444
+ index: requireInteger(candidate.tx_pos, `WhatsOnChain UTXO status result[${index}].tx_pos`, UINT32_MAX)
445
+ };
446
+ });
447
+ const normalizedOutpoint = (0, validateUtxoStatusResult_1.normalizeWalletOutpoint)(outpoint);
331
448
  r.status = 'success';
332
449
  r.error = undefined;
333
- if (data.result.length === 0)
334
- r.isUtxo = false;
335
- else
336
- (0, whatsOnChainHelpers_1.populateUtxoDetails)(r, data.result, outpoint);
450
+ r.details = details;
451
+ r.isUtxo =
452
+ normalizedOutpoint == null
453
+ ? details.length > 0
454
+ : details.some(detail => `${detail.txid}.${detail.index}` === normalizedOutpoint);
455
+ Object.assign(r, (0, validateUtxoStatusResult_1.validateUtxoStatusResult)(r, normalizedOutpoint, 'WoC'));
337
456
  }
338
457
  async getScriptHashConfirmedHistory(hash) {
339
458
  const r = {
@@ -342,32 +461,37 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
342
461
  error: undefined,
343
462
  history: []
344
463
  };
345
- // reverse hash from LE to BE for Woc
346
- hash = sdk_1.Utils.toHex(sdk_1.Utils.toArray(hash, 'hex').reverse());
464
+ // Convert the exact little-endian wallet hash to the big-endian WoC route.
465
+ hash = (0, Services_1.validateScriptHash)(hash, 'hashLE');
347
466
  const url = `${this.URL}/script/${hash}/confirmed/history`;
348
467
  const methodName = 'getScriptHashConfirmedHistory';
349
468
  for (let retry = 0; retry <= 2; retry++) {
350
469
  try {
351
470
  const requestOptions = { method: 'GET', headers: this.getHttpHeaders() };
352
- const response = await this.httpClient.request(url, requestOptions);
471
+ const response = await this.request(url, requestOptions);
472
+ requirePlainDataRecord(response, 'WhatsOnChain script-history response');
473
+ if (response.data != null)
474
+ requirePlainDataRecord(response.data, 'WhatsOnChain script-history data');
353
475
  const action = (0, whatsOnChainHelpers_1.handleScriptHashHistoryResponse)(r, response, methodName, retry);
354
476
  if (action === 'continue') {
355
477
  await (0, utilityHelpers_1.wait)(2000);
356
478
  continue;
357
479
  }
358
480
  if (action === 'return')
359
- return r;
360
- r.history = response.data.result.map((d) => ({
361
- txid: d.tx_hash,
362
- height: d.height
363
- }));
481
+ return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(r, 'WoC');
482
+ r.history = requireDenseWocArray(response.data.result, 'WhatsOnChain confirmed script history').map((candidate, index) => {
483
+ requirePlainDataRecord(candidate, `WhatsOnChain confirmed script history[${index}]`);
484
+ const txid = requireHex32(candidate.tx_hash, `WhatsOnChain confirmed script history[${index}].tx_hash`);
485
+ const height = requireInteger(candidate.height, `WhatsOnChain confirmed script history[${index}].height`, MAX_BLOCK_HEIGHT);
486
+ return { txid, height };
487
+ });
364
488
  r.status = 'success';
365
- return r;
489
+ return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(r, 'WoC');
366
490
  }
367
491
  catch (error_) {
368
492
  const shouldRetry = (0, whatsOnChainHelpers_1.handleScriptHashHistoryCatch)(r, error_, url, methodName, retry, 2);
369
493
  if (!shouldRetry)
370
- return r;
494
+ return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(r, 'WoC');
371
495
  }
372
496
  }
373
497
  return r;
@@ -379,33 +503,40 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
379
503
  error: undefined,
380
504
  history: []
381
505
  };
382
- // reverse hash from LE to BE for Woc
383
- hash = sdk_1.Utils.toHex(sdk_1.Utils.toArray(hash, 'hex').reverse());
506
+ // Convert the exact little-endian wallet hash to the big-endian WoC route.
507
+ hash = (0, Services_1.validateScriptHash)(hash, 'hashLE');
384
508
  const url = `${this.URL}/script/${hash}/unconfirmed/history`;
385
509
  const methodName = 'getScriptHashUnconfirmedHistory';
386
510
  for (let retry = 0;; retry++) {
387
511
  try {
388
512
  const requestOptions = { method: 'GET', headers: this.getHttpHeaders() };
389
- const response = await this.httpClient.request(url, requestOptions);
513
+ const response = await this.request(url, requestOptions);
514
+ requirePlainDataRecord(response, 'WhatsOnChain script-history response');
515
+ if (response.data != null)
516
+ requirePlainDataRecord(response.data, 'WhatsOnChain script-history data');
390
517
  const action = (0, whatsOnChainHelpers_1.handleScriptHashHistoryResponse)(r, response, methodName, retry);
391
518
  if (action === 'continue') {
392
519
  await (0, utilityHelpers_1.wait)(2000);
393
520
  continue;
394
521
  }
395
522
  if (action === 'return')
396
- return r;
397
- r.history = response.data.result.map((d) => ({
398
- txid: d.tx_hash,
399
- height: d.height
400
- }));
523
+ return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(r, 'WoC');
524
+ r.history = requireDenseWocArray(response.data.result, 'WhatsOnChain unconfirmed script history').map((candidate, index) => {
525
+ requirePlainDataRecord(candidate, `WhatsOnChain unconfirmed script history[${index}]`);
526
+ const txid = requireHex32(candidate.tx_hash, `WhatsOnChain unconfirmed script history[${index}].tx_hash`);
527
+ if (candidate.height !== undefined) {
528
+ requireInteger(candidate.height, `WhatsOnChain unconfirmed script history[${index}].height`, MAX_BLOCK_HEIGHT);
529
+ }
530
+ return candidate.height === undefined ? { txid } : { txid, height: candidate.height };
531
+ });
401
532
  r.status = 'success';
402
- return r;
533
+ return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(r, 'WoC');
403
534
  }
404
535
  catch (error_) {
405
536
  // Note: original used retry > 2 (not >= 2) for the unconfirmed variant
406
537
  const shouldRetry = (0, whatsOnChainHelpers_1.handleScriptHashHistoryCatch)(r, error_, url, methodName, retry, 3);
407
538
  if (!shouldRetry)
408
- return r;
539
+ return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(r, 'WoC');
409
540
  }
410
541
  }
411
542
  }
@@ -416,8 +547,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
416
547
  const r2 = await this.getScriptHashUnconfirmedHistory(hash);
417
548
  if (r2.error || r2.status !== 'success')
418
549
  return r2;
419
- r1.history = r1.history.concat(r2.history);
420
- return r1;
550
+ return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)({ name: 'WoC', status: 'success', history: r1.history.concat(r2.history) }, 'WoC');
421
551
  }
422
552
  /**
423
553
  {
@@ -441,12 +571,13 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
441
571
  }
442
572
  */
443
573
  async getBlockHeaderByHash(hash) {
574
+ const requestedHash = requireHex32(hash, 'hash');
444
575
  const headers = this.getHttpHeaders();
445
576
  const requestOptions = {
446
577
  method: 'GET',
447
578
  headers
448
579
  };
449
- const url = `${this.URL}/block/${hash}/header`;
580
+ const url = `${this.URL}/block/${requestedHash}/header`;
450
581
  for (let retry = 0; retry < 2; retry++) {
451
582
  const response = await this.requestWithAnonymousAuthFallback(url, requestOptions);
452
583
  if (response.statusText === 'Too Many Requests' && retry < 2) {
@@ -460,6 +591,9 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
460
591
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('hash', `valid block hash. '${hash}' response ${response.statusText}`);
461
592
  }
462
593
  const header = convertWocToBlockHeaderHex(response.data);
594
+ if (header.hash !== requestedHash) {
595
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('hash', `matching block hash. Expected '${requestedHash}', got '${header.hash}'.`);
596
+ }
463
597
  return header;
464
598
  }
465
599
  throw new WERR_errors_1.WERR_INTERNAL();
@@ -481,7 +615,8 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
481
615
  if (!response.data || !response.ok || response.status !== 200) {
482
616
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('hash', `valid block hash. '${url}' response ${response.statusText}`);
483
617
  }
484
- return response.data;
618
+ const expectedChain = this.network === 'ttn' ? 'test' : this.network;
619
+ return validateWocChainInfo(response.data, expectedChain);
485
620
  }
486
621
  throw new WERR_errors_1.WERR_INTERNAL();
487
622
  }
@@ -507,7 +642,7 @@ class WhatsOnChain extends WhatsOnChainNoServices {
507
642
  const url = `${this.URL}/tx/${txid}/proof/tsc`;
508
643
  for (let retry = 0; retry < 2; retry++) {
509
644
  try {
510
- const response = await this.httpClient.request(url, requestOptions);
645
+ const response = await this.request(url, requestOptions);
511
646
  const classification = (0, whatsOnChainHelpers_1.classifyMerklePathResponse)(response.status, response.statusText, retry);
512
647
  if (classification === 'retry') {
513
648
  r.notes.push((0, whatsOnChainHelpers_1.makeMerklePathNote)('getMerklePathRetry', name, { status: response.status, statusText: response.statusText }));
@@ -548,10 +683,19 @@ class WhatsOnChain extends WhatsOnChainNoServices {
548
683
  if (response.data.length !== 1)
549
684
  return;
550
685
  const p = response.data[0];
551
- const header = await services.hashToHeader(p.target);
686
+ const target = (0, validateMerklePathResult_1.normalizeTxid)(p.target, 'TSC proof target');
687
+ const header = await services.hashToHeader(target);
552
688
  if (header) {
553
- r.merklePath = (0, tscProofToMerklePath_1.convertProofToMerklePath)(txid, { index: p.index, nodes: p.nodes, height: header.height });
554
- r.header = header;
689
+ if ((0, validateMerklePathResult_1.normalizeTxid)(header.hash, 'TSC proof header hash') !== target) {
690
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('blockhash', 'the requested canonical block header');
691
+ }
692
+ const candidate = {
693
+ merklePath: (0, tscProofToMerklePath_1.convertProofToMerklePath)(txid, { index: p.index, nodes: p.nodes, height: header.height }),
694
+ header
695
+ };
696
+ const validated = (0, validateMerklePathResult_1.validateMerklePathResult)(txid, candidate);
697
+ r.merklePath = validated.merklePath;
698
+ r.header = validated.header;
555
699
  r.notes.push((0, whatsOnChainHelpers_1.makeMerklePathNote)('getMerklePathSuccess', name, { status: response.status, statusText: response.statusText }));
556
700
  }
557
701
  else {
@@ -566,20 +710,28 @@ class WhatsOnChain extends WhatsOnChainNoServices {
566
710
  }
567
711
  exports.WhatsOnChain = WhatsOnChain;
568
712
  function convertWocToBlockHeaderHex(woc) {
569
- const bits = typeof woc.bits === 'string' ? Number.parseInt(woc.bits, 16) : woc.bits;
570
- if (!woc.previousblockhash) {
571
- woc.previousblockhash = '0000000000000000000000000000000000000000000000000000000000000000'; // genesis
572
- }
573
- return {
574
- version: woc.version,
575
- previousHash: woc.previousblockhash,
576
- merkleRoot: woc.merkleroot,
577
- time: woc.time,
578
- bits,
579
- nonce: woc.nonce,
580
- hash: woc.hash,
581
- height: woc.height
713
+ requirePlainDataRecord(woc, 'WhatsOnChain header');
714
+ const height = requireInteger(woc.height, 'WhatsOnChain header height', MAX_BLOCK_HEIGHT);
715
+ const previousHash = woc.previousblockhash == null || woc.previousblockhash === ''
716
+ ? height === 0
717
+ ? '0'.repeat(64)
718
+ : (() => {
719
+ throw new Error('WhatsOnChain header previousblockhash is missing for a non-genesis header.');
720
+ })()
721
+ : requireHex32(woc.previousblockhash, 'WhatsOnChain header previousblockhash');
722
+ const header = {
723
+ version: requireInteger(woc.version, 'WhatsOnChain header version', UINT32_MAX),
724
+ previousHash,
725
+ merkleRoot: requireHex32(woc.merkleroot, 'WhatsOnChain header merkleroot'),
726
+ time: requireInteger(woc.time, 'WhatsOnChain header time', UINT32_MAX),
727
+ bits: requireHeaderBits(woc.bits),
728
+ nonce: requireInteger(woc.nonce, 'WhatsOnChain header nonce', UINT32_MAX),
729
+ hash: requireHex32(woc.hash, 'WhatsOnChain header hash'),
730
+ height
582
731
  };
732
+ (0, blockHeaderUtilities_1.validateHeaderFormat)(header);
733
+ (0, blockHeaderUtilities_1.validateHeaderProofOfWork)(header);
734
+ return header;
583
735
  }
584
736
  async function getWhatsOnChainBlockHeaderByHash(hash, chain = 'main', apiKey) {
585
737
  const config = apiKey ? { apiKey } : {};