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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (878) hide show
  1. package/CHANGELOG.md +744 -1
  2. package/LICENSES/Open-BSV-License-4-wallet-pre-2026.txt +28 -0
  3. package/README.md +823 -14
  4. package/THIRD_PARTY_NOTICES.md +35 -0
  5. package/docs/README.md +44 -31
  6. package/docs/action-batch-planning.md +80 -37
  7. package/docs/client.md +12996 -4571
  8. package/docs/identity-verification.md +218 -0
  9. package/docs/local-first-chaintracks.md +129 -0
  10. package/docs/managed-change-liquidity.md +258 -0
  11. package/docs/managed-change-policy.md +14 -1
  12. package/docs/monitor.md +505 -190
  13. package/docs/no-send-expiry.md +167 -0
  14. package/docs/prepared-beef.md +197 -0
  15. package/docs/services.md +4013 -1153
  16. package/docs/setup.md +107 -56
  17. package/docs/storage.md +5781 -1599
  18. package/docs/sync-transfer.md +144 -0
  19. package/docs/wab-shamir.md +5 -1
  20. package/docs/wallet.md +10188 -10904
  21. package/out/src/CWIStyleWalletManager.d.ts +39 -31
  22. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  23. package/out/src/CWIStyleWalletManager.js +309 -258
  24. package/out/src/CWIStyleWalletManager.js.map +1 -1
  25. package/out/src/Setup.d.ts +14 -0
  26. package/out/src/Setup.d.ts.map +1 -1
  27. package/out/src/Setup.js +6 -2
  28. package/out/src/Setup.js.map +1 -1
  29. package/out/src/SetupClient.d.ts +3 -0
  30. package/out/src/SetupClient.d.ts.map +1 -1
  31. package/out/src/SetupClient.js +1 -0
  32. package/out/src/SetupClient.js.map +1 -1
  33. package/out/src/SetupWallet.d.ts +3 -0
  34. package/out/src/SetupWallet.d.ts.map +1 -1
  35. package/out/src/ShamirWalletManager.d.ts.map +1 -1
  36. package/out/src/ShamirWalletManager.js +34 -19
  37. package/out/src/ShamirWalletManager.js.map +1 -1
  38. package/out/src/SimpleWalletManager.d.ts.map +1 -1
  39. package/out/src/SimpleWalletManager.js +7 -6
  40. package/out/src/SimpleWalletManager.js.map +1 -1
  41. package/out/src/Wallet.d.ts +54 -14
  42. package/out/src/Wallet.d.ts.map +1 -1
  43. package/out/src/Wallet.js +216 -114
  44. package/out/src/Wallet.js.map +1 -1
  45. package/out/src/WalletAuthenticationManager.d.ts +32 -0
  46. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  47. package/out/src/WalletAuthenticationManager.js +531 -78
  48. package/out/src/WalletAuthenticationManager.js.map +1 -1
  49. package/out/src/WalletLogger.js +1 -1
  50. package/out/src/WalletLogger.js.map +1 -1
  51. package/out/src/WalletPermissionsManager.d.ts +101 -43
  52. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  53. package/out/src/WalletPermissionsManager.js +897 -414
  54. package/out/src/WalletPermissionsManager.js.map +1 -1
  55. package/out/src/WalletSettingsManager.d.ts +3 -2
  56. package/out/src/WalletSettingsManager.d.ts.map +1 -1
  57. package/out/src/WalletSettingsManager.js +143 -8
  58. package/out/src/WalletSettingsManager.js.map +1 -1
  59. package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
  60. package/out/src/entropy/EntropyCollector.js +3 -2
  61. package/out/src/entropy/EntropyCollector.js.map +1 -1
  62. package/out/src/fundWalletP2PKH.d.ts.map +1 -1
  63. package/out/src/fundWalletP2PKH.js +143 -44
  64. package/out/src/fundWalletP2PKH.js.map +1 -1
  65. package/out/src/index.client.d.ts +6 -0
  66. package/out/src/index.client.d.ts.map +1 -1
  67. package/out/src/index.client.js +16 -1
  68. package/out/src/index.client.js.map +1 -1
  69. package/out/src/index.mobile.d.ts +7 -0
  70. package/out/src/index.mobile.d.ts.map +1 -1
  71. package/out/src/index.mobile.js +17 -1
  72. package/out/src/index.mobile.js.map +1 -1
  73. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
  74. package/out/src/mockchain/MockChainTracker.js +5 -5
  75. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  76. package/out/src/mockchain/MockServices.d.ts +2 -0
  77. package/out/src/mockchain/MockServices.d.ts.map +1 -1
  78. package/out/src/mockchain/MockServices.js +54 -14
  79. package/out/src/mockchain/MockServices.js.map +1 -1
  80. package/out/src/monitor/Monitor.d.ts +51 -0
  81. package/out/src/monitor/Monitor.d.ts.map +1 -1
  82. package/out/src/monitor/Monitor.js +282 -41
  83. package/out/src/monitor/Monitor.js.map +1 -1
  84. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  85. package/out/src/monitor/MonitorDaemon.js +64 -16
  86. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  87. package/out/src/monitor/monitorValidation.d.ts +12 -0
  88. package/out/src/monitor/monitorValidation.d.ts.map +1 -0
  89. package/out/src/monitor/monitorValidation.js +133 -0
  90. package/out/src/monitor/monitorValidation.js.map +1 -0
  91. package/out/src/monitor/tasks/TaskArcSSE.d.ts +6 -1
  92. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  93. package/out/src/monitor/tasks/TaskArcSSE.js +117 -74
  94. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  95. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +5 -0
  96. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  97. package/out/src/monitor/tasks/TaskCheckForProofs.js +29 -24
  98. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  99. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  100. package/out/src/monitor/tasks/TaskCheckNoSends.js +11 -3
  101. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  102. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  103. package/out/src/monitor/tasks/TaskFailAbandoned.js +9 -4
  104. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  105. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  106. package/out/src/monitor/tasks/TaskNewHeader.js +3 -1
  107. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  108. package/out/src/monitor/tasks/TaskNoSendExpiry.d.ts +19 -0
  109. package/out/src/monitor/tasks/TaskNoSendExpiry.d.ts.map +1 -0
  110. package/out/src/monitor/tasks/TaskNoSendExpiry.js +47 -0
  111. package/out/src/monitor/tasks/TaskNoSendExpiry.js.map +1 -0
  112. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts +27 -0
  113. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts.map +1 -0
  114. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js +242 -0
  115. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js.map +1 -0
  116. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  117. package/out/src/monitor/tasks/TaskReorg.js +4 -4
  118. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  119. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
  120. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +31 -9
  121. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  122. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +18 -1
  123. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
  124. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +99 -21
  125. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  126. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +33 -6
  127. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
  128. package/out/src/monitor/tasks/TaskReviewUtxos.js +189 -13
  129. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  130. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  131. package/out/src/monitor/tasks/TaskSendWaiting.js +52 -11
  132. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  133. package/out/src/monitor/tasks/TaskUnFail.d.ts +1 -0
  134. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  135. package/out/src/monitor/tasks/TaskUnFail.js +26 -8
  136. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  137. package/out/src/monitor/tasks/index.all.d.ts +2 -0
  138. package/out/src/monitor/tasks/index.all.d.ts.map +1 -1
  139. package/out/src/monitor/tasks/index.all.js +2 -0
  140. package/out/src/monitor/tasks/index.all.js.map +1 -1
  141. package/out/src/sdk/ActionBatch.interfaces.d.ts +23 -0
  142. package/out/src/sdk/ActionBatch.interfaces.d.ts.map +1 -1
  143. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  144. package/out/src/sdk/PrivilegedKeyManager.js +3 -2
  145. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  146. package/out/src/sdk/WERR_errors.d.ts +23 -0
  147. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  148. package/out/src/sdk/WERR_errors.js +51 -7
  149. package/out/src/sdk/WERR_errors.js.map +1 -1
  150. package/out/src/sdk/WalletError.d.ts.map +1 -1
  151. package/out/src/sdk/WalletError.js +7 -21
  152. package/out/src/sdk/WalletError.js.map +1 -1
  153. package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
  154. package/out/src/sdk/WalletErrorFromJson.js +121 -3
  155. package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
  156. package/out/src/sdk/WalletServices.interfaces.d.ts +45 -2
  157. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  158. package/out/src/sdk/WalletStorage.interfaces.d.ts +87 -4
  159. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  160. package/out/src/sdk/types.d.ts +3 -2
  161. package/out/src/sdk/types.d.ts.map +1 -1
  162. package/out/src/sdk/types.js +3 -2
  163. package/out/src/sdk/types.js.map +1 -1
  164. package/out/src/services/ServiceCollection.js +2 -2
  165. package/out/src/services/ServiceCollection.js.map +1 -1
  166. package/out/src/services/Services.d.ts +5 -0
  167. package/out/src/services/Services.d.ts.map +1 -1
  168. package/out/src/services/Services.js +346 -120
  169. package/out/src/services/Services.js.map +1 -1
  170. package/out/src/services/chaintracker/BHServiceClient.d.ts +21 -4
  171. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
  172. package/out/src/services/chaintracker/BHServiceClient.js +269 -66
  173. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  174. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +25 -3
  175. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  176. package/out/src/services/chaintracker/ChaintracksChainTracker.js +188 -53
  177. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  178. package/out/src/services/chaintracker/LocalChainTracker.d.ts +122 -0
  179. package/out/src/services/chaintracker/LocalChainTracker.d.ts.map +1 -0
  180. package/out/src/services/chaintracker/LocalChainTracker.js +465 -0
  181. package/out/src/services/chaintracker/LocalChainTracker.js.map +1 -0
  182. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
  183. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +59 -7
  184. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
  185. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts +48 -0
  186. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts.map +1 -0
  187. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js +3 -0
  188. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js.map +1 -0
  189. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts +70 -0
  190. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts.map +1 -0
  191. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js +21 -0
  192. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js.map +1 -0
  193. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +6 -0
  194. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +1 -1
  195. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +53 -0
  196. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
  197. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +9 -2
  198. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
  199. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +9 -0
  200. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
  201. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +28 -3
  202. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  203. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +282 -64
  204. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  205. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +16 -0
  206. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
  207. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +150 -26
  208. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  209. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +30 -1
  210. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  211. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +348 -30
  212. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  213. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +32 -1
  214. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
  215. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +378 -44
  216. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
  217. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  218. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +28 -3
  219. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  220. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
  221. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +33 -9
  222. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  223. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
  224. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
  225. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.d.ts.map +1 -1
  226. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js +4 -2
  227. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js.map +1 -1
  228. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +2 -0
  229. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  230. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +17 -4
  231. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  232. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts +2 -0
  233. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
  234. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +40 -20
  235. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
  236. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  237. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +14 -0
  238. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  239. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +6 -0
  240. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -1
  241. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +56 -9
  242. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -1
  243. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
  244. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +6 -3
  245. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
  246. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +4 -0
  247. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
  248. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +27 -9
  249. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  250. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts +8 -0
  251. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
  252. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +49 -5
  253. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
  254. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +1 -1
  255. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  256. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +90 -21
  257. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  258. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +3 -1
  259. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
  260. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +185 -38
  261. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  262. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  263. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +59 -6
  264. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  265. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts +2 -0
  266. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
  267. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +89 -39
  268. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  269. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +10 -0
  270. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  271. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +230 -28
  272. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  273. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +2 -1
  274. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  275. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +265 -96
  276. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  277. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +3 -1
  278. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
  279. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +240 -87
  280. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  281. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +3 -0
  282. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  283. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +121 -35
  284. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  285. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +8 -0
  286. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
  287. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +6 -3
  288. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
  289. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
  290. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  291. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
  292. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  293. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  294. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  295. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  296. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +1 -7
  297. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  298. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
  299. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +1 -7
  300. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
  301. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
  302. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +1 -7
  303. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  304. package/out/src/services/chaintracker/chaintracks/index.all.d.ts +3 -0
  305. package/out/src/services/chaintracker/chaintracks/index.all.d.ts.map +1 -1
  306. package/out/src/services/chaintracker/chaintracks/index.all.js +3 -0
  307. package/out/src/services/chaintracker/chaintracks/index.all.js.map +1 -1
  308. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +5 -0
  309. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
  310. package/out/src/services/chaintracker/chaintracks/index.mobile.js +5 -0
  311. package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
  312. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +51 -0
  313. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -0
  314. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +394 -0
  315. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -0
  316. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +45 -1
  317. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  318. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +733 -166
  319. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  320. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
  321. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +17 -1
  322. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  323. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts +32 -0
  324. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts.map +1 -0
  325. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js +40 -0
  326. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js.map +1 -0
  327. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  328. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +99 -30
  329. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  330. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +3 -1
  331. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  332. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +23 -15
  333. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  334. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +38 -4
  335. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  336. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +191 -47
  337. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  338. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +2 -1
  339. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
  340. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +57 -11
  341. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
  342. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts +48 -0
  343. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts.map +1 -0
  344. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js +280 -0
  345. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js.map +1 -0
  346. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts +30 -0
  347. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts.map +1 -0
  348. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js +57 -0
  349. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js.map +1 -0
  350. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  351. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  352. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts +14 -0
  353. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -0
  354. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +148 -0
  355. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -0
  356. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts +41 -0
  357. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts.map +1 -0
  358. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js +271 -0
  359. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js.map +1 -0
  360. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +3 -0
  361. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
  362. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +15 -0
  363. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  364. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +17 -4
  365. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  366. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +362 -105
  367. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  368. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts +4 -0
  369. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts.map +1 -0
  370. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js +33 -0
  371. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js.map +1 -0
  372. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  373. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  374. package/out/src/services/chaintracker/index.all.d.ts +1 -0
  375. package/out/src/services/chaintracker/index.all.d.ts.map +1 -1
  376. package/out/src/services/chaintracker/index.all.js +1 -0
  377. package/out/src/services/chaintracker/index.all.js.map +1 -1
  378. package/out/src/services/chaintracker/index.client.d.ts +1 -0
  379. package/out/src/services/chaintracker/index.client.d.ts.map +1 -1
  380. package/out/src/services/chaintracker/index.client.js +1 -0
  381. package/out/src/services/chaintracker/index.client.js.map +1 -1
  382. package/out/src/services/chaintracker/index.mobile.d.ts +1 -0
  383. package/out/src/services/chaintracker/index.mobile.d.ts.map +1 -1
  384. package/out/src/services/chaintracker/index.mobile.js +1 -0
  385. package/out/src/services/chaintracker/index.mobile.js.map +1 -1
  386. package/out/src/services/classifyOutputUtxo.d.ts +25 -0
  387. package/out/src/services/classifyOutputUtxo.d.ts.map +1 -0
  388. package/out/src/services/classifyOutputUtxo.js +96 -0
  389. package/out/src/services/classifyOutputUtxo.js.map +1 -0
  390. package/out/src/services/createDefaultWalletServicesOptions.d.ts +16 -3
  391. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  392. package/out/src/services/createDefaultWalletServicesOptions.js +38 -8
  393. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  394. package/out/src/services/fiatRateValidation.d.ts +12 -0
  395. package/out/src/services/fiatRateValidation.d.ts.map +1 -0
  396. package/out/src/services/fiatRateValidation.js +138 -0
  397. package/out/src/services/fiatRateValidation.js.map +1 -0
  398. package/out/src/services/getCanonicalMerklePath.d.ts +15 -0
  399. package/out/src/services/getCanonicalMerklePath.d.ts.map +1 -0
  400. package/out/src/services/getCanonicalMerklePath.js +90 -0
  401. package/out/src/services/getCanonicalMerklePath.js.map +1 -0
  402. package/out/src/services/providers/ARC.d.ts +3 -16
  403. package/out/src/services/providers/ARC.d.ts.map +1 -1
  404. package/out/src/services/providers/ARC.js +36 -37
  405. package/out/src/services/providers/ARC.js.map +1 -1
  406. package/out/src/services/providers/ArcSSEClient.d.ts +38 -23
  407. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  408. package/out/src/services/providers/ArcSSEClient.js +384 -63
  409. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  410. package/out/src/services/providers/Arcade.d.ts +11 -1
  411. package/out/src/services/providers/Arcade.d.ts.map +1 -1
  412. package/out/src/services/providers/Arcade.js +111 -33
  413. package/out/src/services/providers/Arcade.js.map +1 -1
  414. package/out/src/services/providers/Bitails.d.ts +3 -0
  415. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  416. package/out/src/services/providers/Bitails.js +79 -12
  417. package/out/src/services/providers/Bitails.js.map +1 -1
  418. package/out/src/services/providers/SdkWhatsOnChain.d.ts +8 -2
  419. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  420. package/out/src/services/providers/SdkWhatsOnChain.js +83 -10
  421. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  422. package/out/src/services/providers/WhatsOnChain.d.ts +3 -0
  423. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  424. package/out/src/services/providers/WhatsOnChain.js +221 -69
  425. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  426. package/out/src/services/providers/arcProviderConfig.d.ts +27 -0
  427. package/out/src/services/providers/arcProviderConfig.d.ts.map +1 -0
  428. package/out/src/services/providers/arcProviderConfig.js +83 -0
  429. package/out/src/services/providers/arcProviderConfig.js.map +1 -0
  430. package/out/src/services/providers/arcTxDataValidation.d.ts +4 -0
  431. package/out/src/services/providers/arcTxDataValidation.d.ts.map +1 -0
  432. package/out/src/services/providers/arcTxDataValidation.js +92 -0
  433. package/out/src/services/providers/arcTxDataValidation.js.map +1 -0
  434. package/out/src/services/providers/arcadeStatus.d.ts +18 -0
  435. package/out/src/services/providers/arcadeStatus.d.ts.map +1 -0
  436. package/out/src/services/providers/arcadeStatus.js +56 -0
  437. package/out/src/services/providers/arcadeStatus.js.map +1 -0
  438. package/out/src/services/providers/exchangeRates.d.ts +3 -3
  439. package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
  440. package/out/src/services/providers/exchangeRates.js +153 -226
  441. package/out/src/services/providers/exchangeRates.js.map +1 -1
  442. package/out/src/services/providers/getBeefForTxid.d.ts.map +1 -1
  443. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  444. package/out/src/services/providers/whatsOnChainHelpers.d.ts +2 -2
  445. package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +1 -1
  446. package/out/src/services/providers/whatsOnChainHelpers.js +11 -8
  447. package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -1
  448. package/out/src/services/validateMerklePathResult.d.ts +30 -0
  449. package/out/src/services/validateMerklePathResult.d.ts.map +1 -0
  450. package/out/src/services/validateMerklePathResult.js +272 -0
  451. package/out/src/services/validateMerklePathResult.js.map +1 -0
  452. package/out/src/services/validatePostBeefResult.d.ts +17 -0
  453. package/out/src/services/validatePostBeefResult.d.ts.map +1 -0
  454. package/out/src/services/validatePostBeefResult.js +334 -0
  455. package/out/src/services/validatePostBeefResult.js.map +1 -0
  456. package/out/src/services/validateRawTxResult.d.ts +6 -0
  457. package/out/src/services/validateRawTxResult.d.ts.map +1 -0
  458. package/out/src/services/validateRawTxResult.js +77 -0
  459. package/out/src/services/validateRawTxResult.js.map +1 -0
  460. package/out/src/services/validateScriptHashHistoryResult.d.ts +5 -0
  461. package/out/src/services/validateScriptHashHistoryResult.d.ts.map +1 -0
  462. package/out/src/services/validateScriptHashHistoryResult.js +99 -0
  463. package/out/src/services/validateScriptHashHistoryResult.js.map +1 -0
  464. package/out/src/services/validateStatusForTxidsResult.d.ts +8 -0
  465. package/out/src/services/validateStatusForTxidsResult.d.ts.map +1 -0
  466. package/out/src/services/validateStatusForTxidsResult.js +181 -0
  467. package/out/src/services/validateStatusForTxidsResult.js.map +1 -0
  468. package/out/src/services/validateUtxoStatusResult.d.ts +6 -0
  469. package/out/src/services/validateUtxoStatusResult.d.ts.map +1 -0
  470. package/out/src/services/validateUtxoStatusResult.js +126 -0
  471. package/out/src/services/validateUtxoStatusResult.js.map +1 -0
  472. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +3 -2
  473. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -1
  474. package/out/src/signer/actionBatch/ActionBatchPlanner.js +29 -6
  475. package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -1
  476. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +8 -5
  477. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -1
  478. package/out/src/signer/actionBatch/ActionBatchWorkspace.js +186 -73
  479. package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -1
  480. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +2 -2
  481. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -1
  482. package/out/src/signer/actionBatch/actionBatchBootstrap.js +3 -3
  483. package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -1
  484. package/out/src/signer/methods/acquireDirectCertificate.d.ts +3 -2
  485. package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
  486. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  487. package/out/src/signer/methods/buildSignableTransaction.d.ts +6 -5
  488. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  489. package/out/src/signer/methods/buildSignableTransaction.js +6 -11
  490. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  491. package/out/src/signer/methods/createAction.d.ts +4 -3
  492. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  493. package/out/src/signer/methods/createAction.js +3 -1
  494. package/out/src/signer/methods/createAction.js.map +1 -1
  495. package/out/src/signer/methods/createNoSendExpiryAction.d.ts +7 -0
  496. package/out/src/signer/methods/createNoSendExpiryAction.d.ts.map +1 -0
  497. package/out/src/signer/methods/createNoSendExpiryAction.js +254 -0
  498. package/out/src/signer/methods/createNoSendExpiryAction.js.map +1 -0
  499. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  500. package/out/src/signer/methods/internalizeAction.js +9 -5
  501. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  502. package/out/src/signer/methods/proveCertificate.d.ts +3 -2
  503. package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
  504. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  505. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  506. package/out/src/signer/methods/signAction.js +12 -2
  507. package/out/src/signer/methods/signAction.js.map +1 -1
  508. package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -1
  509. package/out/src/signer/methods/verifyUnlockScripts.js +12 -17
  510. package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -1
  511. package/out/src/storage/StorageIdb.d.ts +11 -3
  512. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  513. package/out/src/storage/StorageIdb.js +134 -44
  514. package/out/src/storage/StorageIdb.js.map +1 -1
  515. package/out/src/storage/StorageKnex.d.ts +68 -7
  516. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  517. package/out/src/storage/StorageKnex.js +551 -105
  518. package/out/src/storage/StorageKnex.js.map +1 -1
  519. package/out/src/storage/StorageProvider.d.ts +41 -10
  520. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  521. package/out/src/storage/StorageProvider.js +397 -107
  522. package/out/src/storage/StorageProvider.js.map +1 -1
  523. package/out/src/storage/StorageReader.d.ts +9 -3
  524. package/out/src/storage/StorageReader.d.ts.map +1 -1
  525. package/out/src/storage/StorageReader.js +21 -43
  526. package/out/src/storage/StorageReader.js.map +1 -1
  527. package/out/src/storage/StorageReaderWriter.d.ts +4 -0
  528. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  529. package/out/src/storage/StorageReaderWriter.js +68 -38
  530. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  531. package/out/src/storage/StorageSyncReader.d.ts +1 -1
  532. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  533. package/out/src/storage/StorageSyncReader.js +3 -36
  534. package/out/src/storage/StorageSyncReader.js.map +1 -1
  535. package/out/src/storage/WalletStorageManager.d.ts +31 -6
  536. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  537. package/out/src/storage/WalletStorageManager.js +166 -75
  538. package/out/src/storage/WalletStorageManager.js.map +1 -1
  539. package/out/src/storage/adminServer/adminServer.d.ts +3 -1
  540. package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
  541. package/out/src/storage/adminServer/adminServer.js +38 -49
  542. package/out/src/storage/adminServer/adminServer.js.map +1 -1
  543. package/out/src/storage/adminServer/adminUi.d.ts.map +1 -1
  544. package/out/src/storage/adminServer/adminUi.js +32 -9
  545. package/out/src/storage/adminServer/adminUi.js.map +1 -1
  546. package/out/src/storage/adminServer/reviewUtxos.d.ts +27 -0
  547. package/out/src/storage/adminServer/reviewUtxos.d.ts.map +1 -0
  548. package/out/src/storage/adminServer/reviewUtxos.js +62 -0
  549. package/out/src/storage/adminServer/reviewUtxos.js.map +1 -0
  550. package/out/src/storage/idbHelpers.d.ts.map +1 -1
  551. package/out/src/storage/idbHelpers.js +14 -2
  552. package/out/src/storage/idbHelpers.js.map +1 -1
  553. package/out/src/storage/index.all.d.ts +3 -0
  554. package/out/src/storage/index.all.d.ts.map +1 -1
  555. package/out/src/storage/index.all.js +3 -0
  556. package/out/src/storage/index.all.js.map +1 -1
  557. package/out/src/storage/index.client.d.ts +1 -0
  558. package/out/src/storage/index.client.d.ts.map +1 -1
  559. package/out/src/storage/index.client.js +1 -0
  560. package/out/src/storage/index.client.js.map +1 -1
  561. package/out/src/storage/index.mobile.d.ts +1 -0
  562. package/out/src/storage/index.mobile.d.ts.map +1 -1
  563. package/out/src/storage/index.mobile.js +1 -0
  564. package/out/src/storage/index.mobile.js.map +1 -1
  565. package/out/src/storage/methods/ListActionsSpecOp.d.ts +2 -2
  566. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  567. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  568. package/out/src/storage/methods/ListOutputsSpecOp.d.ts +7 -4
  569. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  570. package/out/src/storage/methods/ListOutputsSpecOp.js +5 -44
  571. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  572. package/out/src/storage/methods/actionBatch.d.ts +9 -2
  573. package/out/src/storage/methods/actionBatch.d.ts.map +1 -1
  574. package/out/src/storage/methods/actionBatch.js +260 -67
  575. package/out/src/storage/methods/actionBatch.js.map +1 -1
  576. package/out/src/storage/methods/actionBatchBlobs.d.ts +2 -0
  577. package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -1
  578. package/out/src/storage/methods/actionBatchBlobs.js +47 -26
  579. package/out/src/storage/methods/actionBatchBlobs.js.map +1 -1
  580. package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -1
  581. package/out/src/storage/methods/actionBatchValidation.js +22 -30
  582. package/out/src/storage/methods/actionBatchValidation.js.map +1 -1
  583. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +7 -2
  584. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  585. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +59 -110
  586. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  587. package/out/src/storage/methods/availableManagedChange.d.ts +8 -1
  588. package/out/src/storage/methods/availableManagedChange.d.ts.map +1 -1
  589. package/out/src/storage/methods/availableManagedChange.js.map +1 -1
  590. package/out/src/storage/methods/createAction.d.ts +60 -3
  591. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  592. package/out/src/storage/methods/createAction.js +391 -107
  593. package/out/src/storage/methods/createAction.js.map +1 -1
  594. package/out/src/storage/methods/generateChange.d.ts +15 -5
  595. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  596. package/out/src/storage/methods/generateChange.js +187 -27
  597. package/out/src/storage/methods/generateChange.js.map +1 -1
  598. package/out/src/storage/methods/getBeefForTransaction.js +5 -7
  599. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  600. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
  601. package/out/src/storage/methods/getSyncChunk.js +42 -11
  602. package/out/src/storage/methods/getSyncChunk.js.map +1 -1
  603. package/out/src/storage/methods/internalizeAction.d.ts +3 -3
  604. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  605. package/out/src/storage/methods/internalizeAction.js +172 -135
  606. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  607. package/out/src/storage/methods/listActionsIdb.d.ts +3 -2
  608. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  609. package/out/src/storage/methods/listActionsIdb.js +2 -2
  610. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  611. package/out/src/storage/methods/listActionsKnex.d.ts +3 -2
  612. package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
  613. package/out/src/storage/methods/listActionsKnex.js +22 -11
  614. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  615. package/out/src/storage/methods/listCertificates.d.ts +3 -2
  616. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  617. package/out/src/storage/methods/listCertificates.js.map +1 -1
  618. package/out/src/storage/methods/listOutputsIdb.d.ts +3 -2
  619. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  620. package/out/src/storage/methods/listOutputsIdb.js +25 -18
  621. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  622. package/out/src/storage/methods/listOutputsKnex.d.ts +3 -2
  623. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
  624. package/out/src/storage/methods/listOutputsKnex.js +32 -30
  625. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  626. package/out/src/storage/methods/managedChangePolicy.d.ts +44 -0
  627. package/out/src/storage/methods/managedChangePolicy.d.ts.map +1 -0
  628. package/out/src/storage/methods/managedChangePolicy.js +58 -0
  629. package/out/src/storage/methods/managedChangePolicy.js.map +1 -0
  630. package/out/src/storage/methods/maxPossibleSatoshis.d.ts +13 -0
  631. package/out/src/storage/methods/maxPossibleSatoshis.d.ts.map +1 -0
  632. package/out/src/storage/methods/maxPossibleSatoshis.js +16 -0
  633. package/out/src/storage/methods/maxPossibleSatoshis.js.map +1 -0
  634. package/out/src/storage/methods/noSendExpiry.d.ts +11 -0
  635. package/out/src/storage/methods/noSendExpiry.d.ts.map +1 -0
  636. package/out/src/storage/methods/noSendExpiry.js +359 -0
  637. package/out/src/storage/methods/noSendExpiry.js.map +1 -0
  638. package/out/src/storage/methods/noSendExpiryLifecycle.d.ts +14 -0
  639. package/out/src/storage/methods/noSendExpiryLifecycle.d.ts.map +1 -0
  640. package/out/src/storage/methods/noSendExpiryLifecycle.js +691 -0
  641. package/out/src/storage/methods/noSendExpiryLifecycle.js.map +1 -0
  642. package/out/src/storage/methods/preparedBeef.d.ts +104 -0
  643. package/out/src/storage/methods/preparedBeef.d.ts.map +1 -0
  644. package/out/src/storage/methods/preparedBeef.js +524 -0
  645. package/out/src/storage/methods/preparedBeef.js.map +1 -0
  646. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  647. package/out/src/storage/methods/processAction.js +144 -32
  648. package/out/src/storage/methods/processAction.js.map +1 -1
  649. package/out/src/storage/methods/purgeData.d.ts.map +1 -1
  650. package/out/src/storage/methods/purgeData.js +21 -3
  651. package/out/src/storage/methods/purgeData.js.map +1 -1
  652. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts +32 -0
  653. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts.map +1 -0
  654. package/out/src/storage/methods/reconcileFailedTransactionInputs.js +142 -0
  655. package/out/src/storage/methods/reconcileFailedTransactionInputs.js.map +1 -0
  656. package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
  657. package/out/src/storage/methods/reviewStatus.js +7 -4
  658. package/out/src/storage/methods/reviewStatus.js.map +1 -1
  659. package/out/src/storage/methods/reviewStatusIdb.d.ts +1 -1
  660. package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
  661. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  662. package/out/src/storage/methods/reviewUtxoOutputs.d.ts +38 -0
  663. package/out/src/storage/methods/reviewUtxoOutputs.d.ts.map +1 -0
  664. package/out/src/storage/methods/reviewUtxoOutputs.js +197 -0
  665. package/out/src/storage/methods/reviewUtxoOutputs.js.map +1 -0
  666. package/out/src/storage/methods/validateSyncProof.d.ts +32 -0
  667. package/out/src/storage/methods/validateSyncProof.d.ts.map +1 -0
  668. package/out/src/storage/methods/validateSyncProof.js +139 -0
  669. package/out/src/storage/methods/validateSyncProof.js.map +1 -0
  670. package/out/src/storage/portable/index.d.ts.map +1 -1
  671. package/out/src/storage/portable/index.js +25 -15
  672. package/out/src/storage/portable/index.js.map +1 -1
  673. package/out/src/storage/remoting/BinaryJson.d.ts +11 -0
  674. package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -1
  675. package/out/src/storage/remoting/BinaryJson.js +94 -8
  676. package/out/src/storage/remoting/BinaryJson.js.map +1 -1
  677. package/out/src/storage/remoting/KnexPaymentReplayStore.d.ts.map +1 -1
  678. package/out/src/storage/remoting/KnexPaymentReplayStore.js +1 -0
  679. package/out/src/storage/remoting/KnexPaymentReplayStore.js.map +1 -1
  680. package/out/src/storage/remoting/KnexSessionManager.d.ts +26 -2
  681. package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -1
  682. package/out/src/storage/remoting/KnexSessionManager.js +221 -40
  683. package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
  684. package/out/src/storage/remoting/KnexSyncTransferStore.d.ts +26 -0
  685. package/out/src/storage/remoting/KnexSyncTransferStore.d.ts.map +1 -0
  686. package/out/src/storage/remoting/KnexSyncTransferStore.js +222 -0
  687. package/out/src/storage/remoting/KnexSyncTransferStore.js.map +1 -0
  688. package/out/src/storage/remoting/StorageClient.d.ts +6 -1
  689. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  690. package/out/src/storage/remoting/StorageClient.js +65 -8
  691. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  692. package/out/src/storage/remoting/StorageClientBase.d.ts +57 -10
  693. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  694. package/out/src/storage/remoting/StorageClientBase.js +372 -9
  695. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  696. package/out/src/storage/remoting/StorageMobile.d.ts +5 -0
  697. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  698. package/out/src/storage/remoting/StorageMobile.js +13 -11
  699. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  700. package/out/src/storage/remoting/StorageServer.d.ts +10 -1
  701. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  702. package/out/src/storage/remoting/StorageServer.js +221 -20
  703. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  704. package/out/src/storage/remoting/SyncTransfer.d.ts +29 -0
  705. package/out/src/storage/remoting/SyncTransfer.d.ts.map +1 -0
  706. package/out/src/storage/remoting/SyncTransfer.js +153 -0
  707. package/out/src/storage/remoting/SyncTransfer.js.map +1 -0
  708. package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +1 -1
  709. package/out/src/storage/remoting/entityValidationHelpers.js +35 -0
  710. package/out/src/storage/remoting/entityValidationHelpers.js.map +1 -1
  711. package/out/src/storage/remoting/syncChunkBinary.d.ts +4 -0
  712. package/out/src/storage/remoting/syncChunkBinary.d.ts.map +1 -0
  713. package/out/src/storage/remoting/syncChunkBinary.js +38 -0
  714. package/out/src/storage/remoting/syncChunkBinary.js.map +1 -0
  715. package/out/src/storage/remoting/validateRpcSyncProofs.d.ts +5 -0
  716. package/out/src/storage/remoting/validateRpcSyncProofs.d.ts.map +1 -0
  717. package/out/src/storage/remoting/validateRpcSyncProofs.js +82 -0
  718. package/out/src/storage/remoting/validateRpcSyncProofs.js.map +1 -0
  719. package/out/src/storage/schema/KnexMigrations.d.ts +6 -0
  720. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  721. package/out/src/storage/schema/KnexMigrations.js +194 -5
  722. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  723. package/out/src/storage/schema/StorageIdbSchema.d.ts +3 -0
  724. package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
  725. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
  726. package/out/src/storage/schema/entities/EntityOutput.js +24 -4
  727. package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
  728. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -1
  729. package/out/src/storage/schema/entities/EntityOutputBasket.js +5 -2
  730. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
  731. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +4 -1
  732. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
  733. package/out/src/storage/schema/entities/EntityProvenTx.js +125 -41
  734. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  735. package/out/src/storage/schema/entities/EntityProvenTxReq.js +1 -1
  736. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  737. package/out/src/storage/schema/entities/EntitySyncState.d.ts +4 -2
  738. package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
  739. package/out/src/storage/schema/entities/EntitySyncState.js +12 -6
  740. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  741. package/out/src/storage/schema/entities/EntityTransaction.d.ts +26 -0
  742. package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
  743. package/out/src/storage/schema/entities/EntityTransaction.js +221 -21
  744. package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
  745. package/out/src/storage/schema/tables/TableCertificate.d.ts +1 -1
  746. package/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -1
  747. package/out/src/storage/schema/tables/TableCertificateField.d.ts +1 -1
  748. package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -1
  749. package/out/src/storage/schema/tables/TableCommission.d.ts +1 -1
  750. package/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -1
  751. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +1 -1
  752. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -1
  753. package/out/src/storage/schema/tables/TableOutput.d.ts +1 -1
  754. package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
  755. package/out/src/storage/schema/tables/TableOutputBasket.d.ts +1 -1
  756. package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -1
  757. package/out/src/storage/schema/tables/TableOutputTag.d.ts +1 -1
  758. package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -1
  759. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +1 -1
  760. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -1
  761. package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.d.ts +23 -0
  762. package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.d.ts.map +1 -0
  763. package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.js +3 -0
  764. package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.js.map +1 -0
  765. package/out/src/storage/schema/tables/TableProvenTx.d.ts +1 -1
  766. package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -1
  767. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +1 -1
  768. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -1
  769. package/out/src/storage/schema/tables/TableSettings.d.ts +2 -2
  770. package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
  771. package/out/src/storage/schema/tables/TableSyncState.d.ts +1 -1
  772. package/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -1
  773. package/out/src/storage/schema/tables/TableTransaction.d.ts +17 -1
  774. package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
  775. package/out/src/storage/schema/tables/TableTransaction.js +14 -1
  776. package/out/src/storage/schema/tables/TableTransaction.js.map +1 -1
  777. package/out/src/storage/schema/tables/TableTxLabel.d.ts +1 -1
  778. package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -1
  779. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +1 -1
  780. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -1
  781. package/out/src/storage/schema/tables/TableUser.d.ts +1 -1
  782. package/out/src/storage/schema/tables/TableUser.d.ts.map +1 -1
  783. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  784. package/out/src/storage/sync/StorageMySQLDojoReader.js +8 -7
  785. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  786. package/out/src/storage/sync/SyncPageBudget.d.ts +8 -0
  787. package/out/src/storage/sync/SyncPageBudget.d.ts.map +1 -0
  788. package/out/src/storage/sync/SyncPageBudget.js +24 -0
  789. package/out/src/storage/sync/SyncPageBudget.js.map +1 -0
  790. package/out/src/storage/sync/syncCheckpoint.d.ts +4 -0
  791. package/out/src/storage/sync/syncCheckpoint.d.ts.map +1 -0
  792. package/out/src/storage/sync/syncCheckpoint.js +49 -0
  793. package/out/src/storage/sync/syncCheckpoint.js.map +1 -0
  794. package/out/src/utility/Argon2idBackend.d.ts +36 -0
  795. package/out/src/utility/Argon2idBackend.d.ts.map +1 -0
  796. package/out/src/utility/Argon2idBackend.js +60 -0
  797. package/out/src/utility/Argon2idBackend.js.map +1 -0
  798. package/out/src/utility/actionBatchDigest.d.ts.map +1 -1
  799. package/out/src/utility/actionBatchDigest.js +9 -7
  800. package/out/src/utility/actionBatchDigest.js.map +1 -1
  801. package/out/src/utility/actionBatchPack.d.ts.map +1 -1
  802. package/out/src/utility/actionBatchPack.js +7 -12
  803. package/out/src/utility/actionBatchPack.js.map +1 -1
  804. package/out/src/utility/beefForTxids.d.ts +12 -3
  805. package/out/src/utility/beefForTxids.d.ts.map +1 -1
  806. package/out/src/utility/beefForTxids.js +69 -21
  807. package/out/src/utility/beefForTxids.js.map +1 -1
  808. package/out/src/utility/brc153ReferenceLabels.d.ts +3 -5
  809. package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -1
  810. package/out/src/utility/brc153ReferenceLabels.js +8 -14
  811. package/out/src/utility/brc153ReferenceLabels.js.map +1 -1
  812. package/out/src/utility/brc177NoSendExpiry.d.ts +34 -0
  813. package/out/src/utility/brc177NoSendExpiry.d.ts.map +1 -0
  814. package/out/src/utility/brc177NoSendExpiry.js +81 -0
  815. package/out/src/utility/brc177NoSendExpiry.js.map +1 -0
  816. package/out/src/utility/canonicalizeAtomicBeef.d.ts +12 -0
  817. package/out/src/utility/canonicalizeAtomicBeef.d.ts.map +1 -0
  818. package/out/src/utility/canonicalizeAtomicBeef.js +23 -0
  819. package/out/src/utility/canonicalizeAtomicBeef.js.map +1 -0
  820. package/out/src/utility/exactActionSpend.d.ts +9 -0
  821. package/out/src/utility/exactActionSpend.d.ts.map +1 -0
  822. package/out/src/utility/exactActionSpend.js +26 -0
  823. package/out/src/utility/exactActionSpend.js.map +1 -0
  824. package/out/src/utility/hashWasm.d.ts +1 -1
  825. package/out/src/utility/hashWasm.d.ts.map +1 -1
  826. package/out/src/utility/hashWasm.js +83 -1
  827. package/out/src/utility/hashWasm.js.map +1 -1
  828. package/out/src/utility/identityUtils.d.ts +44 -4
  829. package/out/src/utility/identityUtils.d.ts.map +1 -1
  830. package/out/src/utility/identityUtils.js +523 -61
  831. package/out/src/utility/identityUtils.js.map +1 -1
  832. package/out/src/utility/index.all.d.ts +2 -0
  833. package/out/src/utility/index.all.d.ts.map +1 -1
  834. package/out/src/utility/index.all.js +2 -0
  835. package/out/src/utility/index.all.js.map +1 -1
  836. package/out/src/utility/index.client.d.ts +2 -0
  837. package/out/src/utility/index.client.d.ts.map +1 -1
  838. package/out/src/utility/index.client.js +2 -0
  839. package/out/src/utility/index.client.js.map +1 -1
  840. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
  841. package/out/src/utility/parseTxScriptOffsets.js +1 -19
  842. package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
  843. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  844. package/out/src/utility/tscProofToMerklePath.js +35 -4
  845. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  846. package/out/src/utility/utilityHelpers.d.ts +1 -1
  847. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  848. package/out/src/utility/utilityHelpers.js +10 -7
  849. package/out/src/utility/utilityHelpers.js.map +1 -1
  850. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  851. package/out/src/utility/utilityHelpers.noBuffer.js +6 -6
  852. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  853. package/out/src/utility/verifyOverlayOutput.d.ts +12 -0
  854. package/out/src/utility/verifyOverlayOutput.d.ts.map +1 -0
  855. package/out/src/utility/verifyOverlayOutput.js +22 -0
  856. package/out/src/utility/verifyOverlayOutput.js.map +1 -0
  857. package/out/src/utility/walletResultGuards.d.ts +14 -0
  858. package/out/src/utility/walletResultGuards.d.ts.map +1 -0
  859. package/out/src/utility/walletResultGuards.js +28 -0
  860. package/out/src/utility/walletResultGuards.js.map +1 -0
  861. package/out/src/wab-client/WABClient.d.ts +4 -17
  862. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  863. package/out/src/wab-client/WABClient.js +35 -12
  864. package/out/src/wab-client/WABClient.js.map +1 -1
  865. package/out/src/wab-client/WABResponseValidation.d.ts +48 -0
  866. package/out/src/wab-client/WABResponseValidation.d.ts.map +1 -0
  867. package/out/src/wab-client/WABResponseValidation.js +321 -0
  868. package/out/src/wab-client/WABResponseValidation.js.map +1 -0
  869. package/out/src/wab-client/WABTransport.d.ts +17 -23
  870. package/out/src/wab-client/WABTransport.d.ts.map +1 -1
  871. package/out/src/wab-client/WABTransport.js +130 -142
  872. package/out/src/wab-client/WABTransport.js.map +1 -1
  873. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +8 -0
  874. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  875. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +3 -2
  876. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  877. package/package.json +40 -33
  878. package/docs/open-rpc/index.html +0 -46
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.quarantineReqInputs = quarantineReqInputs;
4
+ exports.quarantineReqInputsFromFailedParents = quarantineReqInputsFromFailedParents;
5
+ exports.markConfirmedStaleReqInputs = markConfirmedStaleReqInputs;
6
+ const sdk_1 = require("@bsv/sdk");
7
+ const utilityHelpers_1 = require("../../utility/utilityHelpers");
8
+ const classifyOutputUtxo_1 = require("../../services/classifyOutputUtxo");
9
+ async function quarantineLocalInputs(localInputs, storage, trx) {
10
+ const staleOutpoints = new Set();
11
+ for (const { output, outpoint } of localInputs) {
12
+ await storage.updateOutput((0, utilityHelpers_1.verifyId)(output.outputId), { spendable: false }, trx);
13
+ staleOutpoints.add(`${outpoint.txid}.${outpoint.vout}`);
14
+ }
15
+ return {
16
+ checked: localInputs.length,
17
+ staleConfirmed: localInputs.length,
18
+ staleOutpoints: [...staleOutpoints]
19
+ };
20
+ }
21
+ async function findLocalInputs(req, storage, trx) {
22
+ const tx = sdk_1.Transaction.fromBinary(req.rawTx);
23
+ const outpoints = tx.inputs
24
+ .map(input => ({ txid: input.sourceTXID ?? '', vout: input.sourceOutputIndex ?? 0 }))
25
+ .filter(outpoint => outpoint.txid !== '');
26
+ if (outpoints.length === 0)
27
+ return [];
28
+ // A transaction can be internalized by multiple users while the request's
29
+ // notification list is racing. Resolve every local copy by txid so no user's
30
+ // basket retains the same confirmed-stale outpoint.
31
+ const transactions = await storage.findTransactions({
32
+ partial: { txid: req.txid },
33
+ noRawTx: true,
34
+ trx
35
+ });
36
+ const userIds = [...new Set(transactions.map(transaction => transaction.userId))];
37
+ const localInputs = [];
38
+ const localKeys = new Set();
39
+ for (const userId of userIds) {
40
+ const byOutpoint = await storage.findOutputsByOutpoints(userId, outpoints, trx);
41
+ for (const outpoint of outpoints) {
42
+ const output = byOutpoint[`${outpoint.txid}.${outpoint.vout}`];
43
+ const localKey = `${userId}:${outpoint.txid}.${outpoint.vout}`;
44
+ if (output != null && !localKeys.has(localKey)) {
45
+ localKeys.add(localKey);
46
+ localInputs.push({ output, outpoint });
47
+ }
48
+ }
49
+ }
50
+ return localInputs;
51
+ }
52
+ /**
53
+ * Conservatively quarantine every locally-owned input of a transaction after
54
+ * Arcade supplies explicit missing-input/conflict evidence. This path is
55
+ * deliberately independent of explorer or UTXO providers: a positive
56
+ * broadcaster verdict is enough to stop the failed transaction from feeding
57
+ * the same inputs into another action. A later validated mined proof remains
58
+ * able to repair the transaction through the ordinary proof recovery path.
59
+ */
60
+ async function quarantineReqInputs(req, storage, trx, logger) {
61
+ const localInputs = await findLocalInputs(req, storage, trx);
62
+ const result = await quarantineLocalInputs(localInputs, storage, trx);
63
+ if (result.staleConfirmed > 0) {
64
+ logger?.log(`quarantineReqInputs: ${result.staleConfirmed} local input copy/copies quarantined for txid=${req.txid}`);
65
+ }
66
+ return result;
67
+ }
68
+ /**
69
+ * Keep only inputs created by a locally terminal parent unavailable after the
70
+ * failed-child transition releases its allocations. Other inputs may still be
71
+ * valid UTXOs and must remain reusable.
72
+ */
73
+ async function quarantineReqInputsFromFailedParents(req, failedParentTxids, storage, trx, logger) {
74
+ const failedParents = new Set(failedParentTxids);
75
+ const localInputs = (await findLocalInputs(req, storage, trx)).filter(({ outpoint }) => failedParents.has(outpoint.txid));
76
+ const result = await quarantineLocalInputs(localInputs, storage, trx);
77
+ if (result.staleConfirmed > 0) {
78
+ logger?.log(`quarantineReqInputsFromFailedParents: ${result.staleConfirmed} local parent output copy/copies quarantined for txid=${req.txid}`);
79
+ }
80
+ return result;
81
+ }
82
+ /**
83
+ * Ask the configured UTXO-provider collection to classify the request's local
84
+ * inputs and mark only positively confirmed spent outputs unavailable.
85
+ * Provider errors and a collection with no providers are inconclusive and
86
+ * never count as spent.
87
+ */
88
+ async function markConfirmedStaleReqInputs(req, storage, services, trx, logger) {
89
+ const result = { checked: 0, staleConfirmed: 0, staleOutpoints: [] };
90
+ const localInputs = await findLocalInputs(req, storage, trx);
91
+ const verdicts = new Map();
92
+ const uniqueInputs = new Map();
93
+ for (const localInput of localInputs) {
94
+ const key = `${localInput.outpoint.txid}.${localInput.outpoint.vout}`;
95
+ if (!uniqueInputs.has(key))
96
+ uniqueInputs.set(key, localInput);
97
+ }
98
+ await (0, classifyOutputUtxo_1.mapWithConcurrency)([...uniqueInputs.values()], classifyOutputUtxo_1.UTXO_PROVIDER_MAX_CONCURRENCY, async ({ output, outpoint }) => {
99
+ const key = `${outpoint.txid}.${outpoint.vout}`;
100
+ if (output.lockingScript == null) {
101
+ try {
102
+ await storage.validateOutputScript(output, trx);
103
+ }
104
+ catch {
105
+ verdicts.set(key, 'inconclusive');
106
+ return;
107
+ }
108
+ }
109
+ if (output.lockingScript == null) {
110
+ verdicts.set(key, 'inconclusive');
111
+ return;
112
+ }
113
+ const classification = await (0, classifyOutputUtxo_1.classifyOutputUtxo)(services, output);
114
+ let verdict;
115
+ if (classification.verdict === 'unknown')
116
+ verdict = 'inconclusive';
117
+ else if (classification.verdict === 'unspent')
118
+ verdict = 'utxo';
119
+ else
120
+ verdict = 'stale';
121
+ verdicts.set(key, verdict);
122
+ });
123
+ const staleOutpoints = new Set();
124
+ for (const { output, outpoint } of localInputs) {
125
+ const key = `${outpoint.txid}.${outpoint.vout}`;
126
+ const verdict = verdicts.get(key);
127
+ if (verdict == null || verdict === 'inconclusive')
128
+ continue;
129
+ result.checked++;
130
+ if (verdict === 'stale') {
131
+ await storage.updateOutput((0, utilityHelpers_1.verifyId)(output.outputId), { spendable: false }, trx);
132
+ result.staleConfirmed++;
133
+ staleOutpoints.add(key);
134
+ }
135
+ }
136
+ result.staleOutpoints = [...staleOutpoints];
137
+ if (result.staleConfirmed > 0) {
138
+ logger?.log(`markConfirmedStaleReqInputs: ${result.staleConfirmed} of ${result.checked} local input copy/copies confirmed spent for txid=${req.txid}`);
139
+ }
140
+ return result;
141
+ }
142
+ //# sourceMappingURL=reconcileFailedTransactionInputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcileFailedTransactionInputs.js","sourceRoot":"","sources":["../../../../src/storage/methods/reconcileFailedTransactionInputs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reviewStatus.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/reviewStatus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAQ7D;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,QAAQ,CAAA;CAAE,GACxC,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAkH1B"}
1
+ {"version":3,"file":"reviewStatus.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/reviewStatus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAQ7D;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,QAAQ,CAAA;CAAE,GACxC,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAqH1B"}
@@ -59,7 +59,8 @@ async function reviewStatus(storage, args) {
59
59
  .whereExists(function () {
60
60
  this.select(k.raw(1))
61
61
  .from('transactions as t')
62
- .whereRaw("outputs.spentBy = t.transactionId and t.status = 'failed'")
62
+ // ?? quotes identifiers: Postgres lowercases unquoted names, so camelCase columns must be quoted.
63
+ .whereRaw("?? = ?? and t.status = 'failed'", ['outputs.spentBy', 't.transactionId'])
63
64
  .whereNotExists(function () {
64
65
  // A failed transaction can still be reconciled from active or valid reqs.
65
66
  // Only terminal failure reqs are safe for input restoration.
@@ -72,7 +73,7 @@ async function reviewStatus(storage, args) {
72
73
  // Outputs generated by a failed transaction are not valid inputs to restore.
73
74
  this.select(k.raw(1))
74
75
  .from('transactions as source')
75
- .whereRaw("outputs.transactionId = source.transactionId and source.status = 'failed'");
76
+ .whereRaw("?? = ?? and source.status = 'failed'", ['outputs.transactionId', 'source.transactionId']);
76
77
  });
77
78
  })
78
79
  }, {
@@ -90,7 +91,8 @@ async function reviewStatus(storage, args) {
90
91
  .whereExists(function () {
91
92
  this.select(k.raw(1))
92
93
  .from('transactions as t')
93
- .whereRaw("outputs.transactionId = t.transactionId and t.status = 'failed'")
94
+ // ?? quotes identifiers: Postgres lowercases unquoted names, so camelCase columns must be quoted.
95
+ .whereRaw("?? = ?? and t.status = 'failed'", ['outputs.transactionId', 't.transactionId'])
94
96
  .whereNotExists(function () {
95
97
  // A failed transaction can still be reconciled from active or valid reqs.
96
98
  // Only terminal failure reqs are safe for output neutralization.
@@ -110,7 +112,8 @@ async function reviewStatus(storage, args) {
110
112
  q: k('transactions')
111
113
  .update({
112
114
  status: 'completed',
113
- provenTxId: k.raw('(SELECT provenTxId FROM proven_txs AS p WHERE transactions.txid = p.txid)')
115
+ // ?? quotes identifiers: Postgres lowercases unquoted names, so camelCase columns must be quoted.
116
+ provenTxId: k.raw('(SELECT ?? FROM proven_txs AS p WHERE transactions.txid = p.txid)', ['p.provenTxId'])
114
117
  })
115
118
  .whereNull('provenTxId')
116
119
  .whereExists(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"reviewStatus.js","sourceRoot":"","sources":["../../../../src/storage/methods/reviewStatus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviewStatus.js","sourceRoot":"","sources":["../../../../src/storage/methods/reviewStatus.ts"],"names":[],"mappings":";;;AAGA,uDAAmD;AAKnD,MAAM,sCAAsC,GAAwB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;AAE9F;;;;;;;;;;;GAWG;AACI,KAAK,uBACV,OAAoB,EACpB,IAAyC;IAEzC,MAAM,CAAC,GAAoB,EAAE,GAAG,EAAE,EAAE,EAAE,CAAA;IAEtC,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAAqB,EAAiB,EAAE;QAC1E,IAAI,CAAC;YACH,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;YACxB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC,CAAA;YACxB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,MAAe,EAAE,CAAC;YACzB,6DAA6D;YAC7D,MAAM,CAAC,GAAG,yBAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YACzC,MAAM,MAAM,CAAA;QACd,CAAC;IACH,CAAC,CAAA;IAED,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEhC,MAAM,EAAE,GAAwB,EAAE,CAAA;IAElC,EAAE,CAAC,IAAI,CACL;QACE,GAAG,EAAE,8FAA8F;QACnG;;;cAGM;QACN,CAAC,EAAE,CAAC,CAAmB,cAAc,CAAC;aACnC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;aAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;aAC9B,WAAW,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClB,IAAI,CAAC,qBAAqB,CAAC;iBAC3B,QAAQ,CAAC,qDAAqD,CAAC,CAAA;QACpE,CAAC,CAAC;KACL,EACD;QACE,GAAG,EAAE,iGAAiG;QACtG;;;;cAIM;QACN,CAAC,EAAE,CAAC,CAAc,SAAS,CAAC;aACzB,MAAM,CAAC,EAAE,OAAO,EAAE,IAA4B,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aAClE,WAAW,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClB,IAAI,CAAC,mBAAmB,CAAC;gBAC1B,kGAAkG;iBACjG,QAAQ,CAAC,iCAAiC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;iBACnF,cAAc,CAAC;gBACd,0EAA0E;gBAC1E,6DAA6D;gBAC7D,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBAClB,IAAI,CAAC,qBAAqB,CAAC;qBAC3B,QAAQ,CAAC,iBAAiB,CAAC;qBAC3B,UAAU,CAAC,UAAU,EAAE,sCAAsC,CAAC,CAAA;YACnE,CAAC,CAAC;iBACD,cAAc,CAAC;gBACd,6EAA6E;gBAC7E,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBAClB,IAAI,CAAC,wBAAwB,CAAC;qBAC9B,QAAQ,CAAC,sCAAsC,EAAE,CAAC,uBAAuB,EAAE,sBAAsB,CAAC,CAAC,CAAA;YACxG,CAAC,CAAC,CAAA;QACN,CAAC,CAAC;KACL,EACD;QACE,GAAG,EAAE,uGAAuG;QAC5G;;;;cAIM;QACN,CAAC,EAAE,CAAC,CAAc,SAAS,CAAC;aACzB,MAAM,CAAC,EAAE,OAAO,EAAE,IAA4B,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;aACnE,KAAK,CAAC;YACL,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;QAC3D,CAAC,CAAC;aACD,WAAW,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClB,IAAI,CAAC,mBAAmB,CAAC;gBAC1B,kGAAkG;iBACjG,QAAQ,CAAC,iCAAiC,EAAE,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;iBACzF,cAAc,CAAC;gBACd,0EAA0E;gBAC1E,iEAAiE;gBACjE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBAClB,IAAI,CAAC,qBAAqB,CAAC;qBAC3B,QAAQ,CAAC,iBAAiB,CAAC;qBAC3B,UAAU,CAAC,UAAU,EAAE,sCAAsC,CAAC,CAAA;YACnE,CAAC,CAAC,CAAA;QACN,CAAC,CAAC;KACL,EACD;QACE,GAAG,EAAE,yGAAyG;QAC9G;;;;cAIM;QACN,CAAC,EAAE,CAAC,CAAmB,cAAc,CAAC;aACnC,MAAM,CAAC;YACN,MAAM,EAAE,WAAW;YACnB,kGAAkG;YAClG,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,mEAAmE,EAAE,CAAC,cAAc,CAAC,CAAC;SACzG,CAAC;aACD,SAAS,CAAC,YAAY,CAAC;aACvB,WAAW,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAA;QACtF,CAAC,CAAC;KACL,CACF,CAAA;IAED,KAAK,MAAM,CAAC,IAAI,EAAE;QAAE,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAA;IAEjD,OAAO,CAAC,CAAA;AACV,CAAC"}
@@ -1,4 +1,4 @@
1
- import * as sdk from '../../sdk';
1
+ import type * as sdk from '../../sdk';
2
2
  import { StorageIdb } from '../StorageIdb';
3
3
  /**
4
4
  * Looks for unpropagated state:
@@ -1 +1 @@
1
- {"version":3,"file":"reviewStatusIdb.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/reviewStatusIdb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AA6C1C;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAA;CAAE,GAC5C,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA2B1B"}
1
+ {"version":3,"file":"reviewStatusIdb.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/reviewStatusIdb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AA6C1C;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAA;CAAE,GAC5C,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA2B1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"reviewStatusIdb.js","sourceRoot":"","sources":["../../../../src/storage/methods/reviewStatusIdb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviewStatusIdb.js","sourceRoot":"","sources":["../../../../src/storage/methods/reviewStatusIdb.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { AuthId } from '../../sdk/WalletStorage.interfaces';
2
+ import { type OutputUtxoClassification } from '../../services/classifyOutputUtxo';
3
+ import { StorageProvider } from '../StorageProvider';
4
+ import { TableOutput } from '../schema/tables/TableOutput';
5
+ export declare const MAX_UTXO_REVIEW_CANDIDATES = 10000;
6
+ export declare const UTXO_REVIEW_PROVIDER_TIMEOUT_MSECS = 5000;
7
+ export type UtxoReviewReleaseMode = 'none' | 'atomic' | 'conclusive';
8
+ export interface UtxoReviewClassification {
9
+ output: TableOutput;
10
+ status: OutputUtxoClassification;
11
+ }
12
+ export interface UtxoReviewDiagnostics {
13
+ checked: number;
14
+ confirmedUnspent: number;
15
+ confirmedSpent: number;
16
+ unknown: number;
17
+ confirmedSpentSatoshis: number;
18
+ released: number;
19
+ releasedSatoshis: number;
20
+ providers: string[];
21
+ providerCount: number;
22
+ providersTruncated: boolean;
23
+ }
24
+ export interface ReviewUtxoOutputsResult {
25
+ classifications: UtxoReviewClassification[];
26
+ confirmedSpentOutputs: TableOutput[];
27
+ unknownOutputs: TableOutput[];
28
+ diagnostics: UtxoReviewDiagnostics;
29
+ }
30
+ /**
31
+ * Classify a bounded set of wallet outputs without treating provider failure as
32
+ * proof that an output was spent. Read-only reviews always return their
33
+ * conclusive and unknown partitions. Atomic release requires every verdict to
34
+ * be conclusive; the operator-only conclusive mode releases the positively
35
+ * spent subset while retaining and reporting unknowns.
36
+ */
37
+ export declare function reviewUtxoOutputs(storage: StorageProvider, auth: AuthId, outputs: TableOutput[], releaseMode?: UtxoReviewReleaseMode): Promise<ReviewUtxoOutputsResult>;
38
+ //# sourceMappingURL=reviewUtxoOutputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewUtxoOutputs.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/reviewUtxoOutputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAA;AAE3D,OAAO,EAGL,KAAK,wBAAwB,EAE9B,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAK1D,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAChD,eAAO,MAAM,kCAAkC,OAAQ,CAAA;AAEvD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAA;AAEpE,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,wBAAwB,CAAA;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,sBAAsB,EAAE,MAAM,CAAA;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,wBAAwB,EAAE,CAAA;IAC3C,qBAAqB,EAAE,WAAW,EAAE,CAAA;IACpC,cAAc,EAAE,WAAW,EAAE,CAAA;IAC7B,WAAW,EAAE,qBAAqB,CAAA;CACnC;AAwLD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EAAE,EACtB,WAAW,GAAE,qBAA8B,GAC1C,OAAO,CAAC,uBAAuB,CAAC,CAqClC"}
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UTXO_REVIEW_PROVIDER_TIMEOUT_MSECS = exports.MAX_UTXO_REVIEW_CANDIDATES = void 0;
4
+ exports.reviewUtxoOutputs = reviewUtxoOutputs;
5
+ const WERR_errors_1 = require("../../sdk/WERR_errors");
6
+ const classifyOutputUtxo_1 = require("../../services/classifyOutputUtxo");
7
+ const utilityHelpers_1 = require("../../utility/utilityHelpers");
8
+ const MAX_AUDIT_PROVIDERS = 8;
9
+ const MAX_PROVIDER_NAME_LENGTH = 128;
10
+ const MAX_MONEY_SATOSHIS = 21e14;
11
+ exports.MAX_UTXO_REVIEW_CANDIDATES = 10_000;
12
+ exports.UTXO_REVIEW_PROVIDER_TIMEOUT_MSECS = 5_000;
13
+ function requireSatoshis(value, name) {
14
+ if (!Number.isSafeInteger(value) || value < 0 || value > MAX_MONEY_SATOSHIS) {
15
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `an integer from 0 through ${MAX_MONEY_SATOSHIS}`);
16
+ }
17
+ return value;
18
+ }
19
+ function sumSatoshis(outputs, name) {
20
+ let total = 0;
21
+ for (const [index, output] of outputs.entries()) {
22
+ const value = requireSatoshis(output.satoshis, `${name}[${index}].satoshis`);
23
+ total += value;
24
+ if (!Number.isSafeInteger(total) || total > MAX_MONEY_SATOSHIS) {
25
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `a total no greater than ${MAX_MONEY_SATOSHIS} satoshis`);
26
+ }
27
+ }
28
+ return total;
29
+ }
30
+ function validateCandidates(auth, outputs) {
31
+ if (!Array.isArray(outputs) || outputs.length > exports.MAX_UTXO_REVIEW_CANDIDATES) {
32
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('outputs', `a bounded array of at most ${exports.MAX_UTXO_REVIEW_CANDIDATES} UTXO candidates`);
33
+ }
34
+ const ids = new Set();
35
+ for (const [index, output] of outputs.entries()) {
36
+ if (output == null || typeof output !== 'object') {
37
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER(`outputs[${index}]`, 'an owned wallet output');
38
+ }
39
+ const outputId = (0, utilityHelpers_1.verifyId)(output.outputId);
40
+ if (ids.has(outputId))
41
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('outputs', 'unique output identifiers');
42
+ ids.add(outputId);
43
+ if (output.userId !== auth.userId) {
44
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER(`outputs[${index}].userId`, `owned by user ${auth.userId}`);
45
+ }
46
+ requireSatoshis(output.satoshis, `outputs[${index}].satoshis`);
47
+ }
48
+ }
49
+ function diagnosticsFor(classifications, releasedOutputIds) {
50
+ const allProviders = [
51
+ ...new Set(classifications.map(result => result.status.provider.slice(0, MAX_PROVIDER_NAME_LENGTH)))
52
+ ];
53
+ const providers = allProviders.slice(0, MAX_AUDIT_PROVIDERS);
54
+ const confirmedSpent = classifications.filter(result => result.status.verdict === 'spent');
55
+ const released = confirmedSpent.filter(result => releasedOutputIds.has(result.output.outputId));
56
+ return {
57
+ checked: classifications.length,
58
+ confirmedUnspent: classifications.filter(result => result.status.verdict === 'unspent').length,
59
+ confirmedSpent: confirmedSpent.length,
60
+ unknown: classifications.filter(result => result.status.verdict === 'unknown').length,
61
+ confirmedSpentSatoshis: sumSatoshis(confirmedSpent.map(result => result.output), 'confirmedSpentOutputs'),
62
+ released: released.length,
63
+ releasedSatoshis: sumSatoshis(released.map(result => result.output), 'releasedOutputs'),
64
+ providers,
65
+ providerCount: allProviders.length,
66
+ providersTruncated: allProviders.length > providers.length
67
+ };
68
+ }
69
+ function auditDetails(diagnostics, userId, releaseMode, reason) {
70
+ return JSON.stringify({
71
+ operation: 'specOpInvalidChange',
72
+ reason,
73
+ releaseMode,
74
+ userId,
75
+ ...diagnostics
76
+ });
77
+ }
78
+ async function classifyCandidates(storage, outputs) {
79
+ const services = storage.getServices();
80
+ const candidates = outputs.filter(output => output.basketId != null);
81
+ return await (0, classifyOutputUtxo_1.mapWithConcurrency)(candidates, classifyOutputUtxo_1.UTXO_PROVIDER_MAX_CONCURRENCY, async (output) => {
82
+ try {
83
+ await storage.validateOutputScript(output);
84
+ }
85
+ catch (error) {
86
+ return {
87
+ output,
88
+ status: {
89
+ verdict: 'unknown',
90
+ provider: '<script-validation-error>',
91
+ error
92
+ }
93
+ };
94
+ }
95
+ let timeout;
96
+ const providerCall = (0, classifyOutputUtxo_1.classifyOutputUtxo)(services, output);
97
+ const timedClassification = new Promise(resolve => {
98
+ timeout = setTimeout(() => resolve({
99
+ verdict: 'unknown',
100
+ provider: '<review-timeout>',
101
+ error: new Error(`UTXO classification exceeded ${exports.UTXO_REVIEW_PROVIDER_TIMEOUT_MSECS}ms`)
102
+ }), exports.UTXO_REVIEW_PROVIDER_TIMEOUT_MSECS);
103
+ });
104
+ try {
105
+ return {
106
+ output,
107
+ status: await Promise.race([providerCall, timedClassification])
108
+ };
109
+ }
110
+ finally {
111
+ if (timeout != null)
112
+ clearTimeout(timeout);
113
+ void providerCall.catch(() => undefined);
114
+ }
115
+ });
116
+ }
117
+ async function releaseConfirmedSpent(storage, auth, classifications, releaseMode) {
118
+ const confirmedSpent = classifications.filter(result => result.status.verdict === 'spent');
119
+ const releasedOutputIds = new Set();
120
+ await storage.transaction(async (trx) => {
121
+ for (const { output } of confirmedSpent) {
122
+ const current = await storage.findOutputById(output.outputId, trx, true);
123
+ if (current == null || current.userId !== auth.userId) {
124
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('outputId', `owned by user ${auth.userId}`);
125
+ }
126
+ const sameOutpoint = typeof current.txid === 'string' &&
127
+ typeof output.txid === 'string' &&
128
+ current.txid.toLowerCase() === output.txid.toLowerCase() &&
129
+ current.vout === output.vout;
130
+ if (current.spendable !== true ||
131
+ current.spentBy != null ||
132
+ !sameOutpoint ||
133
+ current.satoshis !== output.satoshis ||
134
+ current.basketId !== output.basketId) {
135
+ throw new WERR_errors_1.WERR_INVALID_OPERATION(`Output ${output.outputId} changed state during UTXO review; no outputs were changed.`);
136
+ }
137
+ const updated = await storage.updateOutput((0, utilityHelpers_1.verifyId)(output.outputId), { spendable: false }, trx);
138
+ if (updated !== 1) {
139
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('outputId', `updated exactly once: ${output.outputId}`);
140
+ }
141
+ releasedOutputIds.add(output.outputId);
142
+ }
143
+ const now = new Date();
144
+ const diagnostics = diagnosticsFor(classifications, releasedOutputIds);
145
+ await storage.insertMonitorEvent({
146
+ created_at: now,
147
+ updated_at: now,
148
+ id: 0,
149
+ event: releaseMode === 'atomic' ? 'InvalidChangeRelease' : 'InvalidChangeConclusiveRelease',
150
+ details: auditDetails(diagnostics, auth.userId, releaseMode, 'provider-confirmed-spent')
151
+ }, trx);
152
+ });
153
+ return releasedOutputIds;
154
+ }
155
+ /**
156
+ * Classify a bounded set of wallet outputs without treating provider failure as
157
+ * proof that an output was spent. Read-only reviews always return their
158
+ * conclusive and unknown partitions. Atomic release requires every verdict to
159
+ * be conclusive; the operator-only conclusive mode releases the positively
160
+ * spent subset while retaining and reporting unknowns.
161
+ */
162
+ async function reviewUtxoOutputs(storage, auth, outputs, releaseMode = 'none') {
163
+ validateCandidates(auth, outputs);
164
+ const classifications = await classifyCandidates(storage, outputs);
165
+ const confirmedSpentOutputs = classifications
166
+ .filter(result => result.status.verdict === 'spent')
167
+ .map(result => result.output);
168
+ const unknownOutputs = classifications
169
+ .filter(result => result.status.verdict === 'unknown')
170
+ .map(result => result.output);
171
+ if (releaseMode === 'atomic' && unknownOutputs.length > 0) {
172
+ const diagnostics = diagnosticsFor(classifications, new Set());
173
+ const now = new Date();
174
+ await storage.insertMonitorEvent({
175
+ created_at: now,
176
+ updated_at: now,
177
+ id: 0,
178
+ event: 'InvalidChangeReleaseBlocked',
179
+ details: auditDetails(diagnostics, auth.userId, releaseMode, 'inconclusive-provider-result')
180
+ });
181
+ throw new WERR_errors_1.WERR_UTXO_REVIEW_INCONCLUSIVE(diagnostics.checked, diagnostics.confirmedSpent, diagnostics.unknown);
182
+ }
183
+ const releasedOutputIds = releaseMode === 'none'
184
+ ? new Set()
185
+ : await releaseConfirmedSpent(storage, auth, classifications, releaseMode);
186
+ for (const output of confirmedSpentOutputs) {
187
+ if (releasedOutputIds.has(output.outputId))
188
+ output.spendable = false;
189
+ }
190
+ return {
191
+ classifications,
192
+ confirmedSpentOutputs,
193
+ unknownOutputs,
194
+ diagnostics: diagnosticsFor(classifications, releasedOutputIds)
195
+ };
196
+ }
197
+ //# sourceMappingURL=reviewUtxoOutputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewUtxoOutputs.js","sourceRoot":"","sources":["../../../../src/storage/methods/reviewUtxoOutputs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { WERR_INVALID_PARAMETER } from '../../sdk/WERR_errors';
2
+ import { WalletServices } from '../../sdk/WalletServices.interfaces';
3
+ import { TableProvenTx } from '../schema/tables/TableProvenTx';
4
+ export interface SyncProofValidationStorage {
5
+ getServices: () => WalletServices;
6
+ }
7
+ /** Identifies a structurally valid proof which needs current-chain reconciliation. */
8
+ export declare class StaleSyncProofError extends WERR_INVALID_PARAMETER {
9
+ constructor();
10
+ }
11
+ /** Mark a fully validated reconciliation without changing the source cursor timestamp. */
12
+ export declare function markSyncProofReconciled(candidate: TableProvenTx): void;
13
+ /** A local correction must be discoverable by subsequent incremental readers. */
14
+ export declare function syncProofUpdatedAt(candidate: TableProvenTx, existing?: Date): Date;
15
+ /** Normalize text-key identifiers before lookup or persistence. */
16
+ export declare function canonicalizeSyncProofIdentifiers(candidate: TableProvenTx): void;
17
+ /** Compare proof authority fields, excluding local IDs and timestamps. */
18
+ export declare function sameSyncProof(a: TableProvenTx, b: TableProvenTx): boolean;
19
+ /** Record that preflight found no row which this candidate may replace. */
20
+ export declare function markSyncProofInsertOnly(candidate: TableProvenTx): void;
21
+ /**
22
+ * Enforce the pre-transaction proof decision again at the entity merge point.
23
+ * This closes the race where another process inserts the txid after preflight.
24
+ */
25
+ export declare function assertSyncProofReplacementAuthorized(candidate: TableProvenTx): void;
26
+ /**
27
+ * Validate proof authority before an RPC proof is admitted or an in-process
28
+ * backup/conflict proof replaces an existing global row. Network-backed checks
29
+ * run before the storage merge transaction is opened.
30
+ */
31
+ export declare function validateSyncProof(storage: SyncProofValidationStorage, candidate: TableProvenTx): Promise<void>;
32
+ //# sourceMappingURL=validateSyncProof.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateSyncProof.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/validateSyncProof.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAGpE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE9D,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,cAAc,CAAA;CAClC;AAUD,sFAAsF;AACtF,qBAAa,mBAAoB,SAAQ,sBAAsB;IAC7D,cAEC;CACF;AAMD,0FAA0F;AAC1F,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAGtE;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAIlF;AAED,mEAAmE;AACnE,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAW/E;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAUzE;AAED,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAEtE;AAED;;;GAGG;AACH,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAMnF;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDpH"}