@bopen-io/wallet-toolbox 2.6.2-brc153.5 → 2.14.6

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 +35 -3
  492. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  493. package/out/src/signer/methods/createAction.js +50 -2
  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 +20 -3
  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 +396 -106
  593. package/out/src/storage/methods/createAction.js.map +1 -1
  594. package/out/src/storage/methods/generateChange.d.ts +21 -5
  595. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  596. package/out/src/storage/methods/generateChange.js +194 -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 +171 -133
  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 +33 -31
  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 +369 -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 +382 -10
  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 +232 -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 +14 -0
  712. package/out/src/storage/remoting/syncChunkBinary.d.ts.map +1 -0
  713. package/out/src/storage/remoting/syncChunkBinary.js +42 -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 +16 -0
  809. package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -1
  810. package/out/src/utility/brc153ReferenceLabels.js +20 -5
  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 +45 -41
  878. package/docs/open-rpc/index.html +0 -46
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GoChaintracksServiceClient = void 0;
4
4
  const utilityHelpers_noBuffer_1 = require("../../../utility/utilityHelpers.noBuffer");
5
+ const blockHeaderUtilities_1 = require("./util/blockHeaderUtilities");
6
+ const safeDiagnostic_1 = require("./util/safeDiagnostic");
5
7
  /**
6
8
  * Client for go-chaintracks compatible HTTP services, including Arcade's
7
9
  * `/chaintracks/v2` surface. Unlike the legacy ChaintracksServiceClient, this
@@ -10,37 +12,70 @@ const utilityHelpers_noBuffer_1 = require("../../../utility/utilityHelpers.noBuf
10
12
  */
