@bopen-io/wallet-toolbox 2.6.2-brc153.5 → 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 +390 -105
  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 +171 -133
  606. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  607. package/out/src/storage/methods/listActionsIdb.d.ts +3 -2
  608. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  609. package/out/src/storage/methods/listActionsIdb.js +2 -2
  610. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  611. package/out/src/storage/methods/listActionsKnex.d.ts +3 -2
  612. package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
  613. package/out/src/storage/methods/listActionsKnex.js +22 -11
  614. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  615. package/out/src/storage/methods/listCertificates.d.ts +3 -2
  616. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  617. package/out/src/storage/methods/listCertificates.js.map +1 -1
  618. package/out/src/storage/methods/listOutputsIdb.d.ts +3 -2
  619. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  620. package/out/src/storage/methods/listOutputsIdb.js +25 -18
  621. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  622. package/out/src/storage/methods/listOutputsKnex.d.ts +3 -2
  623. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
  624. package/out/src/storage/methods/listOutputsKnex.js +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 +16 -0
  809. package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -1
  810. package/out/src/utility/brc153ReferenceLabels.js +20 -5
  811. package/out/src/utility/brc153ReferenceLabels.js.map +1 -1
  812. package/out/src/utility/brc177NoSendExpiry.d.ts +34 -0
  813. package/out/src/utility/brc177NoSendExpiry.d.ts.map +1 -0
  814. package/out/src/utility/brc177NoSendExpiry.js +81 -0
  815. package/out/src/utility/brc177NoSendExpiry.js.map +1 -0
  816. package/out/src/utility/canonicalizeAtomicBeef.d.ts +12 -0
  817. package/out/src/utility/canonicalizeAtomicBeef.d.ts.map +1 -0
  818. package/out/src/utility/canonicalizeAtomicBeef.js +23 -0
  819. package/out/src/utility/canonicalizeAtomicBeef.js.map +1 -0
  820. package/out/src/utility/exactActionSpend.d.ts +9 -0
  821. package/out/src/utility/exactActionSpend.d.ts.map +1 -0
  822. package/out/src/utility/exactActionSpend.js +26 -0
  823. package/out/src/utility/exactActionSpend.js.map +1 -0
  824. package/out/src/utility/hashWasm.d.ts +1 -1
  825. package/out/src/utility/hashWasm.d.ts.map +1 -1
  826. package/out/src/utility/hashWasm.js +83 -1
  827. package/out/src/utility/hashWasm.js.map +1 -1
  828. package/out/src/utility/identityUtils.d.ts +44 -4
  829. package/out/src/utility/identityUtils.d.ts.map +1 -1
  830. package/out/src/utility/identityUtils.js +523 -61
  831. package/out/src/utility/identityUtils.js.map +1 -1
  832. package/out/src/utility/index.all.d.ts +2 -0
  833. package/out/src/utility/index.all.d.ts.map +1 -1
  834. package/out/src/utility/index.all.js +2 -0
  835. package/out/src/utility/index.all.js.map +1 -1
  836. package/out/src/utility/index.client.d.ts +2 -0
  837. package/out/src/utility/index.client.d.ts.map +1 -1
  838. package/out/src/utility/index.client.js +2 -0
  839. package/out/src/utility/index.client.js.map +1 -1
  840. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
  841. package/out/src/utility/parseTxScriptOffsets.js +1 -19
  842. package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
  843. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  844. package/out/src/utility/tscProofToMerklePath.js +35 -4
  845. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  846. package/out/src/utility/utilityHelpers.d.ts +1 -1
  847. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  848. package/out/src/utility/utilityHelpers.js +10 -7
  849. package/out/src/utility/utilityHelpers.js.map +1 -1
  850. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  851. package/out/src/utility/utilityHelpers.noBuffer.js +6 -6
  852. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  853. package/out/src/utility/verifyOverlayOutput.d.ts +12 -0
  854. package/out/src/utility/verifyOverlayOutput.d.ts.map +1 -0
  855. package/out/src/utility/verifyOverlayOutput.js +22 -0
  856. package/out/src/utility/verifyOverlayOutput.js.map +1 -0
  857. package/out/src/utility/walletResultGuards.d.ts +14 -0
  858. package/out/src/utility/walletResultGuards.d.ts.map +1 -0
  859. package/out/src/utility/walletResultGuards.js +28 -0
  860. package/out/src/utility/walletResultGuards.js.map +1 -0
  861. package/out/src/wab-client/WABClient.d.ts +4 -17
  862. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  863. package/out/src/wab-client/WABClient.js +35 -12
  864. package/out/src/wab-client/WABClient.js.map +1 -1
  865. package/out/src/wab-client/WABResponseValidation.d.ts +48 -0
  866. package/out/src/wab-client/WABResponseValidation.d.ts.map +1 -0
  867. package/out/src/wab-client/WABResponseValidation.js +321 -0
  868. package/out/src/wab-client/WABResponseValidation.js.map +1 -0
  869. package/out/src/wab-client/WABTransport.d.ts +17 -23
  870. package/out/src/wab-client/WABTransport.d.ts.map +1 -1
  871. package/out/src/wab-client/WABTransport.js +130 -142
  872. package/out/src/wab-client/WABTransport.js.map +1 -1
  873. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +8 -0
  874. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  875. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +3 -2
  876. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  877. package/package.json +36 -32
  878. package/docs/open-rpc/index.html +0 -46
