@bsv/wallet-toolbox-client 2.1.24 → 3.0.0-alpha.0

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 (588) hide show
  1. package/out/src/CWIStyleWalletManager.d.ts +33 -7
  2. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  3. package/out/src/CWIStyleWalletManager.js +281 -313
  4. package/out/src/CWIStyleWalletManager.js.map +1 -1
  5. package/out/src/SetupClient.d.ts +6 -6
  6. package/out/src/SetupClient.d.ts.map +1 -1
  7. package/out/src/SetupClient.js +5 -5
  8. package/out/src/SetupClient.js.map +1 -1
  9. package/out/src/SetupWallet.d.ts.map +1 -1
  10. package/out/src/SimpleWalletManager.d.ts +12 -2
  11. package/out/src/SimpleWalletManager.d.ts.map +1 -1
  12. package/out/src/SimpleWalletManager.js +46 -30
  13. package/out/src/SimpleWalletManager.js.map +1 -1
  14. package/out/src/Wallet.d.ts +1 -1
  15. package/out/src/Wallet.d.ts.map +1 -1
  16. package/out/src/Wallet.js +102 -100
  17. package/out/src/Wallet.js.map +1 -1
  18. package/out/src/WalletAuthenticationManager.d.ts +1 -1
  19. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  20. package/out/src/WalletAuthenticationManager.js +3 -3
  21. package/out/src/WalletAuthenticationManager.js.map +1 -1
  22. package/out/src/WalletLogger.d.ts.map +1 -1
  23. package/out/src/WalletLogger.js +16 -8
  24. package/out/src/WalletLogger.js.map +1 -1
  25. package/out/src/WalletPermissionsManager.d.ts +89 -18
  26. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  27. package/out/src/WalletPermissionsManager.js +656 -870
  28. package/out/src/WalletPermissionsManager.js.map +1 -1
  29. package/out/src/WalletSettingsManager.d.ts +2 -2
  30. package/out/src/WalletSettingsManager.d.ts.map +1 -1
  31. package/out/src/WalletSettingsManager.js.map +1 -1
  32. package/out/src/fundWalletP2PKH.d.ts +2 -2
  33. package/out/src/fundWalletP2PKH.d.ts.map +1 -1
  34. package/out/src/fundWalletP2PKH.js +11 -10
  35. package/out/src/fundWalletP2PKH.js.map +1 -1
  36. package/out/src/mockchain/MockChainMigrations.d.ts +3 -3
  37. package/out/src/mockchain/MockChainMigrations.d.ts.map +1 -1
  38. package/out/src/mockchain/MockChainMigrations.js.map +1 -1
  39. package/out/src/mockchain/MockChainStorage.d.ts.map +1 -1
  40. package/out/src/mockchain/MockChainStorage.js +5 -5
  41. package/out/src/mockchain/MockChainStorage.js.map +1 -1
  42. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
  43. package/out/src/mockchain/MockChainTracker.js +10 -10
  44. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  45. package/out/src/mockchain/MockMiner.d.ts.map +1 -1
  46. package/out/src/mockchain/MockMiner.js +3 -3
  47. package/out/src/mockchain/MockMiner.js.map +1 -1
  48. package/out/src/mockchain/MockServices.d.ts +9 -0
  49. package/out/src/mockchain/MockServices.d.ts.map +1 -1
  50. package/out/src/mockchain/MockServices.js +195 -238
  51. package/out/src/mockchain/MockServices.js.map +1 -1
  52. package/out/src/mockchain/merkleTree.d.ts.map +1 -1
  53. package/out/src/mockchain/merkleTree.js +21 -12
  54. package/out/src/mockchain/merkleTree.js.map +1 -1
  55. package/out/src/monitor/LeasedMonitorTask.d.ts +43 -0
  56. package/out/src/monitor/LeasedMonitorTask.d.ts.map +1 -0
  57. package/out/src/monitor/LeasedMonitorTask.js +89 -0
  58. package/out/src/monitor/LeasedMonitorTask.js.map +1 -0
  59. package/out/src/monitor/Monitor.d.ts +24 -0
  60. package/out/src/monitor/Monitor.d.ts.map +1 -1
  61. package/out/src/monitor/Monitor.js +63 -75
  62. package/out/src/monitor/Monitor.js.map +1 -1
  63. package/out/src/monitor/V7LeasedTask.d.ts +43 -0
  64. package/out/src/monitor/V7LeasedTask.d.ts.map +1 -0
  65. package/out/src/monitor/V7LeasedTask.js +89 -0
  66. package/out/src/monitor/V7LeasedTask.js.map +1 -0
  67. package/out/src/monitor/tasks/TaskArcSSE.d.ts +2 -2
  68. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  69. package/out/src/monitor/tasks/TaskArcSSE.js +10 -23
  70. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  71. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +4 -2
  72. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  73. package/out/src/monitor/tasks/TaskCheckForProofs.js +83 -16
  74. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  75. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +1 -1
  76. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  77. package/out/src/monitor/tasks/TaskCheckNoSends.js +1 -2
  78. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  79. package/out/src/monitor/tasks/TaskClock.d.ts +1 -1
  80. package/out/src/monitor/tasks/TaskClock.d.ts.map +1 -1
  81. package/out/src/monitor/tasks/TaskClock.js +0 -1
  82. package/out/src/monitor/tasks/TaskClock.js.map +1 -1
  83. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts +1 -1
  84. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  85. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  86. package/out/src/monitor/tasks/TaskMineBlock.d.ts +1 -1
  87. package/out/src/monitor/tasks/TaskMineBlock.d.ts.map +1 -1
  88. package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -1
  89. package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts +1 -1
  90. package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts.map +1 -1
  91. package/out/src/monitor/tasks/TaskMonitorCallHistory.js +1 -1
  92. package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
  93. package/out/src/monitor/tasks/TaskNewHeader.d.ts +2 -2
  94. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  95. package/out/src/monitor/tasks/TaskNewHeader.js +7 -5
  96. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  97. package/out/src/monitor/tasks/TaskPurge.d.ts +1 -1
  98. package/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -1
  99. package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
  100. package/out/src/monitor/tasks/TaskReorg.d.ts +1 -1
  101. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  102. package/out/src/monitor/tasks/TaskReorg.js +2 -2
  103. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  104. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts +1 -1
  105. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
  106. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +10 -10
  107. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  108. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +1 -1
  109. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
  110. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +2 -2
  111. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  112. package/out/src/monitor/tasks/TaskReviewStatus.d.ts +1 -1
  113. package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
  114. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
  115. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +1 -1
  116. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
  117. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  118. package/out/src/monitor/tasks/TaskSendWaiting.d.ts +1 -1
  119. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  120. package/out/src/monitor/tasks/TaskSendWaiting.js +4 -5
  121. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  122. package/out/src/monitor/tasks/TaskUnFail.d.ts +1 -1
  123. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  124. package/out/src/monitor/tasks/TaskUnFail.js +13 -15
  125. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  126. package/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +1 -1
  127. package/out/src/monitor/tasks/WalletMonitorTask.js +3 -1
  128. package/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -1
  129. package/out/src/sdk/CertOpsWallet.d.ts +3 -3
  130. package/out/src/sdk/CertOpsWallet.d.ts.map +1 -1
  131. package/out/src/sdk/PrivilegedKeyManager.d.ts +3 -3
  132. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  133. package/out/src/sdk/PrivilegedKeyManager.js +26 -21
  134. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  135. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  136. package/out/src/sdk/WERR_errors.js +5 -5
  137. package/out/src/sdk/WERR_errors.js.map +1 -1
  138. package/out/src/sdk/WalletError.d.ts +1 -1
  139. package/out/src/sdk/WalletError.d.ts.map +1 -1
  140. package/out/src/sdk/WalletError.js +10 -3
  141. package/out/src/sdk/WalletError.js.map +1 -1
  142. package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
  143. package/out/src/sdk/WalletErrorFromJson.js +1 -3
  144. package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
  145. package/out/src/sdk/WalletServices.interfaces.d.ts +19 -19
  146. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  147. package/out/src/sdk/WalletStorage.interfaces.d.ts +59 -59
  148. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  149. package/out/src/sdk/types.d.ts +36 -4
  150. package/out/src/sdk/types.d.ts.map +1 -1
  151. package/out/src/sdk/types.js +53 -4
  152. package/out/src/sdk/types.js.map +1 -1
  153. package/out/src/services/ServiceCollection.d.ts +6 -6
  154. package/out/src/services/ServiceCollection.d.ts.map +1 -1
  155. package/out/src/services/ServiceCollection.js +3 -4
  156. package/out/src/services/ServiceCollection.js.map +1 -1
  157. package/out/src/services/Services.d.ts +5 -0
  158. package/out/src/services/Services.d.ts.map +1 -1
  159. package/out/src/services/Services.js +174 -182
  160. package/out/src/services/Services.js.map +1 -1
  161. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
  162. package/out/src/services/chaintracker/BHServiceClient.js +7 -7
  163. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  164. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  165. package/out/src/services/chaintracker/ChaintracksChainTracker.js +5 -5
  166. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  167. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts +5 -3
  168. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
  169. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
  170. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts.map +1 -1
  171. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +20 -10
  172. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  173. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +228 -221
  174. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  175. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  176. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +9 -10
  177. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  178. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  179. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +1 -1
  180. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  181. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts +1 -2
  182. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
  183. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +3 -3
  184. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  185. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
  186. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
  187. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  188. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +3 -3
  189. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  190. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  191. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +1 -1
  192. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  193. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
  194. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +2 -2
  195. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  196. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +2 -2
  197. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  198. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +6 -39
  199. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  200. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +3 -3
  201. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
  202. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +8 -6
  203. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  204. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  205. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +9 -16
  206. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  207. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  208. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +34 -22
  209. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  210. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  211. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +31 -30
  212. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  213. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +2 -2
  214. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  215. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +11 -10
  216. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  217. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
  218. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  219. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  220. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  221. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  222. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  223. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
  224. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  225. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +6 -1
  226. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  227. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +247 -227
  228. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  229. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
  230. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +8 -7
  231. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  232. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  233. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +35 -25
  234. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  235. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +5 -5
  236. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  237. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +13 -11
  238. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  239. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +0 -1
  240. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  241. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  242. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  243. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +21 -13
  244. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  245. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +2 -2
  246. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
  247. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  248. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +1 -1
  249. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  250. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +28 -24
  251. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  252. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +1 -1
  253. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +1 -1
  254. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  255. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +9 -10
  256. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  257. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  258. package/out/src/services/createDefaultWalletServicesOptions.js +3 -3
  259. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  260. package/out/src/services/providers/ARC.d.ts.map +1 -1
  261. package/out/src/services/providers/ARC.js +7 -14
  262. package/out/src/services/providers/ARC.js.map +1 -1
  263. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  264. package/out/src/services/providers/ArcSSEClient.js +1 -1
  265. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  266. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  267. package/out/src/services/providers/Bitails.js +17 -17
  268. package/out/src/services/providers/Bitails.js.map +1 -1
  269. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  270. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  271. package/out/src/services/providers/WhatsOnChain.d.ts +2 -0
  272. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  273. package/out/src/services/providers/WhatsOnChain.js +109 -233
  274. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  275. package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
  276. package/out/src/services/providers/exchangeRates.js +3 -3
  277. package/out/src/services/providers/exchangeRates.js.map +1 -1
  278. package/out/src/services/providers/getBeefForTxid.d.ts +1 -1
  279. package/out/src/services/providers/getBeefForTxid.d.ts.map +1 -1
  280. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  281. package/out/src/services/providers/whatsOnChainHelpers.d.ts +68 -0
  282. package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +1 -0
  283. package/out/src/services/providers/whatsOnChainHelpers.js +147 -0
  284. package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -0
  285. package/out/src/signer/WalletSigner.d.ts.map +1 -1
  286. package/out/src/signer/WalletSigner.js.map +1 -1
  287. package/out/src/signer/methods/acquireDirectCertificate.js +1 -1
  288. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  289. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  290. package/out/src/signer/methods/buildSignableTransaction.js +21 -13
  291. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  292. package/out/src/signer/methods/completeSignedTransaction.d.ts.map +1 -1
  293. package/out/src/signer/methods/completeSignedTransaction.js +20 -21
  294. package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
  295. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  296. package/out/src/signer/methods/createAction.js +8 -7
  297. package/out/src/signer/methods/createAction.js.map +1 -1
  298. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  299. package/out/src/signer/methods/internalizeAction.js +8 -6
  300. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  301. package/out/src/signer/methods/proveCertificate.js +1 -1
  302. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  303. package/out/src/signer/methods/signAction.js +8 -10
  304. package/out/src/signer/methods/signAction.js.map +1 -1
  305. package/out/src/storage/StorageIdb.d.ts +16 -1
  306. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  307. package/out/src/storage/StorageIdb.js +544 -1224
  308. package/out/src/storage/StorageIdb.js.map +1 -1
  309. package/out/src/storage/StorageProvider.d.ts +124 -1
  310. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  311. package/out/src/storage/StorageProvider.js +316 -186
  312. package/out/src/storage/StorageProvider.js.map +1 -1
  313. package/out/src/storage/StorageReader.d.ts.map +1 -1
  314. package/out/src/storage/StorageReader.js +8 -7
  315. package/out/src/storage/StorageReader.js.map +1 -1
  316. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  317. package/out/src/storage/StorageReaderWriter.js +32 -32
  318. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  319. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  320. package/out/src/storage/StorageSyncReader.js +3 -3
  321. package/out/src/storage/StorageSyncReader.js.map +1 -1
  322. package/out/src/storage/WalletStorageManager.d.ts +3 -0
  323. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  324. package/out/src/storage/WalletStorageManager.js +83 -73
  325. package/out/src/storage/WalletStorageManager.js.map +1 -1
  326. package/out/src/storage/idbHelpers.d.ts +47 -0
  327. package/out/src/storage/idbHelpers.d.ts.map +1 -0
  328. package/out/src/storage/idbHelpers.js +417 -0
  329. package/out/src/storage/idbHelpers.js.map +1 -0
  330. package/out/src/storage/methods/ListActionsSpecOp.d.ts +6 -1
  331. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  332. package/out/src/storage/methods/ListActionsSpecOp.js +28 -2
  333. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  334. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  335. package/out/src/storage/methods/ListOutputsSpecOp.js +8 -11
  336. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  337. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +83 -0
  338. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  339. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +338 -63
  340. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  341. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  342. package/out/src/storage/methods/createAction.js +251 -274
  343. package/out/src/storage/methods/createAction.js.map +1 -1
  344. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  345. package/out/src/storage/methods/generateChange.js +99 -80
  346. package/out/src/storage/methods/generateChange.js.map +1 -1
  347. package/out/src/storage/methods/getBeefForTransaction.js +15 -13
  348. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  349. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
  350. package/out/src/storage/methods/getSyncChunk.js +4 -3
  351. package/out/src/storage/methods/getSyncChunk.js.map +1 -1
  352. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  353. package/out/src/storage/methods/internalizeAction.js +213 -56
  354. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  355. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  356. package/out/src/storage/methods/listActionsIdb.js +85 -110
  357. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  358. package/out/src/storage/methods/listCertificates.d.ts +1 -1
  359. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  360. package/out/src/storage/methods/listCertificates.js +7 -7
  361. package/out/src/storage/methods/listCertificates.js.map +1 -1
  362. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  363. package/out/src/storage/methods/listOutputsIdb.js +24 -27
  364. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  365. package/out/src/storage/methods/offsetKey.d.ts +1 -1
  366. package/out/src/storage/methods/offsetKey.d.ts.map +1 -1
  367. package/out/src/storage/methods/offsetKey.js +3 -5
  368. package/out/src/storage/methods/offsetKey.js.map +1 -1
  369. package/out/src/storage/methods/processAction.d.ts +0 -11
  370. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  371. package/out/src/storage/methods/processAction.js +168 -93
  372. package/out/src/storage/methods/processAction.js.map +1 -1
  373. package/out/src/storage/methods/purgeDataIdb.d.ts.map +1 -1
  374. package/out/src/storage/methods/purgeDataIdb.js +1 -1
  375. package/out/src/storage/methods/purgeDataIdb.js.map +1 -1
  376. package/out/src/storage/methods/reviewStatusIdb.d.ts +1 -1
  377. package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
  378. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  379. package/out/src/storage/methods/utils.d.ts.map +1 -1
  380. package/out/src/storage/methods/utils.js +7 -1
  381. package/out/src/storage/methods/utils.js.map +1 -1
  382. package/out/src/storage/remoting/StorageClient.d.ts +4 -270
  383. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  384. package/out/src/storage/remoting/StorageClient.js +16 -423
  385. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  386. package/out/src/storage/remoting/StorageClientBase.d.ts +289 -0
  387. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -0
  388. package/out/src/storage/remoting/StorageClientBase.js +375 -0
  389. package/out/src/storage/remoting/StorageClientBase.js.map +1 -0
  390. package/out/src/storage/remoting/entityValidationHelpers.d.ts +29 -0
  391. package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +1 -0
  392. package/out/src/storage/remoting/entityValidationHelpers.js +91 -0
  393. package/out/src/storage/remoting/entityValidationHelpers.js.map +1 -0
  394. package/out/src/storage/schema/StorageIdbSchema.d.ts +43 -2
  395. package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
  396. package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -1
  397. package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
  398. package/out/src/storage/schema/entities/EntityCertificate.d.ts.map +1 -1
  399. package/out/src/storage/schema/entities/EntityCertificate.js +5 -4
  400. package/out/src/storage/schema/entities/EntityCertificate.js.map +1 -1
  401. package/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +1 -1
  402. package/out/src/storage/schema/entities/EntityCertificateField.js +5 -7
  403. package/out/src/storage/schema/entities/EntityCertificateField.js.map +1 -1
  404. package/out/src/storage/schema/entities/EntityCommission.d.ts.map +1 -1
  405. package/out/src/storage/schema/entities/EntityCommission.js +6 -8
  406. package/out/src/storage/schema/entities/EntityCommission.js.map +1 -1
  407. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
  408. package/out/src/storage/schema/entities/EntityOutput.js +21 -24
  409. package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
  410. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -1
  411. package/out/src/storage/schema/entities/EntityOutputBasket.js +6 -6
  412. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
  413. package/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +1 -1
  414. package/out/src/storage/schema/entities/EntityOutputTag.js +2 -2
  415. package/out/src/storage/schema/entities/EntityOutputTag.js.map +1 -1
  416. package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +1 -1
  417. package/out/src/storage/schema/entities/EntityOutputTagMap.js +4 -6
  418. package/out/src/storage/schema/entities/EntityOutputTagMap.js.map +1 -1
  419. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +3 -3
  420. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
  421. package/out/src/storage/schema/entities/EntityProvenTx.js +22 -23
  422. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  423. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +9 -0
  424. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +1 -1
  425. package/out/src/storage/schema/entities/EntityProvenTxReq.js +116 -68
  426. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  427. package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
  428. package/out/src/storage/schema/entities/EntitySyncState.js +19 -18
  429. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  430. package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
  431. package/out/src/storage/schema/entities/EntityTransaction.js +25 -26
  432. package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
  433. package/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +1 -1
  434. package/out/src/storage/schema/entities/EntityTxLabel.js +2 -2
  435. package/out/src/storage/schema/entities/EntityTxLabel.js.map +1 -1
  436. package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +1 -1
  437. package/out/src/storage/schema/entities/EntityTxLabelMap.js +4 -6
  438. package/out/src/storage/schema/entities/EntityTxLabelMap.js.map +1 -1
  439. package/out/src/storage/schema/entities/EntityUser.d.ts.map +1 -1
  440. package/out/src/storage/schema/entities/EntityUser.js +3 -3
  441. package/out/src/storage/schema/entities/EntityUser.js.map +1 -1
  442. package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -1
  443. package/out/src/storage/schema/entities/MergeEntity.js +6 -6
  444. package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
  445. package/out/src/storage/schema/monitorLease.d.ts +57 -0
  446. package/out/src/storage/schema/monitorLease.d.ts.map +1 -0
  447. package/out/src/storage/schema/monitorLease.js +101 -0
  448. package/out/src/storage/schema/monitorLease.js.map +1 -0
  449. package/out/src/storage/schema/processingFsm.d.ts +27 -0
  450. package/out/src/storage/schema/processingFsm.d.ts.map +1 -0
  451. package/out/src/storage/schema/processingFsm.js +132 -0
  452. package/out/src/storage/schema/processingFsm.js.map +1 -0
  453. package/out/src/storage/schema/tables/TableAction.d.ts +38 -0
  454. package/out/src/storage/schema/tables/TableAction.d.ts.map +1 -0
  455. package/out/src/storage/schema/tables/TableAction.js +3 -0
  456. package/out/src/storage/schema/tables/TableAction.js.map +1 -0
  457. package/out/src/storage/schema/tables/TableCertificate.d.ts +2 -1
  458. package/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -1
  459. package/out/src/storage/schema/tables/TableCertificateField.d.ts +1 -1
  460. package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -1
  461. package/out/src/storage/schema/tables/TableChainTip.d.ts +17 -0
  462. package/out/src/storage/schema/tables/TableChainTip.d.ts.map +1 -0
  463. package/out/src/storage/schema/tables/TableChainTip.js +3 -0
  464. package/out/src/storage/schema/tables/TableChainTip.js.map +1 -0
  465. package/out/src/storage/schema/tables/TableCommission.d.ts +1 -1
  466. package/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -1
  467. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +1 -1
  468. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -1
  469. package/out/src/storage/schema/tables/TableMonitorLease.d.ts +23 -0
  470. package/out/src/storage/schema/tables/TableMonitorLease.d.ts.map +1 -0
  471. package/out/src/storage/schema/tables/TableMonitorLease.js +3 -0
  472. package/out/src/storage/schema/tables/TableMonitorLease.js.map +1 -0
  473. package/out/src/storage/schema/tables/TableOutput.d.ts +10 -2
  474. package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
  475. package/out/src/storage/schema/tables/TableOutput.js +1 -1
  476. package/out/src/storage/schema/tables/TableOutput.js.map +1 -1
  477. package/out/src/storage/schema/tables/TableOutputBasket.d.ts +1 -1
  478. package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -1
  479. package/out/src/storage/schema/tables/TableOutputTag.d.ts +1 -1
  480. package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -1
  481. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +1 -1
  482. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -1
  483. package/out/src/storage/schema/tables/TableProvenTx.d.ts +1 -1
  484. package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -1
  485. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +24 -1
  486. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -1
  487. package/out/src/storage/schema/tables/TableSettings.d.ts +1 -1
  488. package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
  489. package/out/src/storage/schema/tables/TableSyncState.d.ts +1 -1
  490. package/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -1
  491. package/out/src/storage/schema/tables/TableTransaction.d.ts +1 -1
  492. package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
  493. package/out/src/storage/schema/tables/TableTransactionNew.d.ts +50 -0
  494. package/out/src/storage/schema/tables/TableTransactionNew.d.ts.map +1 -0
  495. package/out/src/storage/schema/tables/TableTransactionNew.js +3 -0
  496. package/out/src/storage/schema/tables/TableTransactionNew.js.map +1 -0
  497. package/out/src/storage/schema/tables/TableTransactionV7.d.ts +50 -0
  498. package/out/src/storage/schema/tables/TableTransactionV7.d.ts.map +1 -0
  499. package/out/src/storage/schema/tables/TableTransactionV7.js +3 -0
  500. package/out/src/storage/schema/tables/TableTransactionV7.js.map +1 -0
  501. package/out/src/storage/schema/tables/TableTxAudit.d.ts +26 -0
  502. package/out/src/storage/schema/tables/TableTxAudit.d.ts.map +1 -0
  503. package/out/src/storage/schema/tables/TableTxAudit.js +3 -0
  504. package/out/src/storage/schema/tables/TableTxAudit.js.map +1 -0
  505. package/out/src/storage/schema/tables/TableTxLabel.d.ts +1 -1
  506. package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -1
  507. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +1 -1
  508. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -1
  509. package/out/src/storage/schema/tables/TableUser.d.ts +1 -1
  510. package/out/src/storage/schema/tables/TableUser.d.ts.map +1 -1
  511. package/out/src/storage/schema/tables/index.d.ts +5 -0
  512. package/out/src/storage/schema/tables/index.d.ts.map +1 -1
  513. package/out/src/storage/schema/tables/index.js +5 -0
  514. package/out/src/storage/schema/tables/index.js.map +1 -1
  515. package/out/src/storage/schema/transactionCrud.d.ts +41 -0
  516. package/out/src/storage/schema/transactionCrud.d.ts.map +1 -0
  517. package/out/src/storage/schema/transactionCrud.js +205 -0
  518. package/out/src/storage/schema/transactionCrud.js.map +1 -0
  519. package/out/src/storage/schema/transactionService.d.ts +315 -0
  520. package/out/src/storage/schema/transactionService.d.ts.map +1 -0
  521. package/out/src/storage/schema/transactionService.js +783 -0
  522. package/out/src/storage/schema/transactionService.js.map +1 -0
  523. package/out/src/storage/schema/txAudit.d.ts +33 -0
  524. package/out/src/storage/schema/txAudit.d.ts.map +1 -0
  525. package/out/src/storage/schema/txAudit.js +64 -0
  526. package/out/src/storage/schema/txAudit.js.map +1 -0
  527. package/out/src/storage/schema/v7Crud.d.ts +41 -0
  528. package/out/src/storage/schema/v7Crud.d.ts.map +1 -0
  529. package/out/src/storage/schema/v7Crud.js +205 -0
  530. package/out/src/storage/schema/v7Crud.js.map +1 -0
  531. package/out/src/storage/schema/v7Fsm.d.ts +27 -0
  532. package/out/src/storage/schema/v7Fsm.d.ts.map +1 -0
  533. package/out/src/storage/schema/v7Fsm.js +124 -0
  534. package/out/src/storage/schema/v7Fsm.js.map +1 -0
  535. package/out/src/storage/schema/v7MonitorLease.d.ts +57 -0
  536. package/out/src/storage/schema/v7MonitorLease.d.ts.map +1 -0
  537. package/out/src/storage/schema/v7MonitorLease.js +101 -0
  538. package/out/src/storage/schema/v7MonitorLease.js.map +1 -0
  539. package/out/src/storage/schema/v7Service.d.ts +305 -0
  540. package/out/src/storage/schema/v7Service.d.ts.map +1 -0
  541. package/out/src/storage/schema/v7Service.js +757 -0
  542. package/out/src/storage/schema/v7Service.js.map +1 -0
  543. package/out/src/storage/schema/v7TxAudit.d.ts +33 -0
  544. package/out/src/storage/schema/v7TxAudit.d.ts.map +1 -0
  545. package/out/src/storage/schema/v7TxAudit.js +64 -0
  546. package/out/src/storage/schema/v7TxAudit.js.map +1 -0
  547. package/out/src/storage/storageProviderHelpers.d.ts +34 -0
  548. package/out/src/storage/storageProviderHelpers.d.ts.map +1 -0
  549. package/out/src/storage/storageProviderHelpers.js +100 -0
  550. package/out/src/storage/storageProviderHelpers.js.map +1 -0
  551. package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
  552. package/out/src/utility/ScriptTemplateBRC29.js +2 -1
  553. package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
  554. package/out/src/utility/aggregateResults.d.ts +1 -1
  555. package/out/src/utility/aggregateResults.d.ts.map +1 -1
  556. package/out/src/utility/aggregateResults.js +2 -2
  557. package/out/src/utility/aggregateResults.js.map +1 -1
  558. package/out/src/utility/brc114ActionTimeLabels.d.ts +2 -2
  559. package/out/src/utility/brc114ActionTimeLabels.d.ts.map +1 -1
  560. package/out/src/utility/brc114ActionTimeLabels.js +16 -9
  561. package/out/src/utility/brc114ActionTimeLabels.js.map +1 -1
  562. package/out/src/utility/identityUtils.js +1 -1
  563. package/out/src/utility/identityUtils.js.map +1 -1
  564. package/out/src/utility/parseTxScriptOffsets.d.ts +4 -4
  565. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
  566. package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
  567. package/out/src/utility/stampLog.d.ts.map +1 -1
  568. package/out/src/utility/stampLog.js +7 -5
  569. package/out/src/utility/stampLog.js.map +1 -1
  570. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  571. package/out/src/utility/tscProofToMerklePath.js +1 -1
  572. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  573. package/out/src/utility/utilityHelpers.d.ts +1 -2
  574. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  575. package/out/src/utility/utilityHelpers.js +10 -10
  576. package/out/src/utility/utilityHelpers.js.map +1 -1
  577. package/out/src/utility/utilityHelpers.noBuffer.d.ts +7 -3
  578. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  579. package/out/src/utility/utilityHelpers.noBuffer.js +3 -3
  580. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  581. package/out/src/wab-client/WABClient.d.ts +1 -1
  582. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  583. package/out/src/wab-client/WABClient.js +12 -12
  584. package/out/src/wab-client/WABClient.js.map +1 -1
  585. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  586. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +3 -3
  587. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  588. package/package.json +7 -6
