@bsv/wallet-toolbox 2.4.3 → 2.4.20

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 (675) hide show
  1. package/CHANGELOG.md +81 -1
  2. package/LICENSE.txt +58 -0
  3. package/README.md +98 -36
  4. package/docs/README.md +3 -1
  5. package/docs/action-batch-planning.md +220 -0
  6. package/docs/authentication-observability.md +94 -0
  7. package/docs/client.md +1125 -2776
  8. package/docs/monitor.md +29 -111
  9. package/docs/services.md +296 -602
  10. package/docs/setup.md +48 -28
  11. package/docs/storage.md +329 -1692
  12. package/docs/wallet.md +9718 -4890
  13. package/out/src/CWIStyleWalletManager.d.ts +62 -6
  14. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  15. package/out/src/CWIStyleWalletManager.js +584 -181
  16. package/out/src/CWIStyleWalletManager.js.map +1 -1
  17. package/out/src/Setup.d.ts +7 -0
  18. package/out/src/Setup.d.ts.map +1 -1
  19. package/out/src/Setup.js +10 -11
  20. package/out/src/Setup.js.map +1 -1
  21. package/out/src/SetupClient.d.ts +2 -0
  22. package/out/src/SetupClient.d.ts.map +1 -1
  23. package/out/src/SetupClient.js +8 -9
  24. package/out/src/SetupClient.js.map +1 -1
  25. package/out/src/SetupWallet.d.ts +6 -0
  26. package/out/src/SetupWallet.d.ts.map +1 -1
  27. package/out/src/ShamirWalletManager.d.ts.map +1 -1
  28. package/out/src/ShamirWalletManager.js.map +1 -1
  29. package/out/src/SimpleWalletManager.d.ts.map +1 -1
  30. package/out/src/SimpleWalletManager.js +2 -5
  31. package/out/src/SimpleWalletManager.js.map +1 -1
  32. package/out/src/Wallet.d.ts +36 -10
  33. package/out/src/Wallet.d.ts.map +1 -1
  34. package/out/src/Wallet.js +167 -132
  35. package/out/src/Wallet.js.map +1 -1
  36. package/out/src/WalletAuthenticationManager.d.ts +30 -6
  37. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  38. package/out/src/WalletAuthenticationManager.js +215 -34
  39. package/out/src/WalletAuthenticationManager.js.map +1 -1
  40. package/out/src/WalletLogger.d.ts.map +1 -1
  41. package/out/src/WalletLogger.js +33 -30
  42. package/out/src/WalletLogger.js.map +1 -1
  43. package/out/src/WalletPermissionsManager.d.ts +22 -1
  44. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  45. package/out/src/WalletPermissionsManager.js +392 -267
  46. package/out/src/WalletPermissionsManager.js.map +1 -1
  47. package/out/src/WalletSettingsManager.d.ts.map +1 -1
  48. package/out/src/WalletSettingsManager.js.map +1 -1
  49. package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
  50. package/out/src/entropy/EntropyCollector.js +6 -8
  51. package/out/src/entropy/EntropyCollector.js.map +1 -1
  52. package/out/src/fundWalletP2PKH.js.map +1 -1
  53. package/out/src/index.all.d.ts +1 -0
  54. package/out/src/index.all.d.ts.map +1 -1
  55. package/out/src/index.all.js +1 -0
  56. package/out/src/index.all.js.map +1 -1
  57. package/out/src/index.client.d.ts +2 -0
  58. package/out/src/index.client.d.ts.map +1 -1
  59. package/out/src/index.client.js +2 -0
  60. package/out/src/index.client.js.map +1 -1
  61. package/out/src/index.mobile.d.ts +2 -0
  62. package/out/src/index.mobile.d.ts.map +1 -1
  63. package/out/src/index.mobile.js +2 -0
  64. package/out/src/index.mobile.js.map +1 -1
  65. package/out/src/mockchain/MockChainMigrations.d.ts.map +1 -1
  66. package/out/src/mockchain/MockChainMigrations.js.map +1 -1
  67. package/out/src/mockchain/MockChainStorage.d.ts.map +1 -1
  68. package/out/src/mockchain/MockChainStorage.js.map +1 -1
  69. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
  70. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  71. package/out/src/mockchain/MockMiner.d.ts.map +1 -1
  72. package/out/src/mockchain/MockMiner.js.map +1 -1
  73. package/out/src/mockchain/MockServices.d.ts +4 -0
  74. package/out/src/mockchain/MockServices.d.ts.map +1 -1
  75. package/out/src/mockchain/MockServices.js +69 -74
  76. package/out/src/mockchain/MockServices.js.map +1 -1
  77. package/out/src/mockchain/merkleTree.d.ts.map +1 -1
  78. package/out/src/mockchain/merkleTree.js +51 -56
  79. package/out/src/mockchain/merkleTree.js.map +1 -1
  80. package/out/src/monitor/Monitor.d.ts +4 -0
  81. package/out/src/monitor/Monitor.d.ts.map +1 -1
  82. package/out/src/monitor/Monitor.js +60 -57
  83. package/out/src/monitor/Monitor.js.map +1 -1
  84. package/out/src/monitor/MonitorDaemon.d.ts +3 -0
  85. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  86. package/out/src/monitor/MonitorDaemon.js +65 -56
  87. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  88. package/out/src/monitor/index.all.js.map +1 -1
  89. package/out/src/monitor/tasks/TaskArcSSE.d.ts +5 -0
  90. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  91. package/out/src/monitor/tasks/TaskArcSSE.js +86 -77
  92. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  93. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +4 -2
  94. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  95. package/out/src/monitor/tasks/TaskCheckForProofs.js +132 -131
  96. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  97. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +3 -1
  98. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  99. package/out/src/monitor/tasks/TaskCheckNoSends.js +3 -1
  100. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  101. package/out/src/monitor/tasks/TaskCleanupActionBatches.d.ts +13 -0
  102. package/out/src/monitor/tasks/TaskCleanupActionBatches.d.ts.map +1 -0
  103. package/out/src/monitor/tasks/TaskCleanupActionBatches.js +24 -0
  104. package/out/src/monitor/tasks/TaskCleanupActionBatches.js.map +1 -0
  105. package/out/src/monitor/tasks/TaskClock.d.ts +1 -1
  106. package/out/src/monitor/tasks/TaskClock.d.ts.map +1 -1
  107. package/out/src/monitor/tasks/TaskClock.js +1 -1
  108. package/out/src/monitor/tasks/TaskClock.js.map +1 -1
  109. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  110. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  111. package/out/src/monitor/tasks/TaskMineBlock.d.ts +3 -1
  112. package/out/src/monitor/tasks/TaskMineBlock.d.ts.map +1 -1
  113. package/out/src/monitor/tasks/TaskMineBlock.js +3 -1
  114. package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -1
  115. package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts.map +1 -1
  116. package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
  117. package/out/src/monitor/tasks/TaskNewHeader.d.ts +4 -3
  118. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  119. package/out/src/monitor/tasks/TaskNewHeader.js +4 -3
  120. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  121. package/out/src/monitor/tasks/TaskPurge.d.ts +3 -1
  122. package/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -1
  123. package/out/src/monitor/tasks/TaskPurge.js +3 -1
  124. package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
  125. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  126. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  127. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts +3 -1
  128. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
  129. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +3 -1
  130. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  131. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +3 -1
  132. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
  133. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +3 -1
  134. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  135. package/out/src/monitor/tasks/TaskReviewStatus.d.ts +3 -1
  136. package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
  137. package/out/src/monitor/tasks/TaskReviewStatus.js +3 -1
  138. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
  139. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +3 -1
  140. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
  141. package/out/src/monitor/tasks/TaskReviewUtxos.js +3 -1
  142. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  143. package/out/src/monitor/tasks/TaskSendWaiting.d.ts +3 -0
  144. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  145. package/out/src/monitor/tasks/TaskSendWaiting.js +53 -46
  146. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  147. package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts +1 -1
  148. package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts.map +1 -1
  149. package/out/src/monitor/tasks/TaskSyncWhenIdle.js +1 -1
  150. package/out/src/monitor/tasks/TaskSyncWhenIdle.js.map +1 -1
  151. package/out/src/monitor/tasks/TaskUnFail.d.ts +3 -1
  152. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  153. package/out/src/monitor/tasks/TaskUnFail.js +3 -1
  154. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  155. package/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +1 -1
  156. package/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -1
  157. package/out/src/monitor/tasks/index.all.d.ts +1 -0
  158. package/out/src/monitor/tasks/index.all.d.ts.map +1 -1
  159. package/out/src/monitor/tasks/index.all.js +1 -0
  160. package/out/src/monitor/tasks/index.all.js.map +1 -1
  161. package/out/src/sdk/ActionBatch.interfaces.d.ts +159 -0
  162. package/out/src/sdk/ActionBatch.interfaces.d.ts.map +1 -0
  163. package/out/src/sdk/ActionBatch.interfaces.js +3 -0
  164. package/out/src/sdk/ActionBatch.interfaces.js.map +1 -0
  165. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  166. package/out/src/sdk/PrivilegedKeyManager.js +3 -3
  167. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  168. package/out/src/sdk/WERR_errors.d.ts +1 -1
  169. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  170. package/out/src/sdk/WERR_errors.js +2 -2
  171. package/out/src/sdk/WERR_errors.js.map +1 -1
  172. package/out/src/sdk/WalletError.d.ts +3 -0
  173. package/out/src/sdk/WalletError.d.ts.map +1 -1
  174. package/out/src/sdk/WalletError.js +53 -56
  175. package/out/src/sdk/WalletError.js.map +1 -1
  176. package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
  177. package/out/src/sdk/WalletServices.interfaces.d.ts +3 -1
  178. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  179. package/out/src/sdk/WalletStorage.interfaces.d.ts +22 -1
  180. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  181. package/out/src/sdk/index.d.ts +1 -0
  182. package/out/src/sdk/index.d.ts.map +1 -1
  183. package/out/src/sdk/index.js +1 -0
  184. package/out/src/sdk/index.js.map +1 -1
  185. package/out/src/sdk/types.js.map +1 -1
  186. package/out/src/services/ServiceCollection.d.ts.map +1 -1
  187. package/out/src/services/ServiceCollection.js.map +1 -1
  188. package/out/src/services/Services.d.ts +8 -2
  189. package/out/src/services/Services.d.ts.map +1 -1
  190. package/out/src/services/Services.js +86 -44
  191. package/out/src/services/Services.js.map +1 -1
  192. package/out/src/services/chaintracker/BHServiceClient.d.ts +7 -7
  193. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
  194. package/out/src/services/chaintracker/BHServiceClient.js +9 -9
  195. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  196. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +4 -1
  197. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  198. package/out/src/services/chaintracker/ChaintracksChainTracker.js +42 -6
  199. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  200. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts +4 -4
  201. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
  202. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +1 -1
  203. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
  204. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +3 -0
  205. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  206. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +45 -40
  207. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  208. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +5 -0
  209. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
  210. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +25 -18
  211. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  212. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +3 -3
  213. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  214. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +6 -7
  215. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  216. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
  217. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
  218. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  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.map +1 -1
  222. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
  223. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
  224. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  225. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +0 -1
  226. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  227. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
  228. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
  229. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  230. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  231. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -1
  232. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -1
  233. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts +2 -2
  234. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
  235. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +2 -2
  236. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
  237. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
  238. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  239. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
  240. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
  241. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +12 -2
  242. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  243. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +110 -103
  244. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  245. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +8 -0
  246. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
  247. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +58 -48
  248. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  249. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  250. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  251. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
  252. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  253. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +3 -0
  254. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  255. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +55 -54
  256. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  257. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +4 -0
  258. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  259. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +97 -72
  260. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  261. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +5 -0
  262. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
  263. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +145 -136
  264. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  265. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +4 -0
  266. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  267. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +92 -68
  268. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  269. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +43 -0
  270. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
  271. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +76 -0
  272. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
  273. package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.d.ts +18 -0
  274. package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.d.ts.map +1 -0
  275. package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.js +24 -0
  276. package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.js.map +1 -0
  277. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts +2 -3
  278. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
  279. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +4 -22
  280. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  281. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts +2 -4
  282. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
  283. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js +12 -25
  284. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  285. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +2 -3
  286. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  287. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +4 -22
  288. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  289. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +2 -1
  290. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  291. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +3 -15
  292. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  293. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts +2 -2
  294. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
  295. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +3 -15
  296. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
  297. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts +2 -1
  298. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
  299. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +3 -15
  300. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  301. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +1 -1
  302. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
  303. package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
  304. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +2 -0
  305. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  306. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +64 -61
  307. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  308. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
  309. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  310. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  311. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +4 -3
  312. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  313. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  314. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  315. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  316. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  317. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +8 -10
  318. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
  319. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +14 -24
  320. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
  321. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  322. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  323. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
  324. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  325. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +1 -11
  326. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  327. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +20 -49
  328. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  329. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +1 -1
  330. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js +4 -2
  331. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +1 -1
  332. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  333. package/out/src/services/createDefaultWalletServicesOptions.d.ts +23 -14
  334. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  335. package/out/src/services/createDefaultWalletServicesOptions.js +1 -14
  336. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  337. package/out/src/services/networkConfig.js.map +1 -1
  338. package/out/src/services/providers/ARC.d.ts +4 -0
  339. package/out/src/services/providers/ARC.d.ts.map +1 -1
  340. package/out/src/services/providers/ARC.js +96 -83
  341. package/out/src/services/providers/ARC.js.map +1 -1
  342. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  343. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  344. package/out/src/services/providers/Arcade.d.ts +4 -0
  345. package/out/src/services/providers/Arcade.d.ts.map +1 -1
  346. package/out/src/services/providers/Arcade.js +118 -92
  347. package/out/src/services/providers/Arcade.js.map +1 -1
  348. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  349. package/out/src/services/providers/Bitails.js +107 -86
  350. package/out/src/services/providers/Bitails.js.map +1 -1
  351. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  352. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  353. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  354. package/out/src/services/providers/WhatsOnChain.js +19 -6
  355. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  356. package/out/src/services/providers/exchangeRates.js +1 -1
  357. package/out/src/services/providers/exchangeRates.js.map +1 -1
  358. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  359. package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -1
  360. package/out/src/signer/WalletSigner.d.ts.map +1 -1
  361. package/out/src/signer/WalletSigner.js.map +1 -1
  362. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +29 -0
  363. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -0
  364. package/out/src/signer/actionBatch/ActionBatchPlanner.js +346 -0
  365. package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -0
  366. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +33 -0
  367. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -0
  368. package/out/src/signer/actionBatch/ActionBatchWorkspace.js +869 -0
  369. package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -0
  370. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +11 -0
  371. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -0
  372. package/out/src/signer/actionBatch/actionBatchBootstrap.js +38 -0
  373. package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -0
  374. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  375. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  376. package/out/src/signer/methods/buildSignableTransaction.js +97 -107
  377. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  378. package/out/src/signer/methods/completeSignedTransaction.d.ts +3 -7
  379. package/out/src/signer/methods/completeSignedTransaction.d.ts.map +1 -1
  380. package/out/src/signer/methods/completeSignedTransaction.js +14 -57
  381. package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
  382. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  383. package/out/src/signer/methods/createAction.js +50 -20
  384. package/out/src/signer/methods/createAction.js.map +1 -1
  385. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  386. package/out/src/signer/methods/internalizeAction.js +4 -4
  387. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  388. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  389. package/out/src/signer/methods/resultBeef.js.map +1 -1
  390. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  391. package/out/src/signer/methods/signAction.js +29 -4
  392. package/out/src/signer/methods/signAction.js.map +1 -1
  393. package/out/src/signer/methods/verifyUnlockScripts.d.ts +17 -0
  394. package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -0
  395. package/out/src/signer/methods/verifyUnlockScripts.js +137 -0
  396. package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -0
  397. package/out/src/storage/StorageIdb.d.ts +19 -3
  398. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  399. package/out/src/storage/StorageIdb.js +232 -53
  400. package/out/src/storage/StorageIdb.js.map +1 -1
  401. package/out/src/storage/StorageKnex.d.ts +29 -1
  402. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  403. package/out/src/storage/StorageKnex.js +225 -10
  404. package/out/src/storage/StorageKnex.js.map +1 -1
  405. package/out/src/storage/StorageProvider.d.ts +57 -1
  406. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  407. package/out/src/storage/StorageProvider.js +277 -145
  408. package/out/src/storage/StorageProvider.js.map +1 -1
  409. package/out/src/storage/StorageReader.d.ts +13 -5
  410. package/out/src/storage/StorageReader.d.ts.map +1 -1
  411. package/out/src/storage/StorageReader.js +3 -0
  412. package/out/src/storage/StorageReader.js.map +1 -1
  413. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  414. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  415. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  416. package/out/src/storage/StorageSyncReader.js.map +1 -1
  417. package/out/src/storage/WalletStorageManager.d.ts +10 -0
  418. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  419. package/out/src/storage/WalletStorageManager.js +49 -6
  420. package/out/src/storage/WalletStorageManager.js.map +1 -1
  421. package/out/src/storage/adminServer/adminServer.d.ts +79 -0
  422. package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
  423. package/out/src/storage/adminServer/adminServer.js +47 -16
  424. package/out/src/storage/adminServer/adminServer.js.map +1 -1
  425. package/out/src/storage/adminServer/adminUi.js.map +1 -1
  426. package/out/src/storage/idbHelpers.d.ts +2 -0
  427. package/out/src/storage/idbHelpers.d.ts.map +1 -1
  428. package/out/src/storage/idbHelpers.js +19 -0
  429. package/out/src/storage/idbHelpers.js.map +1 -1
  430. package/out/src/storage/index.all.js.map +1 -1
  431. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  432. package/out/src/storage/methods/ListActionsSpecOp.js +48 -71
  433. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  434. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  435. package/out/src/storage/methods/ListOutputsSpecOp.js +29 -27
  436. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  437. package/out/src/storage/methods/actionBatch.d.ts +15 -0
  438. package/out/src/storage/methods/actionBatch.d.ts.map +1 -0
  439. package/out/src/storage/methods/actionBatch.js +737 -0
  440. package/out/src/storage/methods/actionBatch.js.map +1 -0
  441. package/out/src/storage/methods/actionBatchBlobs.d.ts +15 -0
  442. package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -0
  443. package/out/src/storage/methods/actionBatchBlobs.js +184 -0
  444. package/out/src/storage/methods/actionBatchBlobs.js.map +1 -0
  445. package/out/src/storage/methods/actionBatchValidation.d.ts +17 -0
  446. package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -0
  447. package/out/src/storage/methods/actionBatchValidation.js +416 -0
  448. package/out/src/storage/methods/actionBatchValidation.js.map +1 -0
  449. package/out/src/storage/methods/actionPlanning.d.ts +12 -0
  450. package/out/src/storage/methods/actionPlanning.d.ts.map +1 -0
  451. package/out/src/storage/methods/actionPlanning.js +48 -0
  452. package/out/src/storage/methods/actionPlanning.js.map +1 -0
  453. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +0 -21
  454. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  455. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +43 -51
  456. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  457. package/out/src/storage/methods/createAction.d.ts +1 -1
  458. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  459. package/out/src/storage/methods/createAction.js +66 -63
  460. package/out/src/storage/methods/createAction.js.map +1 -1
  461. package/out/src/storage/methods/generateChange.d.ts +2 -2
  462. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  463. package/out/src/storage/methods/generateChange.js +66 -38
  464. package/out/src/storage/methods/generateChange.js.map +1 -1
  465. package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
  466. package/out/src/storage/methods/getBeefForTransaction.js +48 -42
  467. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  468. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
  469. package/out/src/storage/methods/getSyncChunk.js +8 -6
  470. package/out/src/storage/methods/getSyncChunk.js.map +1 -1
  471. package/out/src/storage/methods/internalizeAction.js +145 -121
  472. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  473. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  474. package/out/src/storage/methods/listActionsKnex.js +1 -1
  475. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  476. package/out/src/storage/methods/listCertificates.d.ts +1 -1
  477. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  478. package/out/src/storage/methods/listCertificates.js +1 -1
  479. package/out/src/storage/methods/listCertificates.js.map +1 -1
  480. package/out/src/storage/methods/listOutputsIdb.d.ts +1 -1
  481. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  482. package/out/src/storage/methods/listOutputsIdb.js +133 -152
  483. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  484. package/out/src/storage/methods/listOutputsKnex.d.ts +1 -1
  485. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
  486. package/out/src/storage/methods/listOutputsKnex.js +213 -254
  487. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  488. package/out/src/storage/methods/managedChange.d.ts +3 -3
  489. package/out/src/storage/methods/managedChange.d.ts.map +1 -1
  490. package/out/src/storage/methods/managedChange.js +1 -2
  491. package/out/src/storage/methods/managedChange.js.map +1 -1
  492. package/out/src/storage/methods/offsetKey.d.ts.map +1 -1
  493. package/out/src/storage/methods/offsetKey.js +0 -1
  494. package/out/src/storage/methods/offsetKey.js.map +1 -1
  495. package/out/src/storage/methods/processAction.d.ts +2 -0
  496. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  497. package/out/src/storage/methods/processAction.js +8 -8
  498. package/out/src/storage/methods/processAction.js.map +1 -1
  499. package/out/src/storage/methods/purgeData.d.ts.map +1 -1
  500. package/out/src/storage/methods/purgeData.js +157 -179
  501. package/out/src/storage/methods/purgeData.js.map +1 -1
  502. package/out/src/storage/methods/purgeDataIdb.d.ts +1 -1
  503. package/out/src/storage/methods/purgeDataIdb.d.ts.map +1 -1
  504. package/out/src/storage/methods/purgeDataIdb.js +1 -1
  505. package/out/src/storage/methods/purgeDataIdb.js.map +1 -1
  506. package/out/src/storage/methods/reviewStatus.js +6 -6
  507. package/out/src/storage/methods/reviewStatus.js.map +1 -1
  508. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  509. package/out/src/storage/methods/utils.Buffer.js.map +1 -1
  510. package/out/src/storage/methods/utils.js.map +1 -1
  511. package/out/src/storage/portable/index.js +2 -2
  512. package/out/src/storage/portable/index.js.map +1 -1
  513. package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -1
  514. package/out/src/storage/remoting/BinaryJson.js +84 -38
  515. package/out/src/storage/remoting/BinaryJson.js.map +1 -1
  516. package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -1
  517. package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
  518. package/out/src/storage/remoting/RateLimitPolicy.d.ts +10 -0
  519. package/out/src/storage/remoting/RateLimitPolicy.d.ts.map +1 -0
  520. package/out/src/storage/remoting/RateLimitPolicy.js +37 -0
  521. package/out/src/storage/remoting/RateLimitPolicy.js.map +1 -0
  522. package/out/src/storage/remoting/StorageClient.d.ts +2 -0
  523. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  524. package/out/src/storage/remoting/StorageClient.js +82 -50
  525. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  526. package/out/src/storage/remoting/StorageClientBase.d.ts +23 -4
  527. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  528. package/out/src/storage/remoting/StorageClientBase.js +97 -4
  529. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  530. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  531. package/out/src/storage/remoting/StorageMobile.js +34 -22
  532. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  533. package/out/src/storage/remoting/StorageServer.d.ts +62 -1
  534. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  535. package/out/src/storage/remoting/StorageServer.js +451 -172
  536. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  537. package/out/src/storage/remoting/edgePolicy.d.ts +57 -0
  538. package/out/src/storage/remoting/edgePolicy.d.ts.map +1 -0
  539. package/out/src/storage/remoting/edgePolicy.js +387 -0
  540. package/out/src/storage/remoting/edgePolicy.js.map +1 -0
  541. package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +1 -1
  542. package/out/src/storage/remoting/entityValidationHelpers.js +22 -5
  543. package/out/src/storage/remoting/entityValidationHelpers.js.map +1 -1
  544. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  545. package/out/src/storage/schema/KnexMigrations.js +56 -0
  546. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  547. package/out/src/storage/schema/StorageIdbSchema.d.ts +24 -0
  548. package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
  549. package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -1
  550. package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
  551. package/out/src/storage/schema/entities/EntityCertificate.d.ts.map +1 -1
  552. package/out/src/storage/schema/entities/EntityCertificate.js.map +1 -1
  553. package/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +1 -1
  554. package/out/src/storage/schema/entities/EntityCertificateField.js.map +1 -1
  555. package/out/src/storage/schema/entities/EntityCommission.d.ts.map +1 -1
  556. package/out/src/storage/schema/entities/EntityCommission.js.map +1 -1
  557. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
  558. package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
  559. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -1
  560. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
  561. package/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +1 -1
  562. package/out/src/storage/schema/entities/EntityOutputTag.js.map +1 -1
  563. package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +1 -1
  564. package/out/src/storage/schema/entities/EntityOutputTagMap.js.map +1 -1
  565. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +3 -0
  566. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
  567. package/out/src/storage/schema/entities/EntityProvenTx.js +46 -36
  568. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  569. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +2 -2
  570. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +1 -1
  571. package/out/src/storage/schema/entities/EntityProvenTxReq.js +12 -10
  572. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  573. package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
  574. package/out/src/storage/schema/entities/EntitySyncState.js +25 -34
  575. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  576. package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
  577. package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
  578. package/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +1 -1
  579. package/out/src/storage/schema/entities/EntityTxLabel.js.map +1 -1
  580. package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +1 -1
  581. package/out/src/storage/schema/entities/EntityTxLabelMap.js.map +1 -1
  582. package/out/src/storage/schema/entities/EntityUser.d.ts.map +1 -1
  583. package/out/src/storage/schema/entities/EntityUser.js.map +1 -1
  584. package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -1
  585. package/out/src/storage/schema/entities/MergeEntity.js +9 -14
  586. package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
  587. package/out/src/storage/schema/tables/TableActionBatch.d.ts +26 -0
  588. package/out/src/storage/schema/tables/TableActionBatch.d.ts.map +1 -0
  589. package/out/src/storage/schema/tables/TableActionBatch.js +3 -0
  590. package/out/src/storage/schema/tables/TableActionBatch.js.map +1 -0
  591. package/out/src/storage/schema/tables/TableAuthSession.js.map +1 -1
  592. package/out/src/storage/schema/tables/index.d.ts +1 -0
  593. package/out/src/storage/schema/tables/index.d.ts.map +1 -1
  594. package/out/src/storage/schema/tables/index.js +1 -0
  595. package/out/src/storage/schema/tables/index.js.map +1 -1
  596. package/out/src/storage/storageProviderHelpers.js.map +1 -1
  597. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts +3 -0
  598. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  599. package/out/src/storage/sync/StorageMySQLDojoReader.js +30 -16
  600. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  601. package/out/src/utility/Format.d.ts.map +1 -1
  602. package/out/src/utility/Format.js +2 -2
  603. package/out/src/utility/Format.js.map +1 -1
  604. package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
  605. package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
  606. package/out/src/utility/actionBatchDigest.d.ts +9 -0
  607. package/out/src/utility/actionBatchDigest.d.ts.map +1 -0
  608. package/out/src/utility/actionBatchDigest.js +86 -0
  609. package/out/src/utility/actionBatchDigest.js.map +1 -0
  610. package/out/src/utility/actionBatchPack.d.ts +16 -0
  611. package/out/src/utility/actionBatchPack.d.ts.map +1 -0
  612. package/out/src/utility/actionBatchPack.js +220 -0
  613. package/out/src/utility/actionBatchPack.js.map +1 -0
  614. package/out/src/utility/aggregateResults.d.ts.map +1 -1
  615. package/out/src/utility/aggregateResults.js.map +1 -1
  616. package/out/src/utility/beefForTxids.d.ts +9 -0
  617. package/out/src/utility/beefForTxids.d.ts.map +1 -0
  618. package/out/src/utility/beefForTxids.js +35 -0
  619. package/out/src/utility/beefForTxids.js.map +1 -0
  620. package/out/src/utility/brc114ActionTimeLabels.d.ts.map +1 -1
  621. package/out/src/utility/brc114ActionTimeLabels.js +26 -30
  622. package/out/src/utility/brc114ActionTimeLabels.js.map +1 -1
  623. package/out/src/utility/formatUnknown.d.ts +6 -0
  624. package/out/src/utility/formatUnknown.d.ts.map +1 -0
  625. package/out/src/utility/formatUnknown.js +39 -0
  626. package/out/src/utility/formatUnknown.js.map +1 -0
  627. package/out/src/utility/hashWasm.d.ts +5 -0
  628. package/out/src/utility/hashWasm.d.ts.map +1 -0
  629. package/out/src/utility/hashWasm.js +15 -0
  630. package/out/src/utility/hashWasm.js.map +1 -0
  631. package/out/src/utility/identityUtils.d.ts.map +1 -1
  632. package/out/src/utility/identityUtils.js +2 -4
  633. package/out/src/utility/identityUtils.js.map +1 -1
  634. package/out/src/utility/parseTxScriptOffsets.d.ts +1 -1
  635. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
  636. package/out/src/utility/parseTxScriptOffsets.js +1 -1
  637. package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
  638. package/out/src/utility/stampLog.d.ts.map +1 -1
  639. package/out/src/utility/stampLog.js +49 -42
  640. package/out/src/utility/stampLog.js.map +1 -1
  641. package/out/src/utility/traceContext.d.ts +13 -0
  642. package/out/src/utility/traceContext.d.ts.map +1 -0
  643. package/out/src/utility/traceContext.js +34 -0
  644. package/out/src/utility/traceContext.js.map +1 -0
  645. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  646. package/out/src/utility/tscProofToMerklePath.js +1 -1
  647. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  648. package/out/src/utility/utilityHelpers.buffer.js.map +1 -1
  649. package/out/src/utility/utilityHelpers.d.ts +2 -2
  650. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  651. package/out/src/utility/utilityHelpers.js +8 -4
  652. package/out/src/utility/utilityHelpers.js.map +1 -1
  653. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  654. package/out/src/utility/utilityHelpers.noBuffer.js +1 -2
  655. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  656. package/out/src/wab-client/WABClient.d.ts +36 -90
  657. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  658. package/out/src/wab-client/WABClient.js +103 -151
  659. package/out/src/wab-client/WABClient.js.map +1 -1
  660. package/out/src/wab-client/WABTransport.d.ts +81 -0
  661. package/out/src/wab-client/WABTransport.d.ts.map +1 -0
  662. package/out/src/wab-client/WABTransport.js +420 -0
  663. package/out/src/wab-client/WABTransport.js.map +1 -0
  664. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +10 -10
  665. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  666. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +16 -21
  667. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  668. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +1 -1
  669. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -1
  670. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +2 -1
  671. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +1 -1
  672. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +14 -0
  673. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -1
  674. package/package.json +66 -30
  675. package/license.md +0 -28
