@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
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StorageProvider = void 0;
4
4
  exports.validateStorageFeeModel = validateStorageFeeModel;
5
+ const validationHelpers_1 = require("@bsv/sdk/wallet/validationHelpers");
5
6
  const sdk_1 = require("@bsv/sdk");
6
7
  const storageProviderHelpers_1 = require("./storageProviderHelpers");
7
8
  const getBeefForTransaction_1 = require("./methods/getBeefForTransaction");
@@ -16,9 +17,16 @@ const WERR_errors_1 = require("../sdk/WERR_errors");
16
17
  const utilityHelpers_1 = require("../utility/utilityHelpers");
17
18
  const WalletError_1 = require("../sdk/WalletError");
18
19
  const utilityHelpers_noBuffer_1 = require("../utility/utilityHelpers.noBuffer");
20
+ const classifyOutputUtxo_1 = require("../services/classifyOutputUtxo");
21
+ const noSendExpiryLifecycle_1 = require("./methods/noSendExpiryLifecycle");
22
+ const validateSyncProof_1 = require("./methods/validateSyncProof");
19
23
  const actionBatch_1 = require("./methods/actionBatch");
20
24
  const actionBatchBlobs_1 = require("./methods/actionBatchBlobs");
21
25
  const availableManagedChange_1 = require("./methods/availableManagedChange");
26
+ const managedChangePolicy_1 = require("./methods/managedChangePolicy");
27
+ const noSendExpiry_1 = require("./methods/noSendExpiry");
28
+ const MAX_AUTH_PROOF_REQUEST_FALLBACK_ROWS = 10_000;
29
+ const MAX_AUTH_PROOF_REQUEST_TXIDS = 1_000;
22
30
  class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
23
31
  isDirty = false;
24
32
  _services;
@@ -26,12 +34,16 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
26
34
  commissionSatoshis;
27
35
  commissionPubKeyHex;
28
36
  maxRecursionDepth;
37
+ actionBatchMaxReservedOutputs;
38
+ managedChangePolicy;
29
39
  scriptVerifier;
30
40
  static defaultOptions() {
31
41
  const opts = {
32
42
  feeModel: { model: 'sat/kb', value: 100 },
33
43
  commissionSatoshis: 0,
34
- commissionPubKeyHex: undefined
44
+ commissionPubKeyHex: undefined,
45
+ actionBatchMaxReservedOutputs: 256,
46
+ managedChangePolicy: (0, managedChangePolicy_1.defaultManagedChangePolicy)()
35
47
  };
36
48
  return opts;
37
49
  }
@@ -48,6 +60,12 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
48
60
  this.commissionPubKeyHex = options.commissionPubKeyHex;
49
61
  this.commissionSatoshis = options.commissionSatoshis;
50
62
  this.maxRecursionDepth = 12;
63
+ const maxReservedOutputs = options.actionBatchMaxReservedOutputs ?? 256;
64
+ if (maxReservedOutputs !== -1 && (!Number.isSafeInteger(maxReservedOutputs) || maxReservedOutputs < 1)) {
65
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('actionBatchMaxReservedOutputs', 'a positive safe integer or -1 for unlimited');
66
+ }
67
+ this.actionBatchMaxReservedOutputs = maxReservedOutputs;
68
+ this.managedChangePolicy = (0, managedChangePolicy_1.validateManagedChangePolicy)(options.managedChangePolicy);
51
69
  this.scriptVerifier = options.scriptVerifier;
52
70
  }
53
71
  /** Mark a planned set of change inputs spent within the caller's transaction. */
@@ -77,13 +95,21 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
77
95
  }
78
96
  /** Read only the fields needed by the in-memory funding planner. */