@@ -9,6 +9,88 @@ import * as sdk from '../../sdk';
9
9
  * @param reqs
10
10
  */
11
11
  export declare function attemptToPostReqsToNetwork(storage: StorageProvider, reqs: EntityProvenTxReq[], trx?: sdk.TrxToken, logger?: WalletLoggerInterface): Promise<PostReqsToNetworkResult>;
12
+ /**
13
+ * For each txid in submitted `txids`:
14
+ *
15
+ * Based on its aggregate status, and whether broadcast happening in background (isDelayed) or immediately (!isDelayed),
16
+ * and iff current req.status is not 'unproven' or 'completed':
17
+ *
18
+ * 'success':
19
+ * req.status => 'unmined', tx.status => 'unproven'
20
+ * 'doubleSpend':
21
+ * req.status => 'doubleSpend', tx.status => 'failed'
22
+ * 'invalidTx':
23
+ * req.status => 'invalid', tx.status => 'failed'
24
+ * 'serviceError':
25
+ * increment req.attempts
26
+ *
27
+ * @param txids
28
+ * @param apbrs
29
+ * @param storage
30
+ * @param services if valid, doubleSpend results will be verified (but only if not within a trx. e.g. trx must be undefined)
31
+ * @param trx
32
+ */
33
+ export declare function updateReqsFromAggregateResults(txids: string[], r: PostReqsToNetworkResult, apbrs: Record<string, AggregatePostBeefTxResult>, storage: StorageProvider, services?: sdk.WalletServices, trx?: sdk.TrxToken, logger?: WalletLoggerInterface): Promise<void>;
34
+ /**
35
+ * After any failed broadcast (doubleSpend, invalidTx, etc.), query each
36
+ * consumed-input outpoint of the failed transaction against on-chain
37
+ * UTXO state. For inputs the chain authoritatively confirms are spent
38
+ * (i.e. NOT a UTXO), update the corresponding wallet basket entry to
39
+ * spendable=false.
40
+ *
41
+ * Background: `updateTransactionStatus(failed)` optimistically restores
42
+ * all consumed-input outputs to spendable=true so the user can retry
43
+ * with the same inputs. For some failures (genuine doubleSpend, or any
44
+ * 'missing-inputs' outcome where the input has been spent on chain by
45
+ * a different transaction), restoration is incorrect — the input is
46
+ * gone and restoring it produces an infinite missing-inputs loop on
47
+ * the next createAction → broadcast cycle. Apps cannot evict from the
48
+ * default basket on app-isolated wallets (admin-only policy), so this
49
+ * self-heal must run inside the wallet.
50
+ *
51
+ * Different broadcasters classify the same on-chain reality differently
52
+ * (ARC → doubleSpend, WhatsOnChain/Bitails → invalidTx via
53
+ * 'missing-inputs'); this helper is broadcaster-agnostic because its
54
+ * decision is based on services.isUtxo, not the aggregate failure
55
+ * classification.
56
+ *
57
+ * Pre-broadcast races where concurrent createActions reach the same
58
+ * UTXO across separate app processes are out of scope; see PR
59
+ * description.
60
+ *
61
+ * Conservatively scoped:
62
+ * - Only inputs found in the failing user's basket are touched.
63
+ * - Inputs whose on-chain UTXO status cannot be determined (service
64
+ * error / inconclusive) are left spendable=true. Eviction is opt-in
65
+ * based on positive evidence of stale state.
66
+ * - Inputs the chain confirms are still UTXOs (e.g. a competing tx
67
+ * itself failed, or a malformed/fee failure where inputs are intact)
68
+ * are left spendable=true — preserving the existing transient-retry
69
+ * semantics callers depend on.
70
+ *
71
+ * Returns counts for instrumentation and the set of stale outpoints
72
+ * that were actually evicted (added to history note for diagnostics).
73
+ */
74
+ export declare function markStaleInputsAsSpent(ar: AggregatePostBeefTxResult, storage: StorageProvider, services: sdk.WalletServices, trx?: sdk.TrxToken, logger?: WalletLoggerInterface): Promise<{
75
+ checked: number;
76
+ staleConfirmed: number;
77
+ staleOutpoints: string[];
78
+ }>;
79
+ type AggregateStatus = 'success' | 'doubleSpend' | 'invalidTx' | 'serviceError';
80
+ export interface AggregatePostBeefTxResult {
81
+ txid: string;
82
+ txidResults: sdk.PostTxResultForTxid[];
83
+ status: AggregateStatus;
84
+ vreq: PostReqsToNetworkDetails;
85
+ successCount: number;
86
+ doubleSpendCount: number;
87
+ statusErrorCount: number;
88
+ serviceErrorCount: number;
89
+ /**
90
+ * Any competing double spend txids reported for this txid
91
+ */
92
+ competingTxs: string[];
93
+ }
12
94
  /**
13
95
  * Indicates status of a new Action following a `createAction` or `signAction` in immediate mode:
14
96
  * When `acceptDelayedBroadcast` is falses.
@@ -38,4 +120,5 @@ export interface PostReqsToNetworkResult {
38
120
  details: PostReqsToNetworkDetails[];
39
121
  log: string;
40
122
  }
123
+ export {};
41
124
  //# sourceMappingURL=attemptToPostReqsToNetwork.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attemptToPostReqsToNetwork.d.ts","sourceRoot":"","sources":["../../../../../src/storage/methods/attemptToPostReqsToNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,qBAAqB,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,GAAG,MAAM,WAAW,CAAA;AAIhC;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,iBAAiB,EAAE,EACzB,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,EAClB,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAoBlC;AA+TD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,8BAA8B,GACtC,SAAS,GACT,aAAa,GACb,SAAS,GACT,SAAS,GACT,cAAc,GACd,WAAW,CAAA;AAEf,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,iBAAiB,CAAA;IACtB,MAAM,EAAE,8BAA8B,CAAA;IACtC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAA;IAC3B,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,wBAAwB,EAAE,CAAA;IACnC,GAAG,EAAE,MAAM,CAAA;CACZ"}
1
+ {"version":3,"file":"attemptToPostReqsToNetwork.d.ts","sourceRoot":"","sources":["../../../../../src/storage/methods/attemptToPostReqsToNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,qBAAqB,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,GAAG,MAAM,WAAW,CAAA;AAmDhC;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,iBAAiB,EAAE,EACzB,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,EAClB,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAoBlC;AAyLD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,MAAM,EAAE,EACf,CAAC,EAAE,uBAAuB,EAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAChD,OAAO,EAAE,eAAe,EACxB,QAAQ,CAAC,EAAE,GAAG,CAAC,cAAc,EAC7B,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,EAClB,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA+Jf;AAgFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,yBAAyB,EAC7B,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,GAAG,CAAC,cAAc,EAC5B,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,EAClB,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAsGhF;AAED,KAAK,eAAe,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,cAAc,CAAA;AAE/E,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,GAAG,CAAC,mBAAmB,EAAE,CAAA;IACtC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,wBAAwB,CAAA;IAC9B,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,8BAA8B,GACtC,SAAS,GACT,aAAa,GACb,SAAS,GACT,SAAS,GACT,cAAc,GACd,WAAW,CAAA;AAEf,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,iBAAiB,CAAA;IACtB,MAAM,EAAE,8BAA8B,CAAA;IACtC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAA;IAC3B,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,wBAAwB,EAAE,CAAA;IACnC,GAAG,EAAE,MAAM,CAAA;CACZ"}
@@ -34,9 +34,51 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.attemptToPostReqsToNetwork = attemptToPostReqsToNetwork;
37
+ exports.updateReqsFromAggregateResults = updateReqsFromAggregateResults;
38
+ exports.markStaleInputsAsSpent = markStaleInputsAsSpent;
37
39
  const sdk_1 = require("@bsv/sdk");
38
40
  const sdk = __importStar(require("../../sdk"));
39
41
  const utilityHelpers_1 = require("../../utility/utilityHelpers");
42
+ // ---------------------------------------------------------------------------
43
+ // new-schema wiring helpers
44
+ // ---------------------------------------------------------------------------
45
+ /**
46
+ * Resolve the new-schema `transactionId` for a given txid.
47
+ *
48
+ * Returns `undefined` when:
49
+ * - `service` is undefined (pre-cutover / IDB path)
50
+ * - The txid is not yet in the new `transactions` table (bridge period)
51
+ * - Any unexpected error (we swallow and return undefined to avoid
52
+ * disrupting the legacy broadcast path)
53
+ */
54
+ async function resolveTransactionId(service, txid) {
55
+ if (service == null)
56
+ return undefined;
57
+ try {
58
+ const row = await service.findByTxid(txid);
59
+ return row === null || row === void 0 ? void 0 : row.transactionId;
60
+ }
61
+ catch (_a) {
62
+ return undefined;
63
+ }
64
+ }
65
+ /**
66
+ * Map the aggregate broadcast outcome to the new-schema `ProcessingStatus` to record.
67
+ *
68
+ * Mapping:
69
+ * success → 'sent' (broadcast accepted; waiting for on-chain proof)
70
+ * doubleSpend → 'doubleSpend' (terminal)
71
+ * invalidTx → 'invalid' (terminal)
72
+ * serviceError → 'sending' (retry; attempts counter also incremented)
73
+ */
74
+ function aggregateStatusToProcessing(status) {
75
+ switch (status) {
76
+ case 'success': return 'sent';
77
+ case 'doubleSpend': return 'doubleSpend';
78
+ case 'invalidTx': return 'invalid';
79
+ case 'serviceError': return 'sending';
80
+ }
81
+ }
40
82
  /**
41
83
  * Attempt to post one or more `ProvenTxReq` with status 'unsent'
42
84
  * to the bitcoin network.
@@ -46,7 +88,7 @@ const utilityHelpers_1 = require("../../utility/utilityHelpers");
46
88
  async function attemptToPostReqsToNetwork(storage, reqs, trx, logger) {
47
89
  // initialize results, validate reqs ready to post, txids are of the transactions in the beef that we care about.
48
90
  const { r, vreqs, txids } = await validateReqsAndMergeBeefs(storage, reqs, trx);
49
- logger === null || logger === void 0 ? void 0 : logger.log(`validated request and merged beefs`);
91
+ logger === null || logger === void 0 ? void 0 : logger.log('validated request and merged beefs');
50
92
  const services = storage.getServices();
51
93
  const pbrs = await services.postBeef(r.beef, txids, logger);
52
94
  // post beef results (pbrs) is an array by service provider
@@ -64,56 +106,116 @@ async function validateReqsAndMergeBeefs(storage, reqs, trx) {
64
106
  log: ''
65
107
  };
66
108
  const vreqs = [];
109
+ // the transaction service — undefined on pre-cutover / IDB paths; all transaction-service calls are gated.
110
+ const txSvc = storage.getTransactionService();
67
111
  for (const req of reqs) {
112
+ // Resolve the new transactionId for this req (by txid). Cached per req so
113
+ // subsequent transaction-service calls within the same loop body reuse it.
114
+ const newTxId = await resolveTransactionId(txSvc, req.txid);
68
115
  try {
69
116
  const noRawTx = !req.rawTx;
70
- const noTxIds = !req.notify.transactionIds || req.notify.transactionIds.length < 1;
71
- const noInputBEEF = !req.inputBEEF;
117
+ const noTxIds = (req.notify.transactionIds == null) || req.notify.transactionIds.length < 1;
118
+ const noInputBEEF = req.inputBEEF == null;
72
119
  if (noRawTx || noTxIds || noInputBEEF) {
73
120
  // This should have happened earlier...
74
- req.addHistoryNote({ when: new Date().toISOString(), what: 'validateReqFailed', noRawTx, noTxIds, noInputBEEF });
121
+ const note = { when: new Date().toISOString(), what: 'validateReqFailed', noRawTx, noTxIds, noInputBEEF };
122
+ req.addHistoryNote(note);
75
123
  req.status = 'invalid';
76
124
  await req.updateStorageDynamicProperties(storage, trx);
77
125
  r.details.push({ txid: req.txid, req, status: 'invalid' });
126
+ // new-schema additive: record history note + transition to invalid
127
+ if (newTxId != null) {
128
+ await txSvc.recordHistoryNote(newTxId, note);
129
+ await txSvc.recordBroadcastResult({
130
+ transactionId: newTxId,
131
+ txid: req.txid,
132
+ status: 'invalid',
133
+ provider: 'validateReqsAndMergeBeefs',
134
+ details: { reason: 'validateReqFailed' }
135
+ });
136
+ }
78
137
  }
79
138
  else {
80
139
  const vreq = { txid: req.txid, req, status: 'unknown' };
81
140
  await storage.mergeReqToBeefToShareExternally(req.api, r.beef, [], trx);
141
+ // new-schema additive: also merge raw tx / proof bytes from new transactions table into the
142
+ // shared beef so post-cutover callers get the same merged payload.
143
+ if (newTxId != null) {
144
+ await txSvc.mergeBeefForTxids(r.beef, [req.txid]);
145
+ }
82
146
  vreqs.push(vreq);
83
147
  r.details.push(vreq);
84
148
  }
85
149
  }
86
- catch (eu) {
87
- const { code, message } = sdk.WalletError.fromUnknown(eu);
88
- req.addHistoryNote({ when: new Date().toISOString(), what: 'validateReqError', txid: req.txid, code, message });
150
+ catch (error_) {
151
+ const { code, message } = sdk.WalletError.fromUnknown(error_);
152
+ const errNote = { when: new Date().toISOString(), what: 'validateReqError', txid: req.txid, code, message };
153
+ req.addHistoryNote(errNote);
89
154
  req.attempts++;
90
155
  if (req.attempts > 6 || message.startsWith('The txid parameter must be known to storage')) {
91
156
  req.status = 'invalid';
92
157
  r.details.push({ txid: req.txid, req, status: 'invalid' });
93
158
  }
94
159
  await req.updateStorageDynamicProperties(storage, trx);
160
+ // new-schema additive: record history note + increment attempts
161
+ if (newTxId != null) {
162
+ await txSvc.recordHistoryNote(newTxId, errNote);
163
+ await txSvc.incrementAttempts(newTxId);
164
+ }
95
165
  }
96
166
  }
97
167
  return { r, vreqs, txids: vreqs.map(r => r.txid) };
98
168
  }
99
169
  async function transferNotesToReqHistories(txids, vreqs, pbrs, storage, trx) {
170
+ // the transaction service — gated; undefined means legacy-only path.
171
+ const txSvc = storage.getTransactionService();
100
172
  for (const txid of txids) {
101
173
  const vreq = vreqs.find(r => r.txid === txid);
102
- if (!vreq)
174
+ if (vreq == null)
103
175
  throw new sdk.WERR_INTERNAL();
176
+ // Resolve new transactionId once per txid (cheap SELECT by txid).
177
+ const newTxId = await resolveTransactionId(txSvc, txid);
104
178
  const notes = [];
105
179
  for (const pbr of pbrs) {
106
180
  notes.push(...(pbr.notes || []));
107
181
  const r = pbr.txidResults.find(tr => tr.txid === txid);
108
- if (r)
182
+ if (r != null)
109
183
  notes.push(...(r.notes || []));
110
184
  }
111
185
  for (const n of notes) {
112
186
  vreq.req.addHistoryNote(n);
187
+ // new-schema additive: mirror each provider note into tx_audit.
188
+ if (newTxId != null) {
189
+ await txSvc.recordHistoryNote(newTxId, n);
190
+ }
113
191
  }
114
192
  await vreq.req.updateStorageDynamicProperties(storage, trx);
115
193
  }
116
194
  }
195
+ function tallyTxidResults(ar, pbrs) {
196
+ for (const pbr of pbrs) {
197
+ const tr = pbr.txidResults.find(tr => tr.txid === ar.txid);
198
+ if (tr == null)
199
+ continue;
200
+ ar.txidResults.push(tr);
201
+ if (tr.status === 'success') {
202
+ ar.successCount++;
203
+ }
204
+ else if (tr.doubleSpend) {
205
+ ar.doubleSpendCount++;
206
+ if (tr.competingTxs != null)
207
+ ar.competingTxs = [...tr.competingTxs];
208
+ }
209
+ else if (tr.serviceError) {
210
+ ar.serviceErrorCount++;
211
+ }
212
+ else {
213
+ ar.statusErrorCount++;
214
+ }
215
+ }
216
+ if (ar.competingTxs.length > 1)
217
+ ar.competingTxs = [...new Set(ar.competingTxs)];
218
+ }
117
219
  /**
118
220
  * For each txid, decide on the aggregate success or failure of attempting to broadcast it to the bitcoin processing network.
119
221
  *
@@ -145,26 +247,7 @@ function aggregatePostBeefResultsByTxid(txids, vreqs, pbrs) {
145
247
  competingTxs: []
146
248
  };
147
249
  r[txid] = ar;
148
- for (const pbr of pbrs) {
149
- const tr = pbr.txidResults.find(tr => tr.txid === txid);
150
- if (tr) {
151
- ar.txidResults.push(tr);
152
- if (tr.status === 'success')
153
- ar.successCount++;
154
- else if (tr.doubleSpend) {
155
- ar.doubleSpendCount++;
156
- if (tr.competingTxs) {
157
- ar.competingTxs = [...tr.competingTxs];
158
- }
159
- }
160
- else if (tr.serviceError)
161
- ar.serviceErrorCount++;
162
- else
163
- ar.statusErrorCount++;
164
- }
165
- if (ar.competingTxs.length > 1)
166
- ar.competingTxs = [...new Set(ar.competingTxs)]; // Remove duplicates
167
- }
250
+ tallyTxidResults(ar, pbrs);
168
251
  if (ar.successCount > 0 && ar.doubleSpendCount === 0)
169
252
  ar.status = 'success';
170
253
  else if (ar.doubleSpendCount > 0)
@@ -199,10 +282,14 @@ function aggregatePostBeefResultsByTxid(txids, vreqs, pbrs) {
199
282
  */