@@ -16,6 +16,8 @@ const WERR_errors_1 = require("../sdk/WERR_errors");
16
16
  const utilityHelpers_1 = require("../utility/utilityHelpers");
17
17
  const WalletError_1 = require("../sdk/WalletError");
18
18
  const utilityHelpers_noBuffer_1 = require("../utility/utilityHelpers.noBuffer");
19
+ const actionBatch_1 = require("./methods/actionBatch");
20
+ const actionBatchBlobs_1 = require("./methods/actionBatchBlobs");
19
21
  class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
20
22
  isDirty = false;
21
23
  _services;
@@ -23,6 +25,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
23
25
  commissionSatoshis;
24
26
  commissionPubKeyHex;
25
27
  maxRecursionDepth;
28
+ scriptVerifier;
26
29
  static defaultOptions() {
27
30
  const opts = {
28
31
  feeModel: { model: 'sat/kb', value: 100 },
@@ -44,6 +47,88 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
44
47
  this.commissionPubKeyHex = options.commissionPubKeyHex;
45
48
  this.commissionSatoshis = options.commissionSatoshis;
46
49
  this.maxRecursionDepth = 12;
50
+ this.scriptVerifier = options.scriptVerifier;
51
+ }
52
+ async insertActionBatch(_batch, _trx) {
53
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
54
+ }
55
+ async findActionBatch(_userId, _batchId, _trx) {
56
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
57
+ }
58
+ async findActionBatchForUpdate(userId, batchId, trx) {
59
+ return await this.findActionBatch(userId, batchId, trx);
60
+ }
61
+ async findExpiredActionBatches(_now, _trx) {
62
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
63
+ }
64
+ async updateActionBatch(_actionBatchId, _update, _trx) {
65
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
66
+ }
67
+ async deleteActionBatch(_actionBatchId, _trx) {
68
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
69
+ }
70
+ async reserveActionBatchOutputs(_reservations, _trx) {
71
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
72
+ }
73
+ async findActionBatchOutputIds(_actionBatchId, _trx) {
74
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
75
+ }
76
+ async findReservedActionBatchOutputIds(_outputIds, _trx) {
77
+ return [];
78
+ }
79
+ async deleteActionBatchOutputReservations(_actionBatchId, _trx) {
80
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
81
+ }
82
+ async putActionBatchBlobRecord(_blob, _trx) {
83
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
84
+ }
85
+ async findActionBatchBlobRecord(_actionBatchId, _digest, _trx) {
86
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
87
+ }
88
+ async findActionBatchBlobRecords(actionBatchId, digests, trx) {
89
+ return (await Promise.all(digests.map(async (digest) => await this.findActionBatchBlobRecord(actionBatchId, digest, trx)))).filter((blob) => blob != null);
90
+ }
91
+ async putActionBatchBlobRecords(blobs, trx) {
92
+ for (const blob of blobs)
93
+ await this.putActionBatchBlobRecord(blob, trx);
94
+ }
95
+ async deleteActionBatchBlobRecords(_actionBatchId, _trx) {
96
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
97
+ }
98
+ async getCapabilities() {
99
+ return this.supportsActionBatchPersistence() ? (0, actionBatch_1.getActionBatchCapabilities)() : {};
100
+ }
101
+ supportsActionBatchPersistence() {
102
+ return false;
103
+ }
104
+ async beginActionBatch(auth, args) {
105
+ if (!this.supportsActionBatchPersistence())
106
+ throw new WERR_errors_1.WERR_NOT_IMPLEMENTED('actionBatch capability is not available');
107
+ return await (0, actionBatch_1.beginActionBatch)(this, auth, args);
108
+ }
109
+ async extendActionBatch(auth, args) {
110
+ return await (0, actionBatch_1.extendActionBatch)(this, auth, args);
111
+ }
112
+ async renewActionBatch(auth, batchId) {
113
+ return await (0, actionBatch_1.renewActionBatch)(this, auth, batchId);
114
+ }
115
+ async prepareActionBatchCommit(auth, manifest) {
116
+ return await (0, actionBatchBlobs_1.prepareActionBatchCommit)(this, auth, manifest);
117
+ }
118
+ async putActionBatchBlob(auth, args) {
119
+ return await (0, actionBatchBlobs_1.putActionBatchBlob)(this, auth, args);
120
+ }
121
+ async putActionBatchPack(auth, args) {
122
+ return await (0, actionBatchBlobs_1.putActionBatchPack)(this, auth, args);
123
+ }
124
+ async commitActionBatch(auth, manifest) {
125
+ return await (0, actionBatch_1.commitActionBatch)(this, auth, manifest);
126
+ }
127
+ async commitActionBatchByDigest(auth, args) {
128
+ return await (0, actionBatch_1.commitActionBatchByDigest)(this, auth, args);
129
+ }
130
+ async abortActionBatch(auth, batchId) {
131
+ return await (0, actionBatch_1.abortActionBatch)(this, auth, batchId);
47
132
  }
48
133
  async findOutputsByIds(outputIds, trx) {
49
134
  const byId = {};
@@ -69,6 +154,9 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
69
154
  }
70
155
  return byOutpoint;
71
156
  }