79
97
  async findAvailableManagedChangeInputCandidates(userId, basketId, excludeSending, trx) {
80
- return (await this.findAvailableManagedChangeInputs(userId, basketId, excludeSending, trx))
81
- .map(({ outputId, transactionId, satoshis, txid, vout }) => ({
98
+ const outputs = await this.findAvailableManagedChangeInputs(userId, basketId, excludeSending, trx);
99
+ // Keep prototype-level/custom provider fallbacks working even when a
100
+ // minimal older implementation has not exposed the additive batch status
101
+ // lookup. createAction resolves missing metadata before tier planning.
102
+ const findStatuses = this.findTransactionStatusesByIds?.bind(this);
103
+ const statuses = findStatuses == null
104
+ ? new Map()
105
+ : await findStatuses(userId, outputs.map(output => output.transactionId), trx);
106
+ return outputs.map(({ outputId, transactionId, satoshis, txid, vout }) => ({
82
107
  outputId,
83
108
  transactionId,
84
109
  satoshis,
85
110
  txid,
86
- vout
111
+ vout,
112
+ transactionStatus: statuses.get(transactionId)
87
113
  }));
88
114
  }
89
115
  /** Read the current status of a set of source transactions without loading raw transaction bytes. */
@@ -178,7 +204,77 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
178
204
  throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
179
205
  }
180
206
  async getCapabilities() {
181
- return this.supportsActionBatchPersistence() ? (0, actionBatch_1.getActionBatchCapabilities)() : {};
207
+ return {
208
+ ...(this.supportsNoSendExpiryPersistence() ? { brc177NoSendExpiry: { version: 1 } } : {}),
209
+ ...(this.supportsActionBatchPersistence()
210
+ ? (0, actionBatch_1.getActionBatchCapabilities)(this.actionBatchMaxReservedOutputs, true)
211
+ : {})
212
+ };
213
+ }
214
+ /**
215
+ * Restrict remotely requested proof work to transactions tracked by the
216
+ * authenticated wallet. ProvenTxReq rows are globally deduplicated, so their
217
+ * own schema has no userId column and must be authorized through transactions.
218
+ */
219
+ async findProvenTxReqsAuth(auth, args) {
220
+ const userId = (0, utilityHelpers_1.verifyId)(auth.userId);
221
+ let requestedTxids;
222
+ if (args.txids?.length) {
223
+ if (args.txids.length > MAX_AUTH_PROOF_REQUEST_TXIDS) {
224
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.txids', `at most ${MAX_AUTH_PROOF_REQUEST_TXIDS} transaction IDs`);
225
+ }
226
+ requestedTxids = [];
227
+ for (const txid of args.txids) {
228
+ if ((await this.countTransactions({ partial: { userId, txid }, trx: args.trx })) > 0) {
229
+ requestedTxids.push(txid);
230
+ }
231
+ }
232
+ }
233
+ else {
234
+ // Built-in providers override this method with a joined/indexed query.
235
+ // Keep third-party implementations safe even when they only implement
236
+ // the older reader surface: bound the compatibility ownership scan and
237
+ // require exact txids for wallets beyond it.
238
+ const owned = await this.getProvenTxReqsForUser({
239
+ userId,
240
+ paged: { limit: MAX_AUTH_PROOF_REQUEST_FALLBACK_ROWS + 1, offset: 0 },
241
+ trx: args.trx
242
+ });
243
+ if (owned.length > MAX_AUTH_PROOF_REQUEST_FALLBACK_ROWS) {
244
+ throw new WERR_errors_1.WERR_INVALID_OPERATION('Authenticated proof-request scans beyond 10,000 rows require a provider-native scoped query or exact txids');
245
+ }
246
+ requestedTxids = owned.map(request => request.txid);
247
+ }
248
+ if (requestedTxids.length === 0)
249
+ return [];
250
+ return await this.findProvenTxReqs({ ...args, txids: requestedTxids });
251
+ }
252
+ async prepareNoSendExpiry(auth, args) {
253
+ if (auth.isActive !== true)
254
+ throw new WERR_errors_1.WERR_NOT_ACTIVE('BRC-177 requires the active storage provider');
255
+ if (!this.supportsNoSendExpiryPersistence()) {
256
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED('BRC-177 atomic lifecycle persistence');
257
+ }
258
+ return await (0, noSendExpiry_1.prepareNoSendExpiry)(this, auth, args);
259
+ }
260
+ async activateNoSendExpiry(auth, args) {
261
+ if (auth.isActive !== true)
262
+ throw new WERR_errors_1.WERR_NOT_ACTIVE('BRC-177 requires the active storage provider');
263
+ if (!this.supportsNoSendExpiryPersistence()) {
264
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED('BRC-177 atomic lifecycle persistence');
265
+ }
266
+ return await (0, noSendExpiry_1.activateNoSendExpiry)(this, auth, args);
267
+ }
268
+ async armNoSendExpiry(auth, args) {
269
+ if (auth.isActive !== true)
270
+ throw new WERR_errors_1.WERR_NOT_ACTIVE('BRC-177 requires the active storage provider');
271
+ if (!this.supportsNoSendExpiryPersistence()) {
272
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED('BRC-177 atomic lifecycle persistence');
273
+ }
274
+ await (0, noSendExpiry_1.armNoSendExpiry)(this, auth, args);
275
+ }
276
+ supportsNoSendExpiryPersistence() {
277
+ return false;
182
278
  }
183
279
  supportsActionBatchPersistence() {
184
280
  return false;
@@ -198,6 +294,9 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
198
294
  async renewActionBatch(auth, batchId) {
199
295
  return await (0, actionBatch_1.renewActionBatch)(this, auth, batchId);
200
296
  }
297
+ async resumeActionBatch(auth, args) {
298
+ return await (0, actionBatch_1.resumeActionBatch)(this, auth, args);
299
+ }
201
300
  async prepareActionBatchCommit(auth, manifest) {
202
301
  return await (0, actionBatchBlobs_1.prepareActionBatchCommit)(this, auth, manifest);
203
302
  }
@@ -325,14 +424,16 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
325
424
  }));
326
425
  }
327
426
  const unAbortableStatus = ['completed', 'failed', 'sending', 'unproven'];
