@bopen-io/wallet-toolbox 2.6.2-brc153.3 → 2.14.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (878) hide show
  1. package/CHANGELOG.md +744 -1
  2. package/LICENSES/Open-BSV-License-4-wallet-pre-2026.txt +28 -0
  3. package/README.md +823 -14
  4. package/THIRD_PARTY_NOTICES.md +35 -0
  5. package/docs/README.md +44 -31
  6. package/docs/action-batch-planning.md +80 -37
  7. package/docs/client.md +12996 -4571
  8. package/docs/identity-verification.md +218 -0
  9. package/docs/local-first-chaintracks.md +129 -0
  10. package/docs/managed-change-liquidity.md +258 -0
  11. package/docs/managed-change-policy.md +14 -1
  12. package/docs/monitor.md +505 -190
  13. package/docs/no-send-expiry.md +167 -0
  14. package/docs/prepared-beef.md +197 -0
  15. package/docs/services.md +4013 -1153
  16. package/docs/setup.md +107 -56
  17. package/docs/storage.md +5781 -1599
  18. package/docs/sync-transfer.md +144 -0
  19. package/docs/wab-shamir.md +5 -1
  20. package/docs/wallet.md +10188 -10904
  21. package/out/src/CWIStyleWalletManager.d.ts +39 -31
  22. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  23. package/out/src/CWIStyleWalletManager.js +309 -258
  24. package/out/src/CWIStyleWalletManager.js.map +1 -1
  25. package/out/src/Setup.d.ts +14 -0
  26. package/out/src/Setup.d.ts.map +1 -1
  27. package/out/src/Setup.js +6 -2
  28. package/out/src/Setup.js.map +1 -1
  29. package/out/src/SetupClient.d.ts +3 -0
  30. package/out/src/SetupClient.d.ts.map +1 -1
  31. package/out/src/SetupClient.js +1 -0
  32. package/out/src/SetupClient.js.map +1 -1
  33. package/out/src/SetupWallet.d.ts +3 -0
  34. package/out/src/SetupWallet.d.ts.map +1 -1
  35. package/out/src/ShamirWalletManager.d.ts.map +1 -1
  36. package/out/src/ShamirWalletManager.js +34 -19
  37. package/out/src/ShamirWalletManager.js.map +1 -1
  38. package/out/src/SimpleWalletManager.d.ts.map +1 -1
  39. package/out/src/SimpleWalletManager.js +7 -6
  40. package/out/src/SimpleWalletManager.js.map +1 -1
  41. package/out/src/Wallet.d.ts +54 -14
  42. package/out/src/Wallet.d.ts.map +1 -1
  43. package/out/src/Wallet.js +216 -114
  44. package/out/src/Wallet.js.map +1 -1
  45. package/out/src/WalletAuthenticationManager.d.ts +32 -0
  46. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  47. package/out/src/WalletAuthenticationManager.js +531 -78
  48. package/out/src/WalletAuthenticationManager.js.map +1 -1
  49. package/out/src/WalletLogger.js +1 -1
  50. package/out/src/WalletLogger.js.map +1 -1
  51. package/out/src/WalletPermissionsManager.d.ts +101 -43
  52. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  53. package/out/src/WalletPermissionsManager.js +897 -414
  54. package/out/src/WalletPermissionsManager.js.map +1 -1
  55. package/out/src/WalletSettingsManager.d.ts +3 -2
  56. package/out/src/WalletSettingsManager.d.ts.map +1 -1
  57. package/out/src/WalletSettingsManager.js +143 -8
  58. package/out/src/WalletSettingsManager.js.map +1 -1
  59. package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
  60. package/out/src/entropy/EntropyCollector.js +3 -2
  61. package/out/src/entropy/EntropyCollector.js.map +1 -1
  62. package/out/src/fundWalletP2PKH.d.ts.map +1 -1
  63. package/out/src/fundWalletP2PKH.js +143 -44
  64. package/out/src/fundWalletP2PKH.js.map +1 -1
  65. package/out/src/index.client.d.ts +6 -0
  66. package/out/src/index.client.d.ts.map +1 -1
  67. package/out/src/index.client.js +16 -1
  68. package/out/src/index.client.js.map +1 -1
  69. package/out/src/index.mobile.d.ts +7 -0
  70. package/out/src/index.mobile.d.ts.map +1 -1
  71. package/out/src/index.mobile.js +17 -1
  72. package/out/src/index.mobile.js.map +1 -1
  73. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
  74. package/out/src/mockchain/MockChainTracker.js +5 -5
  75. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  76. package/out/src/mockchain/MockServices.d.ts +2 -0
  77. package/out/src/mockchain/MockServices.d.ts.map +1 -1
  78. package/out/src/mockchain/MockServices.js +54 -14
  79. package/out/src/mockchain/MockServices.js.map +1 -1
  80. package/out/src/monitor/Monitor.d.ts +51 -0
  81. package/out/src/monitor/Monitor.d.ts.map +1 -1
  82. package/out/src/monitor/Monitor.js +282 -41
  83. package/out/src/monitor/Monitor.js.map +1 -1
  84. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  85. package/out/src/monitor/MonitorDaemon.js +64 -16
  86. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  87. package/out/src/monitor/monitorValidation.d.ts +12 -0
  88. package/out/src/monitor/monitorValidation.d.ts.map +1 -0
  89. package/out/src/monitor/monitorValidation.js +133 -0
  90. package/out/src/monitor/monitorValidation.js.map +1 -0
  91. package/out/src/monitor/tasks/TaskArcSSE.d.ts +6 -1
  92. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  93. package/out/src/monitor/tasks/TaskArcSSE.js +117 -74
  94. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  95. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +5 -0
  96. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  97. package/out/src/monitor/tasks/TaskCheckForProofs.js +29 -24
  98. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  99. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  100. package/out/src/monitor/tasks/TaskCheckNoSends.js +11 -3
  101. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  102. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  103. package/out/src/monitor/tasks/TaskFailAbandoned.js +9 -4
  104. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  105. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  106. package/out/src/monitor/tasks/TaskNewHeader.js +3 -1
  107. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  108. package/out/src/monitor/tasks/TaskNoSendExpiry.d.ts +19 -0
  109. package/out/src/monitor/tasks/TaskNoSendExpiry.d.ts.map +1 -0
  110. package/out/src/monitor/tasks/TaskNoSendExpiry.js +47 -0
  111. package/out/src/monitor/tasks/TaskNoSendExpiry.js.map +1 -0
  112. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts +27 -0
  113. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts.map +1 -0
  114. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js +242 -0
  115. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js.map +1 -0
  116. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  117. package/out/src/monitor/tasks/TaskReorg.js +4 -4
  118. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  119. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
  120. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +31 -9
  121. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  122. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +18 -1
  123. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
  124. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +99 -21
  125. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  126. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +33 -6
  127. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
  128. package/out/src/monitor/tasks/TaskReviewUtxos.js +189 -13
  129. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  130. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  131. package/out/src/monitor/tasks/TaskSendWaiting.js +52 -11
  132. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  133. package/out/src/monitor/tasks/TaskUnFail.d.ts +1 -0
  134. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  135. package/out/src/monitor/tasks/TaskUnFail.js +26 -8
  136. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  137. package/out/src/monitor/tasks/index.all.d.ts +2 -0
  138. package/out/src/monitor/tasks/index.all.d.ts.map +1 -1
  139. package/out/src/monitor/tasks/index.all.js +2 -0
  140. package/out/src/monitor/tasks/index.all.js.map +1 -1
  141. package/out/src/sdk/ActionBatch.interfaces.d.ts +23 -0
  142. package/out/src/sdk/ActionBatch.interfaces.d.ts.map +1 -1
  143. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  144. package/out/src/sdk/PrivilegedKeyManager.js +3 -2
  145. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  146. package/out/src/sdk/WERR_errors.d.ts +23 -0
  147. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  148. package/out/src/sdk/WERR_errors.js +51 -7
  149. package/out/src/sdk/WERR_errors.js.map +1 -1
  150. package/out/src/sdk/WalletError.d.ts.map +1 -1
  151. package/out/src/sdk/WalletError.js +7 -21
  152. package/out/src/sdk/WalletError.js.map +1 -1
  153. package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
  154. package/out/src/sdk/WalletErrorFromJson.js +121 -3
  155. package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
  156. package/out/src/sdk/WalletServices.interfaces.d.ts +45 -2
  157. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  158. package/out/src/sdk/WalletStorage.interfaces.d.ts +87 -4
  159. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  160. package/out/src/sdk/types.d.ts +3 -2
  161. package/out/src/sdk/types.d.ts.map +1 -1
  162. package/out/src/sdk/types.js +3 -2
  163. package/out/src/sdk/types.js.map +1 -1
  164. package/out/src/services/ServiceCollection.js +2 -2
  165. package/out/src/services/ServiceCollection.js.map +1 -1
  166. package/out/src/services/Services.d.ts +5 -0
  167. package/out/src/services/Services.d.ts.map +1 -1
  168. package/out/src/services/Services.js +346 -120
  169. package/out/src/services/Services.js.map +1 -1
  170. package/out/src/services/chaintracker/BHServiceClient.d.ts +21 -4
  171. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
  172. package/out/src/services/chaintracker/BHServiceClient.js +269 -66
  173. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  174. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +25 -3
  175. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  176. package/out/src/services/chaintracker/ChaintracksChainTracker.js +188 -53
  177. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  178. package/out/src/services/chaintracker/LocalChainTracker.d.ts +122 -0
  179. package/out/src/services/chaintracker/LocalChainTracker.d.ts.map +1 -0
  180. package/out/src/services/chaintracker/LocalChainTracker.js +465 -0
  181. package/out/src/services/chaintracker/LocalChainTracker.js.map +1 -0
  182. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
  183. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +59 -7
  184. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
  185. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts +48 -0
  186. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts.map +1 -0
  187. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js +3 -0
  188. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js.map +1 -0
  189. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts +70 -0
  190. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts.map +1 -0
  191. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js +21 -0
  192. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js.map +1 -0
  193. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +6 -0
  194. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +1 -1
  195. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +53 -0
  196. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
  197. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +9 -2
  198. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
  199. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +9 -0
  200. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
  201. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +28 -3
  202. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  203. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +282 -64
  204. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  205. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +16 -0
  206. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
  207. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +150 -26
  208. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  209. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +30 -1
  210. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  211. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +348 -30
  212. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  213. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +32 -1
  214. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
  215. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +378 -44
  216. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
  217. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  218. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +28 -3
  219. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  220. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
  221. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +33 -9
  222. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  223. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
  224. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
  225. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.d.ts.map +1 -1
  226. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js +4 -2
  227. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js.map +1 -1
  228. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +2 -0
  229. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  230. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +17 -4
  231. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  232. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts +2 -0
  233. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
  234. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +40 -20
  235. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
  236. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  237. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +14 -0
  238. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  239. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +6 -0
  240. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -1
  241. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +56 -9
  242. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -1
  243. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
  244. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +6 -3
  245. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
  246. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +4 -0
  247. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
  248. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +27 -9
  249. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  250. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts +8 -0
  251. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
  252. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +49 -5
  253. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
  254. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +1 -1
  255. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  256. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +90 -21
  257. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  258. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +3 -1
  259. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
  260. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +185 -38
  261. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  262. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  263. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +59 -6
  264. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  265. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts +2 -0
  266. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
  267. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +89 -39
  268. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  269. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +10 -0
  270. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  271. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +230 -28
  272. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  273. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +2 -1
  274. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  275. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +265 -96
  276. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  277. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +3 -1
  278. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
  279. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +240 -87
  280. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  281. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +3 -0
  282. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  283. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +121 -35
  284. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  285. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +8 -0
  286. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
  287. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +6 -3
  288. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
  289. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
  290. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  291. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
  292. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  293. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  294. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  295. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  296. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +1 -7
  297. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  298. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
  299. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +1 -7
  300. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
  301. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
  302. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +1 -7
  303. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  304. package/out/src/services/chaintracker/chaintracks/index.all.d.ts +3 -0
  305. package/out/src/services/chaintracker/chaintracks/index.all.d.ts.map +1 -1
  306. package/out/src/services/chaintracker/chaintracks/index.all.js +3 -0
  307. package/out/src/services/chaintracker/chaintracks/index.all.js.map +1 -1
  308. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +5 -0
  309. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
  310. package/out/src/services/chaintracker/chaintracks/index.mobile.js +5 -0
  311. package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
  312. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +51 -0
  313. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -0
  314. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +394 -0
  315. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -0
  316. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +45 -1
  317. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  318. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +733 -166
  319. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  320. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
  321. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +17 -1
  322. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  323. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts +32 -0
  324. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts.map +1 -0
  325. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js +40 -0
  326. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js.map +1 -0
  327. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  328. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +99 -30
  329. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  330. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +3 -1
  331. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  332. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +23 -15
  333. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  334. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +38 -4
  335. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  336. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +191 -47
  337. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  338. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +2 -1
  339. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
  340. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +57 -11
  341. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
  342. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts +48 -0
  343. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts.map +1 -0
  344. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js +280 -0
  345. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js.map +1 -0
  346. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts +30 -0
  347. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts.map +1 -0
  348. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js +57 -0
  349. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js.map +1 -0
  350. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  351. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  352. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts +14 -0
  353. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -0
  354. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +148 -0
  355. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -0
  356. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts +41 -0
  357. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts.map +1 -0
  358. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js +271 -0
  359. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js.map +1 -0
  360. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +3 -0
  361. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
  362. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +15 -0
  363. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  364. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +17 -4
  365. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  366. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +362 -105
  367. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  368. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts +4 -0
  369. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts.map +1 -0
  370. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js +33 -0
  371. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js.map +1 -0
  372. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  373. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  374. package/out/src/services/chaintracker/index.all.d.ts +1 -0
  375. package/out/src/services/chaintracker/index.all.d.ts.map +1 -1
  376. package/out/src/services/chaintracker/index.all.js +1 -0
  377. package/out/src/services/chaintracker/index.all.js.map +1 -1
  378. package/out/src/services/chaintracker/index.client.d.ts +1 -0
  379. package/out/src/services/chaintracker/index.client.d.ts.map +1 -1
  380. package/out/src/services/chaintracker/index.client.js +1 -0
  381. package/out/src/services/chaintracker/index.client.js.map +1 -1
  382. package/out/src/services/chaintracker/index.mobile.d.ts +1 -0
  383. package/out/src/services/chaintracker/index.mobile.d.ts.map +1 -1
  384. package/out/src/services/chaintracker/index.mobile.js +1 -0
  385. package/out/src/services/chaintracker/index.mobile.js.map +1 -1
  386. package/out/src/services/classifyOutputUtxo.d.ts +25 -0
  387. package/out/src/services/classifyOutputUtxo.d.ts.map +1 -0
  388. package/out/src/services/classifyOutputUtxo.js +96 -0
  389. package/out/src/services/classifyOutputUtxo.js.map +1 -0
  390. package/out/src/services/createDefaultWalletServicesOptions.d.ts +16 -3
  391. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  392. package/out/src/services/createDefaultWalletServicesOptions.js +38 -8
  393. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  394. package/out/src/services/fiatRateValidation.d.ts +12 -0
  395. package/out/src/services/fiatRateValidation.d.ts.map +1 -0
  396. package/out/src/services/fiatRateValidation.js +138 -0
  397. package/out/src/services/fiatRateValidation.js.map +1 -0
  398. package/out/src/services/getCanonicalMerklePath.d.ts +15 -0
  399. package/out/src/services/getCanonicalMerklePath.d.ts.map +1 -0
  400. package/out/src/services/getCanonicalMerklePath.js +90 -0
  401. package/out/src/services/getCanonicalMerklePath.js.map +1 -0
  402. package/out/src/services/providers/ARC.d.ts +3 -16
  403. package/out/src/services/providers/ARC.d.ts.map +1 -1
  404. package/out/src/services/providers/ARC.js +36 -37
  405. package/out/src/services/providers/ARC.js.map +1 -1
  406. package/out/src/services/providers/ArcSSEClient.d.ts +38 -23
  407. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  408. package/out/src/services/providers/ArcSSEClient.js +384 -63
  409. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  410. package/out/src/services/providers/Arcade.d.ts +11 -1
  411. package/out/src/services/providers/Arcade.d.ts.map +1 -1
  412. package/out/src/services/providers/Arcade.js +111 -33
  413. package/out/src/services/providers/Arcade.js.map +1 -1
  414. package/out/src/services/providers/Bitails.d.ts +3 -0
  415. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  416. package/out/src/services/providers/Bitails.js +79 -12
  417. package/out/src/services/providers/Bitails.js.map +1 -1
  418. package/out/src/services/providers/SdkWhatsOnChain.d.ts +8 -2
  419. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  420. package/out/src/services/providers/SdkWhatsOnChain.js +83 -10
  421. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  422. package/out/src/services/providers/WhatsOnChain.d.ts +3 -0
  423. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  424. package/out/src/services/providers/WhatsOnChain.js +221 -69
  425. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  426. package/out/src/services/providers/arcProviderConfig.d.ts +27 -0
  427. package/out/src/services/providers/arcProviderConfig.d.ts.map +1 -0
  428. package/out/src/services/providers/arcProviderConfig.js +83 -0
  429. package/out/src/services/providers/arcProviderConfig.js.map +1 -0
  430. package/out/src/services/providers/arcTxDataValidation.d.ts +4 -0
  431. package/out/src/services/providers/arcTxDataValidation.d.ts.map +1 -0
  432. package/out/src/services/providers/arcTxDataValidation.js +92 -0
  433. package/out/src/services/providers/arcTxDataValidation.js.map +1 -0
  434. package/out/src/services/providers/arcadeStatus.d.ts +18 -0
  435. package/out/src/services/providers/arcadeStatus.d.ts.map +1 -0
  436. package/out/src/services/providers/arcadeStatus.js +56 -0
  437. package/out/src/services/providers/arcadeStatus.js.map +1 -0
  438. package/out/src/services/providers/exchangeRates.d.ts +3 -3
  439. package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
  440. package/out/src/services/providers/exchangeRates.js +153 -226
  441. package/out/src/services/providers/exchangeRates.js.map +1 -1
  442. package/out/src/services/providers/getBeefForTxid.d.ts.map +1 -1
  443. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  444. package/out/src/services/providers/whatsOnChainHelpers.d.ts +2 -2
  445. package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +1 -1
  446. package/out/src/services/providers/whatsOnChainHelpers.js +11 -8
  447. package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -1
  448. package/out/src/services/validateMerklePathResult.d.ts +30 -0
  449. package/out/src/services/validateMerklePathResult.d.ts.map +1 -0
  450. package/out/src/services/validateMerklePathResult.js +272 -0
  451. package/out/src/services/validateMerklePathResult.js.map +1 -0
  452. package/out/src/services/validatePostBeefResult.d.ts +17 -0
  453. package/out/src/services/validatePostBeefResult.d.ts.map +1 -0
  454. package/out/src/services/validatePostBeefResult.js +334 -0
  455. package/out/src/services/validatePostBeefResult.js.map +1 -0
  456. package/out/src/services/validateRawTxResult.d.ts +6 -0
  457. package/out/src/services/validateRawTxResult.d.ts.map +1 -0
  458. package/out/src/services/validateRawTxResult.js +77 -0
  459. package/out/src/services/validateRawTxResult.js.map +1 -0
  460. package/out/src/services/validateScriptHashHistoryResult.d.ts +5 -0
  461. package/out/src/services/validateScriptHashHistoryResult.d.ts.map +1 -0
  462. package/out/src/services/validateScriptHashHistoryResult.js +99 -0
  463. package/out/src/services/validateScriptHashHistoryResult.js.map +1 -0
  464. package/out/src/services/validateStatusForTxidsResult.d.ts +8 -0
  465. package/out/src/services/validateStatusForTxidsResult.d.ts.map +1 -0
  466. package/out/src/services/validateStatusForTxidsResult.js +181 -0
  467. package/out/src/services/validateStatusForTxidsResult.js.map +1 -0
  468. package/out/src/services/validateUtxoStatusResult.d.ts +6 -0
  469. package/out/src/services/validateUtxoStatusResult.d.ts.map +1 -0
  470. package/out/src/services/validateUtxoStatusResult.js +126 -0
  471. package/out/src/services/validateUtxoStatusResult.js.map +1 -0
  472. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +3 -2
  473. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -1
  474. package/out/src/signer/actionBatch/ActionBatchPlanner.js +29 -6
  475. package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -1
  476. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +8 -5
  477. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -1
  478. package/out/src/signer/actionBatch/ActionBatchWorkspace.js +186 -73
  479. package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -1
  480. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +2 -2
  481. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -1
  482. package/out/src/signer/actionBatch/actionBatchBootstrap.js +3 -3
  483. package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -1
  484. package/out/src/signer/methods/acquireDirectCertificate.d.ts +3 -2
  485. package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
  486. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  487. package/out/src/signer/methods/buildSignableTransaction.d.ts +6 -5
  488. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  489. package/out/src/signer/methods/buildSignableTransaction.js +6 -11
  490. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  491. package/out/src/signer/methods/createAction.d.ts +4 -3
  492. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  493. package/out/src/signer/methods/createAction.js +3 -1
  494. package/out/src/signer/methods/createAction.js.map +1 -1
  495. package/out/src/signer/methods/createNoSendExpiryAction.d.ts +7 -0
  496. package/out/src/signer/methods/createNoSendExpiryAction.d.ts.map +1 -0
  497. package/out/src/signer/methods/createNoSendExpiryAction.js +254 -0
  498. package/out/src/signer/methods/createNoSendExpiryAction.js.map +1 -0
  499. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  500. package/out/src/signer/methods/internalizeAction.js +9 -5
  501. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  502. package/out/src/signer/methods/proveCertificate.d.ts +3 -2
  503. package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
  504. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  505. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  506. package/out/src/signer/methods/signAction.js +12 -2
  507. package/out/src/signer/methods/signAction.js.map +1 -1
  508. package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -1
  509. package/out/src/signer/methods/verifyUnlockScripts.js +12 -17
  510. package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -1
  511. package/out/src/storage/StorageIdb.d.ts +11 -3
  512. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  513. package/out/src/storage/StorageIdb.js +134 -44
  514. package/out/src/storage/StorageIdb.js.map +1 -1
  515. package/out/src/storage/StorageKnex.d.ts +68 -7
  516. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  517. package/out/src/storage/StorageKnex.js +551 -105
  518. package/out/src/storage/StorageKnex.js.map +1 -1
  519. package/out/src/storage/StorageProvider.d.ts +41 -10
  520. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  521. package/out/src/storage/StorageProvider.js +397 -107
  522. package/out/src/storage/StorageProvider.js.map +1 -1
  523. package/out/src/storage/StorageReader.d.ts +9 -3
  524. package/out/src/storage/StorageReader.d.ts.map +1 -1
  525. package/out/src/storage/StorageReader.js +21 -43
  526. package/out/src/storage/StorageReader.js.map +1 -1
  527. package/out/src/storage/StorageReaderWriter.d.ts +4 -0
  528. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  529. package/out/src/storage/StorageReaderWriter.js +68 -38
  530. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  531. package/out/src/storage/StorageSyncReader.d.ts +1 -1
  532. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  533. package/out/src/storage/StorageSyncReader.js +3 -36
  534. package/out/src/storage/StorageSyncReader.js.map +1 -1
  535. package/out/src/storage/WalletStorageManager.d.ts +31 -6
  536. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  537. package/out/src/storage/WalletStorageManager.js +166 -75
  538. package/out/src/storage/WalletStorageManager.js.map +1 -1
  539. package/out/src/storage/adminServer/adminServer.d.ts +3 -1
  540. package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
  541. package/out/src/storage/adminServer/adminServer.js +38 -49
  542. package/out/src/storage/adminServer/adminServer.js.map +1 -1
  543. package/out/src/storage/adminServer/adminUi.d.ts.map +1 -1
  544. package/out/src/storage/adminServer/adminUi.js +32 -9
  545. package/out/src/storage/adminServer/adminUi.js.map +1 -1
  546. package/out/src/storage/adminServer/reviewUtxos.d.ts +27 -0
  547. package/out/src/storage/adminServer/reviewUtxos.d.ts.map +1 -0
  548. package/out/src/storage/adminServer/reviewUtxos.js +62 -0
  549. package/out/src/storage/adminServer/reviewUtxos.js.map +1 -0
  550. package/out/src/storage/idbHelpers.d.ts.map +1 -1
  551. package/out/src/storage/idbHelpers.js +14 -2
  552. package/out/src/storage/idbHelpers.js.map +1 -1
  553. package/out/src/storage/index.all.d.ts +3 -0
  554. package/out/src/storage/index.all.d.ts.map +1 -1
  555. package/out/src/storage/index.all.js +3 -0
  556. package/out/src/storage/index.all.js.map +1 -1
  557. package/out/src/storage/index.client.d.ts +1 -0
  558. package/out/src/storage/index.client.d.ts.map +1 -1
  559. package/out/src/storage/index.client.js +1 -0
  560. package/out/src/storage/index.client.js.map +1 -1
  561. package/out/src/storage/index.mobile.d.ts +1 -0
  562. package/out/src/storage/index.mobile.d.ts.map +1 -1
  563. package/out/src/storage/index.mobile.js +1 -0
  564. package/out/src/storage/index.mobile.js.map +1 -1
  565. package/out/src/storage/methods/ListActionsSpecOp.d.ts +2 -2
  566. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  567. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  568. package/out/src/storage/methods/ListOutputsSpecOp.d.ts +7 -4
  569. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  570. package/out/src/storage/methods/ListOutputsSpecOp.js +5 -44
  571. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  572. package/out/src/storage/methods/actionBatch.d.ts +9 -2
  573. package/out/src/storage/methods/actionBatch.d.ts.map +1 -1
  574. package/out/src/storage/methods/actionBatch.js +260 -67
  575. package/out/src/storage/methods/actionBatch.js.map +1 -1
  576. package/out/src/storage/methods/actionBatchBlobs.d.ts +2 -0
  577. package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -1
  578. package/out/src/storage/methods/actionBatchBlobs.js +47 -26
  579. package/out/src/storage/methods/actionBatchBlobs.js.map +1 -1
  580. package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -1
  581. package/out/src/storage/methods/actionBatchValidation.js +22 -30
  582. package/out/src/storage/methods/actionBatchValidation.js.map +1 -1
  583. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +7 -2
  584. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  585. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +59 -110
  586. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  587. package/out/src/storage/methods/availableManagedChange.d.ts +8 -1
  588. package/out/src/storage/methods/availableManagedChange.d.ts.map +1 -1
  589. package/out/src/storage/methods/availableManagedChange.js.map +1 -1
  590. package/out/src/storage/methods/createAction.d.ts +60 -3
  591. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  592. package/out/src/storage/methods/createAction.js +391 -107
  593. package/out/src/storage/methods/createAction.js.map +1 -1
  594. package/out/src/storage/methods/generateChange.d.ts +15 -5
  595. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  596. package/out/src/storage/methods/generateChange.js +187 -27
  597. package/out/src/storage/methods/generateChange.js.map +1 -1
  598. package/out/src/storage/methods/getBeefForTransaction.js +5 -7
  599. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  600. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
  601. package/out/src/storage/methods/getSyncChunk.js +42 -11
  602. package/out/src/storage/methods/getSyncChunk.js.map +1 -1
  603. package/out/src/storage/methods/internalizeAction.d.ts +3 -3
  604. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  605. package/out/src/storage/methods/internalizeAction.js +172 -135
  606. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  607. package/out/src/storage/methods/listActionsIdb.d.ts +3 -2
  608. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  609. package/out/src/storage/methods/listActionsIdb.js +2 -2
  610. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  611. package/out/src/storage/methods/listActionsKnex.d.ts +3 -2
  612. package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
  613. package/out/src/storage/methods/listActionsKnex.js +22 -11
  614. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  615. package/out/src/storage/methods/listCertificates.d.ts +3 -2
  616. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  617. package/out/src/storage/methods/listCertificates.js.map +1 -1
  618. package/out/src/storage/methods/listOutputsIdb.d.ts +3 -2
  619. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  620. package/out/src/storage/methods/listOutputsIdb.js +25 -18
  621. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  622. package/out/src/storage/methods/listOutputsKnex.d.ts +3 -2
  623. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
  624. package/out/src/storage/methods/listOutputsKnex.js +32 -30
  625. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  626. package/out/src/storage/methods/managedChangePolicy.d.ts +44 -0
  627. package/out/src/storage/methods/managedChangePolicy.d.ts.map +1 -0
  628. package/out/src/storage/methods/managedChangePolicy.js +58 -0
  629. package/out/src/storage/methods/managedChangePolicy.js.map +1 -0
  630. package/out/src/storage/methods/maxPossibleSatoshis.d.ts +13 -0
  631. package/out/src/storage/methods/maxPossibleSatoshis.d.ts.map +1 -0
  632. package/out/src/storage/methods/maxPossibleSatoshis.js +16 -0
  633. package/out/src/storage/methods/maxPossibleSatoshis.js.map +1 -0
  634. package/out/src/storage/methods/noSendExpiry.d.ts +11 -0
  635. package/out/src/storage/methods/noSendExpiry.d.ts.map +1 -0
  636. package/out/src/storage/methods/noSendExpiry.js +359 -0
  637. package/out/src/storage/methods/noSendExpiry.js.map +1 -0
  638. package/out/src/storage/methods/noSendExpiryLifecycle.d.ts +14 -0
  639. package/out/src/storage/methods/noSendExpiryLifecycle.d.ts.map +1 -0
  640. package/out/src/storage/methods/noSendExpiryLifecycle.js +691 -0
  641. package/out/src/storage/methods/noSendExpiryLifecycle.js.map +1 -0
  642. package/out/src/storage/methods/preparedBeef.d.ts +104 -0
  643. package/out/src/storage/methods/preparedBeef.d.ts.map +1 -0
  644. package/out/src/storage/methods/preparedBeef.js +524 -0
  645. package/out/src/storage/methods/preparedBeef.js.map +1 -0
  646. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  647. package/out/src/storage/methods/processAction.js +144 -32
  648. package/out/src/storage/methods/processAction.js.map +1 -1
  649. package/out/src/storage/methods/purgeData.d.ts.map +1 -1
  650. package/out/src/storage/methods/purgeData.js +21 -3
  651. package/out/src/storage/methods/purgeData.js.map +1 -1
  652. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts +32 -0
  653. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts.map +1 -0
  654. package/out/src/storage/methods/reconcileFailedTransactionInputs.js +142 -0
  655. package/out/src/storage/methods/reconcileFailedTransactionInputs.js.map +1 -0
  656. package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
  657. package/out/src/storage/methods/reviewStatus.js +7 -4
  658. package/out/src/storage/methods/reviewStatus.js.map +1 -1
  659. package/out/src/storage/methods/reviewStatusIdb.d.ts +1 -1
  660. package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
  661. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  662. package/out/src/storage/methods/reviewUtxoOutputs.d.ts +38 -0
  663. package/out/src/storage/methods/reviewUtxoOutputs.d.ts.map +1 -0
  664. package/out/src/storage/methods/reviewUtxoOutputs.js +197 -0
  665. package/out/src/storage/methods/reviewUtxoOutputs.js.map +1 -0
  666. package/out/src/storage/methods/validateSyncProof.d.ts +32 -0
  667. package/out/src/storage/methods/validateSyncProof.d.ts.map +1 -0
  668. package/out/src/storage/methods/validateSyncProof.js +139 -0
  669. package/out/src/storage/methods/validateSyncProof.js.map +1 -0
  670. package/out/src/storage/portable/index.d.ts.map +1 -1
  671. package/out/src/storage/portable/index.js +25 -15
  672. package/out/src/storage/portable/index.js.map +1 -1
  673. package/out/src/storage/remoting/BinaryJson.d.ts +11 -0
  674. package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -1
  675. package/out/src/storage/remoting/BinaryJson.js +94 -8
  676. package/out/src/storage/remoting/BinaryJson.js.map +1 -1
  677. package/out/src/storage/remoting/KnexPaymentReplayStore.d.ts.map +1 -1
  678. package/out/src/storage/remoting/KnexPaymentReplayStore.js +1 -0
  679. package/out/src/storage/remoting/KnexPaymentReplayStore.js.map +1 -1
  680. package/out/src/storage/remoting/KnexSessionManager.d.ts +26 -2
  681. package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -1
  682. package/out/src/storage/remoting/KnexSessionManager.js +221 -40
  683. package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
  684. package/out/src/storage/remoting/KnexSyncTransferStore.d.ts +26 -0
  685. package/out/src/storage/remoting/KnexSyncTransferStore.d.ts.map +1 -0
  686. package/out/src/storage/remoting/KnexSyncTransferStore.js +222 -0
  687. package/out/src/storage/remoting/KnexSyncTransferStore.js.map +1 -0
  688. package/out/src/storage/remoting/StorageClient.d.ts +6 -1
  689. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  690. package/out/src/storage/remoting/StorageClient.js +65 -8
  691. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  692. package/out/src/storage/remoting/StorageClientBase.d.ts +57 -10
  693. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  694. package/out/src/storage/remoting/StorageClientBase.js +372 -9
  695. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  696. package/out/src/storage/remoting/StorageMobile.d.ts +5 -0
  697. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  698. package/out/src/storage/remoting/StorageMobile.js +13 -11
  699. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  700. package/out/src/storage/remoting/StorageServer.d.ts +10 -1
  701. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  702. package/out/src/storage/remoting/StorageServer.js +221 -20
  703. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  704. package/out/src/storage/remoting/SyncTransfer.d.ts +29 -0
  705. package/out/src/storage/remoting/SyncTransfer.d.ts.map +1 -0
  706. package/out/src/storage/remoting/SyncTransfer.js +153 -0
  707. package/out/src/storage/remoting/SyncTransfer.js.map +1 -0
  708. package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +1 -1
  709. package/out/src/storage/remoting/entityValidationHelpers.js +35 -0
  710. package/out/src/storage/remoting/entityValidationHelpers.js.map +1 -1
  711. package/out/src/storage/remoting/syncChunkBinary.d.ts +4 -0
  712. package/out/src/storage/remoting/syncChunkBinary.d.ts.map +1 -0
  713. package/out/src/storage/remoting/syncChunkBinary.js +38 -0
  714. package/out/src/storage/remoting/syncChunkBinary.js.map +1 -0
  715. package/out/src/storage/remoting/validateRpcSyncProofs.d.ts +5 -0
  716. package/out/src/storage/remoting/validateRpcSyncProofs.d.ts.map +1 -0
  717. package/out/src/storage/remoting/validateRpcSyncProofs.js +82 -0
  718. package/out/src/storage/remoting/validateRpcSyncProofs.js.map +1 -0
  719. package/out/src/storage/schema/KnexMigrations.d.ts +6 -0
  720. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  721. package/out/src/storage/schema/KnexMigrations.js +194 -5
  722. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  723. package/out/src/storage/schema/StorageIdbSchema.d.ts +3 -0
  724. package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
  725. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
  726. package/out/src/storage/schema/entities/EntityOutput.js +24 -4
  727. package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
  728. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -1
  729. package/out/src/storage/schema/entities/EntityOutputBasket.js +5 -2
  730. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
  731. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +4 -1
  732. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
  733. package/out/src/storage/schema/entities/EntityProvenTx.js +125 -41
  734. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  735. package/out/src/storage/schema/entities/EntityProvenTxReq.js +1 -1
  736. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  737. package/out/src/storage/schema/entities/EntitySyncState.d.ts +4 -2
  738. package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
  739. package/out/src/storage/schema/entities/EntitySyncState.js +12 -6
  740. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  741. package/out/src/storage/schema/entities/EntityTransaction.d.ts +26 -0
  742. package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
  743. package/out/src/storage/schema/entities/EntityTransaction.js +221 -21
  744. package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
  745. package/out/src/storage/schema/tables/TableCertificate.d.ts +1 -1
  746. package/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -1
  747. package/out/src/storage/schema/tables/TableCertificateField.d.ts +1 -1
  748. package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -1
  749. package/out/src/storage/schema/tables/TableCommission.d.ts +1 -1
  750. package/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -1
  751. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +1 -1
  752. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -1
  753. package/out/src/storage/schema/tables/TableOutput.d.ts +1 -1
  754. package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
  755. package/out/src/storage/schema/tables/TableOutputBasket.d.ts +1 -1
  756. package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -1
  757. package/out/src/storage/schema/tables/TableOutputTag.d.ts +1 -1
  758. package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -1
  759. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +1 -1
  760. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -1
  761. package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.d.ts +23 -0
  762. package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.d.ts.map +1 -0
  763. package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.js +3 -0
  764. package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.js.map +1 -0
  765. package/out/src/storage/schema/tables/TableProvenTx.d.ts +1 -1
  766. package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -1
  767. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +1 -1
  768. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -1
  769. package/out/src/storage/schema/tables/TableSettings.d.ts +2 -2
  770. package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
  771. package/out/src/storage/schema/tables/TableSyncState.d.ts +1 -1
  772. package/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -1
  773. package/out/src/storage/schema/tables/TableTransaction.d.ts +17 -1
  774. package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
  775. package/out/src/storage/schema/tables/TableTransaction.js +14 -1
  776. package/out/src/storage/schema/tables/TableTransaction.js.map +1 -1
  777. package/out/src/storage/schema/tables/TableTxLabel.d.ts +1 -1
  778. package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -1
  779. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +1 -1
  780. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -1
  781. package/out/src/storage/schema/tables/TableUser.d.ts +1 -1
  782. package/out/src/storage/schema/tables/TableUser.d.ts.map +1 -1
  783. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  784. package/out/src/storage/sync/StorageMySQLDojoReader.js +8 -7
  785. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  786. package/out/src/storage/sync/SyncPageBudget.d.ts +8 -0
  787. package/out/src/storage/sync/SyncPageBudget.d.ts.map +1 -0
  788. package/out/src/storage/sync/SyncPageBudget.js +24 -0
  789. package/out/src/storage/sync/SyncPageBudget.js.map +1 -0
  790. package/out/src/storage/sync/syncCheckpoint.d.ts +4 -0
  791. package/out/src/storage/sync/syncCheckpoint.d.ts.map +1 -0
  792. package/out/src/storage/sync/syncCheckpoint.js +49 -0
  793. package/out/src/storage/sync/syncCheckpoint.js.map +1 -0
  794. package/out/src/utility/Argon2idBackend.d.ts +36 -0
  795. package/out/src/utility/Argon2idBackend.d.ts.map +1 -0
  796. package/out/src/utility/Argon2idBackend.js +60 -0
  797. package/out/src/utility/Argon2idBackend.js.map +1 -0
  798. package/out/src/utility/actionBatchDigest.d.ts.map +1 -1
  799. package/out/src/utility/actionBatchDigest.js +9 -7
  800. package/out/src/utility/actionBatchDigest.js.map +1 -1
  801. package/out/src/utility/actionBatchPack.d.ts.map +1 -1
  802. package/out/src/utility/actionBatchPack.js +7 -12
  803. package/out/src/utility/actionBatchPack.js.map +1 -1
  804. package/out/src/utility/beefForTxids.d.ts +12 -3
  805. package/out/src/utility/beefForTxids.d.ts.map +1 -1
  806. package/out/src/utility/beefForTxids.js +69 -21
  807. package/out/src/utility/beefForTxids.js.map +1 -1
  808. package/out/src/utility/brc153ReferenceLabels.d.ts +3 -5
  809. package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -1
  810. package/out/src/utility/brc153ReferenceLabels.js +8 -14
  811. package/out/src/utility/brc153ReferenceLabels.js.map +1 -1
  812. package/out/src/utility/brc177NoSendExpiry.d.ts +34 -0
  813. package/out/src/utility/brc177NoSendExpiry.d.ts.map +1 -0
  814. package/out/src/utility/brc177NoSendExpiry.js +81 -0
  815. package/out/src/utility/brc177NoSendExpiry.js.map +1 -0
  816. package/out/src/utility/canonicalizeAtomicBeef.d.ts +12 -0
  817. package/out/src/utility/canonicalizeAtomicBeef.d.ts.map +1 -0
  818. package/out/src/utility/canonicalizeAtomicBeef.js +23 -0
  819. package/out/src/utility/canonicalizeAtomicBeef.js.map +1 -0
  820. package/out/src/utility/exactActionSpend.d.ts +9 -0
  821. package/out/src/utility/exactActionSpend.d.ts.map +1 -0
  822. package/out/src/utility/exactActionSpend.js +26 -0
  823. package/out/src/utility/exactActionSpend.js.map +1 -0
  824. package/out/src/utility/hashWasm.d.ts +1 -1
  825. package/out/src/utility/hashWasm.d.ts.map +1 -1
  826. package/out/src/utility/hashWasm.js +83 -1
  827. package/out/src/utility/hashWasm.js.map +1 -1
  828. package/out/src/utility/identityUtils.d.ts +44 -4
  829. package/out/src/utility/identityUtils.d.ts.map +1 -1
  830. package/out/src/utility/identityUtils.js +523 -61
  831. package/out/src/utility/identityUtils.js.map +1 -1
  832. package/out/src/utility/index.all.d.ts +2 -0
  833. package/out/src/utility/index.all.d.ts.map +1 -1
  834. package/out/src/utility/index.all.js +2 -0
  835. package/out/src/utility/index.all.js.map +1 -1
  836. package/out/src/utility/index.client.d.ts +2 -0
  837. package/out/src/utility/index.client.d.ts.map +1 -1
  838. package/out/src/utility/index.client.js +2 -0
  839. package/out/src/utility/index.client.js.map +1 -1
  840. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
  841. package/out/src/utility/parseTxScriptOffsets.js +1 -19
  842. package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
  843. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  844. package/out/src/utility/tscProofToMerklePath.js +35 -4
  845. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  846. package/out/src/utility/utilityHelpers.d.ts +1 -1
  847. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  848. package/out/src/utility/utilityHelpers.js +10 -7
  849. package/out/src/utility/utilityHelpers.js.map +1 -1
  850. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  851. package/out/src/utility/utilityHelpers.noBuffer.js +6 -6
  852. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  853. package/out/src/utility/verifyOverlayOutput.d.ts +12 -0
  854. package/out/src/utility/verifyOverlayOutput.d.ts.map +1 -0
  855. package/out/src/utility/verifyOverlayOutput.js +22 -0
  856. package/out/src/utility/verifyOverlayOutput.js.map +1 -0
  857. package/out/src/utility/walletResultGuards.d.ts +14 -0
  858. package/out/src/utility/walletResultGuards.d.ts.map +1 -0
  859. package/out/src/utility/walletResultGuards.js +28 -0
  860. package/out/src/utility/walletResultGuards.js.map +1 -0
  861. package/out/src/wab-client/WABClient.d.ts +4 -17
  862. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  863. package/out/src/wab-client/WABClient.js +35 -12
  864. package/out/src/wab-client/WABClient.js.map +1 -1
  865. package/out/src/wab-client/WABResponseValidation.d.ts +48 -0
  866. package/out/src/wab-client/WABResponseValidation.d.ts.map +1 -0
  867. package/out/src/wab-client/WABResponseValidation.js +321 -0
  868. package/out/src/wab-client/WABResponseValidation.js.map +1 -0
  869. package/out/src/wab-client/WABTransport.d.ts +17 -23
  870. package/out/src/wab-client/WABTransport.d.ts.map +1 -1
  871. package/out/src/wab-client/WABTransport.js +130 -142
  872. package/out/src/wab-client/WABTransport.js.map +1 -1
  873. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +8 -0
  874. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  875. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +3 -2
  876. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  877. package/package.json +40 -33
  878. package/docs/open-rpc/index.html +0 -46