157
+ async findOutputsByOutpointsForUpdate(userId, outpoints, trx) {
158
+ return await this.findOutputsByOutpoints(userId, outpoints, trx);
159
+ }
72
160
  async findOrInsertOutputBasketsBulk(userId, names, trx) {
73
161
  const byName = {};
74
162
  for (const name of names)
@@ -81,6 +169,12 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
81
169
  byTag[tag] = await this.findOrInsertOutputTag(userId, tag, trx);
82
170
  return byTag;
83
171
  }
172
+ async findOrInsertTxLabelsBulk(userId, labels, trx) {
173
+ const byLabel = {};
174
+ for (const label of labels)
175
+ byLabel[label] ??= await this.findOrInsertTxLabel(userId, label, trx);
176
+ return byLabel;
177
+ }
84
178
  async sumSpendableSatoshisInBasket(userId, basketId, excludeSending, trx) {
85
179
  const status = ['completed', 'unproven'];
86
180
  if (!excludeSending)
@@ -105,7 +199,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
105
199
  continue;
106
200
  const createdAt = this.validateDate(output.created_at);
107
201
  const prior = latestByUserId.get(output.userId);
108
- if ((prior == null) || createdAt > prior) {
202
+ if (prior == null || createdAt > prior) {
109
203
  latestByUserId.set(output.userId, createdAt);
110
204
  }
111
205
  }
@@ -127,32 +221,79 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
127
221
  throw new WERR_errors_1.WERR_INVALID_OPERATION('Must setServices first.');
128
222
  return this._services;
129
223
  }