328
- if (tx == null || !tx.isOutgoing || unAbortableStatus.includes(tx.status)) {
427
+ const brc177TerminalOrRacing = tx?.noSendExpiryState != null &&
428
+ ['broadcast', 'reclaiming', 'reclaimed', 'target-won', 'conflicted', 'cancelled'].includes(tx.noSendExpiryState);
429
+ if (tx == null || !tx.isOutgoing || (unAbortableStatus.includes(tx.status) && !brc177TerminalOrRacing)) {
329
430
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('reference', 'an inprocess, outgoing action that has not been signed and shared to the network.');
330
431
  }
331
432
  return { tx, reference };
332
433
  }
333
- async checkAbortChainProtection(tx, args, trx) {
334
- if (tx.txid == null || tx.txid === '' || tx.status !== 'nosend') {
335
- return { skipped: false, serviceUnreachable: false };
434
+ async observeAbortChainProtection(tx) {
435
+ if (tx.txid == null || tx.txid === '' || tx.status !== 'nosend' || tx.noSendExpiryState != null) {
436
+ return undefined;
336
437
  }
337
438
  let serviceUnreachable = false;
338
439
  let chainStatus;
@@ -348,21 +449,19 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
348
449
  catch {
349
450
  serviceUnreachable = true;
350
451
  }
351
- if (chainStatus !== 'mined' && chainStatus !== 'known') {
352
- return { skipped: false, serviceUnreachable };
353
- }
354
- const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
355
- if (req != null) {
356
- req.addHistoryNote({
357
- what: 'abortAction-skipped-onchain',
358
- reference: args.reference,
359
- chainStatus
360
- });
361
- await req.updateStorageDynamicProperties(this, trx);
362
- }
363
- return { skipped: true, serviceUnreachable };
452
+ return {
453
+ transactionId: tx.transactionId,
454
+ txid: tx.txid,
455
+ chainStatus,
456
+ serviceUnreachable
457
+ };
364
458
  }
365
459
  async invalidateAbortedTransaction(tx, userId, reference, originalReference, serviceUnreachable, trx) {
460
+ if (tx.noSendExpiryState === 'preparing' || tx.noSendExpiryState === 'unsigned') {
461
+ if (!(await this.compareAndSetNoSendExpiryState(tx.transactionId, tx.noSendExpiryState, 'cancelled', trx))) {
462
+ throw new WERR_errors_1.WERR_INVALID_OPERATION('BRC-177 action changed while it was being aborted');
463
+ }
464
+ }
366
465
  await this.updateTransactionStatus('failed', tx.transactionId, userId, reference, trx);
367
466
  if (tx.txid != null && tx.txid !== '') {
368
467
  const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
@@ -380,47 +479,131 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
380
479
  if (auth.userId == null)
381
480
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('auth.userId', 'valid');
382
481
  const userId = auth.userId;
383
- const r = await this.transaction(async (trx) => {
384
- const { tx, reference } = await this.findAbortableTransaction(userId, args, trx);
385
- // Chain-status protection for signed nosend txs.
386
- //
387
- // Background: a nosend tx (created via createAction({noSend:true}))
388
- // can be externally broadcast by the caller and reach 'mined' or
389
- // mempool-'known' status before any internalizeAction or Monitor
390
- // cycle has retired its 'nosend' status in storage. If abortAction
391
- // is invoked on it in that window, the destructive transitions
392
- // below (transactions.status='failed' + proven_tx_reqs.status='invalid')
393
- // orphan every output the tx produced — including auto-fund change
394
- // outputs the wallet itself emitted — because listOutputs filters
395
- // them out of the spendable set on parent-tx 'failed' status.
396
- //
397
- // Protection: if the tx has a txid AND status is 'nosend', ask
398
- // the network whether it already knows about the tx before
399
- // invalidating. getStatusForTxids returns 'mined' | 'known' |
400
- // 'unknown' per StatusForTxidResult (WalletServices.interfaces.ts).
401
- // Refuse the abort for 'mined' OR 'known' — a tx that's broadcast
402
- // and propagating in mempool returns 'known' (depth===0) and
403
- // protecting it avoids orphaning during the propagation window.
404
- //
405
- // Service-unreachable handling: proceed with abort. Refusal is
406
- // reserved for positive on-chain confirmation. When the network
407
- // confirmation pathway is itself unavailable (services throw or
408
- // gracefully return r.status !== 'success'), confirmation is not
409
- // possible — and per the BRC-100 contract callers retain the
410
- // ability to abort offline. The fallback writes a forensic
411
- // history note ('abortAction-offline-fallback') so an operator
412
- // can grep for aborts that proceeded under uncertainty. This
413
- // hole can never be 100% closed against externally-broadcast
414
- // chain-confirmed txs while offline; the audit trail makes it
415
- // recoverable.
416
- const protection = await this.checkAbortChainProtection(tx, args, trx);
417
- if (protection.skipped) {
418
- // Commit the audit note before translating this sentinel to aborted:false.
419
- return { __abortAction: 'skipped-onchain' };
420
- }
421
- return await this.invalidateAbortedTransaction(tx, userId, reference, args.reference, protection.serviceUnreachable, trx);
422
- });
482
+ let r;
483
+ for (let attempt = 0; attempt < 2; attempt++) {
484
+ // IndexedDB write transactions can auto-commit while awaiting non-database
485
+ // promises. Observe the chain before opening the write transaction, then
486
+ // bind the observation to the exact row and txid re-read below.
487
+ const preflight = await this.findAbortableTransaction(userId, args);
488
+ const chainObservation = await this.observeAbortChainProtection(preflight.tx);
489
+ r = await this.transaction(async (trx) => {
490
+ const { tx, reference } = await this.findAbortableTransaction(userId, args, trx);
491
+ if (tx.noSendExpiryState != null && auth.isActive !== true) {
492
+ throw new WERR_errors_1.WERR_NOT_ACTIVE('BRC-177 requires the active storage provider');
493
+ }
494
+ if (tx.noSendExpiryState === 'signed') {
495
+ // A released BRC-177 transaction must never be invalidated locally: the
496
+ // recipient may be broadcasting it at this instant. Make it due and let
497
+ // the lifecycle's positive chain/UTXO checks arbitrate the race.
498
+ if (!(await this.compareAndSetNoSendExpiryState(tx.transactionId, 'signed', 'revocation-requested', trx))) {
499
+ throw new WERR_errors_1.WERR_INVALID_OPERATION('BRC-177 action changed while early revocation was requested');
500
+ }
501
+ const req = tx.txid == null ? undefined : await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
502
+ if (req != null) {
503
+ req.addHistoryNote({ what: 'brc177-early-abort-reclaim-requested', reference: args.reference });
504
+ await req.updateStorageDynamicProperties(this, trx);
505
+ }
506
+ return {
507
+ __abortAction: 'brc177-reclaim-requested',
508
+ transactionId: tx.transactionId
509
+ };
510
+ }
511
+ if (tx.noSendExpiryState === 'revocation-requested') {
512
+ return {
513
+ __abortAction: 'brc177-reclaim-requested',
514
+ transactionId: tx.transactionId
515
+ };
516
+ }
517
+ if (tx.noSendExpiryState === 'reclaiming' || tx.noSendExpiryState === 'reclaimed') {
518
+ return { __abortAction: 'brc177-reclaim-in-progress' };
519
+ }
520
+ if (tx.noSendExpiryState === 'cancelled') {
521
+ return { __abortAction: 'brc177-cancelled' };
522
+ }
523
+ if (tx.noSendExpiryState === 'broadcast' ||
524
+ tx.noSendExpiryState === 'target-won' ||
525
+ tx.noSendExpiryState === 'conflicted') {
526
+ return { __abortAction: 'brc177-target-protected' };
527
+ }
528
+ // Chain-status protection for signed nosend txs.
529
+ //
530
+ // Background: a nosend tx (created via createAction({noSend:true}))
531
+ // can be externally broadcast by the caller and reach 'mined' or
532
+ // mempool-'known' status before any internalizeAction or Monitor
533
+ // cycle has retired its 'nosend' status in storage. If abortAction
534
+ // is invoked on it in that window, the destructive transitions
535
+ // below (transactions.status='failed' + proven_tx_reqs.status='invalid')
536
+ // orphan every output the tx produced — including auto-fund change
537
+ // outputs the wallet itself emitted — because listOutputs filters
538
+ // them out of the spendable set on parent-tx 'failed' status.
539
+ //
540
+ // Protection: if the tx has a txid AND status is 'nosend', ask
541
+ // the network whether it already knows about the tx before
542
+ // invalidating. getStatusForTxids returns 'mined' | 'known' |
543
+ // 'unknown' per StatusForTxidResult (WalletServices.interfaces.ts).
544
+ // Refuse the abort for 'mined' OR 'known' — a tx that's broadcast
545
+ // and propagating in mempool returns 'known' (depth===0) and
546
+ // protecting it avoids orphaning during the propagation window.
547
+ //
548
+ // Service-unreachable handling: proceed with abort. Refusal is
549
+ // reserved for positive on-chain confirmation. When the network
550
+ // confirmation pathway is itself unavailable (services throw or
551
+ // gracefully return r.status !== 'success'), confirmation is not
552
+ // possible — and per the BRC-100 contract callers retain the
553
+ // ability to abort offline. The fallback writes a forensic
554
+ // history note ('abortAction-offline-fallback') so an operator
555
+ // can grep for aborts that proceeded under uncertainty. This
556
+ // hole can never be 100% closed against externally-broadcast
557
+ // chain-confirmed txs while offline; the audit trail makes it
558
+ // recoverable.
559
+ if (tx.txid != null && tx.txid !== '' && tx.status === 'nosend' && tx.noSendExpiryState == null) {
560
+ if (chainObservation == null ||
561
+ chainObservation.transactionId !== tx.transactionId ||
562
+ chainObservation.txid !== tx.txid) {
563
+ return { __abortAction: 'retry-chain-check' };
564
+ }
565
+ if (chainObservation.chainStatus === 'mined' || chainObservation.chainStatus === 'known') {
566
+ const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
567
+ if (req != null) {
568
+ req.addHistoryNote({
569
+ what: 'abortAction-skipped-onchain',
570
+ reference: args.reference,
571
+ chainStatus: chainObservation.chainStatus
572
+ });
573
+ await req.updateStorageDynamicProperties(this, trx);
574
+ }
575
+ // Commit the audit note before translating this sentinel to aborted:false.
576
+ return { __abortAction: 'skipped-onchain' };
577
+ }
578
+ }
579
+ return await this.invalidateAbortedTransaction(tx, userId, reference, args.reference, chainObservation?.serviceUnreachable ?? false, trx);
580
+ });
581
+ if (!('__abortAction' in r) || r.__abortAction !== 'retry-chain-check')
582
+ break;
583
+ }
584
+ if (r == null || ('__abortAction' in r && r.__abortAction === 'retry-chain-check')) {
585
+ throw new WERR_errors_1.WERR_INVALID_OPERATION('Action changed while its chain status was being checked; retry abortAction');
586
+ }
423
587
  if ('__abortAction' in r) {
588
+ if (r.__abortAction === 'brc177-reclaim-requested') {
589
+ await (0, noSendExpiryLifecycle_1.processNoSendExpiryLifecycle)(this).catch(() => undefined);
590
+ const current = (0, utilityHelpers_1.verifyOne)(await this.findTransactions({
591
+ partial: { transactionId: r.transactionId },
592
+ noRawTx: true
593
+ }));
594
+ if (current.noSendExpiryState === 'broadcast' ||
595
+ current.noSendExpiryState === 'target-won' ||
596
+ current.noSendExpiryState === 'conflicted') {
597
+ return { aborted: false };
598
+ }
599
+ return { aborted: true };
600
+ }
601
+ if (r.__abortAction === 'brc177-reclaim-in-progress')
602
+ return { aborted: true };
603
+ if (r.__abortAction === 'brc177-cancelled')
604
+ return { aborted: true };
605
+ if (r.__abortAction === 'brc177-target-protected')
606
+ return { aborted: false };
424
607
  // Tone Engel review feedback (PR #122 comment 4444566147 item 3):
425
608
  // do not throw on chain-confirmed refusal — surface it via the
426
609
  // return value so callers can branch on it. Refusal is positive
@@ -477,6 +660,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
477
660
  }
478
661
  catch (error_) {
479
662
  const e = WalletError_1.WalletError.fromUnknown(error_);
663
+ d.status = 'error';
480
664
  d.error = `${e.name}: ${e.message}`;
481
665
  }
482
666
  }
@@ -568,6 +752,23 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
568
752
  await this.updateOutput((0, utilityHelpers_1.verifyId)(output.outputId), { spendable: false, spentBy: undefined }, trx);
569
753
  }
570
754
  }
755
+ async protectNoSendExpiryReclaimInputOnFailure(tx, trx) {
756
+ if (tx.txid == null)
757
+ return false;
758
+ const target = (0, utilityHelpers_1.verifyOneOrNone)(await this.findTransactions({
759
+ partial: { userId: tx.userId, noSendExpiryReclaimTxid: tx.txid },
760
+ noRawTx: true,
761
+ trx
762
+ }));
763
+ if (target == null)
764
+ return false;
765
+ // Generic failed-transaction cleanup releases inputs for reuse. A reclaim
766
+ // is different: the signed target may still be outside the wallet, so its
767
+ // anchor remains quarantined even when a processor rejects this reclaim.
768
+ // Keep the race lifecycle intact because a prior submission can still be
769
+ // proven later; a rejection response is not chain finality.
770
+ return true;
771
+ }
571
772
  /**
572
773
  * For all `status` values besides 'failed', just updates the transaction records status property.
573
774
  *
@@ -606,7 +807,9 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
606
807
  }
607
808
  switch (status) {
608
809
  case 'failed':
609
- await this.releaseInputsAllocatedToFailedTransaction(tx, trx);
810
+ if (!(await this.protectNoSendExpiryReclaimInputOnFailure(tx, trx))) {
811
+ await this.releaseInputsAllocatedToFailedTransaction(tx, trx);
812
+ }
610
813
  await this.markFailedTransactionOutputsNotSpendable(tx, trx);
611
814
  break;
612
815
  case 'nosend':
@@ -689,7 +892,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
689
892
  if (chainTracker != null) {
690
893
  const root = mp.computeRoot();
691
894
  const isValid = await chainTracker.isValidRootForHeight(root, proven.height);
692
- if (!isValid) {
895
+ if (isValid !== true) {
693
896
  if (skipInvalidProofs !== true)
694
897
  throw new WERR_errors_1.WERR_INVALID_MERKLE_ROOT(proven.blockHash, proven.height, root, txid);
695
898
  // Proof is currently invalid — recurse deeper via rawTx path
@@ -741,9 +944,10 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
741
944
  return (0, utilityHelpers_1.verifyOneOrNone)(await this.findMonitorEvents({ partial: { id }, trx }));
742
945
  }
743
946
  async relinquishCertificate(auth, args) {
744
- const vargs = sdk_1.Validation.validateRelinquishCertificateArgs(args);
947
+ const vargs = (0, validationHelpers_1.validateRelinquishCertificateArgs)(args);
745
948
  const cert = (0, utilityHelpers_1.verifyOne)(await this.findCertificates({
746
949
  partial: {
950
+ userId: auth.userId,
747
951
  certifier: vargs.certifier,
748
952
  serialNumber: vargs.serialNumber,
749
953
  type: vargs.type
@@ -754,21 +958,77 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
754
958
  });
755
959
  }
756
960
  async relinquishOutput(auth, args) {
757
- const vargs = sdk_1.Validation.validateRelinquishOutputArgs(args);
758
- const { txid, vout } = sdk_1.Validation.parseWalletOutpoint(vargs.output);
759
- const output = (0, utilityHelpers_1.verifyOne)(await this.findOutputs({ partial: { userId: auth.userId, txid, vout } }));
760
- return await this.updateOutput(output.outputId, { basketId: undefined });
961
+ const vargs = (0, validationHelpers_1.validateRelinquishOutputArgs)(args);
962
+ const { txid, vout } = (0, validationHelpers_1.parseWalletOutpoint)(vargs.output);
963
+ return await this.transaction(async (trx) => {
964
+ // Keep existing "not found" behavior for a missing output.
965
+ const output = (0, utilityHelpers_1.verifyOne)(await this.findOutputs({ partial: { userId: auth.userId, txid, vout }, trx }));
966
+ // Confirm the output actually belongs to the caller-claimed basket before
967
+ // clearing it. Without this, any caller that names an arbitrary basket it
968
+ // happens to hold basket-removal permission for could relinquish (and
969
+ // thereby free for reuse/spend by whichever app claims the output next)
970
+ // an output belonging to a different basket entirely, by outpoint alone.
971
+ const basket = (0, utilityHelpers_1.verifyOneOrNone)(await this.findOutputBaskets({ partial: { userId: auth.userId, name: vargs.basket }, trx }));
972
+ if (basket == null || output.basketId == null || output.basketId !== basket.basketId) {
973
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('basket', `the basket currently containing output ${vargs.output}`);
974
+ }
975
+ return await this.updateOutput(output.outputId, { basketId: undefined }, trx);
976
+ });
761
977
  }
762
978
  async processSyncChunk(args, chunk) {
763
- const user = (0, utilityHelpers_1.verifyTruthy)(await this.findUserByIdentityKey(args.identityKey));
764
- const ss = new entities_1.EntitySyncState((0, utilityHelpers_1.verifyOne)(await this.findSyncStates({
765
- partial: {
766
- storageIdentityKey: args.fromStorageIdentityKey,
767
- userId: user.userId
979
+ // Canonicalize before text-key lookup in every sync mode. Direct
980
+ // backup/conflict sync retains its established trust for new proof rows,
981
+ // but may replace an existing global proof only after active-chain
982
+ // validation. RPC validates every proof before reaching this method.
983
+ const incomingProofs = chunk.provenTxs ?? [];
984
+ for (const proof of incomingProofs)
985
+ (0, validateSyncProof_1.canonicalizeSyncProofIdentifiers)(proof);
986
+ if (incomingProofs.length > 0) {
987
+ const existingProofs = await this.findProvenTxs({
988
+ partial: {},
989
+ txids: [...new Set(incomingProofs.map(proof => proof.txid))]
990
+ });
991
+ const existingByTxid = new Map(existingProofs.map(proof => [proof.txid.toLowerCase(), proof]));
992
+ for (const proof of incomingProofs) {
993
+ const existing = existingByTxid.get(proof.txid);
994
+ if (existing == null)
995
+ (0, validateSyncProof_1.markSyncProofInsertOnly)(proof);
996
+ else if (!(0, validateSyncProof_1.sameSyncProof)(existing, proof))
997
+ await (0, validateSyncProof_1.validateSyncProof)(this, proof);
768
998
  }
769
- })));
770
- const r = await ss.processSyncChunk(this, args, chunk);
771
- return r;
999
+ }
1000
+ // A sync page may contain hundreds of related entities. Keep their lookups,
1001
+ // inserts, ID remapping, and sync-state checkpoint in one transaction. This
1002
+ // avoids a transaction startup/commit for every record (especially costly
1003
+ // in IndexedDB) and makes the page checkpoint atomic with its data changes.
1004
+ return await this.transaction(async (trx) => {
1005
+ const user = (0, utilityHelpers_1.verifyTruthy)((0, utilityHelpers_1.verifyOneOrNone)(await this.findUsers({ partial: { identityKey: args.identityKey }, trx })));
1006
+ const ss = new entities_1.EntitySyncState((0, utilityHelpers_1.verifyOne)(await this.findSyncStates({
1007
+ partial: args.syncStateId == null
1008
+ ? {
1009
+ storageIdentityKey: args.fromStorageIdentityKey,
1010
+ userId: user.userId
1011
+ }
1012
+ : {
1013
+ syncStateId: args.syncStateId,
1014
+ storageIdentityKey: args.fromStorageIdentityKey,
1015
+ userId: user.userId
1016
+ },
1017
+ trx
1018
+ })));
1019
+ if (args.requireMatchingCheckpoint === true) {
1020
+ const checkpoint = ss.makeSyncCheckpoint();
1021
+ const sameSince = (checkpoint.since == null ? undefined : new Date(checkpoint.since).getTime()) ===
1022
+ (args.since == null ? undefined : new Date(args.since).getTime());
1023
+ if (!sameSince ||
1024
+ checkpoint.offsets.length !== args.offsets.length ||
1025
+ checkpoint.offsets.some((entry, index) => entry.name !== args.offsets[index]?.name || entry.offset !== args.offsets[index]?.offset)) {
1026
+ throw new WERR_errors_1.WERR_INVALID_OPERATION('Wallet sync checkpoint changed; resume from its durable state before retrying');
1027
+ }
1028
+ }
1029
+ const result = await ss.processSyncChunk(this, args, chunk, trx);
1030
+ return args.includeNextCheckpoint === true ? { ...result, nextCheckpoint: ss.makeSyncCheckpoint() } : result;
1031
+ });
772
1032
  }
773
1033
  /**
774
1034
  * Handles storage changes when a valid MerklePath and mined block header are found for a ProvenTxReq txid.
@@ -783,8 +1043,11 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
783
1043
  *
784
1044
  * Alterations of "typically" to handle:
785
1045
  */
786
- async updateProvenTxReqWithNewProvenTx(args) {
1046
+ async updateProvenTxReqWithNewProvenTx(args, validatedCandidate) {
787
1047
  const req = await entities_1.EntityProvenTxReq.fromStorageId(this, args.provenTxReqId);
1048
+ if (req.txid.toLowerCase() !== args.txid.toLowerCase()) {
1049
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.txid', 'the transaction id of the selected proof request');
1050
+ }
788
1051
  let proven;
789
1052
  if (req.provenTxId != null && req.provenTxId > 0) {
790
1053
  // Someone beat us to it, grab what we need for results...
@@ -796,19 +1059,20 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
796
1059
  }
797
1060
  }
798
1061
  else {
1062
+ const candidate = validatedCandidate ?? {
1063
+ created_at: new Date(),
1064
+ updated_at: new Date(),
1065
+ provenTxId: 0,
1066
+ txid: args.txid,
1067
+ height: args.height,
1068
+ index: args.index,
1069
+ merklePath: args.merklePath,
1070
+ rawTx: req.rawTx,
1071
+ blockHash: args.blockHash,
1072
+ merkleRoot: args.merkleRoot
1073
+ };
799
1074
  proven = await this.transaction(async (trx) => {
800
- const { proven: api } = await this.findOrInsertProvenTx({
801
- created_at: new Date(),
802
- updated_at: new Date(),
803
- provenTxId: 0,
804
- txid: args.txid,
805
- height: args.height,
806
- index: args.index,
807
- merklePath: args.merklePath,
808
- rawTx: req.rawTx,
809
- blockHash: args.blockHash,
810
- merkleRoot: args.merkleRoot
811
- }, trx);
1075
+ const { proven: api } = await this.findOrInsertProvenTx(candidate, trx);
812
1076
  const found = new entities_1.EntityProvenTx(api);
813
1077
  if (req.status !== 'completed' || req.provenTxId !== found.provenTxId) {
814
1078
  req.status = 'completed';
@@ -828,6 +1092,34 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
828
1092
  };
829
1093
  return r;
830
1094
  }
1095
+ /** Authorize and validate remote proof completion before mutating shared proof state. */
1096
+ async updateProvenTxReqWithNewProvenTxAuth(auth, args) {
1097
+ const userId = (0, utilityHelpers_1.verifyId)(auth.userId);
1098
+ const req = await entities_1.EntityProvenTxReq.fromStorageId(this, args.provenTxReqId);
1099
+ if (req.txid.toLowerCase() !== args.txid.toLowerCase()) {
1100
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.txid', 'the transaction id of the selected proof request');
1101
+ }
1102
+ const ownedTransactions = await this.countTransactions({
1103
+ partial: { userId, txid: req.txid }
1104
+ });
1105
+ if (ownedTransactions === 0) {
1106
+ throw new WERR_errors_1.WERR_UNAUTHORIZED('The proof request does not belong to the authenticated wallet.');
1107
+ }
1108
+ const candidate = {
1109
+ created_at: new Date(),
1110
+ updated_at: new Date(),
1111
+ provenTxId: 0,
1112
+ txid: args.txid,
1113
+ height: args.height,
1114
+ index: args.index,
1115
+ merklePath: args.merklePath,
1116
+ rawTx: req.rawTx,
1117
+ blockHash: args.blockHash,
1118
+ merkleRoot: args.merkleRoot
1119
+ };
1120
+ await (0, validateSyncProof_1.validateSyncProof)(this, candidate);
1121
+ return await this.updateProvenTxReqWithNewProvenTx(args, candidate);
1122
+ }
831
1123
  /**
832
1124
  * Reconcile completed proof requests whose transaction fan-out previously
833
1125
  * failed or whose durable notification state drifted.
@@ -874,7 +1166,16 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
874
1166
  for (const output of outputs) {
875
1167
  const outputId = (0, utilityHelpers_1.verifyId)(output.outputId);
876
1168
  await this.validateOutputScript(output);
877
- verdicts.set(outputId, output.lockingScript == null ? undefined : await services.isUtxo(output));
1169
+ if (output.lockingScript == null) {
1170
+ verdicts.set(outputId, undefined);
1171
+ continue;
1172
+ }
1173
+ const classification = await (0, classifyOutputUtxo_1.classifyOutputUtxo)(services, output);
1174
+ // Proof recovery must not turn provider absence into a spent verdict.
1175
+ // Leave the output's current state unchanged when no UTXO service can
1176
+ // answer conclusively; the validated proof still repairs transaction
1177
+ // and consumed-input state.
1178
+ verdicts.set(outputId, classification.verdict === 'unknown' ? undefined : classification.verdict === 'unspent');
878
1179
  }
879
1180
  }
880
1181
  return verdicts;
@@ -920,18 +1221,14 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
920
1221
  }
921
1222
  const isUtxo = outputVerdicts.get(outputId);
922
1223
  if (isUtxo == null) {
923
- log +=
924
- ' '.repeat(indent + 2) +
925
- `output ${output.outputId} does not have a valid locking script\n`;
1224
+ log += ' '.repeat(indent + 2) + `output ${output.outputId} does not have a valid locking script\n`;
926
1225
  continue;
927
1226
  }
928
1227
  if (isUtxo === output.spendable) {
929
1228
  log += ' '.repeat(indent + 2) + `output ${output.outputId} unchanged\n`;
930
1229
  continue;
931
1230
  }
932
- log +=
933
- ' '.repeat(indent + 2) +
934
- `output ${output.outputId} set to ${isUtxo ? 'spendable' : 'spent'}\n`;
1231
+ log += ' '.repeat(indent + 2) + `output ${output.outputId} set to ${isUtxo ? 'spendable' : 'spent'}\n`;
935
1232
  await this.updateOutput(outputId, { spendable: isUtxo }, trx);
936
1233
  }
937
1234
  return log;
@@ -941,8 +1238,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
941
1238
  throw new WERR_errors_1.WERR_INTERNAL(`Transaction ${tx.transactionId} changed while preparing proof recovery.`);
942
1239
  }
943
1240
  await this.updateTransaction(tx.transactionId, { status: 'unproven' }, trx);
944
- let log = ' '.repeat(indent) +
945
- `transaction ${tx.transactionId} status is now 'unproven'\n`;
1241
+ let log = ' '.repeat(indent) + `transaction ${tx.transactionId} status is now 'unproven'\n`;
946
1242
  log += await this.restoreProofRecoveryInputs(tx, bsvtx, indent, trx);
947
1243
  log += await this.restoreProofRecoveryOutputs(tx, outputVerdicts, indent, trx);
948
1244
  return log;
@@ -1064,20 +1360,14 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
1064
1360
  for (const o of outputs) {
1065
1361
  if (!o.spendable)
1066
1362
  continue;
1067
- const isUtxo = await this.checkOutputIsUtxo(o, services);
1363
+ await this.validateOutputScript(o);
1364
+ const isUtxo = (0, classifyOutputUtxo_1.requireConclusiveUtxo)(await (0, classifyOutputUtxo_1.classifyOutputUtxo)(services, o));
1068
1365
  if (!isUtxo)
1069
1366
  invalidSpendableOutputs.push(o);
1070
1367
  }
1071
1368
  }
1072
1369
  return { invalidSpendableOutputs };
1073
1370
  }
1074
- async checkOutputIsUtxo(o, services) {
1075
- if (o.lockingScript == null || o.lockingScript.length === 0)
1076
- return false;
1077
- const hash = services.hashOutputScript((0, utilityHelpers_noBuffer_1.asString)(o.lockingScript));
1078
- const r = await services.getUtxoStatus(hash, undefined, `${o.txid ?? ''}.${o.vout ?? ''}`);
1079
- return r.isUtxo === true;
1080
- }
1081
1371
  async updateProvenTxReqDynamics(id, update, trx) {
1082
1372
  const partial = {};
1083
1373
  if (update.updated_at != null)