@@ -0,0 +1,691 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processNoSendExpiryLifecycle = processNoSendExpiryLifecycle;
4
+ const sdk_1 = require("@bsv/sdk");
5
+ const WERR_errors_1 = require("../../sdk/WERR_errors");
6
+ const parseTxScriptOffsets_1 = require("../../utility/parseTxScriptOffsets");
7
+ const utilityHelpers_1 = require("../../utility/utilityHelpers");
8
+ const utilityHelpers_noBuffer_1 = require("../../utility/utilityHelpers.noBuffer");
9
+ const EntityProvenTxReq_1 = require("../schema/entities/EntityProvenTxReq");
10
+ // Descending lifecycle order ensures a row advanced by this pass moves only
11
+ // into a state whose page has already run, so it is never counted or acted on
12
+ // twice without retaining an unbounded set of transaction IDs.
13
+ const ACTIVE_STATES = [
14
+ 'reclaiming',
15
+ 'broadcast',
16
+ 'conflicted',
17
+ 'revocation-requested',
18
+ 'signed',
19
+ 'unsigned',
20
+ 'preparing'
21
+ ];
22
+ const QUERY_PAGE_SIZE = 100;
23
+ const STATUS_BATCH_SIZE = 100;
24
+ const RECLAIM_RETRY_BASE_MSECS = 30_000;
25
+ const RECLAIM_RETRY_MAX_MSECS = 60 * 60_000;
26
+ function emptyResult() {
27
+ return {
28
+ inspected: 0,
29
+ cancelled: 0,
30
+ observed: 0,
31
+ reclaimActivated: 0,
32
+ reclaimRetried: 0,
33
+ reclaimed: 0,
34
+ targetWon: 0,
35
+ deferred: 0,
36
+ errors: 0
37
+ };
38
+ }
39
+ async function activeTransactionsOnPage(storage, page) {
40
+ // A remote database may be retained as a synchronized backup while another
41
+ // provider is authoritative for a user. Check only the bounded set of users
42
+ // represented by this page rather than materializing every active user or
43
+ // expiry in a multi-user service.
44
+ const activeStorage = storage.getSettings().storageIdentityKey;
45
+ const activeUsers = new Set();
46
+ for (const userId of new Set(page.map(transaction => transaction.userId))) {
47
+ const user = (0, utilityHelpers_1.verifyOneOrNone)(await storage.findUsers({
48
+ partial: { userId, activeStorage },
49
+ paged: { limit: 1 }
50
+ }));
51
+ if (user != null)
52
+ activeUsers.add(userId);
53
+ }
54
+ return page.filter(transaction => activeUsers.has(transaction.userId));
55
+ }
56
+ function isDue(transaction, nowSeconds, height) {
57
+ if (transaction.noSendExpiryState === 'revocation-requested')
58
+ return true;
59
+ if (transaction.noSendExpiryDeadline == null)
60
+ return false;
61
+ return transaction.noSendExpiryMode === 'blockheight'
62
+ ? height != null && height >= transaction.noSendExpiryDeadline
63
+ : nowSeconds >= transaction.noSendExpiryDeadline;
64
+ }
65
+ async function getStatuses(storage, transactions) {
66
+ const txids = [
67
+ ...new Set(transactions.flatMap(transaction => {
68
+ const txids = [];
69
+ if (transaction.txid)
70
+ txids.push(transaction.txid);
71
+ if (transaction.noSendExpiryState === 'reclaiming' && transaction.noSendExpiryReclaimTxid) {
72
+ txids.push(transaction.noSendExpiryReclaimTxid);
73
+ }
74
+ return txids;
75
+ }))
76
+ ];
77
+ if (txids.length === 0)
78
+ return new Map();
79
+ const statuses = new Map();
80
+ for (let offset = 0; offset < txids.length; offset += STATUS_BATCH_SIZE) {
81
+ try {
82
+ const result = await storage.getServices().getStatusForTxids(txids.slice(offset, offset + STATUS_BATCH_SIZE));
83
+ if (result.status !== 'success')
84
+ continue;
85
+ for (const item of result.results)
86
+ statuses.set(item.txid, item.status);
87
+ }
88
+ catch { }
89
+ }
90
+ return statuses;
91
+ }
92
+ async function updateReqStatus(storage, txid, status, note, trx) {
93
+ if (!txid)
94
+ return;
95
+ const req = await EntityProvenTxReq_1.EntityProvenTxReq.fromStorageTxid(storage, txid, trx);
96
+ if (req == null || req.status === 'completed')
97
+ return;
98
+ req.status = status;
99
+ req.addHistoryNote({ what: note });
100
+ await req.updateStorageDynamicProperties(storage, trx);
101
+ }
102
+ async function quarantineTransactionOutputs(storage, transactionId, trx) {
103
+ const outputs = await storage.findOutputs({ partial: { transactionId }, trx });
104
+ for (const output of outputs) {
105
+ if (output.spendable)
106
+ await storage.updateOutput(output.outputId, { spendable: false }, trx);
107
+ }
108
+ }
109
+ async function markObservedTarget(storage, transaction, final) {
110
+ return await storage.transaction(async (trx) => {
111
+ const current = (0, utilityHelpers_1.verifyOne)(await storage.findTransactions({
112
+ partial: { transactionId: (0, utilityHelpers_1.verifyId)(transaction.transactionId) },
113
+ trx
114
+ }));
115
+ if (current.noSendExpiryState === 'reclaimed' || current.noSendExpiryState === 'cancelled')
116
+ return false;
117
+ if (final) {
118
+ return await finishTargetWinner(storage, current, trx);
119
+ }
120
+ if (current.noSendExpiryState !== 'signed' &&
121
+ current.noSendExpiryState !== 'revocation-requested' &&
122
+ current.noSendExpiryState !== 'broadcast' &&
123
+ current.noSendExpiryState !== 'conflicted') {
124
+ return false;
125
+ }
126
+ // Claim even an existing broadcast state. Besides making conflicted ->
127
+ // broadcast monotonic, the conditional write holds this row for the rest
128
+ // of the transaction so a concurrent reclaim/proof winner cannot be
129
+ // overwritten by the observation metadata update below.
130
+ if (!(await storage.compareAndSetNoSendExpiryState(current.transactionId, current.noSendExpiryState, 'broadcast', trx))) {
131
+ return false;
132
+ }
133
+ await storage.updateTransaction(current.transactionId, {
134
+ noSendExpiryObservedAt: Date.now(),
135
+ ...(current.status === 'nosend' ? { status: 'unproven' } : {})
136
+ }, trx);
137
+ await updateReqStatus(storage, current.txid, 'unmined', 'brc177-target-observed', trx);
138
+ return true;
139
+ });
140
+ }
141
+ async function noteTargetObservedDuringRace(storage, transaction) {
142
+ return await storage.transaction(async (trx) => {
143
+ const current = (0, utilityHelpers_1.verifyOne)(await storage.findTransactions({
144
+ partial: { transactionId: (0, utilityHelpers_1.verifyId)(transaction.transactionId) },
145
+ trx
146
+ }));
147
+ if (current.noSendExpiryState !== 'reclaiming')
148
+ return false;
149
+ // Lock the lifecycle row before changing transaction/request metadata. If
150
+ // a proof winner committed after our read, this self-transition fails and
151
+ // prevents stale observation data from reviving the losing transaction.
152
+ if (!(await storage.compareAndSetNoSendExpiryState(current.transactionId, 'reclaiming', 'reclaiming', trx))) {
153
+ return false;
154
+ }
155
+ let changed = false;
156
+ if (current.status === 'nosend') {
157
+ await storage.updateTransaction(current.transactionId, {
158
+ status: 'unproven',
159
+ noSendExpiryObservedAt: current.noSendExpiryObservedAt ?? Date.now()
160
+ }, trx);
161
+ changed = true;
162
+ }
163
+ if (current.txid != null) {
164
+ const req = await EntityProvenTxReq_1.EntityProvenTxReq.fromStorageTxid(storage, current.txid, trx);
165
+ if (req?.status === 'nosend') {
166
+ req.status = 'unmined';
167
+ req.addHistoryNote({ what: 'brc177-target-observed-during-reclaim-race' });
168
+ await req.updateStorageDynamicProperties(storage, trx);
169
+ changed = true;
170
+ }
171
+ }
172
+ if (current.noSendExpiryReclaimTxid != null) {
173
+ const reclaim = (0, utilityHelpers_1.verifyOneOrNone)(await storage.findTransactions({
174
+ partial: { userId: current.userId, txid: current.noSendExpiryReclaimTxid },
175
+ trx
176
+ }));
177
+ const reclaimReq = await EntityProvenTxReq_1.EntityProvenTxReq.fromStorageTxid(storage, current.noSendExpiryReclaimTxid, trx);
178
+ // Once the target is positively observed, BRC-177 stops future reclaim
179
+ // submissions. Keep the request in proof tracking because a prior send
180
+ // may still have reached a processor and either side can win the race.
181
+ if (reclaimReq != null && (reclaimReq.status === 'unsent' || reclaimReq.status === 'sending')) {
182
+ reclaimReq.status = 'unmined';
183
+ reclaimReq.addHistoryNote({ what: 'brc177-reclaim-retry-suppressed-target-observed' });
184
+ await reclaimReq.updateStorageDynamicProperties(storage, trx);
185
+ if (reclaim != null && (reclaim.status === 'unprocessed' || reclaim.status === 'sending')) {
186
+ await storage.updateTransaction(reclaim.transactionId, { status: 'unproven' }, trx);
187
+ }
188
+ changed = true;
189
+ }
190
+ }
191
+ return changed;
192
+ });
193
+ }
194
+ async function cancelUnsigned(storage, transaction) {
195
+ return await storage.transaction(async (trx) => {
196
+ const expected = transaction.noSendExpiryState;
197
+ if (expected !== 'preparing' && expected !== 'unsigned')
198
+ return false;
199
+ if (!(await storage.compareAndSetNoSendExpiryState(transaction.transactionId, expected, 'cancelled', trx))) {
200
+ return false;
201
+ }
202
+ await storage.updateTransactionStatus('failed', transaction.transactionId, undefined, undefined, trx);
203
+ return true;
204
+ });
205
+ }
206
+ function validateReclaim(transaction) {
207
+ if (transaction.noSendExpiryReclaimRawTx == null ||
208
+ !transaction.noSendExpiryReclaimTxid ||
209
+ !transaction.noSendExpiryReclaimDerivationPrefix ||
210
+ !transaction.noSendExpiryReclaimDerivationSuffix ||
211
+ transaction.noSendExpiryReclaimSatoshis == null ||
212
+ !transaction.noSendExpiryAnchorTxid ||
213
+ transaction.noSendExpiryAnchorVout == null) {
214
+ throw new WERR_errors_1.WERR_INVALID_OPERATION('BRC-177 reclaim metadata is incomplete');
215
+ }
216
+ const reclaim = sdk_1.Transaction.fromBinary((0, utilityHelpers_noBuffer_1.asArray)(transaction.noSendExpiryReclaimRawTx));
217
+ if (reclaim.id('hex') !== transaction.noSendExpiryReclaimTxid ||
218
+ reclaim.inputs.length !== 1 ||
219
+ reclaim.outputs.length !== 1 ||
220
+ reclaim.inputs[0].sourceTXID !== transaction.noSendExpiryAnchorTxid ||
221
+ reclaim.inputs[0].sourceOutputIndex !== transaction.noSendExpiryAnchorVout ||
222
+ reclaim.outputs[0].satoshis !== transaction.noSendExpiryReclaimSatoshis) {
223
+ throw new WERR_errors_1.WERR_INVALID_OPERATION('BRC-177 reclaim metadata does not describe the signed reclaim transaction');
224
+ }
225
+ return reclaim;
226
+ }
227
+ async function insertReclaim(storage, target, anchor, trx) {
228
+ const reclaim = validateReclaim(target);
229
+ const rawTx = (0, utilityHelpers_noBuffer_1.asArray)(target.noSendExpiryReclaimRawTx);
230
+ const reclaimTxid = target.noSendExpiryReclaimTxid;
231
+ const existingTransaction = (0, utilityHelpers_1.verifyOneOrNone)(await storage.findTransactions({
232
+ partial: { userId: target.userId, txid: reclaimTxid },
233
+ trx
234
+ }));
235
+ let reclaimTransaction = existingTransaction;
236
+ if (reclaimTransaction == null) {
237
+ const now = new Date();
238
+ reclaimTransaction = {
239
+ created_at: now,
240
+ updated_at: now,
241
+ transactionId: 0,
242
+ userId: target.userId,
243
+ status: 'unprocessed',
244
+ reference: (0, utilityHelpers_1.randomBytesBase64)(12),
245
+ isOutgoing: true,
246
+ satoshis: target.noSendExpiryReclaimSatoshis - anchor.satoshis,
247
+ description: 'BRC-177 expiry reclaim',
248
+ version: reclaim.version,
249
+ lockTime: reclaim.lockTime,
250
+ txid: reclaimTxid
251
+ };
252
+ reclaimTransaction.transactionId = await storage.insertTransaction(reclaimTransaction, trx);
253
+ const basket = (0, utilityHelpers_1.verifyOne)(await storage.findOutputBaskets({
254
+ partial: { userId: target.userId, name: 'default' },
255
+ trx
256
+ }));
257
+ const offsets = (0, parseTxScriptOffsets_1.parseTxScriptOffsets)(rawTx);
258
+ const scriptOffset = offsets.outputs[0];
259
+ const lockingScript = rawTx.slice(scriptOffset.offset, scriptOffset.offset + scriptOffset.length);
260
+ await storage.insertOutput({
261
+ created_at: now,
262
+ updated_at: now,
263
+ outputId: 0,
264
+ userId: target.userId,
265
+ transactionId: reclaimTransaction.transactionId,
266
+ basketId: basket.basketId,
267
+ // The reclaim is deliberately racing the released target. Do not expose
268
+ // its output as wallet liquidity until a locally validated proof wins.
269
+ spendable: false,
270
+ change: true,
271
+ outputDescription: '',
272
+ vout: 0,
273
+ satoshis: target.noSendExpiryReclaimSatoshis,
274
+ providedBy: 'storage',
275
+ purpose: 'change',
276
+ type: 'P2PKH',
277
+ txid: reclaimTxid,
278
+ derivationPrefix: target.noSendExpiryReclaimDerivationPrefix,
279
+ derivationSuffix: target.noSendExpiryReclaimDerivationSuffix,
280
+ scriptLength: scriptOffset.length,
281
+ scriptOffset: scriptOffset.offset,
282
+ lockingScript: scriptOffset.length > storage.getSettings().maxOutputScript ? undefined : lockingScript
283
+ }, trx);
284
+ }
285
+ await storage.updateOutput(anchor.outputId, {
286
+ spendable: false,
287
+ spentBy: reclaimTransaction.transactionId
288
+ }, trx);
289
+ const targetReq = target.txid == null ? undefined : await EntityProvenTxReq_1.EntityProvenTxReq.fromStorageTxid(storage, target.txid, trx);
290
+ if (targetReq == null)
291
+ throw new WERR_errors_1.WERR_INTERNAL('BRC-177 protected transaction request is missing');
292
+ const req = EntityProvenTxReq_1.EntityProvenTxReq.fromTxid(reclaimTxid, rawTx, targetReq.api.inputBEEF);
293
+ req.status = 'unsent';
294
+ req.addNotifyTransactionId(reclaimTransaction.transactionId);
295
+ req.addHistoryNote({ what: 'brc177-reclaim-activated', targetTxid: target.txid });
296
+ return await req.insertOrMerge(storage, trx);
297
+ }
298
+ async function activateReclaim(storage, transaction, anchor, expected) {
299
+ return await storage.transaction(async (trx) => {
300
+ if (!(await storage.compareAndSetNoSendExpiryState(transaction.transactionId, expected, 'reclaiming', trx)))
301
+ return undefined;
302
+ return await insertReclaim(storage, transaction, anchor, trx);
303
+ });
304
+ }
305
+ async function finishReclaimWinner(storage, target, reclaimTransaction, trx) {
306
+ const currentTarget = (0, utilityHelpers_1.verifyOne)(await storage.findTransactions({
307
+ partial: { transactionId: target.transactionId, userId: target.userId },
308
+ trx
309
+ }));
310
+ const currentReclaim = (0, utilityHelpers_1.verifyOne)(await storage.findTransactions({
311
+ partial: { transactionId: reclaimTransaction.transactionId, userId: target.userId },
312
+ trx
313
+ }));
314
+ if (currentTarget.noSendExpiryState !== 'reclaiming' ||
315
+ currentTarget.status === 'completed' ||
316
+ currentTarget.provenTxId != null ||
317
+ currentReclaim.provenTxId == null) {
318
+ return false;
319
+ }
320
+ if (!(await storage.compareAndSetNoSendExpiryState(currentTarget.transactionId, 'reclaiming', 'reclaimed', trx))) {
321
+ return false;
322
+ }
323
+ if (currentTarget.status !== 'failed') {
324
+ await storage.updateTransactionStatus('failed', currentTarget.transactionId, undefined, undefined, trx);
325
+ }
326
+ await updateReqStatus(storage, currentTarget.txid, 'invalid', 'brc177-reclaim-won', trx);
327
+ const anchor = (0, utilityHelpers_1.verifyOne)(await storage.findOutputs({
328
+ partial: {
329
+ userId: currentTarget.userId,
330
+ txid: currentTarget.noSendExpiryAnchorTxid,
331
+ vout: currentTarget.noSendExpiryAnchorVout
332
+ },
333
+ trx
334
+ }));
335
+ await storage.updateOutput(anchor.outputId, {
336
+ spendable: false,
337
+ spentBy: currentReclaim.transactionId
338
+ }, trx);
339
+ const reclaimOutput = (0, utilityHelpers_1.verifyOne)(await storage.findOutputs({
340
+ partial: { transactionId: currentReclaim.transactionId, vout: 0 },
341
+ trx
342
+ }));
343
+ await storage.updateOutput(reclaimOutput.outputId, { spendable: true }, trx);
344
+ return true;
345
+ }
346
+ async function finishTargetWinner(storage, target, trx) {
347
+ const current = (0, utilityHelpers_1.verifyOne)(await storage.findTransactions({
348
+ partial: { transactionId: target.transactionId, userId: target.userId },
349
+ trx
350
+ }));
351
+ if (current.noSendExpiryState == null ||
352
+ current.noSendExpiryState === 'reclaimed' ||
353
+ current.noSendExpiryState === 'cancelled' ||
354
+ current.noSendExpiryState === 'target-won') {
355
+ return false;
356
+ }
357
+ const reclaimTxid = current.noSendExpiryReclaimTxid;
358
+ const reclaimTransaction = reclaimTxid == null
359
+ ? undefined
360
+ : (0, utilityHelpers_1.verifyOneOrNone)(await storage.findTransactions({
361
+ partial: { userId: current.userId, txid: reclaimTxid },
362
+ trx
363
+ }));
364
+ // Contradictory completion/proof signals for competing spends cannot both
365
+ // describe the same best chain. Keep every output quarantined until the
366
+ // ordinary proof reconciliation machinery resolves that inconsistency.
367
+ if (reclaimTransaction?.status === 'completed' || reclaimTransaction?.provenTxId != null) {
368
+ await quarantineTransactionOutputs(storage, current.transactionId, trx);
369
+ await quarantineTransactionOutputs(storage, reclaimTransaction.transactionId, trx);
370
+ return false;
371
+ }
372
+ // A status flag alone suppresses reclaim but never releases value or
373
+ // finalizes a winner; only the linked, locally validated proof may do that.
374
+ if (current.provenTxId == null)
375
+ return false;
376
+ if (!(await storage.compareAndSetNoSendExpiryState(current.transactionId, current.noSendExpiryState, 'target-won', trx))) {
377
+ return false;
378
+ }
379
+ if (reclaimTransaction != null && reclaimTransaction.status !== 'failed') {
380
+ await storage.updateTransactionStatus('failed', reclaimTransaction.transactionId, undefined, undefined, trx);
381
+ await updateReqStatus(storage, reclaimTxid, 'doubleSpend', 'brc177-target-won', trx);
382
+ }
383
+ const anchor = (0, utilityHelpers_1.verifyOne)(await storage.findOutputs({
384
+ partial: {
385
+ userId: current.userId,
386
+ txid: current.noSendExpiryAnchorTxid,
387
+ vout: current.noSendExpiryAnchorVout
388
+ },
389
+ trx
390
+ }));
391
+ await storage.updateOutput(anchor.outputId, {
392
+ spendable: false,
393
+ spentBy: current.transactionId
394
+ }, trx);
395
+ await storage.updateTransaction(current.transactionId, {
396
+ noSendExpiryObservedAt: current.noSendExpiryObservedAt ?? Date.now(),
397
+ ...(current.status === 'nosend' ? { status: 'unproven' } : {})
398
+ }, trx);
399
+ return true;
400
+ }
401
+ async function reconcileRace(storage, target) {
402
+ const reclaim = target.noSendExpiryReclaimTxid == null
403
+ ? undefined
404
+ : (0, utilityHelpers_1.verifyOneOrNone)(await storage.findTransactions({
405
+ partial: { userId: target.userId, txid: target.noSendExpiryReclaimTxid }
406
+ }));
407
+ if (target.status === 'completed' || target.provenTxId != null) {
408
+ const won = await storage.transaction(async (trx) => await finishTargetWinner(storage, target, trx));
409
+ return won ? 'target' : 'deferred';
410
+ }
411
+ if (reclaim?.status === 'completed' || reclaim?.provenTxId != null) {
412
+ const won = await storage.transaction(async (trx) => await finishReclaimWinner(storage, target, reclaim, trx));
413
+ return won ? 'reclaimed' : 'deferred';
414
+ }
415
+ return 'deferred';
416
+ }
417
+ function isKnownOrMined(status) {
418
+ return status === 'known' || status === 'mined';
419
+ }
420
+ function recordRaceResult(result, race) {
421
+ if (race === 'reclaimed')
422
+ result.reclaimed++;
423
+ else if (race === 'target')
424
+ result.targetWon++;
425
+ else
426
+ result.deferred++;
427
+ }
428
+ function reclaimRetryDelay(rebroadcastAttempts) {
429
+ return Math.min(RECLAIM_RETRY_BASE_MSECS * 2 ** Math.min(rebroadcastAttempts, 30), RECLAIM_RETRY_MAX_MSECS);
430
+ }
431
+ /**
432
+ * A processor may reject a reclaim even though the same anchor later becomes a
433
+ * conclusive UTXO again (for example, after a conflicting mempool spend is
434
+ * evicted). Re-submit only the already validated, pre-signed reclaim and never
435
+ * release its anchor or output based on a rejection response.
436
+ */
437
+ async function retryRejectedReclaim(storage, target, targetStatus) {
438
+ if (targetStatus !== 'unknown' ||
439
+ target.noSendExpiryObservedAt != null ||
440
+ target.noSendExpiryReclaimTxid == null) {
441
+ return 'not-applicable';
442
+ }
443
+ const reclaim = (0, utilityHelpers_1.verifyOneOrNone)(await storage.findTransactions({
444
+ partial: { userId: target.userId, txid: target.noSendExpiryReclaimTxid }
445
+ }));
446
+ const req = await EntityProvenTxReq_1.EntityProvenTxReq.fromStorageTxid(storage, target.noSendExpiryReclaimTxid);
447
+ if (reclaim?.status !== 'failed' ||
448
+ reclaim.provenTxId != null ||
449
+ req == null ||
450
+ (req.status !== 'invalid' && req.status !== 'doubleSpend')) {
451
+ return 'not-applicable';
452
+ }
453
+ const retryAfter = (0, utilityHelpers_1.verifyTruthy)(req.updated_at).getTime() + reclaimRetryDelay(req.rebroadcastAttempts);
454
+ if (Date.now() < retryAfter)
455
+ return 'deferred';
456
+ const anchor = (0, utilityHelpers_1.verifyOne)(await storage.findOutputs({
457
+ partial: {
458
+ userId: target.userId,
459
+ txid: target.noSendExpiryAnchorTxid,
460
+ vout: target.noSendExpiryAnchorVout
461
+ }
462
+ }));
463
+ let anchorIsUtxo;
464
+ try {
465
+ anchorIsUtxo = await storage.getServices().isUtxo(anchor);
466
+ }
467
+ catch {
468
+ return 'deferred';
469
+ }
470
+ if (!anchorIsUtxo)
471
+ return 'deferred';
472
+ const sendable = await storage.transaction(async (trx) => {
473
+ if (!(await storage.compareAndSetNoSendExpiryState(target.transactionId, 'reclaiming', 'reclaiming', trx))) {
474
+ return undefined;
475
+ }
476
+ const currentTarget = (0, utilityHelpers_1.verifyOne)(await storage.findTransactions({
477
+ partial: { transactionId: target.transactionId, userId: target.userId },
478
+ trx
479
+ }));
480
+ if (currentTarget.noSendExpiryState !== 'reclaiming' ||
481
+ currentTarget.status === 'completed' ||
482
+ currentTarget.provenTxId != null ||
483
+ currentTarget.noSendExpiryObservedAt != null ||
484
+ currentTarget.noSendExpiryReclaimTxid == null) {
485
+ return undefined;
486
+ }
487
+ const currentReclaim = (0, utilityHelpers_1.verifyOneOrNone)(await storage.findTransactions({
488
+ partial: { userId: currentTarget.userId, txid: currentTarget.noSendExpiryReclaimTxid },
489
+ trx
490
+ }));
491
+ const currentReq = await EntityProvenTxReq_1.EntityProvenTxReq.fromStorageTxid(storage, currentTarget.noSendExpiryReclaimTxid, trx);
492
+ const currentAnchor = (0, utilityHelpers_1.verifyOne)(await storage.findOutputs({
493
+ partial: {
494
+ userId: currentTarget.userId,
495
+ txid: currentTarget.noSendExpiryAnchorTxid,
496
+ vout: currentTarget.noSendExpiryAnchorVout
497
+ },
498
+ trx
499
+ }));
500
+ if (currentReclaim?.status !== 'failed' ||
501
+ currentReclaim.provenTxId != null ||
502
+ currentReq == null ||
503
+ (currentReq.status !== 'invalid' && currentReq.status !== 'doubleSpend') ||
504
+ currentAnchor.spendable ||
505
+ currentAnchor.spentBy !== currentReclaim.transactionId) {
506
+ return undefined;
507
+ }
508
+ // Generic transaction APIs deliberately prohibit un-failing a row. This
509
+ // narrowly scoped recovery is safe because it revives only the same signed
510
+ // reclaim while retaining its input reservation and quarantined output.
511
+ await storage.updateTransaction(currentReclaim.transactionId, { status: 'unprocessed' }, trx);
512
+ currentReq.status = 'unsent';
513
+ currentReq.attempts = 0;
514
+ currentReq.rebroadcastAttempts = currentReq.rebroadcastAttempts + 1;
515
+ currentReq.notified = false;
516
+ currentReq.addHistoryNote({
517
+ what: 'brc177-reclaim-retry',
518
+ targetTxid: currentTarget.txid,
519
+ retry: currentReq.rebroadcastAttempts
520
+ });
521
+ await currentReq.updateStorageDynamicProperties(storage, trx);
522
+ return currentReq;
523
+ });
524
+ if (sendable == null)
525
+ return 'deferred';
526
+ await storage.attemptToPostReqsToNetwork([sendable]).catch(() => undefined);
527
+ return 'retried';
528
+ }
529
+ async function processReclaimRace(storage, transaction, targetStatus, result) {
530
+ if (isKnownOrMined(targetStatus) && (await noteTargetObservedDuringRace(storage, transaction))) {
531
+ result.observed++;
532
+ }
533
+ const race = await reconcileRace(storage, transaction);
534
+ if (race !== 'deferred') {
535
+ recordRaceResult(result, race);
536
+ return;
537
+ }
538
+ const recovery = await retryRejectedReclaim(storage, transaction, targetStatus);
539
+ if (recovery === 'retried')
540
+ result.reclaimRetried++;
541
+ else
542
+ result.deferred++;
543
+ }
544
+ async function processObservationOrRace(storage, transaction, targetStatus, result) {
545
+ // A service's `mined` verdict is useful evidence that reclaim must stop,
546
+ // but it is not a locally verified Merkle proof. Only storage's proven
547
+ // state may finalize the target as the winner.
548
+ if (transaction.status === 'completed' || transaction.provenTxId != null) {
549
+ if (await markObservedTarget(storage, transaction, true))
550
+ result.targetWon++;
551
+ return true;
552
+ }
553
+ if (transaction.noSendExpiryState === 'reclaiming') {
554
+ await processReclaimRace(storage, transaction, targetStatus, result);
555
+ return true;
556
+ }
557
+ const stateCanObserve = transaction.noSendExpiryState === 'signed' ||
558
+ transaction.noSendExpiryState === 'revocation-requested' ||
559
+ transaction.noSendExpiryState === 'broadcast' ||
560
+ transaction.noSendExpiryState === 'conflicted';
561
+ if (stateCanObserve && isKnownOrMined(targetStatus)) {
562
+ if (await markObservedTarget(storage, transaction, false))
563
+ result.observed++;
564
+ return true;
565
+ }
566
+ return false;
567
+ }
568
+ async function requestRevocation(storage, transaction) {
569
+ if (transaction.noSendExpiryState === 'revocation-requested')
570
+ return 'revocation-requested';
571
+ if (transaction.noSendExpiryState !== 'signed')
572
+ return undefined;
573
+ // Persist that the deadline has triggered before consulting fallible
574
+ // services. A clock correction or block-height reorganization must not
575
+ // reactivate a transaction after its expiry was already observed.
576
+ const changed = await storage.compareAndSetNoSendExpiryState(transaction.transactionId, 'signed', 'revocation-requested');
577
+ return changed ? 'revocation-requested' : undefined;
578
+ }
579
+ async function attemptReclaim(storage, transaction, result, expected = 'revocation-requested') {
580
+ const anchor = (0, utilityHelpers_1.verifyOne)(await storage.findOutputs({
581
+ partial: {
582
+ userId: transaction.userId,
583
+ txid: transaction.noSendExpiryAnchorTxid,
584
+ vout: transaction.noSendExpiryAnchorVout
585
+ }
586
+ }));
587
+ let anchorIsUtxo;
588
+ try {
589
+ anchorIsUtxo = await storage.getServices().isUtxo(anchor);
590
+ }
591
+ catch {
592
+ result.deferred++;
593
+ return;
594
+ }
595
+ if (!anchorIsUtxo) {
596
+ if (expected === 'revocation-requested') {
597
+ await storage.compareAndSetNoSendExpiryState(transaction.transactionId, expected, 'conflicted');
598
+ }
599
+ result.deferred++;
600
+ return;
601
+ }
602
+ const reclaim = await activateReclaim(storage, transaction, anchor, expected);
603
+ if (reclaim == null)
604
+ return;
605
+ result.reclaimActivated++;
606
+ await storage.attemptToPostReqsToNetwork([reclaim]).catch(() => undefined);
607
+ }
608
+ async function processTransaction(storage, transaction, targetStatus, nowSeconds, height, result) {
609
+ if (await processObservationOrRace(storage, transaction, targetStatus, result))
610
+ return;
611
+ if (!isDue(transaction, nowSeconds, height))
612
+ return;
613
+ if (transaction.noSendExpiryState === 'preparing' || transaction.noSendExpiryState === 'unsigned') {
614
+ if (await cancelUnsigned(storage, transaction))
615
+ result.cancelled++;
616
+ return;
617
+ }
618
+ if (transaction.noSendExpiryState === 'conflicted') {
619
+ // A competing mempool spend can disappear. Resume only after the target
620
+ // is still explicitly unknown and the anchor service again gives a
621
+ // conclusive unspent verdict; `attemptReclaim` advances directly to the
622
+ // higher-ranked reclaiming state without reviving the released target.
623
+ if (targetStatus !== 'unknown') {
624
+ result.deferred++;
625
+ return;
626
+ }
627
+ await attemptReclaim(storage, transaction, result, 'conflicted');
628
+ return;
629
+ }
630
+ if ((await requestRevocation(storage, transaction)) == null)
631
+ return;
632
+ // Absence of a successful, explicit "unknown" verdict is not evidence
633
+ // that the protected transaction is absent. A service outage must never
634
+ // turn into authorization to double spend the anchor.
635
+ if (targetStatus !== 'unknown') {
636
+ result.deferred++;
637
+ return;
638
+ }
639
+ await attemptReclaim(storage, transaction, result);
640
+ }
641
+ async function processPage(storage, page, context, result) {
642
+ const transactions = await activeTransactionsOnPage(storage, page);
643
+ result.inspected += transactions.length;
644
+ const needsHeight = transactions.some(transaction => transaction.noSendExpiryMode === 'blockheight');
645
+ if (!context.heightAttempted && needsHeight) {
646
+ context.heightAttempted = true;
647
+ try {
648
+ context.height = await storage.getServices().getHeight();
649
+ }
650
+ catch { }
651
+ }
652
+ const statuses = await getStatuses(storage, transactions);
653
+ for (const transaction of transactions) {
654
+ try {
655
+ const targetStatus = transaction.txid ? statuses.get(transaction.txid) : undefined;
656
+ await processTransaction(storage, transaction, targetStatus, context.nowSeconds, context.height, result);
657
+ }
658
+ catch {
659
+ // A damaged row needs operator repair, but it must not block unrelated
660
+ // users or later deadlines in this multi-user monitor pass.
661
+ result.deferred++;
662
+ result.errors++;
663
+ }
664
+ }
665
+ }
666
+ async function processState(storage, state, context, result) {
667
+ for (let offset = 0;; offset += QUERY_PAGE_SIZE) {
668
+ const page = await storage.findTransactions({
669
+ partial: { noSendExpiryState: state },
670
+ paged: { limit: QUERY_PAGE_SIZE, offset }
671
+ });
672
+ await processPage(storage, page, context, result);
673
+ // State transitions can shift later offsets and defer some rows until
674
+ // the next five-second pass, but each pass remains strictly bounded in
675
+ // memory and every pass restarts from the beginning.
676
+ if (page.length < QUERY_PAGE_SIZE)
677
+ return;
678
+ }
679
+ }
680
+ async function processNoSendExpiryLifecycle(storage) {
681
+ const result = emptyResult();
682
+ const context = {
683
+ nowSeconds: Math.floor(Date.now() / 1000),
684
+ heightAttempted: false
685
+ };
686
+ for (const state of ACTIVE_STATES) {
687
+ await processState(storage, state, context, result);
688
+ }
689
+ return result;
690
+ }
691
+ //# sourceMappingURL=noSendExpiryLifecycle.js.map