130
- async abortAction(auth, args) {
131
- if (auth.userId == null)
132
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('auth.userId', 'valid');
133
- const userId = auth.userId;
224
+ async findAbortableTransaction(userId, args, trx) {
134
225
  let reference = args.reference;
135
- let txid;
136
- const r = await this.transaction(async (trx) => {
137
- let tx = (0, utilityHelpers_1.verifyOneOrNone)(await this.findTransactions({
138
- partial: { reference, userId },
226
+ let tx = (0, utilityHelpers_1.verifyOneOrNone)(await this.findTransactions({
227
+ partial: { reference, userId },
228
+ noRawTx: true,
229
+ trx
230
+ }));
231
+ if (tx == null && args.reference.length === 64) {
232
+ reference = undefined;
233
+ tx = (0, utilityHelpers_1.verifyOneOrNone)(await this.findTransactions({
234
+ partial: { txid: args.reference, userId },
139
235
  noRawTx: true,
140
236
  trx
141
237
  }));
142
- if ((tx == null) && args.reference.length === 64) {
143
- // reference may also be a txid
144
- txid = reference;
145
- reference = undefined;
146
- tx = (0, utilityHelpers_1.verifyOneOrNone)(await this.findTransactions({
147
- partial: { txid, userId },
148
- noRawTx: true,
149
- trx
150
- }));
238
+ }
239
+ const unAbortableStatus = ['completed', 'failed', 'sending', 'unproven'];
240
+ if (tx == null || !tx.isOutgoing || unAbortableStatus.includes(tx.status)) {
241
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('reference', 'an inprocess, outgoing action that has not been signed and shared to the network.');
242
+ }
243
+ return { tx, reference };
244
+ }
245
+ async checkAbortChainProtection(tx, args, trx) {
246
+ if (tx.txid == null || tx.txid === '' || tx.status !== 'nosend') {
247
+ return { skipped: false, serviceUnreachable: false };
248
+ }
249
+ let serviceUnreachable = false;
250
+ let chainStatus;
251
+ try {
252
+ const result = await this.getServices().getStatusForTxids([tx.txid]);
253
+ if (result.status !== 'success') {
254
+ serviceUnreachable = true;
255
+ }
256
+ else {
257
+ chainStatus = result.results.find(item => item.txid === tx.txid)?.status;
151
258
  }
152
- const unAbortableStatus = ['completed', 'failed', 'sending', 'unproven'];
153
- if ((tx == null) || !tx.isOutgoing || unAbortableStatus.findIndex(s => s === tx.status) > -1) {
154
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('reference', 'an inprocess, outgoing action that has not been signed and shared to the network.');
259
+ }
260
+ catch {
261
+ serviceUnreachable = true;
262
+ }
263
+ if (chainStatus !== 'mined' && chainStatus !== 'known') {
264
+ return { skipped: false, serviceUnreachable };
265
+ }
266
+ const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
267
+ if (req != null) {
268
+ req.addHistoryNote({
269
+ what: 'abortAction-skipped-onchain',
270
+ reference: args.reference,
271
+ chainStatus
272
+ });
273
+ await req.updateStorageDynamicProperties(this, trx);
274
+ }
275
+ return { skipped: true, serviceUnreachable };
276
+ }
277
+ async invalidateAbortedTransaction(tx, userId, reference, originalReference, serviceUnreachable, trx) {
278
+ await this.updateTransactionStatus('failed', tx.transactionId, userId, reference, trx);
279
+ if (tx.txid != null && tx.txid !== '') {
280
+ const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
281
+ if (req != null) {
282
+ req.addHistoryNote(serviceUnreachable
283
+ ? { what: 'abortAction-offline-fallback', reference: originalReference }
284
+ : { what: 'abortAction', reference: originalReference });
285
+ req.status = 'invalid';
286
+ await req.updateStorageDynamicProperties(this, trx);
155
287
  }
288
+ }
289
+ return { aborted: true };
290
+ }
291
+ async abortAction(auth, args) {
292
+ if (auth.userId == null)
293
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('auth.userId', 'valid');
294
+ const userId = auth.userId;
295
+ const r = await this.transaction(async (trx) => {
296
+ const { tx, reference } = await this.findAbortableTransaction(userId, args, trx);
156
297
  // Chain-status protection for signed nosend txs.
157
298
  //
158
299
  // Background: a nosend tx (created via createAction({noSend:true}))
@@ -184,57 +325,12 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
184
325
  // hole can never be 100% closed against externally-broadcast
185
326
  // chain-confirmed txs while offline; the audit trail makes it
186
327
  // recoverable.
187
- let serviceUnreachable = false;
188
- if (tx.txid != null && tx.txid !== '' && tx.status === 'nosend') {
189
- const services = this.getServices();
190
- let chainStatus;
191
- try {
192
- const r = await services.getStatusForTxids([tx.txid]);
193
- if (r.status !== 'success') {
194
- serviceUnreachable = true;
195
- }
196
- else {
197
- chainStatus = r.results.find(x => x.txid === tx.txid)?.status;
198
- }
199
- }
200
- catch {
201
- serviceUnreachable = true;
202
- }
203
- if (chainStatus === 'mined' || chainStatus === 'known') {
204
- const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
205
- if (req != null) {
206
- req.addHistoryNote({
207
- what: 'abortAction-skipped-onchain',
208
- reference: args.reference,
209
- chainStatus
210
- });
211
- await req.updateStorageDynamicProperties(this, trx);
212
- }
213
- // Surface the refusal via a sentinel so the surrounding
214
- // transaction commits the history note BEFORE returning
215
- // the aborted:false result. Returning directly from inside
216
- // the transaction would still work, but the sentinel keeps
217
- // the audit-write / result-shape decision on the same
218
- // commit-then-return path that existed when this surface
219
- // threw, minimizing diff churn.
220
- return { __abortAction: 'skipped-onchain', chainStatus };
221
- }
328
+ const protection = await this.checkAbortChainProtection(tx, args, trx);
329
+ if (protection.skipped) {
330
+ // Commit the audit note before translating this sentinel to aborted:false.
331
+ return { __abortAction: 'skipped-onchain' };
222
332
  }
223
- await this.updateTransactionStatus('failed', tx.transactionId, userId, reference, trx);
224
- if (tx.txid != null && tx.txid !== '') {
225
- const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
226
- if (req != null) {
227
- req.addHistoryNote(serviceUnreachable
228
- ? { what: 'abortAction-offline-fallback', reference: args.reference }
229
- : { what: 'abortAction', reference: args.reference });
230
- req.status = 'invalid';
231
- await req.updateStorageDynamicProperties(this, trx);
232
- }
233
- }
234
- const r = {
235
- aborted: true
236
- };
237
- return r;
333
+ return await this.invalidateAbortedTransaction(tx, userId, reference, args.reference, protection.serviceUnreachable, trx);
238
334
  });
239
335
  if ('__abortAction' in r) {
240
336
  // Tone Engel review feedback (PR #122 comment 4444566147 item 3):
@@ -304,7 +400,9 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
304
400
  throw new WERR_errors_1.WERR_INTERNAL('req rawTx and beef must be valid.');
305
401
  mergeToBeef.mergeRawTx((0, utilityHelpers_noBuffer_1.asArray)(rawTx));
306
402
  mergeToBeef.mergeBeef((0, utilityHelpers_noBuffer_1.asArray)(beef));
307
- await (0, storageProviderHelpers_1.mergeInputsIntoBeef)((0, utilityHelpers_noBuffer_1.asArray)(rawTx), mergeToBeef, knownTxids, trx, async (txid, beef, _trust, knownTxids, trx) => { await this.getValidBeefForKnownTxid(txid, beef, undefined, knownTxids, trx); });
403
+ await (0, storageProviderHelpers_1.mergeInputsIntoBeef)((0, utilityHelpers_noBuffer_1.asArray)(rawTx), mergeToBeef, knownTxids, trx, async (txid, beef, _trust, knownTxids, trx) => {
404
+ await this.getValidBeefForKnownTxid(txid, beef, undefined, knownTxids, trx);
405
+ });
308
406
  }
309
407
  /**
310
408
  * Checks if txid is a known valid ProvenTx and returns it if found.
@@ -337,7 +435,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
337
435
  return existing;
338
436
  }
339
437
  async getProvenOrReq(txid, newReq, trx) {
340
- if ((newReq != null) && txid !== newReq.txid)
438
+ if (newReq != null && txid !== newReq.txid)
341
439
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('newReq', 'same txid');
342
440
  const r = { proven: undefined, req: undefined };
343
441
  r.proven = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid }, trx }));
@@ -439,6 +537,8 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
439
537
  async createAction(auth, args) {
440
538
  if (auth.userId == null)
441
539
  throw new WERR_errors_1.WERR_UNAUTHORIZED();
540
+ if (this.supportsActionBatchPersistence())
541
+ await (0, actionBatch_1.cleanupExpiredActionBatches)(this);
442
542
  return await (0, createAction_1.createAction)(this, auth, args);
443
543
  }
444
544
  async processAction(auth, args) {
@@ -514,7 +614,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
514
614
  beef.mergeBump(mp);
515
615
  return beef;
516
616
  }
517
- async getValidBeefForTxid(txid, mergeToBeef, trustSelf, knownTxids, trx, requiredLevels, chainTracker, skipInvalidProofs) {
617
+ async getValidBeefForTxid(...[txid, mergeToBeef, trustSelf, knownTxids, trx, requiredLevels, chainTracker, skipInvalidProofs]) {
518
618
  const beef = mergeToBeef ?? new sdk_1.Beef();
519
619
  const r = await this.getProvenOrRawTx(txid, trx);
520
620
  // --- proven-tx path ---
@@ -667,6 +767,94 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
667
767
  }
668
768
  return { log };
669
769
  }
770
+ async prepareProofRecoveryOutputVerdicts(transactions) {
771
+ const verdicts = new Map();
772
+ if (transactions.length === 0)
773
+ return verdicts;
774
+ const services = this.getServices();
775
+ for (const transaction of transactions) {
776
+ const outputs = await this.findOutputs({
777
+ partial: {
778
+ userId: transaction.userId,
779
+ transactionId: transaction.transactionId
780
+ }
781
+ });
782
+ for (const output of outputs) {
783
+ const outputId = (0, utilityHelpers_1.verifyId)(output.outputId);
784
+ await this.validateOutputScript(output);
785
+ verdicts.set(outputId, output.lockingScript == null ? undefined : await services.isUtxo(output));
786
+ }
787
+ }
788
+ return verdicts;
789
+ }
790
+ async restoreProofRecoveryInputs(tx, bsvtx, indent, trx) {
791
+ let log = '';
792
+ for (const [vin, input] of bsvtx.inputs.entries()) {
793
+ const sourceTXID = input.sourceTXID;
794
+ if (sourceTXID == null) {
795
+ log += ' '.repeat(indent + 2) + `input ${vin} has no source transaction id\n`;
796
+ continue;
797
+ }
798
+ const outputs = await this.findOutputs({
799
+ partial: {
800
+ userId: tx.userId,
801
+ txid: sourceTXID,
802
+ vout: input.sourceOutputIndex
803
+ },
804
+ trx
805
+ });
806
+ if (outputs.length !== 1) {
807
+ log += ' '.repeat(indent + 2) + `input ${vin} not matched to user's outputs\n`;
808
+ continue;
809
+ }
810
+ const output = outputs[0];
811
+ log +=
812
+ ' '.repeat(indent + 2) +
813
+ `input ${vin} matched to output ${output.outputId} updated spentBy ${tx.transactionId}\n`;
814
+ await this.updateOutput((0, utilityHelpers_1.verifyId)(output.outputId), { spendable: false, spentBy: tx.transactionId }, trx);
815
+ }
816
+ return log;
817
+ }
818
+ async restoreProofRecoveryOutputs(tx, outputVerdicts, indent, trx) {
819
+ let log = '';
820
+ const outputs = await this.findOutputs({
821
+ partial: { userId: tx.userId, transactionId: tx.transactionId },
822
+ trx
823
+ });
824
+ for (const output of outputs) {
825
+ const outputId = (0, utilityHelpers_1.verifyId)(output.outputId);
826
+ if (!outputVerdicts.has(outputId)) {
827
+ throw new WERR_errors_1.WERR_INTERNAL(`Output ${outputId} changed while preparing proof recovery.`);
828
+ }
829
+ const isUtxo = outputVerdicts.get(outputId);
830
+ if (isUtxo == null) {
831
+ log +=
832
+ ' '.repeat(indent + 2) +
833
+ `output ${output.outputId} does not have a valid locking script\n`;
834
+ continue;
835
+ }
836
+ if (isUtxo === output.spendable) {
837
+ log += ' '.repeat(indent + 2) + `output ${output.outputId} unchanged\n`;
838
+ continue;
839
+ }
840
+ log +=
841
+ ' '.repeat(indent + 2) +
842
+ `output ${output.outputId} set to ${isUtxo ? 'spendable' : 'spent'}\n`;
843
+ await this.updateOutput(outputId, { spendable: isUtxo }, trx);
844
+ }
845
+ return log;
846
+ }
847
+ async restoreTransactionForProof(tx, bsvtx, preparedTransactionIds, outputVerdicts, indent, trx) {
848
+ if (bsvtx == null || !preparedTransactionIds.has(tx.transactionId)) {
849
+ throw new WERR_errors_1.WERR_INTERNAL(`Transaction ${tx.transactionId} changed while preparing proof recovery.`);
850
+ }
851
+ await this.updateTransaction(tx.transactionId, { status: 'unproven' }, trx);
852
+ let log = ' '.repeat(indent) +
853
+ `transaction ${tx.transactionId} status is now 'unproven'\n`;
854
+ log += await this.restoreProofRecoveryInputs(tx, bsvtx, indent, trx);
855
+ log += await this.restoreProofRecoveryOutputs(tx, outputVerdicts, indent, trx);
856
+ return log;
857
+ }
670
858
  /**
671
859
  * Restore every failed local copy of a transaction before proof completion.
672
860
  * Also heals the request's notification set from the authoritative txid
@@ -688,23 +876,10 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
688
876
  // transition separately so it is persisted atomically with bookkeeping.
689
877
  await req.refreshFromStorage(this);
690
878
  const preparedTransactionIds = new Set(transactionsToRepair.map(transaction => transaction.transactionId));
691
- const outputVerdicts = new Map();
692
879
  const bsvtx = transactionsToRepair.length > 0 ? sdk_1.Transaction.fromBinary(req.rawTx) : undefined;
693
880
  // UTXO checks can call external services. Complete every check before
694
881
  // opening the write transaction so network latency never holds DB locks.
695
- if (transactionsToRepair.length > 0) {
696
- const services = this.getServices();
697
- for (const transaction of transactionsToRepair) {
698
- const outputs = await this.findOutputs({
699
- partial: { userId: transaction.userId, transactionId: transaction.transactionId }
700
- });
701
- for (const output of outputs) {
702
- const outputId = (0, utilityHelpers_1.verifyId)(output.outputId);
703
- await this.validateOutputScript(output);
704
- outputVerdicts.set(outputId, output.lockingScript == null ? undefined : await services.isUtxo(output));
705
- }
706
- }
707
- }
882
+ const outputVerdicts = await this.prepareProofRecoveryOutputVerdicts(transactionsToRepair);
708
883
  return await this.transaction(async (trx) => {
709
884
  let log = '';
710
885
  await req.refreshFromStorage(this, trx);
@@ -726,59 +901,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
726
901
  const shouldRepair = requestUpdate != null || tx.status === 'failed';
727
902
  if (!shouldRepair)
728
903
  continue;
729
- if (bsvtx == null || !preparedTransactionIds.has(tx.transactionId)) {
730
- throw new WERR_errors_1.WERR_INTERNAL(`Transaction ${tx.transactionId} changed while preparing proof recovery.`);
731
- }
732
- await this.updateTransaction(tx.transactionId, { status: 'unproven' }, trx);
733
- log += ' '.repeat(indent) + `transaction ${tx.transactionId} status is now 'unproven'\n`;
734
- let vin = -1;
735
- for (const input of bsvtx.inputs) {
736
- vin++;
737
- const sourceTXID = input.sourceTXID;
738
- if (sourceTXID == null) {
739
- log += ' '.repeat(indent + 2) + `input ${vin} has no source transaction id\n`;
740
- continue;
741
- }
742
- const outputs = await this.findOutputs({
743
- partial: {
744
- userId: tx.userId,
745
- txid: sourceTXID,
746
- vout: input.sourceOutputIndex
747
- },
748
- trx
749
- });
750
- if (outputs.length === 1) {
751
- const output = outputs[0];
752
- log += ' '.repeat(indent + 2) +
753
- `input ${vin} matched to output ${output.outputId} updated spentBy ${tx.transactionId}\n`;
754
- await this.updateOutput((0, utilityHelpers_1.verifyId)(output.outputId), { spendable: false, spentBy: tx.transactionId }, trx);
755
- }
756
- else {
757
- log += ' '.repeat(indent + 2) + `input ${vin} not matched to user's outputs\n`;
758
- }
759
- }
760
- const outputs = await this.findOutputs({
761
- partial: { userId: tx.userId, transactionId: tx.transactionId },
762
- trx
763
- });
764
- for (const output of outputs) {
765
- const outputId = (0, utilityHelpers_1.verifyId)(output.outputId);
766
- if (!outputVerdicts.has(outputId)) {
767
- throw new WERR_errors_1.WERR_INTERNAL(`Output ${outputId} changed while preparing proof recovery.`);
768
- }
769
- const isUtxo = outputVerdicts.get(outputId);
770
- if (isUtxo == null) {
771
- log += ' '.repeat(indent + 2) + `output ${output.outputId} does not have a valid locking script\n`;
772
- }
773
- else if (isUtxo === output.spendable) {
774
- log += ' '.repeat(indent + 2) + `output ${output.outputId} unchanged\n`;
775
- }
776
- else {
777
- log += ' '.repeat(indent + 2) +
778
- `output ${output.outputId} set to ${isUtxo ? 'spendable' : 'spent'}\n`;
779
- await this.updateOutput(outputId, { spendable: isUtxo }, trx);
780
- }
781
- }
904
+ log += await this.restoreTransactionForProof(tx, bsvtx, preparedTransactionIds, outputVerdicts, indent, trx);
782
905
  }
783
906
  await req.updateStorageDynamicProperties(this, trx);
784
907
  return log;
@@ -811,9 +934,13 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
811
934
  const transactionIdsNeedingProof = transactions
812
935
  .filter(transaction => transaction.status !== 'completed' || transaction.provenTxId !== proven.provenTxId)
813
936
  .map(transaction => transaction.transactionId);
814
- const updatesSucceeded = await (0, storageProviderHelpers_1.notifyTransactionsOfProof)(transactionIdsNeedingProof, proven.provenTxId, note => req.addHistoryNote(note), async (id, update) => { await this.updateTransaction(id, update, trx); });
937
+ const updatesSucceeded = await (0, storageProviderHelpers_1.notifyTransactionsOfProof)(transactionIdsNeedingProof, proven.provenTxId, note => req.addHistoryNote(note), async (id, update) => {
938
+ await this.updateTransaction(id, update, trx);
939
+ });
815
940
  const completedTransactions = await this.findTransactions({ partial: { txid: req.txid }, trx });
816
- req.notified = updatesSucceeded && completedTransactions.every(transaction => transaction.status === 'completed' && transaction.provenTxId === proven.provenTxId);
941
+ req.notified =
942
+ updatesSucceeded &&
943
+ completedTransactions.every(transaction => transaction.status === 'completed' && transaction.provenTxId === proven.provenTxId);
817
944
  await req.updateStorageDynamicProperties(this, trx);
818
945
  return false;
819
946
  });
@@ -853,7 +980,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
853
980
  return { invalidSpendableOutputs };
854
981
  }
855
982
  async checkOutputIsUtxo(o, services) {
856
- if ((o.lockingScript == null) || o.lockingScript.length === 0)
983
+ if (o.lockingScript == null || o.lockingScript.length === 0)
857
984
  return false;
858
985
  const hash = services.hashOutputScript((0, utilityHelpers_noBuffer_1.asString)(o.lockingScript));
859
986
  const r = await services.getUtxoStatus(hash, undefined, `${o.txid ?? ''}.${o.vout ?? ''}`);
@@ -894,7 +1021,12 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
894
1021
  }
895
1022
  async validateOutputScript(o, trx) {
896
1023
  // without offset and length values return what we have (make no changes)
897
- if (o.scriptLength == null || o.scriptLength === 0 || o.scriptOffset == null || o.scriptOffset === 0 || o.txid == null || o.txid === '')
1024
+ if (o.scriptLength == null ||
1025
+ o.scriptLength === 0 ||
1026
+ o.scriptOffset == null ||
1027
+ o.scriptOffset === 0 ||
1028
+ o.txid == null ||
1029
+ o.txid === '')
898
1030
  return;
899
1031
  // if there is an outputScript and its length is the expected length return what we have.
900
1032
  if (o.lockingScript?.length === o.scriptLength)