11
13
  class GoChaintracksServiceClient {
12
14
  chain;
15
+ /** SSE client; reorg registration is a supported additive capability. */
16
+ supportsReorgEvents = true;
17
+ static MAX_CONFIGURED_BYTES = 512 * 1024 * 1024;
18
+ static MAX_SUBSCRIPTIONS = 100_000;
13
19
  baseUrl;
14
20
  fetcher;
15
21
  requestTimeoutMsecs;
16
22
  reconnectWaitMsecs;
17
23
  reconnectWaitMaxMsecs;
24
+ maxJsonResponseBytes;
25
+ maxBinaryResponseBytes;
26
+ maxSseEventBytes;
27
+ maxReorgHeaders;
28
+ streamIdleTimeoutMsecs;
18
29
  subscriptions = new Map();
19
30
  nextSubscriptionId = 1;
20
31
  constructor(chain, serviceUrl, options = {}) {
21
32
  this.chain = chain;
22
- let base = serviceUrl;
33
+ if (typeof chain !== 'string' || this.normalizeChain(chain) !== chain) {
34
+ throw new Error('chain must be a supported canonical ChainTracks network.');
35
+ }
36
+ if (options == null || typeof options !== 'object' || Array.isArray(options)) {
37
+ throw new Error('options must be a plain data object.');
38
+ }
39
+ const optionDescriptors = Object.getOwnPropertyDescriptors(options);
40
+ if (Object.values(optionDescriptors).some(descriptor => descriptor.get != null || descriptor.set != null)) {
41
+ throw new Error('options must contain accessor-free data properties.');
42
+ }
43
+ options = Object.freeze({ ...options });
44
+ const parsedServiceUrl = this.parseServiceUrl(serviceUrl);
45
+ let base = parsedServiceUrl.toString();
23
46
  while (base.endsWith('/'))
24
47
  base = base.slice(0, -1);
25
48
  let prefix = options.apiPrefix ?? '';
26
49
  if (prefix !== '') {
50
+ if (/[[\]\\?#]/.test(prefix) || prefix.split('/').some(part => part === '..' || part === '.')) {
51
+ throw new Error('apiPrefix must be an absolute URL path without traversal, query, or fragment.');
52
+ }
27
53
  if (!prefix.startsWith('/'))
28
54
  prefix = `/${prefix}`;
29
55
  while (prefix.endsWith('/'))
30
56
  prefix = prefix.slice(0, -1);
31
57
  }
32
58
  this.baseUrl = `${base}${prefix}`;
33
- this.fetcher = options.fetch ?? fetch;
59
+ const fetchImpl = options.fetch ?? fetch;
60
+ if (typeof fetchImpl !== 'function')
61
+ throw new Error('fetch must be a function.');
62
+ // Call fetch with no receiver: browsers refuse it on anything but the window.
63
+ this.fetcher = async (input, init) => await fetchImpl(input, init);
34
64
  this.requestTimeoutMsecs = options.requestTimeoutMsecs ?? 30000;
35
65
  this.reconnectWaitMsecs = options.reconnectWaitMsecs ?? 1000;
36
66
  this.reconnectWaitMaxMsecs = options.reconnectWaitMaxMsecs ?? 60000;
67
+ this.maxJsonResponseBytes = this.readPositiveOption(options.maxJsonResponseBytes, 1024 * 1024, 'maxJsonResponseBytes', GoChaintracksServiceClient.MAX_CONFIGURED_BYTES);
68
+ this.maxBinaryResponseBytes = this.readPositiveOption(options.maxBinaryResponseBytes, 32 * 1024 * 1024, 'maxBinaryResponseBytes', GoChaintracksServiceClient.MAX_CONFIGURED_BYTES);
69
+ this.maxSseEventBytes = this.readPositiveOption(options.maxSseEventBytes, 1024 * 1024, 'maxSseEventBytes', GoChaintracksServiceClient.MAX_CONFIGURED_BYTES);
70
+ this.maxReorgHeaders = this.readPositiveOption(options.maxReorgHeaders, 4096, 'maxReorgHeaders', 100_000);
71
+ this.streamIdleTimeoutMsecs = this.readPositiveOption(options.streamIdleTimeoutMsecs, 45_000, 'streamIdleTimeoutMsecs', 60 * 60 * 1000);
37
72
  for (const [name, value] of [
38
73
  ['requestTimeoutMsecs', this.requestTimeoutMsecs],
39
74
  ['reconnectWaitMsecs', this.reconnectWaitMsecs],
40
75
  ['reconnectWaitMaxMsecs', this.reconnectWaitMaxMsecs]
41
76
  ]) {
42
- if (!Number.isSafeInteger(value) || value < 1) {
43
- throw new Error(`${name} must be a positive integer.`);
77
+ if (!Number.isSafeInteger(value) || value < 1 || value > 60 * 60 * 1000) {
78
+ throw new Error(`${name} must be a positive integer no greater than 3600000.`);
44
79
  }
45
80
  }
46
81
  if (this.reconnectWaitMaxMsecs < this.reconnectWaitMsecs) {
@@ -55,8 +90,16 @@ class GoChaintracksServiceClient {
55
90
  return h != null && root === (0, utilityHelpers_noBuffer_1.asString)(h.merkleRoot);
56
91
  }
57
92
  async getChain() {
58
- const r = await this.getJson('/network');
59
- return this.normalizeChain(typeof r === 'string' ? r : r.network);
93
+ const value = await this.getJson('/network');
94
+ const network = typeof value === 'string' ? value : this.readExactRecord(value, ['network'], 'network response').network;
95
+ if (typeof network !== 'string' || network.length > 64) {
96
+ throw new Error('ChainTracks upstream returned an invalid network.');
97
+ }
98
+ const actual = this.normalizeChain(network);
99
+ if (actual !== this.chain) {
100
+ throw new Error(`ChainTracks upstream network '${actual}' does not match configured chain '${this.chain}'.`);
101
+ }
102
+ return actual;
60
103
  }
61
104
  async getInfo() {
62
105
  const tip = await this.findChainTipHeader();
@@ -71,24 +114,60 @@ class GoChaintracksServiceClient {
71
114
  };
72
115
  }
73
116
  async getPresentHeight() {
74
- const result = await this.getJson('/height');
75
- return typeof result === 'number' ? result : result.height;
117
+ const value = await this.getJson('/height');
118
+ const height = typeof value === 'number' ? value : this.readExactRecord(value, ['height'], 'height response').height;
119
+ return this.validateHeight(height, 'upstream height');
76
120
  }
77
121
  async getHeaders(height, count) {
78
- const bytes = await this.getBinary(`/headers.bin?height=${height}&count=${count}`);
122
+ this.validateHeight(height, 'height');
123
+ if (!Number.isSafeInteger(count) || count < 1) {
124
+ throw new Error('count must be a positive safe integer.');
125
+ }
126
+ if (count > Math.floor(this.maxBinaryResponseBytes / 80)) {
127
+ throw new Error('count exceeds the configured binary response limit.');
128
+ }
129
+ const bytes = await this.getBinary(`/headers.bin?height=${height}&count=${count}`, count * 80);
130
+ if (bytes.length % 80 !== 0) {
131
+ throw new Error('ChainTracks upstream returned a non-canonical binary header response.');
132
+ }
133
+ const headers = (0, blockHeaderUtilities_1.deserializeBlockHeaders)(height, bytes);
134
+ for (const [index, header] of headers.entries()) {
135
+ this.validateRemoteHeader(header, `binary header ${index}`);
136
+ if (index > 0 && header.previousHash !== headers[index - 1]?.hash) {
137
+ throw new Error('ChainTracks upstream returned an unlinked binary header response.');
138
+ }
139
+ }
79
140
  return (0, utilityHelpers_noBuffer_1.asString)(bytes);
80
141
  }
81
142
  async findChainTipHeader() {
82
- return await this.getJson('/tip');
143
+ return this.validateRemoteHeader(await this.getJson('/tip'), 'chain tip');
83
144
  }
84
145
  async findChainTipHash() {
85
146
  return (await this.findChainTipHeader()).hash;
86
147
  }
87
148
  async findHeaderForHeight(height) {
88
- return await this.getJsonOrUndefined(`/header/height/${height}`);
149
+ this.validateHeight(height, 'height');
150
+ const value = await this.getJsonOrUndefined(`/header/height/${height}`);
151
+ if (value === undefined)
152
+ return undefined;
153
+ const header = this.validateRemoteHeader(value, 'header-by-height response');
154
+ if (header.height !== height) {
155
+ throw new Error('ChainTracks upstream returned a header for the wrong height.');
156
+ }
157
+ return header;
89
158
  }
90
159
  async findHeaderForBlockHash(hash) {
91
- return await this.getJsonOrUndefined(`/header/hash/${hash}`);
160
+ if (!/^[0-9a-fA-F]{64}$/.test(hash)) {
161
+ throw new Error('hash must be exactly 32 hexadecimal bytes.');
162
+ }
163
+ const value = await this.getJsonOrUndefined(`/header/hash/${hash}`);
164
+ if (value === undefined)
165
+ return undefined;
166
+ const header = this.validateRemoteHeader(value, 'header-by-hash response');
167
+ if (header.hash.toLowerCase() !== hash.toLowerCase()) {
168
+ throw new Error('ChainTracks upstream returned a header for the wrong hash.');
169
+ }
170
+ return header;
92
171
  }
93
172
  async addHeader(_header) {
94
173
  throw new Error('GoChaintracksServiceClient.addHeader is not supported by the remote v2 API.');
@@ -112,19 +191,52 @@ class GoChaintracksServiceClient {
112
191
  return await this.isListening();
113
192
  }
114
193
  async subscribeHeaders(listener) {
194
+ this.validateListener(listener);
115
195
  return this.subscribe('header', '/tip/stream', payload => {
116
- listener(payload);
196
+ listener(this.validateRemoteHeader(payload, 'tip stream event'));
117
197
  });
118
198
  }
119
199
  async subscribeReorgs(listener) {
200
+ this.validateListener(listener);
120
201
  return this.subscribe('reorg', '/reorg/stream', payload => {
121
- const event = payload;
122
- if (event.oldTip != null && event.newTip != null) {
123
- listener(event.depth ?? 0, event.oldTip, event.newTip, event.deactivatedHeaders);
202
+ const event = this.readExactRecord(payload, ['depth', 'oldTip', 'newTip', 'deactivatedHeaders'], 'reorg stream event', ['deactivatedHeaders']);
203
+ const depth = event.depth;
204
+ if (!Number.isSafeInteger(depth) || depth < 0 || depth > this.maxReorgHeaders) {
205
+ throw new Error('ChainTracks upstream returned an invalid reorg depth.');
206
+ }
207
+ const oldTip = this.validateRemoteHeader(event.oldTip, 'reorg old tip');
208
+ const newTip = this.validateRemoteHeader(event.newTip, 'reorg new tip');
209
+ let deactivatedHeaders;
210
+ if (event.deactivatedHeaders !== undefined) {
211
+ if (!Array.isArray(event.deactivatedHeaders) || event.deactivatedHeaders.length > this.maxReorgHeaders) {
212
+ throw new Error('ChainTracks upstream returned an invalid deactivated-header list.');
213
+ }
214
+ deactivatedHeaders = event.deactivatedHeaders.map((header, index) => this.validateRemoteHeader(header, `deactivated header ${index}`));
215
+ if (deactivatedHeaders.length > depth) {
216
+ throw new Error('ChainTracks upstream returned more deactivated headers than the reorg depth.');
217
+ }
218
+ if (deactivatedHeaders.length > 0 && deactivatedHeaders[0].hash !== oldTip.hash) {
219
+ throw new Error('ChainTracks upstream returned a deactivated-header list that does not start at the old tip.');
220
+ }
221
+ const seen = new Set();
222
+ for (let index = 0; index < deactivatedHeaders.length; index++) {
223
+ const header = deactivatedHeaders[index];
224
+ if (seen.has(header.hash))
225
+ throw new Error('ChainTracks upstream returned duplicate deactivated headers.');
226
+ seen.add(header.hash);
227
+ const parent = deactivatedHeaders[index + 1];
228
+ if (parent != null && (header.height !== parent.height + 1 || header.previousHash !== parent.hash)) {
229
+ throw new Error('ChainTracks upstream returned an unlinked deactivated-header list.');
230
+ }
231
+ }
124
232
  }
233
+ listener(depth, oldTip, newTip, deactivatedHeaders);
125
234
  });
126
235
  }
127
236
  async unsubscribe(subscriptionId) {
237
+ if (typeof subscriptionId !== 'string' || subscriptionId.length === 0 || subscriptionId.length > 128) {
238
+ throw new Error('subscriptionId must be a non-empty bounded string.');
239
+ }
128
240
  const sub = this.subscriptions.get(subscriptionId);
129
241
  if (sub == null)
130
242
  return false;
@@ -134,6 +246,12 @@ class GoChaintracksServiceClient {
134
246
  return true;
135
247
  }
136
248
  async subscribe(type, path, onPayload) {
249
+ if (this.subscriptions.size >= GoChaintracksServiceClient.MAX_SUBSCRIPTIONS) {
250
+ throw new Error('ChainTracks subscription capacity has been reached.');
251
+ }
252
+ if (!Number.isSafeInteger(this.nextSubscriptionId) || this.nextSubscriptionId < 1) {
253
+ throw new Error('ChainTracks subscription id space has been exhausted.');
254
+ }
137
255
  const id = `${type}-${this.nextSubscriptionId++}`;
138
256
  const abort = new AbortController();
139
257
  const done = this.runSseWithReconnect(path, abort.signal, onPayload);
@@ -192,23 +310,28 @@ class GoChaintracksServiceClient {
192
310
  try {
193
311
  const response = await this.fetcher(this.url(path), {
194
312
  headers: { Accept: 'text/event-stream' },
313
+ redirect: 'error',
195
314
  signal: controller.signal
196
315
  });
197
316
  clearTimeout(timeout);
198
317
  if (!response.ok) {
199
- throw new Error(`GET ${this.url(path)} failed ${response.status} ${response.statusText}`);
318
+ await response.body?.cancel().catch(() => { });
319
+ throw new Error(`GET ${this.url(path)} failed ${response.status} ${(0, safeDiagnostic_1.safeDiagnostic)(response.statusText, 128)}`);
200
320
  }
201
321
  if (response.body == null) {
202
322
  throw new Error(`GET ${this.url(path)} returned no response body`);
203
323
  }
204
324
  const reader = response.body.getReader();
205
- const decoder = new TextDecoder();
325
+ const decoder = new TextDecoder('utf-8', { fatal: true });
206
326
  let buffer = '';
207
327
  try {
208
328
  for (;;) {
209
- const { done, value } = await reader.read();
329
+ const { done, value } = await this.readStreamChunk(reader, controller.signal, this.streamIdleTimeoutMsecs);
210
330
  if (done)
211
331
  break;
332
+ if (value.byteLength > this.maxSseEventBytes) {
333
+ throw new Error('ChainTracks upstream SSE chunk exceeds the configured byte limit.');
334
+ }
212
335
  buffer += decoder.decode(value, { stream: true });
213
336
  buffer = this.processSseBuffer(buffer, observePayload);
214
337
  }
@@ -216,11 +339,13 @@ class GoChaintracksServiceClient {
216
339
  this.processSseBuffer(`${buffer}\n\n`, observePayload);
217
340
  }
218
341
  finally {
342
+ await reader.cancel().catch(() => { });
219
343
  reader.releaseLock();
220
344
  }
221
345
  }
222
346
  finally {
223
347
  clearTimeout(timeout);
348
+ controller.abort();
224
349
  signal.removeEventListener('abort', onAbort);
225
350
  }
226
351
  return receivedEvent;
@@ -229,9 +354,12 @@ class GoChaintracksServiceClient {
229
354
  buffer = buffer.replaceAll('\r\n', '\n');
230
355
  for (;;) {
231
356
  const boundary = buffer.indexOf('\n\n');
232
- if (boundary < 0)
357
+ if (boundary < 0) {
358
+ this.assertSseSize(buffer);
233
359
  return buffer;
360
+ }
234
361
  const eventText = buffer.slice(0, boundary);
362
+ this.assertSseSize(eventText);
235
363
  buffer = buffer.slice(boundary + 2);
236
364
  const data = eventText
237
365
  .split(/\r?\n/)
@@ -240,12 +368,15 @@ class GoChaintracksServiceClient {
240
368
  .join('\n');
241
369
  if (data === '')
242
370
  continue;
371
+ let payload;
243
372
  try {
244
- onPayload(JSON.parse(data));
373
+ payload = JSON.parse(data);
245
374
  }
246
375
  catch {
247
376
  // Ignore malformed events; the next SSE event can still be valid.
377
+ continue;
248
378
  }
379
+ onPayload(payload);
249
380
  }
250
381
  }
251
382
  async getJson(path) {
@@ -255,43 +386,246 @@ class GoChaintracksServiceClient {
255
386
  return r;
256
387
  }
257
388
  async getJsonOrUndefined(path) {
258
- const response = await this.fetchWithTimeout(this.url(path), { headers: { Accept: 'application/json' } });
259
- if (response.status === 404)
260
- return undefined;
261
- if (!response.ok) {
262
- throw new Error(`GET ${this.url(path)} failed ${response.status} ${response.statusText}`);
263
- }
264
- const value = (await response.json());
265
- if (value != null && typeof value === 'object' && 'status' in value) {
266
- const envelope = value;
267
- if (envelope.status === 'success')
268
- return envelope.value;
269
- if (envelope.status === 'error')
270
- throw new Error(envelope.description ?? `GET ${this.url(path)} failed`);
271
- }
272
- return value;
389
+ return await this.consumeWithTimeout(this.url(path), { headers: { Accept: 'application/json' } }, async (response, signal) => {
390
+ if (response.status === 404) {
391
+ await response.body?.cancel().catch(() => { });
392
+ return undefined;
393
+ }
394
+ if (!response.ok) {
395
+ await response.body?.cancel().catch(() => { });
396
+ throw new Error(`GET ${this.url(path)} failed ${response.status} ${response.statusText}`);
397
+ }
398
+ const bytes = await this.readBoundedBody(response, this.maxJsonResponseBytes, signal);
399
+ let value;
400
+ try {
401
+ value = JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(bytes));
402
+ }
403
+ catch {
404
+ throw new Error(`GET ${this.url(path)} returned invalid JSON.`);
405
+ }
406
+ if (this.isPlainRecord(value) && Object.hasOwn(value, 'status')) {
407
+ const envelope = this.readRecord(value, ['status', 'value', 'code', 'description'], 'legacy ChainTracks envelope');
408
+ if (envelope.status === 'success' && Object.hasOwn(envelope, 'value')) {
409
+ return envelope.value;
410
+ }
411
+ if (envelope.status === 'error') {
412
+ const description = envelope.description;
413
+ if (description !== undefined && (typeof description !== 'string' || description.length > 4096)) {
414
+ throw new Error('ChainTracks upstream returned an invalid error envelope.');
415
+ }
416
+ throw new Error(typeof description === 'string' ? (0, safeDiagnostic_1.safeDiagnostic)(description) : `GET ${this.url(path)} failed`);
417
+ }
418
+ throw new Error('ChainTracks upstream returned an invalid legacy envelope.');
419
+ }
420
+ return value;
421
+ });
273
422
  }
274
- async getBinary(path) {
275
- const response = await this.fetchWithTimeout(this.url(path), { headers: { Accept: 'application/octet-stream' } });
276
- if (!response.ok) {
277
- throw new Error(`GET ${this.url(path)} failed ${response.status} ${response.statusText}`);
278
- }
279
- return new Uint8Array(await response.arrayBuffer());
423
+ async getBinary(path, expectedMaximum) {
424
+ const maximum = Math.min(this.maxBinaryResponseBytes, expectedMaximum);
425
+ return await this.consumeWithTimeout(this.url(path), { headers: { Accept: 'application/octet-stream' } }, async (response, signal) => {
426
+ if (!response.ok) {
427
+ await response.body?.cancel().catch(() => { });
428
+ throw new Error(`GET ${this.url(path)} failed ${response.status} ${(0, safeDiagnostic_1.safeDiagnostic)(response.statusText, 128)}`);
429
+ }
430
+ return await this.readBoundedBody(response, maximum, signal);
431
+ });
280
432
  }
281
- async fetchWithTimeout(url, init) {
433
+ async consumeWithTimeout(url, init, consume) {
282
434
  const controller = new AbortController();
283
435
  const timeout = setTimeout(() => controller.abort(), this.requestTimeoutMsecs);
284
436
  try {
285
- return await this.fetcher(url, { ...init, signal: controller.signal });
437
+ const response = await this.fetcher(url, {
438
+ ...init,
439
+ redirect: 'error',
440
+ signal: controller.signal
441
+ });
442
+ return await consume(response, controller.signal);
286
443
  }
287
444
  finally {
288
445
  clearTimeout(timeout);
446
+ controller.abort();
289
447
  }
290
448
  }
449
+ async readBoundedBody(response, maximum, signal) {
450
+ const contentLength = response.headers.get('content-length');
451
+ if (contentLength != null) {
452
+ if (!/^(0|[1-9]\d*)$/.test(contentLength)) {
453
+ throw new Error('ChainTracks upstream returned an invalid Content-Length.');
454
+ }
455
+ const declared = Number(contentLength);
456
+ if (!Number.isSafeInteger(declared) || declared > maximum) {
457
+ throw new Error('ChainTracks upstream response exceeds the configured byte limit.');
458
+ }
459
+ }
460
+ if (response.body == null)
461
+ return new Uint8Array(0);
462
+ const reader = response.body.getReader();
463
+ const chunks = [];
464
+ let length = 0;
465
+ try {
466
+ for (;;) {
467
+ const { done, value } = await this.readStreamChunk(reader, signal);
468
+ if (done)
469
+ break;
470
+ if (!(value instanceof Uint8Array)) {
471
+ throw new Error('ChainTracks upstream returned a non-byte response body.');
472
+ }
473
+ length += value.byteLength;
474
+ if (!Number.isSafeInteger(length) || length > maximum) {
475
+ throw new Error('ChainTracks upstream response exceeds the configured byte limit.');
476
+ }
477
+ chunks.push(value);
478
+ }
479
+ }
480
+ finally {
481
+ await reader.cancel().catch(() => { });
482
+ reader.releaseLock();
483
+ }
484
+ const result = new Uint8Array(length);
485
+ let offset = 0;
486
+ for (const chunk of chunks) {
487
+ result.set(chunk, offset);
488
+ offset += chunk.byteLength;
489
+ }
490
+ return result;
491
+ }
492
+ async readStreamChunk(reader, signal, idleTimeoutMsecs) {
493
+ if (signal.aborted)
494
+ throw this.abortError();
495
+ return await new Promise((resolve, reject) => {
496
+ let settled = false;
497
+ let timeout;
498
+ const finish = (action, value) => {
499
+ if (settled)
500
+ return;
501
+ settled = true;
502
+ if (timeout != null)
503
+ clearTimeout(timeout);
504
+ signal.removeEventListener('abort', onAbort);
505
+ action(value);
506
+ };
507
+ const onAbort = () => finish(reject, this.abortError());
508
+ signal.addEventListener('abort', onAbort, { once: true });
509
+ if (idleTimeoutMsecs != null) {
510
+ timeout = setTimeout(() => finish(reject, new Error('ChainTracks upstream stream exceeded its idle timeout.')), idleTimeoutMsecs);
511
+ }
512
+ reader.read().then(result => finish(resolve, result), error => finish(reject, error instanceof Error ? error : new Error(String(error))));
513
+ });
514
+ }
515
+ abortError() {
516
+ const error = new Error('ChainTracks upstream request exceeded its deadline.');
517
+ error.name = 'AbortError';
518
+ return error;
519
+ }
520
+ assertSseSize(value) {
521
+ if (new TextEncoder().encode(value).byteLength > this.maxSseEventBytes) {
522
+ throw new Error('ChainTracks upstream SSE event exceeds the configured byte limit.');
523
+ }
524
+ }
525
+ validateHeight(value, name) {
526
+ if (!Number.isSafeInteger(value) || value < 0 || value > 0x7fffffff) {
527
+ throw new Error(`${name} must be an integer between 0 and 2147483647.`);
528
+ }
529
+ return value;
530
+ }
531
+ validateRemoteHeader(value, name) {
532
+ const baseKeys = ['version', 'previousHash', 'merkleRoot', 'time', 'bits', 'nonce', 'height', 'hash'];
533
+ const liveKeys = ['chainWork', 'isChainTip', 'isActive', 'headerId', 'previousHeaderId'];
534
+ const record = this.readExactRecord(value, [...baseKeys, ...liveKeys], name, liveKeys);
535
+ const presentLiveKeys = liveKeys.filter(key => Object.hasOwn(record, key));
536
+ if ((presentLiveKeys.length !== 0 && presentLiveKeys.length !== liveKeys.length) ||
537
+ (record.chainWork !== undefined &&
538
+ (typeof record.chainWork !== 'string' || !/^[0-9a-fA-F]{64}$/.test(record.chainWork))) ||
539
+ (record.isChainTip !== undefined && typeof record.isChainTip !== 'boolean') ||
540
+ (record.isActive !== undefined && typeof record.isActive !== 'boolean') ||
541
+ (record.headerId !== undefined && (!Number.isSafeInteger(record.headerId) || record.headerId < 1)) ||
542
+ (record.previousHeaderId !== undefined &&
543
+ record.previousHeaderId !== null &&
544
+ (!Number.isSafeInteger(record.previousHeaderId) || record.previousHeaderId < 1))) {
545
+ throw new Error(`ChainTracks upstream returned an invalid ${name}.`);
546
+ }
547
+ const header = {
548
+ version: record.version,
549
+ previousHash: record.previousHash,
550
+ merkleRoot: record.merkleRoot,
551
+ time: record.time,
552
+ bits: record.bits,
553
+ nonce: record.nonce,
554
+ height: record.height,
555
+ hash: record.hash
556
+ };
557
+ try {
558
+ (0, blockHeaderUtilities_1.validateHeaderFormat)(header);
559
+ (0, blockHeaderUtilities_1.validateHeaderProofOfWork)(header);
560
+ }
561
+ catch (error) {
562
+ throw new Error(`ChainTracks upstream returned an invalid ${name}: ${(0, safeDiagnostic_1.safeDiagnostic)(error)}`);
563
+ }
564
+ const result = { ...header };
565
+ for (const key of liveKeys) {
566
+ if (record[key] !== undefined)
567
+ result[key] = record[key];
568
+ }
569
+ return result;
570
+ }
571
+ isPlainRecord(value) {
572
+ if (value == null || typeof value !== 'object' || Array.isArray(value))
573
+ return false;
574
+ const prototype = Object.getPrototypeOf(value);
575
+ return prototype === Object.prototype || prototype === null;
576
+ }
577
+ readRecord(value, allowedKeys, name) {
578
+ if (!this.isPlainRecord(value))
579
+ throw new Error(`ChainTracks upstream returned an invalid ${name}.`);
580
+ const descriptors = Object.getOwnPropertyDescriptors(value);
581
+ if (Object.keys(descriptors).some(key => !allowedKeys.includes(key) || descriptors[key]?.get != null || descriptors[key]?.set != null)) {
582
+ throw new Error(`ChainTracks upstream returned an invalid ${name}.`);
583
+ }
584
+ return value;
585
+ }
586
+ readExactRecord(value, allowedKeys, name, optionalKeys = []) {
587
+ const record = this.readRecord(value, allowedKeys, name);
588
+ const requiredKeys = allowedKeys.filter(key => !optionalKeys.includes(key));
589
+ if (!requiredKeys.every(key => Object.hasOwn(record, key))) {
590
+ throw new Error(`ChainTracks upstream returned an invalid ${name}.`);
591
+ }
592
+ return record;
593
+ }
594
+ readPositiveOption(value, fallback, name, maximum) {
595
+ const resolved = value ?? fallback;
596
+ if (!Number.isSafeInteger(resolved) || resolved < 1 || resolved > maximum) {
597
+ throw new Error(`${name} must be an integer between 1 and ${maximum}.`);
598
+ }
599
+ return resolved;
600
+ }
601
+ validateListener(listener) {
602
+ if (typeof listener !== 'function')
603
+ throw new Error('listener must be a function.');
604
+ }
605
+ parseServiceUrl(serviceUrl) {
606
+ let parsed;
607
+ try {
608
+ parsed = new URL(serviceUrl);
609
+ }
610
+ catch {
611
+ throw new Error('serviceUrl must be an absolute HTTP(S) URL.');
612
+ }
613
+ if (!['http:', 'https:'].includes(parsed.protocol) ||
614
+ parsed.username !== '' ||
615
+ parsed.password !== '' ||
616
+ parsed.search !== '' ||
617
+ parsed.hash !== '') {
618
+ throw new Error('serviceUrl must be an HTTP(S) URL without credentials, query, or fragment.');
619
+ }
620
+ return parsed;
621
+ }
291
622
  url(path) {
292
623
  return `${this.baseUrl}${path}`;
293
624
  }
294
625
  normalizeChain(network) {
626
+ if (typeof network !== 'string' || network.length > 64 || (0, safeDiagnostic_1.containsControlCharacter)(network)) {
627
+ throw new Error('ChainTracks upstream returned an invalid network.');
628
+ }
295
629
  switch (network.trim().toLowerCase()) {
296
630
  case 'main':
297
631
  case 'mainnet':