200
283
  async function updateReqsFromAggregateResults(txids, r, apbrs, storage, services, trx, logger) {
201
284
  logger === null || logger === void 0 ? void 0 : logger.group('update storage from aggregate results');
285
+ // the transaction service — undefined on pre-cutover / IDB paths; all transaction-service calls are gated.
286
+ const txSvc = storage.getTransactionService();
202
287
  for (const txid of txids) {
203
288
  const ar = apbrs[txid];
204
289
  const req = ar.vreq.req;
205
290
  await req.refreshFromStorage(storage, trx);
291
+ // Resolve new transactionId once per txid for this iteration.
292
+ const newTxId = await resolveTransactionId(txSvc, txid);
206
293
  const { successCount, doubleSpendCount, statusErrorCount, serviceErrorCount } = ar;
207
294
  const note = {
208
295
  when: new Date().toISOString(),
@@ -215,17 +302,21 @@ async function updateReqsFromAggregateResults(txids, r, apbrs, storage, services
215
302
  statusErrorCount,
216
303
  serviceErrorCount
217
304
  };
218
- if (['completed', 'unmined'].indexOf(req.status) >= 0)
219
- // However it happened, don't degrade status if it is somehow already beyond broadcast stage
305
+ if (['completed', 'unmined'].includes(req.status))
306
+ // However it happened, don't degrade status if it is somehow already beyond broadcast stage
307
+ {
220
308
  continue;
221
- if (ar.status === 'doubleSpend' && services && !trx)
309
+ }
310
+ if (ar.status === 'doubleSpend' && (services != null) && (trx == null))
222
311
  await confirmDoubleSpend(ar, r.beef, storage, services, logger);
223
- let newReqStatus = undefined;
224
- let newTxStatus = undefined;
312
+ let newReqStatus;
313
+ let newTxStatus;
225
314
  switch (ar.status) {
226
315
  case 'success':
227
316
  newReqStatus = 'unmined';
228
317
  newTxStatus = 'unproven';
318
+ // Mark as broadcast so proof-timeout resets to rebroadcast rather than invalid
319
+ req.wasBroadcast = true;
229
320
  break;
230
321
  case 'doubleSpend':
231
322
  newReqStatus = 'doubleSpend';
@@ -250,13 +341,84 @@ async function updateReqsFromAggregateResults(txids, r, apbrs, storage, services
250
341
  req.status = newReqStatus;
251
342
  req.addHistoryNote(note);
252
343
  await req.updateStorageDynamicProperties(storage, trx);
344
+ // new-schema additive: record aggregateResults history note, then record the
345
+ // broadcast outcome (transitions processing state + sets wasBroadcast).
346
+ if (newTxId != null) {
347
+ await txSvc.recordHistoryNote(newTxId, note);
348
+ const processingStatus = aggregateStatusToProcessing(ar.status);
349
+ if (ar.status === 'serviceError') {
350
+ // serviceError: increment attempts in new-schema and leave processing in 'sending'.
351
+ await txSvc.incrementAttempts(newTxId);
352
+ }
353
+ else {
354
+ // success / doubleSpend / invalidTx: record broadcast result with final status.
355
+ await txSvc.recordBroadcastResult({
356
+ transactionId: newTxId,
357
+ txid,
358
+ status: processingStatus,
359
+ provider: 'aggregatePostBeef',
360
+ wasBroadcast: ar.status === 'success',
361
+ details: {
362
+ aggStatus: ar.status,
363
+ successCount,
364
+ doubleSpendCount,
365
+ statusErrorCount,
366
+ serviceErrorCount
367
+ }
368
+ });
369
+ }
370
+ }
253
371
  if (newTxStatus) {
254
372
  const ids = req.notify.transactionIds;
255
- if (ids) {
373
+ if (ids != null) {
256
374
  // Also set generated outputs to spendable false and consumed input outputs to spendable true (and clears their spentBy).
257
375
  await storage.updateTransactionsStatus(ids, newTxStatus, trx);
258
376
  }
259
377
  }
378
+ // For ANY failed-broadcast result (doubleSpend, invalidTx,
379
+ // serviceError-resolved-to-failure), override the optimistic
380
+ // "restore inputs spendable" behavior of updateTransactionStatus
381
+ // for inputs that on-chain state confirms are actually spent.
382
+ // Without this, the wallet picks the same stale UTXO on the next
383
+ // createAction — an infinite missing-inputs loop. Apps cannot
384
+ // self-heal because the default basket is admin-only on
385
+ // app-isolated wallets (e.g. metanet-desktop).
386
+ //
387
+ // Why broaden beyond doubleSpend (Codex review 51331f6e035a7ed0):
388
+ // different broadcasters classify the same on-chain reality
389
+ // differently. ARC reports SEEN_IN_ORPHAN_MEMPOOL → doubleSpend.
390
+ // WoC + Bitails report 'Missing inputs' / 'missing-inputs' →
391
+ // invalidTx. Both mean the same root cause (referenced UTXO is
392
+ // gone). The helper is conservatively opt-in on positive
393
+ // isUtxo===false evidence: malformed/fee/script failures whose
394
+ // inputs are still UTXOs are LEFT spendable=true, preserving
395
+ // the existing transient-retry semantics. So broadening is safe.
396
+ //
397
+ // Gate: services available + not in a nested transaction (chain
398
+ // queries are async I/O — same gate as confirmDoubleSpend).
399
+ if (newTxStatus === 'failed' &&
400
+ services != null &&
401
+ trx == null) {
402
+ const stale = await markStaleInputsAsSpent(ar, storage, services, trx, logger);
403
+ if (stale.checked > 0) {
404
+ const staleNote = {
405
+ when: new Date().toISOString(),
406
+ what: 'markStaleInputsAsSpent',
407
+ aggStatus: ar.status,
408
+ checked: stale.checked,
409
+ confirmed: stale.staleConfirmed,
410
+ ...(stale.staleOutpoints.length > 0
411
+ ? { outpoints: stale.staleOutpoints.join(',') }
412
+ : {})
413
+ };
414
+ req.addHistoryNote(staleNote);
415
+ await req.updateStorageDynamicProperties(storage, trx);
416
+ // new-schema additive: mirror stale-inputs note into tx_audit.
417
+ if (newTxId != null) {
418
+ await txSvc.recordHistoryNote(newTxId, staleNote);
419
+ }
420
+ }
421
+ }
260
422
  // Transfer critical results to details going back to the user
261
423
  const details = r.details.find(d => d.txid === txid);
262
424
  details.status = ar.status;
@@ -265,6 +427,33 @@ async function updateReqsFromAggregateResults(txids, r, apbrs, storage, services
265
427
  }
266
428
  logger === null || logger === void 0 ? void 0 : logger.group('update storage from aggregate results');
267
429
  }
430
+ async function gatherCompetingTxids(ar, beef, services, note, logger) {
431
+ var _a;
432
+ const req = ar.vreq.req;
433
+ const tx = sdk_1.Transaction.fromBinary(req.rawTx);
434
+ const competingTxids = new Set(ar.competingTxs);
435
+ for (const input of tx.inputs) {
436
+ const sourceTx = (_a = beef.findTxid(input.sourceTXID)) === null || _a === void 0 ? void 0 : _a.tx;
437
+ if (sourceTx == null) {
438
+ let s = note.missingSourceTx || '';
439
+ s += input.sourceTXID + ' ';
440
+ note.missingSourceTx = s;
441
+ continue;
442
+ }
443
+ const lockingScript = sourceTx.outputs[input.sourceOutputIndex].lockingScript.toHex();
444
+ const hash = services.hashOutputScript(lockingScript);
445
+ const shhrs = await services.getScriptHashHistory(hash, undefined, logger);
446
+ if (shhrs.status === 'success') {
447
+ for (const h of shhrs.history) {
448
+ // Neither the source of the input nor the current transaction are competition.
449
+ if (h.txid !== input.sourceTXID && h.txid !== ar.txid)
450
+ competingTxids.add(h.txid);
451
+ }
452
+ }
453
+ }
454
+ ar.competingTxs = [...competingTxids].slice(-24); // keep at most 24, if they were sorted by time, keep newest
455
+ note.competingTxs = ar.competingTxs.join(',');
456
+ }
268
457
  /**
269
458
  * Requires ar.status === 'doubleSpend'
270
459
  *
@@ -277,19 +466,20 @@ async function updateReqsFromAggregateResults(txids, r, apbrs, storage, services
277
466
  * @param services
278
467
  */
279
468
  async function confirmDoubleSpend(ar, beef, storage, services, logger) {
280
- var _a, _b;
469
+ var _a;
281
470
  const req = ar.vreq.req;
282
471
  const note = { when: new Date().toISOString(), what: 'confirmDoubleSpend' };
283
472
  let known = false;
284
473
  for (let retry = 0; retry < 3; retry++) {
285
474
  const gsr = await services.getStatusForTxids([req.txid]);
286
- note[`getStatus${retry}`] = `${gsr.status}${gsr.error ? `${gsr.error.code}` : ''},${(_a = gsr.results[0]) === null || _a === void 0 ? void 0 : _a.status}`;
287
- if (gsr.status === 'success' && gsr.results[0].status !== 'unknown') {
288
- known = true;
289
- break;
475
+ const errCode = gsr.error != null ? gsr.error.code : '';
476
+ note[`getStatus${retry}`] = `${gsr.status}${errCode},${(_a = gsr.results[0]) === null || _a === void 0 ? void 0 : _a.status}`;
477
+ if (gsr.status !== 'success' || gsr.results[0].status === 'unknown') {
478
+ await (0, utilityHelpers_1.wait)(1000);
290
479
  }
291
480
  else {
292
- await (0, utilityHelpers_1.wait)(1000);
481
+ known = true;
482
+ break;
293
483
  }
294
484
  }
295
485
  if (known) {
@@ -299,31 +489,116 @@ async function confirmDoubleSpend(ar, beef, storage, services, logger) {
299
489
  }
300
490
  else {
301
491
  // Confirmed double spend, get txids of possible competing transactions.
302
- const tx = sdk_1.Transaction.fromBinary(req.rawTx);
303
- const competingTxids = new Set(ar.competingTxs);
304
- for (const input of tx.inputs) {
305
- const sourceTx = (_b = beef.findTxid(input.sourceTXID)) === null || _b === void 0 ? void 0 : _b.tx;
306
- if (!sourceTx) {
307
- let s = note['missingSourceTx'] || '';
308
- s += input.sourceTXID + ' ';
309
- note['missingSourceTx'] = s;
492
+ await gatherCompetingTxids(ar, beef, services, note, logger);
493
+ }
494
+ req.addHistoryNote(note);
495
+ }
496
+ /**
497
+ * After any failed broadcast (doubleSpend, invalidTx, etc.), query each
498
+ * consumed-input outpoint of the failed transaction against on-chain
499
+ * UTXO state. For inputs the chain authoritatively confirms are spent
500
+ * (i.e. NOT a UTXO), update the corresponding wallet basket entry to
501
+ * spendable=false.
502
+ *
503
+ * Background: `updateTransactionStatus(failed)` optimistically restores
504
+ * all consumed-input outputs to spendable=true so the user can retry
505
+ * with the same inputs. For some failures (genuine doubleSpend, or any
506
+ * 'missing-inputs' outcome where the input has been spent on chain by
507
+ * a different transaction), restoration is incorrect — the input is
508
+ * gone and restoring it produces an infinite missing-inputs loop on
509
+ * the next createAction → broadcast cycle. Apps cannot evict from the
510
+ * default basket on app-isolated wallets (admin-only policy), so this
511
+ * self-heal must run inside the wallet.
512
+ *
513
+ * Different broadcasters classify the same on-chain reality differently
514
+ * (ARC → doubleSpend, WhatsOnChain/Bitails → invalidTx via
515
+ * 'missing-inputs'); this helper is broadcaster-agnostic because its
516
+ * decision is based on services.isUtxo, not the aggregate failure
517
+ * classification.
518
+ *
519
+ * Pre-broadcast races where concurrent createActions reach the same
520
+ * UTXO across separate app processes are out of scope; see PR
521
+ * description.
522
+ *
523
+ * Conservatively scoped:
524
+ * - Only inputs found in the failing user's basket are touched.
525
+ * - Inputs whose on-chain UTXO status cannot be determined (service
526
+ * error / inconclusive) are left spendable=true. Eviction is opt-in
527
+ * based on positive evidence of stale state.
528
+ * - Inputs the chain confirms are still UTXOs (e.g. a competing tx
529
+ * itself failed, or a malformed/fee failure where inputs are intact)
530
+ * are left spendable=true — preserving the existing transient-retry
531
+ * semantics callers depend on.
532
+ *
533
+ * Returns counts for instrumentation and the set of stale outpoints
534
+ * that were actually evicted (added to history note for diagnostics).
535
+ */
536
+ async function markStaleInputsAsSpent(ar, storage, services, trx, logger) {
537
+ const result = { checked: 0, staleConfirmed: 0, staleOutpoints: [] };
538
+ const req = ar.vreq.req;
539
+ // Resolve the user owning the failing tx so we only touch THIS user's
540
+ // basket entries. Multiple txids share a userId; first is sufficient.
541
+ const txIds = req.notify.transactionIds;
542
+ if (txIds == null || txIds.length === 0)
543
+ return result;
544
+ const txRecord = (await storage.findTransactions({
545
+ partial: { transactionId: txIds[0] },
546
+ noRawTx: true,
547
+ trx
548
+ }))[0];
549
+ if (txRecord == null)
550
+ return result;
551
+ const userId = txRecord.userId;
552
+ // Walk the failed tx's inputs to find which user-owned UTXOs were
553
+ // consumed and need on-chain verification.
554
+ const tx = sdk_1.Transaction.fromBinary(req.rawTx);
555
+ const outpoints = tx.inputs
556
+ .map(i => { var _a, _b; return ({ txid: (_a = i.sourceTXID) !== null && _a !== void 0 ? _a : '', vout: (_b = i.sourceOutputIndex) !== null && _b !== void 0 ? _b : 0 }); })
557
+ .filter(o => o.txid !== '');
558
+ if (outpoints.length === 0)
559
+ return result;
560
+ const byOutpoint = await storage.findOutputsByOutpoints(userId, outpoints, trx);
561
+ const checks = await Promise.all(outpoints.map(async (outpoint) => {
562
+ const localOutput = byOutpoint[`${outpoint.txid}.${outpoint.vout}`];
563
+ if (localOutput == null)
564
+ return { kind: 'skipped' };
565
+ // services.isUtxo requires the lockingScript; load it lazily.
566
+ if (localOutput.lockingScript == null) {
567
+ try {
568
+ await storage.validateOutputScript(localOutput, trx);
310
569
  }
311
- else {
312
- const lockingScript = sourceTx.outputs[input.sourceOutputIndex].lockingScript.toHex();
313
- const hash = services.hashOutputScript(lockingScript);
314
- const shhrs = await services.getScriptHashHistory(hash, undefined, logger);
315
- if (shhrs.status === 'success') {
316
- for (const h of shhrs.history) {
317
- // Neither the source of the input nor the current transaction are competition.
318
- if (h.txid !== input.sourceTXID && h.txid !== ar.txid)
319
- competingTxids.add(h.txid);
320
- }
321
- }
570
+ catch (_a) {
571
+ return { kind: 'skipped' };
322
572
  }
323
573
  }
324
- ar.competingTxs = [...competingTxids].slice(-24); // keep at most 24, if they were sorted by time, keep newest
325
- note.competingTxs = ar.competingTxs.join(',');
574
+ let isStillUtxo;
575
+ try {
576
+ isStillUtxo = await services.isUtxo(localOutput);
577
+ }
578
+ catch (_b) {
579
+ // Service error — preserve current behavior (keep spendable=true).
580
+ // Eviction requires positive evidence of stale state.
581
+ return { kind: 'service-error', localOutput };
582
+ }
583
+ return isStillUtxo
584
+ ? { kind: 'still-utxo', localOutput }
585
+ : { kind: 'stale', localOutput, outpoint };
586
+ }));
587
+ for (const c of checks) {
588
+ if (c.kind === 'skipped')
589
+ continue;
590
+ result.checked++;
591
+ if (c.kind === 'stale') {
592
+ // Authoritative on-chain evidence the input is spent. Override
593
+ // the optimistic restore from updateTransactionStatus(failed).
594
+ await storage.updateOutput(c.localOutput.outputId, { spendable: false }, trx);
595
+ result.staleConfirmed++;
596
+ result.staleOutpoints.push(`${c.outpoint.txid}.${c.outpoint.vout}`);
597
+ }
326
598
  }
327
- req.addHistoryNote(note);
599
+ if (result.staleConfirmed > 0) {
600
+ logger === null || logger === void 0 ? void 0 : logger.log(`markStaleInputsAsSpent: ${result.staleConfirmed} of ${result.checked} input(s) confirmed-spent on chain for txid=${req.txid}`);
601
+ }
602
+ return result;
328
603
  }
329
604
  //# sourceMappingURL=attemptToPostReqsToNetwork.js.map