@@ -4,6 +4,7 @@ exports.Services = void 0;
4
4
  exports.validateScriptHash = validateScriptHash;
5
5
  exports.toBinaryBaseBlockHeader = toBinaryBaseBlockHeader;
6
6
  const sdk_1 = require("@bsv/sdk");
7
+ const utils_1 = require("@bsv/sdk/primitives/utils");
7
8
  const ServiceCollection_1 = require("./ServiceCollection");
8
9
  const createDefaultWalletServicesOptions_1 = require("./createDefaultWalletServicesOptions");
9
10
  const WhatsOnChain_1 = require("./providers/WhatsOnChain");
@@ -17,7 +18,28 @@ const ChaintracksChainTracker_1 = require("./chaintracker/ChaintracksChainTracke
17
18
  const WalletError_1 = require("../sdk/WalletError");
18
19
  const utilityHelpers_1 = require("../utility/utilityHelpers");
19
20
  const utilityHelpers_noBuffer_1 = require("../utility/utilityHelpers.noBuffer");
21
+ const classifyOutputUtxo_1 = require("./classifyOutputUtxo");
22
+ const validateMerklePathResult_1 = require("./validateMerklePathResult");
23
+ const validateStatusForTxidsResult_1 = require("./validateStatusForTxidsResult");
24
+ const validateRawTxResult_1 = require("./validateRawTxResult");
25
+ const validateUtxoStatusResult_1 = require("./validateUtxoStatusResult");
26
+ const validateScriptHashHistoryResult_1 = require("./validateScriptHashHistoryResult");
27
+ const validatePostBeefResult_1 = require("./validatePostBeefResult");
28
+ const fiatRateValidation_1 = require("./fiatRateValidation");
29
+ const getCanonicalMerklePath_1 = require("./getCanonicalMerklePath");
30
+ function copyFiatExchangeRates(rates) {
31
+ return {
32
+ timestamp: new Date(rates.timestamp.getTime()),
33
+ base: rates.base,
34
+ rates: { ...rates.rates },
35
+ rateTimestamps: rates.rateTimestamps == null
36
+ ? undefined
37
+ : Object.fromEntries(Object.entries(rates.rateTimestamps).map(([key, value]) => [key, new Date(value.getTime())]))
38
+ };
39
+ }
20
40
  class Services {
41
+ identityChainTracker;
42
+ identityChainTrackerInit;
21
43
  static getStatusForTxidsBatchLimit = 20;
22
44
  static createDefaultOptions(chain) {
23
45
  return (0, createDefaultWalletServicesOptions_1.createDefaultWalletServicesOptions)(chain);
@@ -103,6 +125,17 @@ class Services {
103
125
  this.getStatusForTxidsServices
104
126
  .add({ name: 'WhatsOnChain', service: this.whatsonchain.getStatusForTxids.bind(this.whatsonchain) });
105
127
  }
128
+ if (this.arcade != null) {
129
+ // Arcade's lifecycle store keeps status reconciliation available when
130
+ // the explorer is disabled or unavailable. Keep the existing explorer
131
+ // first when configured because a successful `unknown` is a valid,
132
+ // conservative answer and the shared collection does not merge partial
133
+ // results from multiple providers.
134
+ this.getStatusForTxidsServices.add({
135
+ name: 'Arcade',
136
+ service: this.arcade.getStatusForTxids.bind(this.arcade)
137
+ });
138
+ }
106
139
  this.getScriptHashHistoryServices = new ServiceCollection_1.ServiceCollection('getScriptHashHistory');
107
140
  if (hasWhatsOnChain) {
108
141
  // prettier-ignore
@@ -122,9 +155,11 @@ class Services {
122
155
  // prettier-ignore
123
156
  this.postBeefServices.add({ name: 'GorillaPoolArcBeef', service: this.arcGorillaPool.postBeef.bind(this.arcGorillaPool) });
124
157
  }
125
- // prettier-ignore
126
- this.postBeefServices
127
- .add({ name: 'TaalArcBeef', service: this.arcTaal.postBeef.bind(this.arcTaal) });
158
+ if (this.options.arcUrl != null && this.options.arcUrl !== '') {
159
+ // prettier-ignore
160
+ this.postBeefServices
161
+ .add({ name: 'TaalArcBeef', service: this.arcTaal.postBeef.bind(this.arcTaal) });
162
+ }
128
163
  if (hasBitails && this.bitails != null) {
129
164
  this.postBeefServices.add({ name: 'Bitails', service: this.bitails.postBeef.bind(this.bitails) });
130
165
  }
@@ -162,49 +197,81 @@ class Services {
162
197
  };
163
198
  }
164
199
  async getChainTracker() {
165
- if (this.options.chaintracks == null) {
166
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('options.chaintracks', "valid to enable 'getChainTracker' service.");
200
+ while (true) {
201
+ if (this.options.chainTracker != null)
202
+ return this.options.chainTracker;
203
+ if (this.options.chaintracks == null) {
204
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('options.chainTracker or options.chaintracks', "valid to enable 'getChainTracker' service.");
205
+ }
206
+ const desired = this.options.chaintracks;
207
+ if (this.identityChainTracker?.chaintracks === desired)
208
+ return this.identityChainTracker;
209
+ if (this.identityChainTrackerInit != null) {
210
+ await this.identityChainTrackerInit.catch(() => undefined);
211
+ continue;
212
+ }
213
+ const previous = this.identityChainTracker;
214
+ const created = new ChaintracksChainTracker_1.ChaintracksChainTracker(this.chain, desired, {
215
+ telemetry: this.options.telemetry
216
+ });
217
+ this.identityChainTracker = created;
218
+ const init = Promise.resolve().then(async () => {
219
+ if (previous != null)
220
+ await previous.dispose();
221
+ return created;
222
+ });
223
+ this.identityChainTrackerInit = init;
224
+ try {
225
+ await init.catch(() => created);
226
+ }
227
+ finally {
228
+ if (this.identityChainTrackerInit === init)
229
+ this.identityChainTrackerInit = undefined;
230
+ }
167
231
  }
168
- return new ChaintracksChainTracker_1.ChaintracksChainTracker(this.chain, this.options.chaintracks, {
169
- telemetry: this.options.telemetry
170
- });
171
232
  }
172
233
  async getBsvExchangeRate() {
173
234
  this.options.bsvExchangeRate = await this.whatsonchain.updateBsvExchangeRate(this.options.bsvExchangeRate, this.options.bsvUpdateMsecs);
174
235
  return this.options.bsvExchangeRate.rate;
175
236
  }
176
237
  async getFiatExchangeRate(currency, base) {
177
- base ||= 'USD';
178
- if (currency === base)
238
+ const normalizedCurrency = (0, fiatRateValidation_1.normalizeFiatCurrency)(currency);
239
+ const normalizedBase = (0, fiatRateValidation_1.normalizeFiatCurrency)(base ?? 'USD', 'base');
240
+ if (normalizedCurrency === normalizedBase)
179
241
  return 1;
180
- const required = base === 'USD' ? [currency] : [currency, base];
181
- await this.updateFiatExchangeRates(required, this.options.fiatUpdateMsecs);
182
- const rates = this.options.fiatExchangeRates;
183
- const c = rates.rates?.[currency];
184
- const b = rates.rates?.[base];
185
- if (typeof c !== 'number') {
186
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('currency', `valid fiat currency '${currency}' with an exchange rate.`);
242
+ const required = normalizedBase === 'USD' ? [normalizedCurrency] : [normalizedCurrency, normalizedBase];
243
+ const rates = await this.updateFiatExchangeRates(required, this.options.fiatUpdateMsecs);
244
+ const c = rates.rates?.[normalizedCurrency];
245
+ const b = rates.rates?.[normalizedBase];
246
+ if (!(0, fiatRateValidation_1.isValidFiatRate)(c)) {
247
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('currency', `valid fiat currency '${normalizedCurrency}' with an exchange rate.`);
248
+ }
249
+ if (!(0, fiatRateValidation_1.isValidFiatRate)(b)) {
250
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('base', `valid fiat currency '${normalizedBase}' with an exchange rate.`);
187
251
  }
188
- if (typeof b !== 'number') {
189
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('base', `valid fiat currency '${base}' with an exchange rate.`);
252
+ const result = c / b;
253
+ if (!(0, fiatRateValidation_1.isValidFiatRate)(result)) {
254
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('currency', 'a finite and bounded conversion result.');
190
255
  }
191
- return c / b;
256
+ return result;
192
257
  }
193
258
  async getFiatExchangeRates(targetCurrencies) {
194
- await this.updateFiatExchangeRates(targetCurrencies, this.options.fiatUpdateMsecs);
195
- const stored = this.options.fiatExchangeRates;
259
+ const targets = (0, fiatRateValidation_1.normalizeFiatCurrencies)(targetCurrencies);
260
+ const stored = await this.updateFiatExchangeRates(targets, this.options.fiatUpdateMsecs);
196
261
  const rates = {};
197
- for (const c of targetCurrencies) {
262
+ for (const c of targets) {
198
263
  const v = stored.rates?.[c];
199
- if (typeof v === 'number') {
264
+ if ((0, fiatRateValidation_1.isValidFiatRate)(v)) {
200
265
  rates[c] = v;
201
266
  }
202
267
  }
203
268
  return {
204
- timestamp: stored.timestamp,
269
+ timestamp: new Date(stored.timestamp.getTime()),
205
270
  base: 'USD',
206
271
  rates,
207
- rateTimestamps: stored.rateTimestamps
272
+ rateTimestamps: stored.rateTimestamps == null
273
+ ? undefined
274
+ : Object.fromEntries(Object.entries(stored.rateTimestamps).map(([key, value]) => [key, new Date(value.getTime())]))
208
275
  };
209
276
  }
210
277
  get getProofsCount() {
@@ -223,21 +290,48 @@ class Services {
223
290
  const services = this.getStatusForTxidsServices;
224
291
  if (useNext === true)
225
292
  services.next();
226
- let r0 = {
293
+ const normalizedTxids = txids.map((txid, index) => (0, validateMerklePathResult_1.normalizeTxid)(txid, `txids[${index}]`));
294
+ let fallback = {
227
295
  name: '<noservices>',
228
296
  status: 'error',
229
297
  error: new WERR_errors_1.WERR_INTERNAL('No services available.'),
230
298
  results: []
231
299
  };
300
+ const resultsByTxid = new Map();
301
+ const unresolved = new Set(normalizedTxids);
302
+ const providerNames = [];
303
+ let successfulProvider = false;
304
+ const rank = (result) => {
305
+ if (result.status === 'mined')
306
+ return 4;
307
+ if (result.status === 'known')
308
+ return 3;
309
+ if (result.terminal === true)
310
+ return 2;
311
+ return 1;
312
+ };
232
313
  for (let tries = 0; tries < services.count; tries++) {
233
314
  const stc = services.serviceToCall;
234
315
  try {
235
- const r = await this.getStatusForTxidsBatched(stc, txids);
316
+ const requestedTxids = [...unresolved];
317
+ if (requestedTxids.length === 0)
318
+ break;
319
+ const r = await this.getStatusForTxidsBatched(stc, requestedTxids);
236
320
  if (r.status === 'success') {
237
321
  services.addServiceCallSuccess(stc);
238
- r0 = r;
239
- break;
322
+ successfulProvider = true;
323
+ providerNames.push(stc.providerName);
324
+ for (const result of r.results) {
325
+ const current = resultsByTxid.get(result.txid);
326
+ if (current == null || rank(result) > rank(current))
327
+ resultsByTxid.set(result.txid, result);
328
+ if (result.status === 'mined' || result.status === 'known')
329
+ unresolved.delete(result.txid);
330
+ }
331
+ services.next();
332
+ continue;
240
333
  }
334
+ fallback = r;
241
335
  if (r.error != null)
242
336
  services.addServiceCallError(stc, r.error);
243
337
  else
@@ -245,18 +339,25 @@ class Services {
245
339
  }
246
340
  catch (error_) {
247
341
  const e = WalletError_1.WalletError.fromUnknown(error_);
342
+ fallback = { name: stc.providerName, status: 'error', error: e, results: [] };
248
343
  services.addServiceCallError(stc, e);
249
344
  }
250
345
  services.next();
251
346
  }
252
- return r0;
347
+ if (!successfulProvider)
348
+ return fallback;
349
+ return {
350
+ name: [...new Set(providerNames)].join(','),
351
+ status: 'success',
352
+ results: normalizedTxids.map(txid => resultsByTxid.get(txid) ?? { txid, status: 'unknown', depth: undefined })
353
+ };
253
354
  }
254
355
  async getStatusForTxidsBatched(stc, txids) {
255
356
  const results = [];
256
357
  let error;
257
358
  for (let i = 0; i < txids.length; i += Services.getStatusForTxidsBatchLimit) {
258
359
  const batch = txids.slice(i, i + Services.getStatusForTxidsBatchLimit);
259
- const r = await stc.service(batch);
360
+ const r = (0, validateStatusForTxidsResult_1.validateStatusForTxidsResult)(await stc.service(batch), batch, stc.providerName);
260
361
  if (r.status !== 'success') {
261
362
  return r;
262
363
  }
@@ -276,18 +377,16 @@ class Services {
276
377
  * @returns script hash in 'hashLE' format, which is the default.
277
378
  */
278
379
  hashOutputScript(script) {
279
- const hash = sdk_1.Utils.toHex((0, utilityHelpers_1.sha256Hash)(sdk_1.Utils.toArray(script, 'hex')));
380
+ const hash = (0, utils_1.toHex)((0, utilityHelpers_1.sha256Hash)((0, utils_1.toArray)(script, 'hex')));
280
381
  return hash;
281
382
  }
282
383
  async isUtxo(output) {
283
- if (output.lockingScript == null) {
284
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('output.lockingScript', 'validated by storage provider validateOutputScript.');
285
- }
286
- const hash = this.hashOutputScript(sdk_1.Utils.toHex(output.lockingScript));
287
- const or = await this.getUtxoStatus(hash, undefined, `${output.txid ?? ''}.${output.vout}`);
288
- return or.isUtxo === true;
384
+ return (0, classifyOutputUtxo_1.requireConclusiveUtxo)(await (0, classifyOutputUtxo_1.classifyOutputUtxo)(this, output));
289
385
  }
290
386
  async getUtxoStatus(output, outputFormat, outpoint, useNext, logger) {
387
+ validateScriptHash(output, outputFormat);
388
+ const normalizedOutput = output.toLowerCase();
389
+ const normalizedOutpoint = (0, validateUtxoStatusResult_1.normalizeWalletOutpoint)(outpoint);
291
390
  const services = this.getUtxoStatusServices;
292
391
  if (useNext === true)
293
392
  services.next();
@@ -299,7 +398,8 @@ class Services {
299
398
  };
300
399
  logger?.group('services getUtxoStatus');
301
400
  for (let retry = 0; retry < 2; retry++) {
302
- r0 = (await this.tryUtxoStatusProviders(services, output, outputFormat, outpoint, logger)) ?? r0;
401
+ r0 =
402
+ (await this.tryUtxoStatusProviders(services, normalizedOutput, outputFormat, normalizedOutpoint, logger)) ?? r0;
303
403
  if (r0.status === 'success')
304
404
  break;
305
405
  await (0, utilityHelpers_1.wait)(2000);
@@ -311,7 +411,7 @@ class Services {
311
411
  for (let tries = 0; tries < services.count; tries++) {
312
412
  const stc = services.serviceToCall;
313
413
  try {
314
- const r = await stc.service(output, outputFormat, outpoint);
414
+ const r = (0, validateUtxoStatusResult_1.validateUtxoStatusResult)(await stc.service(output, outputFormat, outpoint), outpoint, stc.providerName);
315
415
  logger?.log(`${stc.providerName} status ${r.status}`);
316
416
  if (r.status === 'success') {
317
417
  services.addServiceCallSuccess(stc);
@@ -330,6 +430,7 @@ class Services {
330
430
  return undefined;
331
431
  }
332
432
  async getScriptHashHistory(hash, useNext, logger) {
433
+ const normalizedHash = (0, validateMerklePathResult_1.normalizeTxid)(hash, 'hash');
333
434
  const services = this.getScriptHashHistoryServices;
334
435
  if (useNext === true)
335
436
  services.next();
@@ -343,10 +444,11 @@ class Services {
343
444
  for (let tries = 0; tries < services.count; tries++) {
344
445
  const stc = services.serviceToCall;
345
446
  try {
346
- const r = await stc.service(hash);
447
+ const r = (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(await stc.service(normalizedHash), stc.providerName);
347
448
  logger?.log(`${stc.providerName} status ${r.status}`);
348
449
  if (r.status === 'success') {
349
450
  r0 = r;
451
+ services.addServiceCallSuccess(stc);
350
452
  break;
351
453
  }
352
454
  if (r.error != null)
@@ -385,10 +487,15 @@ class Services {
385
487
  * @returns
386
488
  */
387
489
  async postBeef(beef, txids, logger) {
490
+ const request = (0, validatePostBeefResult_1.snapshotPostBeefRequest)(beef, txids);
491
+ if (this.postBeefMode !== 'UntilSuccess' && this.postBeefMode !== 'PromiseAll') {
492
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('postBeefMode', "'UntilSuccess' or 'PromiseAll'");
493
+ }
388
494
  let rs = [];
389
495
  const services = this.postBeefServices;
390
496
  const stcs = services.allServicesToCall;
391
- const softTimeoutMs = this.getPostBeefSoftTimeoutMs(beef);
497
+ const softTimeoutMs = this.getPostBeefSoftTimeoutMs(request.beefBytes.length);
498
+ const softTimedOut = new Set();
392
499
  logger?.group('services postBeef');
393
500
  switch (this.postBeefMode) {
394
501
  case 'UntilSuccess':
@@ -398,8 +505,7 @@ class Services {
398
505
  rs.push(r);
399
506
  if (r.status === 'success')
400
507
  break;
401
- const softTimedOut = r.notes?.some(n => n.what === 'postBeefServiceTimeout') === true;
402
- if (!softTimedOut && r.txidResults?.every(txr => txr.serviceError)) {
508
+ if (!softTimedOut.has(stc) && r.txidResults.every(txr => txr.serviceError)) {
403
509
  // move this service to the end of the list
404
510
  this.postBeefServices.moveServiceToLast(stc);
405
511
  }
@@ -415,7 +521,10 @@ class Services {
415
521
  logger?.groupEnd();
416
522
  return rs;
417
523
  async function callService(stc, timeoutMs) {
418
- const callPromise = stc.service(beef, txids);
524
+ const callPromise = Promise.resolve()
525
+ .then(async () => await stc.service(sdk_1.Beef.fromBinaryStrict(request.beefBytes), [...request.txids]))
526
+ .then(result => (0, validatePostBeefResult_1.validatePostBeefResult)(result, request.txids, stc.providerName))
527
+ .catch(() => (0, validatePostBeefResult_1.makePostBeefServiceError)(stc.providerName, request.txids, 'postBeefServiceError'));
419
528
  let r;
420
529
  if (timeoutMs == null || timeoutMs <= 0) {
421
530
  r = await callPromise;
@@ -423,7 +532,10 @@ class Services {
423
532
  else {
424
533
  let timeoutHandle;
425
534
  const timeoutPromise = new Promise(resolve => {
426
- timeoutHandle = setTimeout(() => resolve(makeServiceTimeoutResult(stc.providerName, txids, timeoutMs)), timeoutMs);
535
+ timeoutHandle = setTimeout(() => {
536
+ softTimedOut.add(stc);
537
+ resolve((0, validatePostBeefResult_1.makePostBeefServiceError)(stc.providerName, request.txids, 'postBeefServiceTimeout', timeoutMs));
538
+ }, timeoutMs);
427
539
  });
428
540
  r = await Promise.race([callPromise, timeoutPromise]);
429
541
  if (timeoutHandle != null)
@@ -442,39 +554,34 @@ class Services {
442
554
  }
443
555
  return r;
444
556
  }
445
- function makeServiceTimeoutResult(providerName, txids, timeoutMs) {
446
- return {
447
- name: providerName,
448
- status: 'error',
449
- txidResults: txids.map(txid => ({
450
- txid,
451
- status: 'error',
452
- serviceError: true,
453
- data: { detail: `timeout after ${timeoutMs}ms` }
454
- })),
455
- notes: [{ when: new Date().toISOString(), what: 'postBeefServiceTimeout', providerName, timeoutMs }]
456
- };
457
- }
458
557
  }
459
- getPostBeefSoftTimeoutMs(beef) {
460
- const baseMs = Math.max(0, this.postBeefUntilSuccessSoftTimeoutMs);
461
- const perKbMs = Math.max(0, this.postBeefUntilSuccessSoftTimeoutPerKbMs);
462
- const maxMs = Math.max(baseMs, this.postBeefUntilSuccessSoftTimeoutMaxMs);
558
+ getPostBeefSoftTimeoutMs(beefBytes) {
559
+ const maximum = 60 * 60 * 1000;
560
+ const valid = (value, name) => {
561
+ if (!Number.isSafeInteger(value) || value < 0 || value > maximum) {
562
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `an integer from 0 through ${maximum}`);
563
+ }
564
+ return value;
565
+ };
566
+ const baseMs = valid(this.postBeefUntilSuccessSoftTimeoutMs, 'postBeefUntilSuccessSoftTimeoutMs');
567
+ const perKbMs = valid(this.postBeefUntilSuccessSoftTimeoutPerKbMs, 'postBeefUntilSuccessSoftTimeoutPerKbMs');
568
+ const maxMs = Math.max(baseMs, valid(this.postBeefUntilSuccessSoftTimeoutMaxMs, 'postBeefUntilSuccessSoftTimeoutMaxMs'));
463
569
  if (perKbMs <= 0)
464
570
  return Math.min(baseMs, maxMs);
465
- const beefBytes = beef.toBinary().length;
466
571
  const extraMs = Math.ceil((beefBytes / 1024) * perKbMs);
467
572
  return Math.min(maxMs, baseMs + extraMs);
468
573
  }
469
574
  async getRawTx(txid, useNext) {
575
+ const normalizedTxid = (0, validateMerklePathResult_1.normalizeTxid)(txid);
470
576
  const services = this.getRawTxServices;
471
577
  if (useNext === true)
472
578
  services.next();
473
- const r0 = { txid };
579
+ const r0 = { txid: normalizedTxid };
474
580
  for (let tries = 0; tries < services.count; tries++) {
475
581
  const stc = services.serviceToCall;
476
582
  try {
477
- const done = this.applyRawTxResult(r0, txid, await stc.service(txid, this.chain), services, stc);
583
+ const result = (0, validateRawTxResult_1.validateRawTxResult)(await stc.service(normalizedTxid, this.chain), normalizedTxid, stc.providerName);
584
+ const done = this.applyRawTxResult(r0, normalizedTxid, result, services, stc);
478
585
  if (done)
479
586
  break;
480
587
  }
@@ -488,9 +595,9 @@ class Services {
488
595
  applyRawTxResult(r0, txid, r, services, stc) {
489
596
  if (r.rawTx != null) {
490
597
  const hash = (0, utilityHelpers_noBuffer_1.asString)((0, utilityHelpers_1.doubleSha256BE)(r.rawTx));
491
- if (hash === (0, utilityHelpers_noBuffer_1.asString)(txid)) {
598
+ if (hash === txid) {
492
599
  r0.rawTx = r.rawTx;
493
- r0.name = r.name;
600
+ r0.name = stc.providerName;
494
601
  r0.error = undefined;
495
602
  services.addServiceCallSuccess(stc);
496
603
  return true;
@@ -559,71 +666,179 @@ class Services {
559
666
  const chaintracks = this.options.chaintracks;
560
667
  return await chaintracks.currentHeight();
561
668
  };
562
- return await this.invokeChaintracksWithRetry(method, 'current_height');
669
+ try {
670
+ return await this.invokeChaintracksWithRetry(method, 'current_height');
671
+ }
672
+ catch (error_) {
673
+ // Chaintracks is otherwise this method's single point of failure, and a
674
+ // wallet UI that cannot read the present height is broadly unusable
675
+ // (observed live 2026-08-11: a CORS-blocked chaintracks fetch in a
676
+ // webview-hosted wallet). Mirror `hashToHeader`'s existing belt: fall
677
+ // back to WhatsOnChain, and rethrow the ORIGINAL chaintracks error when
678
+ // the fallback cannot answer either.
679
+ try {
680
+ return (await this.whatsonchain.getChainInfo()).blocks;
681
+ }
682
+ catch {
683
+ throw error_;
684
+ }
685
+ }
563
686
  }
564
687
  async hashToHeader(hash) {
688
+ const normalizedHash = (0, validateMerklePathResult_1.normalizeTxid)(hash, 'hash');
565
689
  const method = async () => {
566
690
  const chaintracks = this.options.chaintracks;
567
- const header = await chaintracks.findHeaderForBlockHash(hash);
691
+ const header = await chaintracks.findHeaderForBlockHash(normalizedHash);
568
692
  return header;
569
693
  };
570
694
  let header = await this.invokeChaintracksWithRetry(method, 'find_header_for_hash');
571
- header ??= await this.whatsonchain.getBlockHeaderByHash(hash);
695
+ header ??= await this.whatsonchain.getBlockHeaderByHash(normalizedHash);
572
696
  if (header == null)
573
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('hash', `valid blockhash '${hash}' on mined chain ${this.chain}`);
574
- return header;
697
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('hash', `valid blockhash '${normalizedHash}' on mined chain ${this.chain}`);
698
+ const validated = (0, validateMerklePathResult_1.copyValidatedBlockHeader)(header, true);
699
+ if (validated.hash !== normalizedHash) {
700
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('hash', `the hash of the returned mined header on chain ${this.chain}`);
701
+ }
702
+ return validated;
703
+ }
704
+ async authenticateProviderMerklePath(txid, result) {
705
+ // First copy and bind the provider's mutable proof/header response. Then
706
+ // resolve that header hash through the wallet's own chain service and bind
707
+ // the proof a second time to that canonical, proof-of-work-valid header.
708
+ // Bind the provider path to the declared height/root before using the
709
+ // declared hash as a lookup key. `hashToHeader` then authenticates that
710
+ // hash and returns the canonical owned header.
711
+ const providerResult = (0, validateMerklePathResult_1.validateMerklePathResult)(txid, result, false, false);
712
+ const canonicalHeader = await this.hashToHeader(providerResult.header.hash);
713
+ // `hashToHeader` already returns an owned, format-checked,
714
+ // proof-of-work-valid header. This second pass only binds the copied path
715
+ // to that canonical header's height and root.
716
+ return (0, validateMerklePathResult_1.validateMerklePathResult)(txid, { merklePath: providerResult.merklePath, header: canonicalHeader }, false, false);
717
+ }
718
+ async tryMerklePathProvider(txid, service, aggregate, logger) {
719
+ let result;
720
+ try {
721
+ result = (0, validateMerklePathResult_1.snapshotMerklePathResult)(await service.service(txid, this), true, service.providerName);
722
+ }
723
+ catch (error_) {
724
+ const error = WalletError_1.WalletError.fromUnknown(error_);
725
+ this.getMerklePathServices.addServiceCallError(service, error);
726
+ aggregate.error ??= error;
727
+ return false;
728
+ }
729
+ aggregate.notes?.push(...(result.notes ?? []));
730
+ aggregate.name ??= result.name ?? service.providerName;
731
+ if (result.merklePath != null) {
732
+ try {
733
+ await (0, getCanonicalMerklePath_1.validateCanonicalMerklePathResult)(txid, result, await this.getChainTracker());
734
+ if (result.header != null) {
735
+ const authenticated = await this.authenticateProviderMerklePath(txid, result);
736
+ result.merklePath = authenticated.merklePath;
737
+ result.header = authenticated.header;
738
+ }
739
+ logger?.log(`${service.providerName} has authenticated canonical merklePath`);
740
+ Object.assign(aggregate, {
741
+ merklePath: result.merklePath,
742
+ header: result.header,
743
+ name: result.name ?? service.providerName,
744
+ error: undefined
745
+ });
746
+ this.getMerklePathServices.addServiceCallSuccess(service);
747
+ return true;
748
+ }
749
+ catch (error_) {
750
+ logger?.log(`${service.providerName} rejected non-canonical merklePath`);
751
+ result.error = WalletError_1.WalletError.fromUnknown(error_);
752
+ }
753
+ }
754
+ else {
755
+ logger?.log(`${service.providerName} no merklePath`);
756
+ }
757
+ if (result.error != null)
758
+ this.getMerklePathServices.addServiceCallError(service, result.error);
759
+ else
760
+ this.getMerklePathServices.addServiceCallFailure(service);
761
+ aggregate.error ??= result.error;
762
+ return false;
575
763
  }
576
764
  async getMerklePath(txid, useNext, logger) {
765
+ const normalizedTxid = (0, validateMerklePathResult_1.normalizeTxid)(txid);
577
766
  const services = this.getMerklePathServices;
578
767
  if (useNext === true)
579
768
  services.next();
580
- const r0 = { notes: [] };
769
+ const result = { notes: [] };
581
770
  logger?.group('services getMerklePath');
582
771
  for (let tries = 0; tries < services.count; tries++) {
583
- const stc = services.serviceToCall;
772
+ if (await this.tryMerklePathProvider(normalizedTxid, services.serviceToCall, result, logger))
773
+ break;
774
+ services.next();
775
+ }
776
+ logger?.groupEnd?.();
777
+ return result;
778
+ }
779
+ async getValidatedMerklePath(txid, validate) {
780
+ const normalizedTxid = (0, validateMerklePathResult_1.normalizeTxid)(txid);
781
+ const services = this.getMerklePathServices;
782
+ const calls = services.allServicesToCall;
783
+ const start = services.index;
784
+ let error;
785
+ for (let i = 0; i < calls.length; i++) {
786
+ const call = calls[(start + i) % calls.length];
584
787
  try {
585
- const r = await stc.service(txid, this);
586
- if (r.notes != null) {
587
- r0.notes = r0.notes ?? [];
588
- r0.notes.push(...r.notes);
589
- }
590
- r0.name ??= r.name;
591
- if (r.merklePath == null) {
592
- logger?.log(`${stc.providerName} no merklePath`);
593
- }
594
- else {
595
- logger?.log(`${stc.providerName} has merklePath`);
596
- // If we have a proof, call it done.
597
- r0.merklePath = r.merklePath;
598
- r0.header = r.header;
599
- r0.name = r.name;
600
- r0.error = undefined;
601
- services.addServiceCallSuccess(stc);
602
- break;
788
+ const result = (0, validateMerklePathResult_1.snapshotMerklePathResult)(await call.service(normalizedTxid, this), true, call.providerName);
789
+ if (result.merklePath == null) {
790
+ throw result.error ?? new WERR_errors_1.WERR_INVALID_OPERATION('Proof provider returned no Merkle path');
603
791
  }
604
- if (r.error != null)
605
- services.addServiceCallError(stc, r.error);
606
- else
607
- services.addServiceCallFailure(stc);
608
- if (r.error != null && r0.error == null) {
609
- // If we have an error and didn't before...
610
- r0.error = r.error;
792
+ await (0, getCanonicalMerklePath_1.validateCanonicalMerklePathResult)(normalizedTxid, result, await this.getChainTracker());
793
+ // Some legacy/custom proof providers return a path without a header;
794
+ // this method's explicit validator contract exists so its caller can
795
+ // resolve and authenticate that header independently. When a provider
796
+ // does supply a header, apply the standard built-in boundary first.
797
+ let candidate = result;
798
+ if (result.header != null) {
799
+ const authenticated = await this.authenticateProviderMerklePath(normalizedTxid, result);
800
+ candidate = {
801
+ name: call.providerName,
802
+ notes: result.notes,
803
+ merklePath: authenticated.merklePath,
804
+ header: authenticated.header
805
+ };
611
806
  }
807
+ await validate(candidate);
808
+ services.addServiceCallSuccess(call);
809
+ return candidate;
612
810
  }
613
- catch (error_) {
614
- const e = WalletError_1.WalletError.fromUnknown(error_);
615
- services.addServiceCallError(stc, e);
811
+ catch (cause) {
812
+ error = WalletError_1.WalletError.fromUnknown(cause);
813
+ services.addServiceCallError(call, error);
616
814
  }
617
- services.next();
618
815
  }
619
- return r0;
816
+ return { error, notes: [] };
620
817
  }
621
818
  async updateFiatExchangeRates(targetCurrencies, updateMsecs) {
622
819
  updateMsecs ??= 1000 * 60 * 60 * 24;
820
+ if (!Number.isSafeInteger(updateMsecs) || updateMsecs < 0 || updateMsecs > 10 * 365 * 24 * 60 * 60 * 1000) {
821
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('updateMsecs', 'a bounded non-negative safe integer.');
822
+ }
823
+ const targets = (0, fiatRateValidation_1.normalizeFiatCurrencies)(targetCurrencies);
623
824
  const freshnessDate = new Date(Date.now() - updateMsecs);
624
- const stored = this.options.fiatExchangeRates;
825
+ let stored;
826
+ try {
827
+ const normalized = (0, fiatRateValidation_1.normalizeFiatExchangeRates)(this.options.fiatExchangeRates, []);
828
+ stored = {
829
+ ...normalized,
830
+ rateTimestamps: (0, fiatRateValidation_1.normalizeFiatRateTimestamps)(this.options.fiatExchangeRates.rateTimestamps)
831
+ };
832
+ }
833
+ catch {
834
+ stored = {
835
+ timestamp: new Date(Date.UTC(2000, 0, 1)),
836
+ base: 'USD',
837
+ rates: { USD: 1 }
838
+ };
839
+ }
625
840
  const storedRates = stored.rates ?? {};
626
- const toFetch = this.collectStaleCurrencies(targetCurrencies, storedRates, stored, freshnessDate);
841
+ const toFetch = this.collectStaleCurrencies(targets, storedRates, stored, freshnessDate);
627
842
  if (toFetch.length === 0) {
628
843
  this.options.fiatExchangeRates = {
629
844
  timestamp: stored.timestamp,
@@ -631,16 +846,16 @@ class Services {
631
846
  rates: storedRates,
632
847
  rateTimestamps: stored.rateTimestamps
633
848
  };
634
- return this.options.fiatExchangeRates;
849
+ return copyFiatExchangeRates(this.options.fiatExchangeRates);
635
850
  }
636
851
  const fetched = await this.fetchFiatRates(toFetch);
637
852
  if (fetched == null) {
638
853
  if (Object.keys(storedRates).length > 0)
639
- return stored;
854
+ return copyFiatExchangeRates(stored);
640
855
  throw new WERR_errors_1.WERR_INTERNAL();
641
856
  }
642
857
  this.options.fiatExchangeRates = this.mergeFiatRates(stored, storedRates, fetched);
643
- return this.options.fiatExchangeRates;
858
+ return copyFiatExchangeRates(this.options.fiatExchangeRates);
644
859
  }
645
860
  collectStaleCurrencies(targetCurrencies, storedRates, stored, freshnessDate) {
646
861
  const toFetch = [];
@@ -652,7 +867,8 @@ class Services {
652
867
  }
653
868
  const v = storedRates[c];
654
869
  const ts = stored.rateTimestamps?.[c] ?? stored.timestamp;
655
- const fresh = typeof v === 'number' && ts instanceof Date && ts > freshnessDate;
870
+ const tsValue = ts instanceof Date ? ts.getTime() : Number.NaN;
871
+ const fresh = (0, fiatRateValidation_1.isValidFiatRate)(v) && Number.isFinite(tsValue) && tsValue <= Date.now() + 5 * 60 * 1000 && ts > freshnessDate;
656
872
  if (!fresh)
657
873
  toFetch.push(c);
658
874
  }
@@ -663,12 +879,10 @@ class Services {
663
879
  for (let tries = 0; tries < services.count; tries++) {
664
880
  const stc = services.serviceToCall;
665
881
  try {
666
- const r = await stc.service(toFetch, this.options);
667
- if (toFetch.every(c => c === 'USD' || typeof r.rates?.[c] === 'number')) {
668
- services.addServiceCallSuccess(stc);
669
- return r;
670
- }
671
- services.addServiceCallFailure(stc);
882
+ const raw = await stc.service(toFetch, this.options);
883
+ const rates = (0, fiatRateValidation_1.normalizeFiatExchangeRates)(raw, toFetch);
884
+ services.addServiceCallSuccess(stc);
885
+ return rates;
672
886
  }
673
887
  catch (error_) {
674
888
  services.addServiceCallError(stc, WalletError_1.WalletError.fromUnknown(error_));
@@ -678,11 +892,12 @@ class Services {
678
892
  return undefined;
679
893
  }
680
894
  mergeFiatRates(stored, storedRates, fetched) {
895
+ fetched = (0, fiatRateValidation_1.normalizeFiatExchangeRates)(fetched, []);
681
896
  const nextRates = { ...storedRates };
682
897
  const nextTimestamps = { ...stored.rateTimestamps };
683
898
  for (const c of fetched.rates != null ? Object.keys(fetched.rates) : []) {
684
899
  const v = fetched.rates?.[c];
685
- if (typeof v === 'number') {
900
+ if ((0, fiatRateValidation_1.isValidFiatRate)(v)) {
686
901
  nextRates[c] = v;
687
902
  nextTimestamps[c] = fetched.timestamp;
688
903
  }
@@ -728,6 +943,13 @@ class Services {
728
943
  }
729
944
  exports.Services = Services;
730
945
  function validateScriptHash(output, outputFormat) {
946
+ if (typeof output !== 'string' ||
947
+ output.length === 0 ||
948
+ output.length % 2 !== 0 ||
949
+ output.length > validateRawTxResult_1.MAX_RAW_TRANSACTION_BYTES * 2 ||
950
+ !/^[0-9a-fA-F]+$/.test(output)) {
951
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('output', `nonempty hexadecimal bytes up to ${validateRawTxResult_1.MAX_RAW_TRANSACTION_BYTES} bytes`);
952
+ }
731
953
  let b = (0, utilityHelpers_noBuffer_1.asArray)(output);
732
954
  if (outputFormat == null) {
733
955
  if (b.length === 32)
@@ -737,8 +959,12 @@ function validateScriptHash(output, outputFormat) {
737
959
  }
738
960
  switch (outputFormat) {
739
961
  case 'hashBE':
962
+ if (b.length !== 32)
963
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('output', 'exactly 32 bytes for hashBE');
740
964
  break;
741
965
  case 'hashLE':
966
+ if (b.length !== 32)
967
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('output', 'exactly 32 bytes for hashLE');
742
968
  b = b.reverse();
743
969
  break;
744
970
  case 'script':
@@ -758,7 +984,7 @@ function validateScriptHash(output, outputFormat) {
758
984
  * @publicbody
759
985
  */
760
986
  function toBinaryBaseBlockHeader(header) {
761
- const writer = new sdk_1.Utils.Writer();
987
+ const writer = new utils_1.Writer();
762
988
  writer.writeUInt32LE(header.version);
763
989
  writer.writeReverse((0, utilityHelpers_noBuffer_1.asArray)(header.previousHash));
764
990
  writer.writeReverse((0, utilityHelpers_noBuffer_1.asArray)(header.merkleRoot));