@bopen-io/wallet-toolbox 2.1.21-parity-fix.2 → 2.6.2-brc153.2

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 (1207) hide show
  1. package/CHANGELOG.md +232 -6
  2. package/LICENSE.txt +58 -0
  3. package/README.md +236 -47
  4. package/docs/README.md +3 -1
  5. package/docs/action-batch-planning.md +220 -0
  6. package/docs/authentication-observability.md +106 -0
  7. package/docs/client.md +55 -14
  8. package/docs/managed-change-policy.md +79 -0
  9. package/docs/monitor.md +3 -2
  10. package/docs/setup.md +24 -4
  11. package/docs/storage.md +16 -6
  12. package/docs/wallet.md +55 -14
  13. package/out/src/CWIStyleWalletManager.d.ts +122 -12
  14. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  15. package/out/src/CWIStyleWalletManager.js +1006 -461
  16. package/out/src/CWIStyleWalletManager.js.map +1 -1
  17. package/out/src/Setup.d.ts +13 -6
  18. package/out/src/Setup.d.ts.map +1 -1
  19. package/out/src/Setup.js +15 -16
  20. package/out/src/Setup.js.map +1 -1
  21. package/out/src/SetupClient.d.ts +8 -6
  22. package/out/src/SetupClient.d.ts.map +1 -1
  23. package/out/src/SetupClient.js +11 -12
  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 +5 -5
  28. package/out/src/ShamirWalletManager.d.ts.map +1 -1
  29. package/out/src/ShamirWalletManager.js +16 -9
  30. package/out/src/ShamirWalletManager.js.map +1 -1
  31. package/out/src/SimpleWalletManager.d.ts +12 -2
  32. package/out/src/SimpleWalletManager.d.ts.map +1 -1
  33. package/out/src/SimpleWalletManager.js +73 -31
  34. package/out/src/SimpleWalletManager.js.map +1 -1
  35. package/out/src/Wallet.d.ts +88 -14
  36. package/out/src/Wallet.d.ts.map +1 -1
  37. package/out/src/Wallet.js +410 -249
  38. package/out/src/Wallet.js.map +1 -1
  39. package/out/src/WalletAuthenticationManager.d.ts +31 -7
  40. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  41. package/out/src/WalletAuthenticationManager.js +219 -35
  42. package/out/src/WalletAuthenticationManager.js.map +1 -1
  43. package/out/src/WalletLogger.d.ts.map +1 -1
  44. package/out/src/WalletLogger.js +45 -32
  45. package/out/src/WalletLogger.js.map +1 -1
  46. package/out/src/WalletPermissionsManager.d.ts +163 -19
  47. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  48. package/out/src/WalletPermissionsManager.js +1232 -1180
  49. package/out/src/WalletPermissionsManager.js.map +1 -1
  50. package/out/src/WalletSettingsManager.d.ts +2 -2
  51. package/out/src/WalletSettingsManager.d.ts.map +1 -1
  52. package/out/src/WalletSettingsManager.js +3 -0
  53. package/out/src/WalletSettingsManager.js.map +1 -1
  54. package/out/src/entropy/EntropyCollector.d.ts +1 -1
  55. package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
  56. package/out/src/entropy/EntropyCollector.js +18 -20
  57. package/out/src/entropy/EntropyCollector.js.map +1 -1
  58. package/out/src/fundWalletP2PKH.d.ts +2 -2
  59. package/out/src/fundWalletP2PKH.d.ts.map +1 -1
  60. package/out/src/fundWalletP2PKH.js +15 -15
  61. package/out/src/fundWalletP2PKH.js.map +1 -1
  62. package/out/src/index.all.d.ts +2 -0
  63. package/out/src/index.all.d.ts.map +1 -1
  64. package/out/src/index.all.js +2 -0
  65. package/out/src/index.all.js.map +1 -1
  66. package/out/src/index.client.d.ts +2 -0
  67. package/out/src/index.client.d.ts.map +1 -1
  68. package/out/src/index.client.js +2 -0
  69. package/out/src/index.client.js.map +1 -1
  70. package/out/src/index.mobile.d.ts +3 -0
  71. package/out/src/index.mobile.d.ts.map +1 -1
  72. package/out/src/index.mobile.js +3 -0
  73. package/out/src/index.mobile.js.map +1 -1
  74. package/out/src/mockchain/MockChainMigrations.d.ts +3 -3
  75. package/out/src/mockchain/MockChainMigrations.d.ts.map +1 -1
  76. package/out/src/mockchain/MockChainMigrations.js +1 -1
  77. package/out/src/mockchain/MockChainMigrations.js.map +1 -1
  78. package/out/src/mockchain/MockChainStorage.d.ts.map +1 -1
  79. package/out/src/mockchain/MockChainStorage.js +9 -8
  80. package/out/src/mockchain/MockChainStorage.js.map +1 -1
  81. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
  82. package/out/src/mockchain/MockChainTracker.js +12 -10
  83. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  84. package/out/src/mockchain/MockMiner.d.ts.map +1 -1
  85. package/out/src/mockchain/MockMiner.js +5 -5
  86. package/out/src/mockchain/MockMiner.js.map +1 -1
  87. package/out/src/mockchain/MockServices.d.ts +13 -0
  88. package/out/src/mockchain/MockServices.d.ts.map +1 -1
  89. package/out/src/mockchain/MockServices.js +232 -283
  90. package/out/src/mockchain/MockServices.js.map +1 -1
  91. package/out/src/mockchain/merkleTree.d.ts.map +1 -1
  92. package/out/src/mockchain/merkleTree.js +61 -57
  93. package/out/src/mockchain/merkleTree.js.map +1 -1
  94. package/out/src/monitor/Monitor.d.ts +24 -4
  95. package/out/src/monitor/Monitor.d.ts.map +1 -1
  96. package/out/src/monitor/Monitor.js +158 -148
  97. package/out/src/monitor/Monitor.js.map +1 -1
  98. package/out/src/monitor/MonitorDaemon.d.ts +5 -2
  99. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  100. package/out/src/monitor/MonitorDaemon.js +79 -69
  101. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  102. package/out/src/monitor/index.all.js.map +1 -1
  103. package/out/src/monitor/tasks/TaskArcSSE.d.ts +12 -5
  104. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  105. package/out/src/monitor/tasks/TaskArcSSE.js +143 -135
  106. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  107. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +6 -4
  108. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  109. package/out/src/monitor/tasks/TaskCheckForProofs.js +141 -129
  110. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  111. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +63 -3
  112. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  113. package/out/src/monitor/tasks/TaskCheckNoSends.js +103 -13
  114. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  115. package/out/src/monitor/tasks/TaskCleanupActionBatches.d.ts +13 -0
  116. package/out/src/monitor/tasks/TaskCleanupActionBatches.d.ts.map +1 -0
  117. package/out/src/monitor/tasks/TaskCleanupActionBatches.js +24 -0
  118. package/out/src/monitor/tasks/TaskCleanupActionBatches.js.map +1 -0
  119. package/out/src/monitor/tasks/TaskClock.d.ts +2 -2
  120. package/out/src/monitor/tasks/TaskClock.d.ts.map +1 -1
  121. package/out/src/monitor/tasks/TaskClock.js +4 -3
  122. package/out/src/monitor/tasks/TaskClock.js.map +1 -1
  123. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts +1 -1
  124. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  125. package/out/src/monitor/tasks/TaskFailAbandoned.js +2 -1
  126. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  127. package/out/src/monitor/tasks/TaskMineBlock.d.ts +4 -2
  128. package/out/src/monitor/tasks/TaskMineBlock.d.ts.map +1 -1
  129. package/out/src/monitor/tasks/TaskMineBlock.js +5 -2
  130. package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -1
  131. package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts +1 -1
  132. package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts.map +1 -1
  133. package/out/src/monitor/tasks/TaskMonitorCallHistory.js +3 -2
  134. package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
  135. package/out/src/monitor/tasks/TaskNewHeader.d.ts +5 -4
  136. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  137. package/out/src/monitor/tasks/TaskNewHeader.js +22 -8
  138. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  139. package/out/src/monitor/tasks/TaskPurge.d.ts +4 -2
  140. package/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -1
  141. package/out/src/monitor/tasks/TaskPurge.js +9 -5
  142. package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
  143. package/out/src/monitor/tasks/TaskReorg.d.ts +1 -1
  144. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  145. package/out/src/monitor/tasks/TaskReorg.js +6 -4
  146. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  147. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts +4 -2
  148. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
  149. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +22 -17
  150. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  151. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +4 -2
  152. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
  153. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +12 -5
  154. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  155. package/out/src/monitor/tasks/TaskReviewStatus.d.ts +4 -2
  156. package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
  157. package/out/src/monitor/tasks/TaskReviewStatus.js +16 -7
  158. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
  159. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +4 -2
  160. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
  161. package/out/src/monitor/tasks/TaskReviewUtxos.js +8 -2
  162. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  163. package/out/src/monitor/tasks/TaskSendWaiting.d.ts +4 -1
  164. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  165. package/out/src/monitor/tasks/TaskSendWaiting.js +63 -50
  166. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  167. package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts +2 -2
  168. package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts.map +1 -1
  169. package/out/src/monitor/tasks/TaskSyncWhenIdle.js +4 -6
  170. package/out/src/monitor/tasks/TaskSyncWhenIdle.js.map +1 -1
  171. package/out/src/monitor/tasks/TaskUnFail.d.ts +4 -2
  172. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  173. package/out/src/monitor/tasks/TaskUnFail.js +13 -67
  174. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  175. package/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +1 -1
  176. package/out/src/monitor/tasks/WalletMonitorTask.js +10 -5
  177. package/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -1
  178. package/out/src/monitor/tasks/index.all.d.ts +1 -0
  179. package/out/src/monitor/tasks/index.all.d.ts.map +1 -1
  180. package/out/src/monitor/tasks/index.all.js +1 -0
  181. package/out/src/monitor/tasks/index.all.js.map +1 -1
  182. package/out/src/sdk/ActionBatch.interfaces.d.ts +159 -0
  183. package/out/src/sdk/ActionBatch.interfaces.d.ts.map +1 -0
  184. package/out/src/sdk/ActionBatch.interfaces.js +3 -0
  185. package/out/src/sdk/ActionBatch.interfaces.js.map +1 -0
  186. package/out/src/sdk/CertOpsWallet.d.ts +3 -3
  187. package/out/src/sdk/CertOpsWallet.d.ts.map +1 -1
  188. package/out/src/sdk/PrivilegedKeyManager.d.ts +3 -3
  189. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  190. package/out/src/sdk/PrivilegedKeyManager.js +75 -50
  191. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  192. package/out/src/sdk/WERR_errors.d.ts +3 -3
  193. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  194. package/out/src/sdk/WERR_errors.js +29 -14
  195. package/out/src/sdk/WERR_errors.js.map +1 -1
  196. package/out/src/sdk/WalletError.d.ts +4 -1
  197. package/out/src/sdk/WalletError.d.ts.map +1 -1
  198. package/out/src/sdk/WalletError.js +63 -58
  199. package/out/src/sdk/WalletError.js.map +1 -1
  200. package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
  201. package/out/src/sdk/WalletErrorFromJson.js +1 -3
  202. package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
  203. package/out/src/sdk/WalletServices.interfaces.d.ts +45 -20
  204. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  205. package/out/src/sdk/WalletStorage.interfaces.d.ts +92 -64
  206. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  207. package/out/src/sdk/index.d.ts +1 -0
  208. package/out/src/sdk/index.d.ts.map +1 -1
  209. package/out/src/sdk/index.js +1 -0
  210. package/out/src/sdk/index.js.map +1 -1
  211. package/out/src/sdk/types.d.ts +14 -5
  212. package/out/src/sdk/types.d.ts.map +1 -1
  213. package/out/src/sdk/types.js +13 -4
  214. package/out/src/sdk/types.js.map +1 -1
  215. package/out/src/services/ServiceCollection.d.ts +6 -6
  216. package/out/src/services/ServiceCollection.d.ts.map +1 -1
  217. package/out/src/services/ServiceCollection.js +14 -9
  218. package/out/src/services/ServiceCollection.js.map +1 -1
  219. package/out/src/services/Services.d.ts +16 -2
  220. package/out/src/services/Services.d.ts.map +1 -1
  221. package/out/src/services/Services.js +320 -241
  222. package/out/src/services/Services.js.map +1 -1
  223. package/out/src/services/chaintracker/BHServiceClient.d.ts +7 -7
  224. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
  225. package/out/src/services/chaintracker/BHServiceClient.js +22 -16
  226. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  227. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +5 -1
  228. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  229. package/out/src/services/chaintracker/ChaintracksChainTracker.js +61 -19
  230. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  231. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts +8 -6
  232. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
  233. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +1 -1
  234. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
  235. package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts +1 -1
  236. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts.map +1 -1
  237. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +11 -0
  238. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
  239. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +29 -10
  240. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  241. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +369 -259
  242. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  243. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +6 -1
  244. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
  245. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +39 -44
  246. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  247. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +3 -3
  248. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  249. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +24 -15
  250. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  251. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +64 -0
  252. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -0
  253. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +318 -0
  254. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -0
  255. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  256. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +9 -2
  257. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  258. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts +1 -2
  259. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
  260. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +10 -3
  261. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  262. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
  263. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
  264. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.d.ts +27 -0
  265. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.d.ts.map +1 -0
  266. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js +64 -0
  267. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js.map +1 -0
  268. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  269. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +6 -5
  270. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  271. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
  272. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +3 -1
  273. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
  274. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  275. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +4 -2
  276. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  277. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +24 -0
  278. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -0
  279. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +68 -0
  280. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -0
  281. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts +2 -2
  282. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
  283. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +3 -10
  284. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
  285. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +13 -0
  286. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
  287. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +50 -10
  288. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  289. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
  290. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +4 -3
  291. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
  292. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +14 -4
  293. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  294. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +120 -143
  295. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  296. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +22 -8
  297. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
  298. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +106 -54
  299. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  300. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  301. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +12 -17
  302. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  303. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts +3 -3
  304. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
  305. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +15 -14
  306. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  307. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +3 -0
  308. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  309. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +85 -66
  310. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  311. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +4 -0
  312. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  313. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +128 -101
  314. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  315. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +6 -2
  316. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
  317. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +170 -158
  318. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  319. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageMemory.d.ts.map +1 -1
  320. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageMemory.js +0 -21
  321. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageMemory.js.map +1 -1
  322. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +9 -2
  323. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  324. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +142 -92
  325. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  326. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +58 -0
  327. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
  328. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +143 -28
  329. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
  330. package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.d.ts +18 -0
  331. package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.d.ts.map +1 -0
  332. package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.js +24 -0
  333. package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.js.map +1 -0
  334. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts +2 -3
  335. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
  336. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +4 -22
  337. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  338. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts +2 -4
  339. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
  340. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js +14 -29
  341. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  342. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +2 -3
  343. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  344. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +4 -22
  345. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  346. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +2 -1
  347. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  348. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +3 -15
  349. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  350. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts +2 -2
  351. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
  352. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +3 -15
  353. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
  354. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts +2 -1
  355. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
  356. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +3 -15
  357. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  358. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +6 -1
  359. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
  360. package/out/src/services/chaintracker/chaintracks/index.mobile.js +5 -0
  361. package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
  362. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +8 -1
  363. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  364. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +282 -252
  365. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  366. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
  367. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +12 -7
  368. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  369. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  370. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +53 -29
  371. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  372. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +5 -5
  373. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  374. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +34 -11
  375. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  376. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +8 -1
  377. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  378. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +54 -13
  379. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  380. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +10 -12
  381. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
  382. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +30 -34
  383. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
  384. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  385. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +28 -18
  386. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  387. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +2 -2
  388. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
  389. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +4 -6
  390. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  391. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +2 -12
  392. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  393. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +72 -63
  394. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  395. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +1 -1
  396. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js +4 -2
  397. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +1 -1
  398. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  399. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +9 -10
  400. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  401. package/out/src/services/createDefaultWalletServicesOptions.d.ts +33 -1
  402. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  403. package/out/src/services/createDefaultWalletServicesOptions.js +94 -15
  404. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  405. package/out/src/services/networkConfig.d.ts +18 -0
  406. package/out/src/services/networkConfig.d.ts.map +1 -0
  407. package/out/src/services/networkConfig.js +92 -0
  408. package/out/src/services/networkConfig.js.map +1 -0
  409. package/out/src/services/providers/ARC.d.ts +8 -0
  410. package/out/src/services/providers/ARC.d.ts.map +1 -1
  411. package/out/src/services/providers/ARC.js +167 -92
  412. package/out/src/services/providers/ARC.js.map +1 -1
  413. package/out/src/services/providers/ArcSSEClient.d.ts +1 -0
  414. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  415. package/out/src/services/providers/ArcSSEClient.js +21 -17
  416. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  417. package/out/src/services/providers/Arcade.d.ts +77 -0
  418. package/out/src/services/providers/Arcade.d.ts.map +1 -0
  419. package/out/src/services/providers/Arcade.js +356 -0
  420. package/out/src/services/providers/Arcade.js.map +1 -0
  421. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  422. package/out/src/services/providers/Bitails.js +128 -103
  423. package/out/src/services/providers/Bitails.js.map +1 -1
  424. package/out/src/services/providers/SdkWhatsOnChain.d.ts +1 -1
  425. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  426. package/out/src/services/providers/SdkWhatsOnChain.js +18 -3
  427. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  428. package/out/src/services/providers/WhatsOnChain.d.ts +10 -2
  429. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  430. package/out/src/services/providers/WhatsOnChain.js +145 -236
  431. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  432. package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
  433. package/out/src/services/providers/exchangeRates.js +4 -4
  434. package/out/src/services/providers/exchangeRates.js.map +1 -1
  435. package/out/src/services/providers/getBeefForTxid.d.ts +1 -1
  436. package/out/src/services/providers/getBeefForTxid.d.ts.map +1 -1
  437. package/out/src/services/providers/getBeefForTxid.js +2 -1
  438. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  439. package/out/src/services/providers/whatsOnChainHelpers.d.ts +68 -0
  440. package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +1 -0
  441. package/out/src/services/providers/whatsOnChainHelpers.js +147 -0
  442. package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -0
  443. package/out/src/signer/WalletSigner.d.ts.map +1 -1
  444. package/out/src/signer/WalletSigner.js +4 -1
  445. package/out/src/signer/WalletSigner.js.map +1 -1
  446. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +29 -0
  447. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -0
  448. package/out/src/signer/actionBatch/ActionBatchPlanner.js +346 -0
  449. package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -0
  450. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +33 -0
  451. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -0
  452. package/out/src/signer/actionBatch/ActionBatchWorkspace.js +869 -0
  453. package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -0
  454. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +11 -0
  455. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -0
  456. package/out/src/signer/actionBatch/actionBatchBootstrap.js +38 -0
  457. package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -0
  458. package/out/src/signer/methods/acquireDirectCertificate.js +2 -3
  459. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  460. package/out/src/signer/methods/buildSignableTransaction.d.ts +54 -0
  461. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  462. package/out/src/signer/methods/buildSignableTransaction.js +215 -100
  463. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  464. package/out/src/signer/methods/completeSignedTransaction.d.ts +3 -7
  465. package/out/src/signer/methods/completeSignedTransaction.d.ts.map +1 -1
  466. package/out/src/signer/methods/completeSignedTransaction.js +78 -80
  467. package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
  468. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  469. package/out/src/signer/methods/createAction.js +81 -41
  470. package/out/src/signer/methods/createAction.js.map +1 -1
  471. package/out/src/signer/methods/internalizeAction.d.ts +16 -5
  472. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  473. package/out/src/signer/methods/internalizeAction.js +34 -18
  474. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  475. package/out/src/signer/methods/proveCertificate.js +1 -1
  476. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  477. package/out/src/signer/methods/resultBeef.d.ts +4 -0
  478. package/out/src/signer/methods/resultBeef.d.ts.map +1 -0
  479. package/out/src/signer/methods/resultBeef.js +12 -0
  480. package/out/src/signer/methods/resultBeef.js.map +1 -0
  481. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  482. package/out/src/signer/methods/signAction.js +42 -15
  483. package/out/src/signer/methods/signAction.js.map +1 -1
  484. package/out/src/signer/methods/verifyUnlockScripts.d.ts +17 -0
  485. package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -0
  486. package/out/src/signer/methods/verifyUnlockScripts.js +373 -0
  487. package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -0
  488. package/out/src/storage/StorageIdb.d.ts +51 -6
  489. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  490. package/out/src/storage/StorageIdb.js +929 -1324
  491. package/out/src/storage/StorageIdb.js.map +1 -1
  492. package/out/src/storage/StorageKnex.d.ts +51 -3
  493. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  494. package/out/src/storage/StorageKnex.js +751 -314
  495. package/out/src/storage/StorageKnex.js.map +1 -1
  496. package/out/src/storage/StorageProvider.d.ts +117 -2
  497. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  498. package/out/src/storage/StorageProvider.js +735 -254
  499. package/out/src/storage/StorageProvider.js.map +1 -1
  500. package/out/src/storage/StorageReader.d.ts +13 -5
  501. package/out/src/storage/StorageReader.d.ts.map +1 -1
  502. package/out/src/storage/StorageReader.js +21 -15
  503. package/out/src/storage/StorageReader.js.map +1 -1
  504. package/out/src/storage/StorageReaderWriter.d.ts +0 -1
  505. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  506. package/out/src/storage/StorageReaderWriter.js +32 -35
  507. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  508. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  509. package/out/src/storage/StorageSyncReader.js +6 -4
  510. package/out/src/storage/StorageSyncReader.js.map +1 -1
  511. package/out/src/storage/WalletStorageManager.d.ts +13 -0
  512. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  513. package/out/src/storage/WalletStorageManager.js +179 -103
  514. package/out/src/storage/WalletStorageManager.js.map +1 -1
  515. package/out/src/storage/adminServer/adminServer.d.ts +80 -1
  516. package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
  517. package/out/src/storage/adminServer/adminServer.js +90 -72
  518. package/out/src/storage/adminServer/adminServer.js.map +1 -1
  519. package/out/src/storage/adminServer/adminUi.d.ts.map +1 -1
  520. package/out/src/storage/adminServer/adminUi.js.map +1 -1
  521. package/out/src/storage/idbHelpers.d.ts +44 -0
  522. package/out/src/storage/idbHelpers.d.ts.map +1 -0
  523. package/out/src/storage/idbHelpers.js +395 -0
  524. package/out/src/storage/idbHelpers.js.map +1 -0
  525. package/out/src/storage/index.all.d.ts +6 -0
  526. package/out/src/storage/index.all.d.ts.map +1 -1
  527. package/out/src/storage/index.all.js +6 -0
  528. package/out/src/storage/index.all.js.map +1 -1
  529. package/out/src/storage/index.client.d.ts +4 -0
  530. package/out/src/storage/index.client.d.ts.map +1 -1
  531. package/out/src/storage/index.client.js +4 -0
  532. package/out/src/storage/index.client.js.map +1 -1
  533. package/out/src/storage/index.mobile.d.ts +3 -0
  534. package/out/src/storage/index.mobile.d.ts.map +1 -1
  535. package/out/src/storage/index.mobile.js +3 -0
  536. package/out/src/storage/index.mobile.js.map +1 -1
  537. package/out/src/storage/methods/ListActionsSpecOp.d.ts +6 -1
  538. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  539. package/out/src/storage/methods/ListActionsSpecOp.js +75 -9
  540. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  541. package/out/src/storage/methods/ListOutputsSpecOp.d.ts +2 -0
  542. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  543. package/out/src/storage/methods/ListOutputsSpecOp.js +43 -29
  544. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  545. package/out/src/storage/methods/actionBatch.d.ts +15 -0
  546. package/out/src/storage/methods/actionBatch.d.ts.map +1 -0
  547. package/out/src/storage/methods/actionBatch.js +725 -0
  548. package/out/src/storage/methods/actionBatch.js.map +1 -0
  549. package/out/src/storage/methods/actionBatchBlobs.d.ts +15 -0
  550. package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -0
  551. package/out/src/storage/methods/actionBatchBlobs.js +184 -0
  552. package/out/src/storage/methods/actionBatchBlobs.js.map +1 -0
  553. package/out/src/storage/methods/actionBatchValidation.d.ts +17 -0
  554. package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -0
  555. package/out/src/storage/methods/actionBatchValidation.js +416 -0
  556. package/out/src/storage/methods/actionBatchValidation.js.map +1 -0
  557. package/out/src/storage/methods/actionPlanning.d.ts +26 -0
  558. package/out/src/storage/methods/actionPlanning.d.ts.map +1 -0
  559. package/out/src/storage/methods/actionPlanning.js +103 -0
  560. package/out/src/storage/methods/actionPlanning.js.map +1 -0
  561. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +63 -1
  562. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  563. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +245 -92
  564. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  565. package/out/src/storage/methods/availableManagedChange.d.ts +11 -0
  566. package/out/src/storage/methods/availableManagedChange.d.ts.map +1 -0
  567. package/out/src/storage/methods/availableManagedChange.js +25 -0
  568. package/out/src/storage/methods/availableManagedChange.js.map +1 -0
  569. package/out/src/storage/methods/createAction.d.ts +1 -1
  570. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  571. package/out/src/storage/methods/createAction.js +783 -416
  572. package/out/src/storage/methods/createAction.js.map +1 -1
  573. package/out/src/storage/methods/generateChange.d.ts +2 -2
  574. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  575. package/out/src/storage/methods/generateChange.js +188 -127
  576. package/out/src/storage/methods/generateChange.js.map +1 -1
  577. package/out/src/storage/methods/getBeefForTransaction.d.ts +7 -0
  578. package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
  579. package/out/src/storage/methods/getBeefForTransaction.js +291 -63
  580. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  581. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
  582. package/out/src/storage/methods/getSyncChunk.js +11 -8
  583. package/out/src/storage/methods/getSyncChunk.js.map +1 -1
  584. package/out/src/storage/methods/internalizeAction.d.ts +77 -6
  585. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  586. package/out/src/storage/methods/internalizeAction.js +372 -139
  587. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  588. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  589. package/out/src/storage/methods/listActionsIdb.js +87 -110
  590. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  591. package/out/src/storage/methods/listActionsKnex.d.ts +1 -1
  592. package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
  593. package/out/src/storage/methods/listActionsKnex.js +97 -118
  594. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  595. package/out/src/storage/methods/listCertificates.d.ts +2 -2
  596. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  597. package/out/src/storage/methods/listCertificates.js +8 -8
  598. package/out/src/storage/methods/listCertificates.js.map +1 -1
  599. package/out/src/storage/methods/listOutputsIdb.d.ts +1 -1
  600. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  601. package/out/src/storage/methods/listOutputsIdb.js +144 -150
  602. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  603. package/out/src/storage/methods/listOutputsKnex.d.ts +2 -2
  604. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
  605. package/out/src/storage/methods/listOutputsKnex.js +217 -246
  606. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  607. package/out/src/storage/methods/managedChange.d.ts +26 -0
  608. package/out/src/storage/methods/managedChange.d.ts.map +1 -0
  609. package/out/src/storage/methods/managedChange.js +42 -0
  610. package/out/src/storage/methods/managedChange.js.map +1 -0
  611. package/out/src/storage/methods/offsetKey.d.ts +1 -1
  612. package/out/src/storage/methods/offsetKey.d.ts.map +1 -1
  613. package/out/src/storage/methods/offsetKey.js +3 -6
  614. package/out/src/storage/methods/offsetKey.js.map +1 -1
  615. package/out/src/storage/methods/processAction.d.ts +2 -11
  616. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  617. package/out/src/storage/methods/processAction.js +173 -106
  618. package/out/src/storage/methods/processAction.js.map +1 -1
  619. package/out/src/storage/methods/purgeData.d.ts +1 -1
  620. package/out/src/storage/methods/purgeData.d.ts.map +1 -1
  621. package/out/src/storage/methods/purgeData.js +169 -172
  622. package/out/src/storage/methods/purgeData.js.map +1 -1
  623. package/out/src/storage/methods/purgeDataIdb.d.ts +1 -1
  624. package/out/src/storage/methods/purgeDataIdb.d.ts.map +1 -1
  625. package/out/src/storage/methods/purgeDataIdb.js +2 -2
  626. package/out/src/storage/methods/purgeDataIdb.js.map +1 -1
  627. package/out/src/storage/methods/reviewStatus.d.ts +4 -3
  628. package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
  629. package/out/src/storage/methods/reviewStatus.js +54 -14
  630. package/out/src/storage/methods/reviewStatus.js.map +1 -1
  631. package/out/src/storage/methods/reviewStatusIdb.d.ts +3 -3
  632. package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
  633. package/out/src/storage/methods/reviewStatusIdb.js +54 -13
  634. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  635. package/out/src/storage/methods/utils.Buffer.d.ts.map +1 -1
  636. package/out/src/storage/methods/utils.Buffer.js.map +1 -1
  637. package/out/src/storage/methods/utils.d.ts.map +1 -1
  638. package/out/src/storage/methods/utils.js +7 -1
  639. package/out/src/storage/methods/utils.js.map +1 -1
  640. package/out/src/storage/portable/index.d.ts +55 -0
  641. package/out/src/storage/portable/index.d.ts.map +1 -0
  642. package/out/src/storage/portable/index.js +872 -0
  643. package/out/src/storage/portable/index.js.map +1 -0
  644. package/out/src/storage/remoting/BinaryJson.d.ts +10 -0
  645. package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -0
  646. package/out/src/storage/remoting/BinaryJson.js +218 -0
  647. package/out/src/storage/remoting/BinaryJson.js.map +1 -0
  648. package/out/src/storage/remoting/KnexPaymentReplayStore.d.ts +12 -0
  649. package/out/src/storage/remoting/KnexPaymentReplayStore.d.ts.map +1 -0
  650. package/out/src/storage/remoting/KnexPaymentReplayStore.js +46 -0
  651. package/out/src/storage/remoting/KnexPaymentReplayStore.js.map +1 -0
  652. package/out/src/storage/remoting/KnexSessionManager.d.ts +57 -0
  653. package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -0
  654. package/out/src/storage/remoting/KnexSessionManager.js +256 -0
  655. package/out/src/storage/remoting/KnexSessionManager.js.map +1 -0
  656. package/out/src/storage/remoting/RateLimitPolicy.d.ts +10 -0
  657. package/out/src/storage/remoting/RateLimitPolicy.d.ts.map +1 -0
  658. package/out/src/storage/remoting/RateLimitPolicy.js +37 -0
  659. package/out/src/storage/remoting/RateLimitPolicy.js.map +1 -0
  660. package/out/src/storage/remoting/StorageClient.d.ts +7 -271
  661. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  662. package/out/src/storage/remoting/StorageClient.js +87 -458
  663. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  664. package/out/src/storage/remoting/StorageClientBase.d.ts +318 -0
  665. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -0
  666. package/out/src/storage/remoting/StorageClientBase.js +474 -0
  667. package/out/src/storage/remoting/StorageClientBase.js.map +1 -0
  668. package/out/src/storage/remoting/StorageMobile.d.ts +8 -276
  669. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  670. package/out/src/storage/remoting/StorageMobile.js +43 -435
  671. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  672. package/out/src/storage/remoting/StorageServer.d.ts +106 -9
  673. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  674. package/out/src/storage/remoting/StorageServer.js +628 -225
  675. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  676. package/out/src/storage/remoting/edgePolicy.d.ts +84 -0
  677. package/out/src/storage/remoting/edgePolicy.d.ts.map +1 -0
  678. package/out/src/storage/remoting/edgePolicy.js +570 -0
  679. package/out/src/storage/remoting/edgePolicy.js.map +1 -0
  680. package/out/src/storage/remoting/entityValidationHelpers.d.ts +29 -0
  681. package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +1 -0
  682. package/out/src/storage/remoting/entityValidationHelpers.js +108 -0
  683. package/out/src/storage/remoting/entityValidationHelpers.js.map +1 -0
  684. package/out/src/storage/schema/KnexMigrations.d.ts +7 -3
  685. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  686. package/out/src/storage/schema/KnexMigrations.js +173 -11
  687. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  688. package/out/src/storage/schema/StorageIdbSchema.d.ts +27 -1
  689. package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
  690. package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -1
  691. package/out/src/storage/schema/entities/EntityBase.js +1 -0
  692. package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
  693. package/out/src/storage/schema/entities/EntityCertificate.d.ts.map +1 -1
  694. package/out/src/storage/schema/entities/EntityCertificate.js +5 -4
  695. package/out/src/storage/schema/entities/EntityCertificate.js.map +1 -1
  696. package/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +1 -1
  697. package/out/src/storage/schema/entities/EntityCertificateField.js +5 -7
  698. package/out/src/storage/schema/entities/EntityCertificateField.js.map +1 -1
  699. package/out/src/storage/schema/entities/EntityCommission.d.ts.map +1 -1
  700. package/out/src/storage/schema/entities/EntityCommission.js +6 -8
  701. package/out/src/storage/schema/entities/EntityCommission.js.map +1 -1
  702. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
  703. package/out/src/storage/schema/entities/EntityOutput.js +21 -24
  704. package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
  705. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -1
  706. package/out/src/storage/schema/entities/EntityOutputBasket.js +7 -7
  707. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
  708. package/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +1 -1
  709. package/out/src/storage/schema/entities/EntityOutputTag.js +2 -2
  710. package/out/src/storage/schema/entities/EntityOutputTag.js.map +1 -1
  711. package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +1 -1
  712. package/out/src/storage/schema/entities/EntityOutputTagMap.js +4 -6
  713. package/out/src/storage/schema/entities/EntityOutputTagMap.js.map +1 -1
  714. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +8 -4
  715. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
  716. package/out/src/storage/schema/entities/EntityProvenTx.js +77 -64
  717. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  718. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +11 -2
  719. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +1 -1
  720. package/out/src/storage/schema/entities/EntityProvenTxReq.js +122 -74
  721. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  722. package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
  723. package/out/src/storage/schema/entities/EntitySyncState.js +40 -45
  724. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  725. package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
  726. package/out/src/storage/schema/entities/EntityTransaction.js +30 -31
  727. package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
  728. package/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +1 -1
  729. package/out/src/storage/schema/entities/EntityTxLabel.js +2 -2
  730. package/out/src/storage/schema/entities/EntityTxLabel.js.map +1 -1
  731. package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +1 -1
  732. package/out/src/storage/schema/entities/EntityTxLabelMap.js +4 -6
  733. package/out/src/storage/schema/entities/EntityTxLabelMap.js.map +1 -1
  734. package/out/src/storage/schema/entities/EntityUser.d.ts.map +1 -1
  735. package/out/src/storage/schema/entities/EntityUser.js +3 -3
  736. package/out/src/storage/schema/entities/EntityUser.js.map +1 -1
  737. package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -1
  738. package/out/src/storage/schema/entities/MergeEntity.js +17 -18
  739. package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
  740. package/out/src/storage/schema/tables/TableActionBatch.d.ts +26 -0
  741. package/out/src/storage/schema/tables/TableActionBatch.d.ts.map +1 -0
  742. package/out/src/storage/schema/tables/TableActionBatch.js +3 -0
  743. package/out/src/storage/schema/tables/TableActionBatch.js.map +1 -0
  744. package/out/src/storage/schema/tables/TableAuthSession.d.ts +20 -0
  745. package/out/src/storage/schema/tables/TableAuthSession.d.ts.map +1 -0
  746. package/out/src/storage/schema/tables/TableAuthSession.js +15 -0
  747. package/out/src/storage/schema/tables/TableAuthSession.js.map +1 -0
  748. package/out/src/storage/schema/tables/TableCertificate.d.ts +2 -1
  749. package/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -1
  750. package/out/src/storage/schema/tables/TableCertificateField.d.ts +1 -1
  751. package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -1
  752. package/out/src/storage/schema/tables/TableCommission.d.ts +1 -1
  753. package/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -1
  754. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +1 -1
  755. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -1
  756. package/out/src/storage/schema/tables/TableOutput.d.ts +3 -2
  757. package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
  758. package/out/src/storage/schema/tables/TableOutput.js +1 -1
  759. package/out/src/storage/schema/tables/TableOutput.js.map +1 -1
  760. package/out/src/storage/schema/tables/TableOutputBasket.d.ts +1 -1
  761. package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -1
  762. package/out/src/storage/schema/tables/TableOutputTag.d.ts +1 -1
  763. package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -1
  764. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +1 -1
  765. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -1
  766. package/out/src/storage/schema/tables/TableProvenTx.d.ts +1 -1
  767. package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -1
  768. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +24 -1
  769. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -1
  770. package/out/src/storage/schema/tables/TableSettings.d.ts +1 -1
  771. package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
  772. package/out/src/storage/schema/tables/TableSyncState.d.ts +1 -1
  773. package/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -1
  774. package/out/src/storage/schema/tables/TableTransaction.d.ts +1 -1
  775. package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
  776. package/out/src/storage/schema/tables/TableTxLabel.d.ts +1 -1
  777. package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -1
  778. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +1 -1
  779. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -1
  780. package/out/src/storage/schema/tables/TableUser.d.ts +1 -1
  781. package/out/src/storage/schema/tables/TableUser.d.ts.map +1 -1
  782. package/out/src/storage/schema/tables/index.d.ts +2 -0
  783. package/out/src/storage/schema/tables/index.d.ts.map +1 -1
  784. package/out/src/storage/schema/tables/index.js +2 -0
  785. package/out/src/storage/schema/tables/index.js.map +1 -1
  786. package/out/src/storage/storageProviderHelpers.d.ts +35 -0
  787. package/out/src/storage/storageProviderHelpers.d.ts.map +1 -0
  788. package/out/src/storage/storageProviderHelpers.js +106 -0
  789. package/out/src/storage/storageProviderHelpers.js.map +1 -0
  790. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts +4 -2
  791. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  792. package/out/src/storage/sync/StorageMySQLDojoReader.js +65 -46
  793. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  794. package/out/src/utility/Format.d.ts.map +1 -1
  795. package/out/src/utility/Format.js +15 -49
  796. package/out/src/utility/Format.js.map +1 -1
  797. package/out/src/utility/ScriptTemplateBRC29.d.ts +3 -2
  798. package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
  799. package/out/src/utility/ScriptTemplateBRC29.js +22 -11
  800. package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
  801. package/out/src/utility/actionBatchDigest.d.ts +9 -0
  802. package/out/src/utility/actionBatchDigest.d.ts.map +1 -0
  803. package/out/src/utility/actionBatchDigest.js +86 -0
  804. package/out/src/utility/actionBatchDigest.js.map +1 -0
  805. package/out/src/utility/actionBatchPack.d.ts +16 -0
  806. package/out/src/utility/actionBatchPack.d.ts.map +1 -0
  807. package/out/src/utility/actionBatchPack.js +220 -0
  808. package/out/src/utility/actionBatchPack.js.map +1 -0
  809. package/out/src/utility/aggregateResults.d.ts +1 -1
  810. package/out/src/utility/aggregateResults.d.ts.map +1 -1
  811. package/out/src/utility/aggregateResults.js +2 -2
  812. package/out/src/utility/aggregateResults.js.map +1 -1
  813. package/out/src/utility/beefForTxids.d.ts +9 -0
  814. package/out/src/utility/beefForTxids.d.ts.map +1 -0
  815. package/out/src/utility/beefForTxids.js +35 -0
  816. package/out/src/utility/beefForTxids.js.map +1 -0
  817. package/out/src/utility/brc114ActionTimeLabels.d.ts +2 -2
  818. package/out/src/utility/brc114ActionTimeLabels.d.ts.map +1 -1
  819. package/out/src/utility/brc114ActionTimeLabels.js +31 -28
  820. package/out/src/utility/brc114ActionTimeLabels.js.map +1 -1
  821. package/out/src/utility/brc153ReferenceLabels.d.ts +23 -0
  822. package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -0
  823. package/out/src/utility/brc153ReferenceLabels.js +51 -0
  824. package/out/src/utility/brc153ReferenceLabels.js.map +1 -0
  825. package/out/src/utility/formatUnknown.d.ts +6 -0
  826. package/out/src/utility/formatUnknown.d.ts.map +1 -0
  827. package/out/src/utility/formatUnknown.js +39 -0
  828. package/out/src/utility/formatUnknown.js.map +1 -0
  829. package/out/src/utility/hashWasm.d.ts +5 -0
  830. package/out/src/utility/hashWasm.d.ts.map +1 -0
  831. package/out/src/utility/hashWasm.js +15 -0
  832. package/out/src/utility/hashWasm.js.map +1 -0
  833. package/out/src/utility/identityUtils.d.ts +12 -6
  834. package/out/src/utility/identityUtils.d.ts.map +1 -1
  835. package/out/src/utility/identityUtils.js +82 -38
  836. package/out/src/utility/identityUtils.js.map +1 -1
  837. package/out/src/utility/index.all.d.ts +2 -0
  838. package/out/src/utility/index.all.d.ts.map +1 -1
  839. package/out/src/utility/index.all.js +2 -0
  840. package/out/src/utility/index.all.js.map +1 -1
  841. package/out/src/utility/index.client.d.ts +2 -0
  842. package/out/src/utility/index.client.d.ts.map +1 -1
  843. package/out/src/utility/index.client.js +2 -0
  844. package/out/src/utility/index.client.js.map +1 -1
  845. package/out/src/utility/parseTxScriptOffsets.d.ts +5 -5
  846. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
  847. package/out/src/utility/parseTxScriptOffsets.js +1 -1
  848. package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
  849. package/out/src/utility/stampLog.d.ts.map +1 -1
  850. package/out/src/utility/stampLog.js +53 -44
  851. package/out/src/utility/stampLog.js.map +1 -1
  852. package/out/src/utility/traceContext.d.ts +13 -0
  853. package/out/src/utility/traceContext.d.ts.map +1 -0
  854. package/out/src/utility/traceContext.js +34 -0
  855. package/out/src/utility/traceContext.js.map +1 -0
  856. package/out/src/utility/tscProofToMerklePath.js +1 -1
  857. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  858. package/out/src/utility/utilityHelpers.buffer.d.ts +5 -3
  859. package/out/src/utility/utilityHelpers.buffer.d.ts.map +1 -1
  860. package/out/src/utility/utilityHelpers.buffer.js +3 -3
  861. package/out/src/utility/utilityHelpers.buffer.js.map +1 -1
  862. package/out/src/utility/utilityHelpers.d.ts +3 -4
  863. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  864. package/out/src/utility/utilityHelpers.js +24 -16
  865. package/out/src/utility/utilityHelpers.js.map +1 -1
  866. package/out/src/utility/utilityHelpers.noBuffer.d.ts +7 -3
  867. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  868. package/out/src/utility/utilityHelpers.noBuffer.js +7 -8
  869. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  870. package/out/src/wab-client/WABClient.d.ts +36 -90
  871. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  872. package/out/src/wab-client/WABClient.js +103 -150
  873. package/out/src/wab-client/WABClient.js.map +1 -1
  874. package/out/src/wab-client/WABTransport.d.ts +81 -0
  875. package/out/src/wab-client/WABTransport.d.ts.map +1 -0
  876. package/out/src/wab-client/WABTransport.js +420 -0
  877. package/out/src/wab-client/WABTransport.js.map +1 -0
  878. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +10 -10
  879. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  880. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +16 -21
  881. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  882. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js +1 -4
  883. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +1 -1
  884. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +1 -4
  885. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -1
  886. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +2 -1
  887. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +1 -1
  888. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +14 -3
  889. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -1
  890. package/package.json +89 -36
  891. package/license.md +0 -28
  892. package/out/src/__tests/CWIStyleWalletManager.test.d.ts +0 -2
  893. package/out/src/__tests/CWIStyleWalletManager.test.d.ts.map +0 -1
  894. package/out/src/__tests/CWIStyleWalletManager.test.js +0 -809
  895. package/out/src/__tests/CWIStyleWalletManager.test.js.map +0 -1
  896. package/out/src/__tests/ShamirWalletManager.test.d.ts +0 -2
  897. package/out/src/__tests/ShamirWalletManager.test.d.ts.map +0 -1
  898. package/out/src/__tests/ShamirWalletManager.test.js +0 -299
  899. package/out/src/__tests/ShamirWalletManager.test.js.map +0 -1
  900. package/out/src/__tests/WalletPermissionsManager.callbacks.test.d.ts +0 -2
  901. package/out/src/__tests/WalletPermissionsManager.callbacks.test.d.ts.map +0 -1
  902. package/out/src/__tests/WalletPermissionsManager.callbacks.test.js +0 -373
  903. package/out/src/__tests/WalletPermissionsManager.callbacks.test.js.map +0 -1
  904. package/out/src/__tests/WalletPermissionsManager.checks.test.d.ts +0 -2
  905. package/out/src/__tests/WalletPermissionsManager.checks.test.d.ts.map +0 -1
  906. package/out/src/__tests/WalletPermissionsManager.checks.test.js +0 -642
  907. package/out/src/__tests/WalletPermissionsManager.checks.test.js.map +0 -1
  908. package/out/src/__tests/WalletPermissionsManager.encryption.test.d.ts +0 -2
  909. package/out/src/__tests/WalletPermissionsManager.encryption.test.d.ts.map +0 -1
  910. package/out/src/__tests/WalletPermissionsManager.encryption.test.js +0 -335
  911. package/out/src/__tests/WalletPermissionsManager.encryption.test.js.map +0 -1
  912. package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts +0 -87
  913. package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts.map +0 -1
  914. package/out/src/__tests/WalletPermissionsManager.fixtures.js +0 -290
  915. package/out/src/__tests/WalletPermissionsManager.fixtures.js.map +0 -1
  916. package/out/src/__tests/WalletPermissionsManager.flows.test.d.ts +0 -2
  917. package/out/src/__tests/WalletPermissionsManager.flows.test.d.ts.map +0 -1
  918. package/out/src/__tests/WalletPermissionsManager.flows.test.js +0 -613
  919. package/out/src/__tests/WalletPermissionsManager.flows.test.js.map +0 -1
  920. package/out/src/__tests/WalletPermissionsManager.initialization.test.d.ts +0 -2
  921. package/out/src/__tests/WalletPermissionsManager.initialization.test.d.ts.map +0 -1
  922. package/out/src/__tests/WalletPermissionsManager.initialization.test.js +0 -227
  923. package/out/src/__tests/WalletPermissionsManager.initialization.test.js.map +0 -1
  924. package/out/src/__tests/WalletPermissionsManager.pmodules.test.d.ts +0 -2
  925. package/out/src/__tests/WalletPermissionsManager.pmodules.test.d.ts.map +0 -1
  926. package/out/src/__tests/WalletPermissionsManager.pmodules.test.js +0 -735
  927. package/out/src/__tests/WalletPermissionsManager.pmodules.test.js.map +0 -1
  928. package/out/src/__tests/WalletPermissionsManager.proxying.test.d.ts +0 -2
  929. package/out/src/__tests/WalletPermissionsManager.proxying.test.d.ts.map +0 -1
  930. package/out/src/__tests/WalletPermissionsManager.proxying.test.js +0 -584
  931. package/out/src/__tests/WalletPermissionsManager.proxying.test.js.map +0 -1
  932. package/out/src/__tests/WalletPermissionsManager.tokens.test.d.ts +0 -2
  933. package/out/src/__tests/WalletPermissionsManager.tokens.test.d.ts.map +0 -1
  934. package/out/src/__tests/WalletPermissionsManager.tokens.test.js +0 -415
  935. package/out/src/__tests/WalletPermissionsManager.tokens.test.js.map +0 -1
  936. package/out/src/entropy/__tests/EntropyCollector.test.d.ts +0 -2
  937. package/out/src/entropy/__tests/EntropyCollector.test.d.ts.map +0 -1
  938. package/out/src/entropy/__tests/EntropyCollector.test.js +0 -137
  939. package/out/src/entropy/__tests/EntropyCollector.test.js.map +0 -1
  940. package/out/src/monitor/__test/MonitorDaemon.man.test.d.ts +0 -2
  941. package/out/src/monitor/__test/MonitorDaemon.man.test.d.ts.map +0 -1
  942. package/out/src/monitor/__test/MonitorDaemon.man.test.js +0 -41
  943. package/out/src/monitor/__test/MonitorDaemon.man.test.js.map +0 -1
  944. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.d.ts +0 -2
  945. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.d.ts.map +0 -1
  946. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.js +0 -257
  947. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.js.map +0 -1
  948. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.d.ts +0 -2
  949. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.d.ts.map +0 -1
  950. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.js +0 -161
  951. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.js.map +0 -1
  952. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.d.ts +0 -2
  953. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.d.ts.map +0 -1
  954. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.js +0 -214
  955. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.js.map +0 -1
  956. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.d.ts +0 -2
  957. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.d.ts.map +0 -1
  958. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.js +0 -92
  959. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.js.map +0 -1
  960. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.d.ts +0 -2
  961. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.d.ts.map +0 -1
  962. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.js +0 -139
  963. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.js.map +0 -1
  964. package/out/src/sdk/__test/CertificateLifeCycle.test.d.ts +0 -2
  965. package/out/src/sdk/__test/CertificateLifeCycle.test.d.ts.map +0 -1
  966. package/out/src/sdk/__test/CertificateLifeCycle.test.js +0 -62
  967. package/out/src/sdk/__test/CertificateLifeCycle.test.js.map +0 -1
  968. package/out/src/sdk/__test/PrivilegedKeyManager.test.d.ts +0 -2
  969. package/out/src/sdk/__test/PrivilegedKeyManager.test.d.ts.map +0 -1
  970. package/out/src/sdk/__test/PrivilegedKeyManager.test.js +0 -647
  971. package/out/src/sdk/__test/PrivilegedKeyManager.test.js.map +0 -1
  972. package/out/src/sdk/__test/WalletError.test.d.ts +0 -2
  973. package/out/src/sdk/__test/WalletError.test.d.ts.map +0 -1
  974. package/out/src/sdk/__test/WalletError.test.js +0 -255
  975. package/out/src/sdk/__test/WalletError.test.js.map +0 -1
  976. package/out/src/sdk/__test/validationHelpers.test.d.ts +0 -2
  977. package/out/src/sdk/__test/validationHelpers.test.d.ts.map +0 -1
  978. package/out/src/sdk/__test/validationHelpers.test.js +0 -20
  979. package/out/src/sdk/__test/validationHelpers.test.js.map +0 -1
  980. package/out/src/services/__tests/ARC.man.test.d.ts +0 -2
  981. package/out/src/services/__tests/ARC.man.test.d.ts.map +0 -1
  982. package/out/src/services/__tests/ARC.man.test.js +0 -104
  983. package/out/src/services/__tests/ARC.man.test.js.map +0 -1
  984. package/out/src/services/__tests/ARC.timeout.man.test.d.ts +0 -2
  985. package/out/src/services/__tests/ARC.timeout.man.test.d.ts.map +0 -1
  986. package/out/src/services/__tests/ARC.timeout.man.test.js +0 -74
  987. package/out/src/services/__tests/ARC.timeout.man.test.js.map +0 -1
  988. package/out/src/services/__tests/ArcGorillaPool.man.test.d.ts +0 -2
  989. package/out/src/services/__tests/ArcGorillaPool.man.test.d.ts.map +0 -1
  990. package/out/src/services/__tests/ArcGorillaPool.man.test.js +0 -93
  991. package/out/src/services/__tests/ArcGorillaPool.man.test.js.map +0 -1
  992. package/out/src/services/__tests/arcServices.test.d.ts +0 -2
  993. package/out/src/services/__tests/arcServices.test.d.ts.map +0 -1
  994. package/out/src/services/__tests/arcServices.test.js +0 -7
  995. package/out/src/services/__tests/arcServices.test.js.map +0 -1
  996. package/out/src/services/__tests/bitrails.test.d.ts +0 -2
  997. package/out/src/services/__tests/bitrails.test.d.ts.map +0 -1
  998. package/out/src/services/__tests/bitrails.test.js +0 -59
  999. package/out/src/services/__tests/bitrails.test.js.map +0 -1
  1000. package/out/src/services/__tests/getFiatExchangeRate.test.d.ts +0 -2
  1001. package/out/src/services/__tests/getFiatExchangeRate.test.d.ts.map +0 -1
  1002. package/out/src/services/__tests/getFiatExchangeRate.test.js +0 -156
  1003. package/out/src/services/__tests/getFiatExchangeRate.test.js.map +0 -1
  1004. package/out/src/services/__tests/getMerklePath.test.d.ts +0 -2
  1005. package/out/src/services/__tests/getMerklePath.test.d.ts.map +0 -1
  1006. package/out/src/services/__tests/getMerklePath.test.js +0 -16
  1007. package/out/src/services/__tests/getMerklePath.test.js.map +0 -1
  1008. package/out/src/services/__tests/getRawTx.test.d.ts +0 -2
  1009. package/out/src/services/__tests/getRawTx.test.d.ts.map +0 -1
  1010. package/out/src/services/__tests/getRawTx.test.js +0 -16
  1011. package/out/src/services/__tests/getRawTx.test.js.map +0 -1
  1012. package/out/src/services/__tests/postBeef.test.d.ts +0 -2
  1013. package/out/src/services/__tests/postBeef.test.d.ts.map +0 -1
  1014. package/out/src/services/__tests/postBeef.test.js +0 -101
  1015. package/out/src/services/__tests/postBeef.test.js.map +0 -1
  1016. package/out/src/services/__tests/verifyBeef.test.d.ts +0 -2
  1017. package/out/src/services/__tests/verifyBeef.test.d.ts.map +0 -1
  1018. package/out/src/services/__tests/verifyBeef.test.js +0 -43
  1019. package/out/src/services/__tests/verifyBeef.test.js.map +0 -1
  1020. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.d.ts +0 -2
  1021. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.d.ts.map +0 -1
  1022. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.js +0 -25
  1023. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.js.map +0 -1
  1024. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.d.ts +0 -2
  1025. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.d.ts.map +0 -1
  1026. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.js +0 -27
  1027. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.js.map +0 -1
  1028. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.d.ts +0 -2
  1029. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.d.ts.map +0 -1
  1030. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.js +0 -56
  1031. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.js.map +0 -1
  1032. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.d.ts +0 -2
  1033. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.d.ts.map +0 -1
  1034. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.js +0 -40
  1035. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.js.map +0 -1
  1036. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.d.ts +0 -2
  1037. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.d.ts.map +0 -1
  1038. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.js +0 -108
  1039. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.js.map +0 -1
  1040. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.d.ts +0 -2
  1041. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.d.ts.map +0 -1
  1042. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.js +0 -87
  1043. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.js.map +0 -1
  1044. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.d.ts +0 -2
  1045. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.d.ts.map +0 -1
  1046. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.js +0 -39
  1047. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.js.map +0 -1
  1048. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.d.ts +0 -2
  1049. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.d.ts.map +0 -1
  1050. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js +0 -75
  1051. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js.map +0 -1
  1052. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.d.ts +0 -2
  1053. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.d.ts.map +0 -1
  1054. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.js +0 -43
  1055. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.js.map +0 -1
  1056. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.d.ts +0 -2
  1057. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.d.ts.map +0 -1
  1058. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.js +0 -164
  1059. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.js.map +0 -1
  1060. package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.d.ts +0 -12
  1061. package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.d.ts.map +0 -1
  1062. package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.js +0 -69
  1063. package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.js.map +0 -1
  1064. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.d.ts +0 -2
  1065. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.d.ts.map +0 -1
  1066. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.js +0 -109
  1067. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.js.map +0 -1
  1068. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.d.ts +0 -2
  1069. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.d.ts.map +0 -1
  1070. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js +0 -54
  1071. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js.map +0 -1
  1072. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.d.ts +0 -2
  1073. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.d.ts.map +0 -1
  1074. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.js +0 -255
  1075. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.js.map +0 -1
  1076. package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.d.ts +0 -2
  1077. package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.d.ts.map +0 -1
  1078. package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.js +0 -56
  1079. package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.js.map +0 -1
  1080. package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.d.ts +0 -2
  1081. package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.d.ts.map +0 -1
  1082. package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.js +0 -69
  1083. package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.js.map +0 -1
  1084. package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.d.ts +0 -2
  1085. package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.d.ts.map +0 -1
  1086. package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.js +0 -51
  1087. package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.js.map +0 -1
  1088. package/out/src/services/providers/__tests/ArcSSEClient.test.d.ts +0 -2
  1089. package/out/src/services/providers/__tests/ArcSSEClient.test.d.ts.map +0 -1
  1090. package/out/src/services/providers/__tests/ArcSSEClient.test.js +0 -256
  1091. package/out/src/services/providers/__tests/ArcSSEClient.test.js.map +0 -1
  1092. package/out/src/services/providers/__tests/WhatsOnChain.test.d.ts +0 -2
  1093. package/out/src/services/providers/__tests/WhatsOnChain.test.d.ts.map +0 -1
  1094. package/out/src/services/providers/__tests/WhatsOnChain.test.js +0 -191
  1095. package/out/src/services/providers/__tests/WhatsOnChain.test.js.map +0 -1
  1096. package/out/src/services/providers/__tests/exchangeRates.test.d.ts +0 -2
  1097. package/out/src/services/providers/__tests/exchangeRates.test.d.ts.map +0 -1
  1098. package/out/src/services/providers/__tests/exchangeRates.test.js +0 -23
  1099. package/out/src/services/providers/__tests/exchangeRates.test.js.map +0 -1
  1100. package/out/src/storage/__test/StorageIdb.test.d.ts +0 -2
  1101. package/out/src/storage/__test/StorageIdb.test.d.ts.map +0 -1
  1102. package/out/src/storage/__test/StorageIdb.test.js +0 -44
  1103. package/out/src/storage/__test/StorageIdb.test.js.map +0 -1
  1104. package/out/src/storage/__test/WalletStorageManager.test.d.ts +0 -2
  1105. package/out/src/storage/__test/WalletStorageManager.test.d.ts.map +0 -1
  1106. package/out/src/storage/__test/WalletStorageManager.test.js +0 -254
  1107. package/out/src/storage/__test/WalletStorageManager.test.js.map +0 -1
  1108. package/out/src/storage/__test/adminStats.man.test.d.ts +0 -2
  1109. package/out/src/storage/__test/adminStats.man.test.d.ts.map +0 -1
  1110. package/out/src/storage/__test/adminStats.man.test.js +0 -78
  1111. package/out/src/storage/__test/adminStats.man.test.js.map +0 -1
  1112. package/out/src/storage/__test/findStaleMerkleRoots.test.d.ts +0 -2
  1113. package/out/src/storage/__test/findStaleMerkleRoots.test.d.ts.map +0 -1
  1114. package/out/src/storage/__test/findStaleMerkleRoots.test.js +0 -41
  1115. package/out/src/storage/__test/findStaleMerkleRoots.test.js.map +0 -1
  1116. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.d.ts +0 -2
  1117. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.d.ts.map +0 -1
  1118. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.js +0 -73
  1119. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.js.map +0 -1
  1120. package/out/src/storage/__test/getBeefForTransaction.test.d.ts +0 -2
  1121. package/out/src/storage/__test/getBeefForTransaction.test.d.ts.map +0 -1
  1122. package/out/src/storage/__test/getBeefForTransaction.test.js +0 -347
  1123. package/out/src/storage/__test/getBeefForTransaction.test.js.map +0 -1
  1124. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.d.ts +0 -2
  1125. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.d.ts.map +0 -1
  1126. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js +0 -1111
  1127. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js.map +0 -1
  1128. package/out/src/storage/methods/__test/offsetKey.test.d.ts +0 -2
  1129. package/out/src/storage/methods/__test/offsetKey.test.d.ts.map +0 -1
  1130. package/out/src/storage/methods/__test/offsetKey.test.js +0 -229
  1131. package/out/src/storage/methods/__test/offsetKey.test.js.map +0 -1
  1132. package/out/src/storage/remoting/__test/StorageClient.man.test.d.ts +0 -2
  1133. package/out/src/storage/remoting/__test/StorageClient.man.test.d.ts.map +0 -1
  1134. package/out/src/storage/remoting/__test/StorageClient.man.test.js +0 -487
  1135. package/out/src/storage/remoting/__test/StorageClient.man.test.js.map +0 -1
  1136. package/out/src/storage/remoting/__test/StorageClient.test.d.ts +0 -2
  1137. package/out/src/storage/remoting/__test/StorageClient.test.d.ts.map +0 -1
  1138. package/out/src/storage/remoting/__test/StorageClient.test.js +0 -119
  1139. package/out/src/storage/remoting/__test/StorageClient.test.js.map +0 -1
  1140. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.d.ts +0 -2
  1141. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.d.ts.map +0 -1
  1142. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.js +0 -301
  1143. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.js.map +0 -1
  1144. package/out/src/storage/schema/entities/__tests/CertificateTests.test.d.ts +0 -2
  1145. package/out/src/storage/schema/entities/__tests/CertificateTests.test.d.ts.map +0 -1
  1146. package/out/src/storage/schema/entities/__tests/CertificateTests.test.js +0 -308
  1147. package/out/src/storage/schema/entities/__tests/CertificateTests.test.js.map +0 -1
  1148. package/out/src/storage/schema/entities/__tests/CommissionTests.test.d.ts +0 -2
  1149. package/out/src/storage/schema/entities/__tests/CommissionTests.test.d.ts.map +0 -1
  1150. package/out/src/storage/schema/entities/__tests/CommissionTests.test.js +0 -316
  1151. package/out/src/storage/schema/entities/__tests/CommissionTests.test.js.map +0 -1
  1152. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.d.ts +0 -2
  1153. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.d.ts.map +0 -1
  1154. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.js +0 -228
  1155. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.js.map +0 -1
  1156. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.d.ts +0 -2
  1157. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.d.ts.map +0 -1
  1158. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.js +0 -191
  1159. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.js.map +0 -1
  1160. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.d.ts +0 -2
  1161. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.d.ts.map +0 -1
  1162. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.js +0 -226
  1163. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.js.map +0 -1
  1164. package/out/src/storage/schema/entities/__tests/OutputTests.test.d.ts +0 -2
  1165. package/out/src/storage/schema/entities/__tests/OutputTests.test.d.ts.map +0 -1
  1166. package/out/src/storage/schema/entities/__tests/OutputTests.test.js +0 -413
  1167. package/out/src/storage/schema/entities/__tests/OutputTests.test.js.map +0 -1
  1168. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.d.ts +0 -2
  1169. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.d.ts.map +0 -1
  1170. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.js +0 -299
  1171. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.js.map +0 -1
  1172. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.d.ts +0 -2
  1173. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.d.ts.map +0 -1
  1174. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js +0 -474
  1175. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js.map +0 -1
  1176. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.d.ts +0 -2
  1177. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.d.ts.map +0 -1
  1178. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js +0 -234
  1179. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js.map +0 -1
  1180. package/out/src/storage/schema/entities/__tests/TransactionTests.test.d.ts +0 -2
  1181. package/out/src/storage/schema/entities/__tests/TransactionTests.test.d.ts.map +0 -1
  1182. package/out/src/storage/schema/entities/__tests/TransactionTests.test.js +0 -539
  1183. package/out/src/storage/schema/entities/__tests/TransactionTests.test.js.map +0 -1
  1184. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.d.ts +0 -2
  1185. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.d.ts.map +0 -1
  1186. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.js +0 -304
  1187. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.js.map +0 -1
  1188. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.d.ts +0 -2
  1189. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.d.ts.map +0 -1
  1190. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.js +0 -170
  1191. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.js.map +0 -1
  1192. package/out/src/storage/schema/entities/__tests/stampLogTests.test.d.ts +0 -2
  1193. package/out/src/storage/schema/entities/__tests/stampLogTests.test.d.ts.map +0 -1
  1194. package/out/src/storage/schema/entities/__tests/stampLogTests.test.js +0 -81
  1195. package/out/src/storage/schema/entities/__tests/stampLogTests.test.js.map +0 -1
  1196. package/out/src/storage/schema/entities/__tests/usersTests.test.d.ts +0 -2
  1197. package/out/src/storage/schema/entities/__tests/usersTests.test.d.ts.map +0 -1
  1198. package/out/src/storage/schema/entities/__tests/usersTests.test.js +0 -277
  1199. package/out/src/storage/schema/entities/__tests/usersTests.test.js.map +0 -1
  1200. package/out/src/utility/__tests/utilityHelpers.noBuffer.test.d.ts +0 -2
  1201. package/out/src/utility/__tests/utilityHelpers.noBuffer.test.d.ts.map +0 -1
  1202. package/out/src/utility/__tests/utilityHelpers.noBuffer.test.js +0 -107
  1203. package/out/src/utility/__tests/utilityHelpers.noBuffer.test.js.map +0 -1
  1204. package/out/src/wab-client/__tests/WABClient.man.test.d.ts +0 -2
  1205. package/out/src/wab-client/__tests/WABClient.man.test.d.ts.map +0 -1
  1206. package/out/src/wab-client/__tests/WABClient.man.test.js +0 -52
  1207. package/out/src/wab-client/__tests/WABClient.man.test.js.map +0 -1
@@ -10,16 +10,67 @@ const listOutputsKnex_1 = require("./methods/listOutputsKnex");
10
10
  const reviewStatus_1 = require("./methods/reviewStatus");
11
11
  const WERR_errors_1 = require("../sdk/WERR_errors");
12
12
  const utilityHelpers_1 = require("../utility/utilityHelpers");
13
+ const managedChange_1 = require("./methods/managedChange");
14
+ // Keep bulk statements below conservative SQLite/MySQL bind-parameter
15
+ // ceilings. The surrounding transaction still makes a complete pack atomic.
16
+ const ACTION_BATCH_BLOB_SQL_CHUNK = 500;
17
+ const OUTPUT_INSERT_SQL_CHUNK = 500;
13
18
  class StorageKnex extends StorageProvider_1.StorageProvider {
19
+ knex;
20
+ querySpans = new Map();
21
+ onQuery = (query) => {
22
+ if (!this.telemetry.enabled || query.__knexQueryUid == null)
23
+ return;
24
+ const span = this.telemetry.startSpan('wallet.storage.db.query', {
25
+ component: 'wallet-storage-knex',
26
+ kind: 'client',
27
+ attributes: {
28
+ 'db.system': this.databaseSystem(),
29
+ 'db.operation': query.method ?? 'unknown'
30
+ }
31
+ });
32
+ this.querySpans.set(query.__knexQueryUid, span);
33
+ };
34
+ onQueryResponse = (_response, query) => {
35
+ this.endQuerySpan(query);
36
+ };
37
+ onQueryError = (error, query) => {
38
+ this.endQuerySpan(query, error);
39
+ };
14
40
  constructor(options) {
15
41
  super(options);
16
- this._verifiedReadyForDatabaseAccess = false;
17
- if (!options.knex)
18
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('options.knex', `valid`);
42
+ if (options.knex == null)
43
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('options.knex', 'valid');
19
44
  this.knex = options.knex;
45
+ if (this.telemetry.enabled) {
46
+ this.knex.on('query', this.onQuery);
47
+ this.knex.on('query-response', this.onQueryResponse);
48
+ this.knex.on('query-error', this.onQueryError);
49
+ }
20
50
  }
51
+ databaseSystem() {
52
+ const clientName = this.knex.client.config?.client ?? '';
53
+ if (clientName.includes('sqlite'))
54
+ return 'sqlite';
55
+ if (clientName.includes('mysql'))
56
+ return 'mysql';
57
+ if (clientName.includes('pg') || clientName.includes('postgres'))
58
+ return 'postgresql';
59
+ return 'unknown';
60
+ }
61
+ endQuerySpan(query, error) {
62
+ if (query.__knexQueryUid == null)
63
+ return;
64
+ const span = this.querySpans.get(query.__knexQueryUid);
65
+ if (span == null)
66
+ return;
67
+ this.querySpans.delete(query.__knexQueryUid);
68
+ span.end(error == null ? {} : { status: 'error', error });
69
+ }
70
+ supportsActionBatchPersistence() { return true; }
71
+ requiresActionBatchCleanupBeforeCreateAction() { return false; }
21
72
  async readSettings() {
22
- return this.validateEntity((0, utilityHelpers_1.verifyOne)(await this.toDb(undefined)('settings')));
73
+ return this.validateEntity((0, utilityHelpers_1.verifyOne)(await this.toDb()('settings')));
23
74
  }
24
75
  async getProvenOrRawTx(txid, trx) {
25
76
  const k = this.toDb(trx);
@@ -28,70 +79,95 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
28
79
  rawTx: undefined,
29
80
  inputBEEF: undefined
30
81
  };
31
- r.proven = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid: txid } }));
32
- if (!r.proven) {
82
+ r.proven = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid }, trx }));
83
+ if (r.proven == null) {
33
84
  const reqRawTx = (0, utilityHelpers_1.verifyOneOrNone)(await k('proven_tx_reqs')
34
85
  .where('txid', txid)
35
86
  .whereIn('status', ['unsent', 'unmined', 'unconfirmed', 'sending', 'nosend', 'completed'])
36
87
  .select('rawTx', 'inputBEEF'));
37
- if (reqRawTx) {
88
+ if (reqRawTx != null) {
38
89
  r.rawTx = Array.from(reqRawTx.rawTx);
39
90
  r.inputBEEF = Array.from(reqRawTx.inputBEEF);
40
91
  }
41
92
  }
42
93
  return r;
43
94
  }
95
+ async getProvenOrRawTxs(txids, trx) {
96
+ const unique = [...new Set(txids)];
97
+ const results = new Map();
98
+ if (unique.length === 0)
99
+ return results;
100
+ const proven = await this.findProvenTxs({ partial: {}, txids: unique, trx });
101
+ const provenTxids = new Set(proven.map(transaction => transaction.txid));
102
+ for (const transaction of proven) {
103
+ results.set(transaction.txid, { proven: transaction, rawTx: undefined, inputBEEF: undefined });
104
+ }
105
+ const unresolved = unique.filter(txid => !provenTxids.has(txid));
106
+ if (unresolved.length > 0) {
107
+ const requests = await this.findProvenTxReqs({
108
+ partial: {},
109
+ txids: unresolved,
110
+ status: ['unsent', 'unmined', 'unconfirmed', 'sending', 'nosend', 'completed'],
111
+ trx
112
+ });
113
+ for (const request of requests) {
114
+ results.set(request.txid, {
115
+ proven: undefined,
116
+ rawTx: Array.from(request.rawTx),
117
+ inputBEEF: request.inputBEEF == null ? undefined : Array.from(request.inputBEEF)
118
+ });
119
+ }
120
+ }
121
+ for (const txid of unique) {
122
+ if (!results.has(txid))
123
+ results.set(txid, { proven: undefined, rawTx: undefined, inputBEEF: undefined });
124
+ }
125
+ return results;
126
+ }
44
127
  dbTypeSubstring(source, fromOffset, forLength) {
45
128
  if (this.dbtype === 'MySQL')
46
- return `substring(${source} from ${fromOffset} for ${forLength})`;
47
- return `substr(${source}, ${fromOffset}, ${forLength})`;
129
+ return `substring(${source} from ${fromOffset} for ${String(forLength)})`;
130
+ return `substr(${source}, ${fromOffset}, ${String(forLength)})`;
131
+ }
132
+ normaliseKnexRawResult(rs) {
133
+ if (this.dbtype === 'MySQL')
134
+ return rs[0];
135
+ return rs;
136
+ }
137
+ async getRawTxSlice(txid, offset, length, trx) {
138
+ const sub = this.dbTypeSubstring('rawTx', offset + 1, length);
139
+ let rs = await this.toDb(trx).raw(`select ${sub} as rawTx from proven_txs where txid = '${txid}'`);
140
+ const proven = (0, utilityHelpers_1.verifyOneOrNone)(this.normaliseKnexRawResult(rs));
141
+ if (proven?.rawTx != null)
142
+ return Array.from(proven.rawTx);
143
+ rs = await this.toDb(trx).raw(`select ${sub} as rawTx from proven_tx_reqs where txid = '${txid}' and status in ('unsent', 'nosend', 'sending', 'unmined', 'completed', 'unfail')`);
144
+ const req = (0, utilityHelpers_1.verifyOneOrNone)(this.normaliseKnexRawResult(rs));
145
+ return req?.rawTx != null ? Array.from(req.rawTx) : undefined;
48
146
  }
49
147
  async getRawTxOfKnownValidTransaction(txid, offset, length, trx) {
50
- if (!txid)
148
+ if (txid == null || txid === '')
51
149
  return undefined;
52
150
  if (!this.isAvailable())
53
151
  await this.makeAvailable();
54
- let rawTx = undefined;
55
152
  if (Number.isInteger(offset) && Number.isInteger(length)) {
56
- let rs = await this.toDb(trx).raw(`select ${this.dbTypeSubstring('rawTx', offset + 1, length)} as rawTx from proven_txs where txid = '${txid}'`);
57
- if (this.dbtype === 'MySQL')
58
- rs = rs[0];
59
- const r = (0, utilityHelpers_1.verifyOneOrNone)(rs);
60
- if (r && r.rawTx) {
61
- rawTx = Array.from(r.rawTx);
62
- }
63
- else {
64
- let rs = await this.toDb(trx).raw(`select ${this.dbTypeSubstring('rawTx', offset + 1, length)} as rawTx from proven_tx_reqs where txid = '${txid}' and status in ('unsent', 'nosend', 'sending', 'unmined', 'completed', 'unfail')`);
65
- if (this.dbtype === 'MySQL')
66
- rs = rs[0];
67
- const r = (0, utilityHelpers_1.verifyOneOrNone)(rs);
68
- if (r && r.rawTx) {
69
- rawTx = Array.from(r.rawTx);
70
- }
71
- }
72
- }
73
- else {
74
- const r = await this.getProvenOrRawTx(txid, trx);
75
- if (r.proven)
76
- rawTx = r.proven.rawTx;
77
- else
78
- rawTx = r.rawTx;
153
+ return await this.getRawTxSlice(txid, offset, length, trx);
79
154
  }
80
- return rawTx;
155
+ const r = await this.getProvenOrRawTx(txid, trx);
156
+ return r.proven != null ? r.proven.rawTx : r.rawTx;
81
157
  }
82
158
  getProvenTxsForUserQuery(args) {
83
159
  const k = this.toDb(args.trx);
84
160
  let q = k('proven_txs').where(function () {
85
- this.whereExists(k
161
+ void this.whereExists(k
86
162
  .select('*')
87
163
  .from('transactions')
88
164
  .whereRaw(`proven_txs.provenTxId = transactions.provenTxId and transactions.userId = ${args.userId}`));
89
165
  });
90
- if (args.paged) {
166
+ if (args.paged != null) {
91
167
  q = q.limit(args.paged.limit);
92
- q = q.offset(args.paged.offset || 0);
168
+ q = q.offset(args.paged.offset ?? 0);
93
169
  }
94
- if (args.since)
170
+ if (args.since != null)
95
171
  q = q.where('updated_at', '>=', this.validateDateForWhere(args.since));
96
172
  return q;
97
173
  }
@@ -103,16 +179,16 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
103
179
  getProvenTxReqsForUserQuery(args) {
104
180
  const k = this.toDb(args.trx);
105
181
  let q = k('proven_tx_reqs').where(function () {
106
- this.whereExists(k
182
+ void this.whereExists(k
107
183
  .select('*')
108
184
  .from('transactions')
109
185
  .whereRaw(`proven_tx_reqs.txid = transactions.txid and transactions.userId = ${args.userId}`));
110
186
  });
111
- if (args.paged) {
187
+ if (args.paged != null) {
112
188
  q = q.limit(args.paged.limit);
113
- q = q.offset(args.paged.offset || 0);
189
+ q = q.offset(args.paged.offset ?? 0);
114
190
  }
115
- if (args.since)
191
+ if (args.since != null)
116
192
  q = q.where('updated_at', '>=', this.validateDateForWhere(args.since));
117
193
  return q;
118
194
  }
@@ -127,11 +203,11 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
127
203
  .select('*')
128
204
  .from('tx_labels')
129
205
  .whereRaw(`tx_labels.txLabelId = tx_labels_map.txLabelId and tx_labels.userId = ${args.userId}`));
130
- if (args.since)
206
+ if (args.since != null)
131
207
  q = q.where('updated_at', '>=', this.validateDateForWhere(args.since));
132
- if (args.paged) {
208
+ if (args.paged != null) {
133
209
  q = q.limit(args.paged.limit);
134
- q = q.offset(args.paged.offset || 0);
210
+ q = q.offset(args.paged.offset ?? 0);
135
211
  }
136
212
  return q;
137
213
  }
@@ -146,11 +222,11 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
146
222
  .select('*')
147
223
  .from('output_tags')
148
224
  .whereRaw(`output_tags.outputTagId = output_tags_map.outputTagId and output_tags.userId = ${args.userId}`));
149
- if (args.since)
225
+ if (args.since != null)
150
226
  q = q.where('updated_at', '>=', this.validateDateForWhere(args.since));
151
- if (args.paged) {
227
+ if (args.paged != null) {
152
228
  q = q.limit(args.paged.limit);
153
- q = q.offset(args.paged.offset || 0);
229
+ q = q.offset(args.paged.offset ?? 0);
154
230
  }
155
231
  return q;
156
232
  }
@@ -160,12 +236,12 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
160
236
  return this.validateEntities(rs, undefined, ['isDeleted']);
161
237
  }
162
238
  async listActions(auth, vargs) {
163
- if (!auth.userId)
239
+ if (auth.userId == null)
164
240
  throw new WERR_errors_1.WERR_UNAUTHORIZED();
165
241
  return await (0, listActionsKnex_1.listActions)(this, auth, vargs);
166
242
  }
167
243
  async listOutputs(auth, vargs) {
168
- if (!auth.userId)
244
+ if (auth.userId == null)
169
245
  throw new WERR_errors_1.WERR_UNAUTHORIZED();
170
246
  return await (0, listOutputsKnex_1.listOutputs)(this, auth, vargs);
171
247
  }
@@ -177,6 +253,129 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
177
253
  tx.provenTxId = id;
178
254
  return tx.provenTxId;
179
255
  }
256
+ async insertActionBatch(batch, trx) {
257
+ const e = await this.validateEntityForInsert(batch, trx, ['expiresAt', 'hardExpiresAt']);
258
+ if (e.actionBatchId === 0)
259
+ delete e.actionBatchId;
260
+ const [id] = await this.toDb(trx)('action_batches').insert(e);
261
+ batch.actionBatchId = id;
262
+ return id;
263
+ }
264
+ async findActionBatch(userId, batchId, trx) {
265
+ const row = await this.toDb(trx)('action_batches').where({ userId, batchId }).first();
266
+ return row == null ? undefined : this.validateEntity(row, ['expiresAt', 'hardExpiresAt']);
267
+ }
268
+ async findActionBatchForUpdate(userId, batchId, trx) {
269
+ const row = await this.toDb(trx)('action_batches')
270
+ .where({ userId, batchId })
271
+ .forUpdate()
272
+ .first();
273
+ return row == null ? undefined : this.validateEntity(row, ['expiresAt', 'hardExpiresAt']);
274
+ }
275
+ async findExpiredActionBatches(now, trx) {
276
+ const rows = await this.toDb(trx)('action_batches')
277
+ .whereIn('status', ['active', 'prepared'])
278
+ .andWhere(builder => {
279
+ void builder
280
+ .where('expiresAt', '<=', this.validateDateForWhere(now))
281
+ .orWhere('hardExpiresAt', '<=', this.validateDateForWhere(now));
282
+ });
283
+ return this.validateEntities(rows, ['expiresAt', 'hardExpiresAt']);
284
+ }
285
+ async updateActionBatch(actionBatchId, update, trx) {
286
+ return await this.toDb(trx)('action_batches')
287
+ .where({ actionBatchId })
288
+ .update(this.validatePartialForUpdate(update, ['expiresAt', 'hardExpiresAt']));
289
+ }
290
+ async deleteActionBatch(actionBatchId, trx) {
291
+ await this.toDb(trx)('action_batches').where({ actionBatchId }).delete();
292
+ }
293
+ async reserveActionBatchOutputs(reservations, trx) {
294
+ if (reservations.length === 0)
295
+ return;
296
+ const rows = await Promise.all(reservations.map(async (r) => await this.validateEntityForInsert(r, trx)));
297
+ await this.toDb(trx)('action_batch_outputs').insert(rows);
298
+ }
299
+ async findActionBatchOutputIds(actionBatchId, trx) {
300
+ const rows = await this.toDb(trx)('action_batch_outputs')
301
+ .where({ actionBatchId })
302
+ .select('outputId');
303
+ return rows.map(r => r.outputId);
304
+ }
305
+ async findReservedActionBatchOutputIds(outputIds, trx) {
306
+ if (outputIds.length === 0)
307
+ return [];
308
+ const now = new Date();
309
+ const rows = await this.toDb(trx)('action_batch_outputs')
310
+ .join('action_batches', 'action_batch_outputs.actionBatchId', 'action_batches.actionBatchId')
311
+ .whereIn('outputId', outputIds)
312
+ .whereIn('action_batches.status', ['active', 'prepared'])
313
+ .where('action_batches.expiresAt', '>', now)
314
+ .where('action_batches.hardExpiresAt', '>', now)
315
+ .select('action_batch_outputs.outputId');
316
+ return rows.map(r => r.outputId);
317
+ }
318
+ async deleteActionBatchOutputReservations(actionBatchId, trx) {
319
+ await this.toDb(trx)('action_batch_outputs').where({ actionBatchId }).delete();
320
+ }
321
+ async putActionBatchBlobRecord(blob, trx) {
322
+ const e = await this.validateEntityForInsert(blob, trx);
323
+ if (e.actionBatchBlobId === 0)
324
+ delete e.actionBatchBlobId;
325
+ await this.toDb(trx)('action_batch_blobs')
326
+ .insert(e)
327
+ .onConflict(['actionBatchId', 'digest'])
328
+ .ignore();
329
+ }
330
+ async findActionBatchBlobRecord(actionBatchId, digest, trx) {
331
+ const row = await this.toDb(trx)('action_batch_blobs')
332
+ .where({ actionBatchId, digest })
333
+ .first();
334
+ if (row == null)
335
+ return undefined;
336
+ if (Buffer.isBuffer(row.bytes)) {
337
+ row.bytes = new Uint8Array(row.bytes.buffer, row.bytes.byteOffset, row.bytes.byteLength);
338
+ }
339
+ this.deserialiseFromKnex(row);
340
+ return this.validateEntity(row);
341
+ }
342
+ async findActionBatchBlobRecords(actionBatchId, digests, trx) {
343
+ if (digests.length === 0)
344
+ return [];
345
+ const rows = [];
346
+ const uniqueDigests = [...new Set(digests)];
347
+ for (let offset = 0; offset < uniqueDigests.length; offset += ACTION_BATCH_BLOB_SQL_CHUNK) {
348
+ rows.push(...await this.toDb(trx)('action_batch_blobs')
349
+ .where({ actionBatchId })
350
+ .whereIn('digest', uniqueDigests.slice(offset, offset + ACTION_BATCH_BLOB_SQL_CHUNK)));
351
+ }
352
+ for (const row of rows) {
353
+ if (Buffer.isBuffer(row.bytes)) {
354
+ row.bytes = new Uint8Array(row.bytes.buffer, row.bytes.byteOffset, row.bytes.byteLength);
355
+ }
356
+ this.deserialiseFromKnex(row);
357
+ }
358
+ return this.validateEntities(rows);
359
+ }
360
+ async putActionBatchBlobRecords(blobs, trx) {
361
+ if (blobs.length === 0)
362
+ return;
363
+ const rows = await Promise.all(blobs.map(async (blob) => {
364
+ const row = await this.validateEntityForInsert(blob, trx);
365
+ if (row.actionBatchBlobId === 0)
366
+ delete row.actionBatchBlobId;
367
+ return row;
368
+ }));
369
+ for (let offset = 0; offset < rows.length; offset += ACTION_BATCH_BLOB_SQL_CHUNK) {
370
+ await this.toDb(trx)('action_batch_blobs')
371
+ .insert(rows.slice(offset, offset + ACTION_BATCH_BLOB_SQL_CHUNK))
372
+ .onConflict(['actionBatchId', 'digest'])
373
+ .ignore();
374
+ }
375
+ }
376
+ async deleteActionBatchBlobRecords(actionBatchId, trx) {
377
+ await this.toDb(trx)('action_batch_blobs').where({ actionBatchId }).delete();
378
+ }
180
379
  async insertProvenTxReq(tx, trx) {
181
380
  const e = await this.validateEntityForInsert(tx, trx);
182
381
  if (e.provenTxReqId === 0)
@@ -194,7 +393,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
194
393
  return user.userId;
195
394
  }
196
395
  async insertCertificateAuth(auth, certificate) {
197
- if (!auth.userId || (certificate.userId && certificate.userId !== auth.userId))
396
+ if (auth.userId == null || (certificate.userId != null && certificate.userId !== 0 && certificate.userId !== auth.userId))
198
397
  throw new WERR_errors_1.WERR_UNAUTHORIZED();
199
398
  certificate.userId = auth.userId;
200
399
  return await this.insertCertificate(certificate);
@@ -203,15 +402,14 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
203
402
  const e = await this.validateEntityForInsert(certificate, trx, undefined, ['isDeleted']);
204
403
  if (e.certificateId === 0)
205
404
  delete e.certificateId;
206
- const logger = e.logger;
207
- if (e.logger)
405
+ if (e.logger != null)
208
406
  delete e.logger;
209
407
  const fields = e.fields;
210
- if (e.fields)
408
+ if (e.fields != null)
211
409
  delete e.fields;
212
410
  const [id] = await this.toDb(trx)('certificates').insert(e);
213
411
  certificate.certificateId = id;
214
- if (fields) {
412
+ if (fields != null) {
215
413
  for (const field of fields) {
216
414
  field.certificateId = id;
217
415
  field.userId = certificate.userId;
@@ -249,16 +447,24 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
249
447
  return commission.commissionId;
250
448
  }
251
449
  async insertOutput(output, trx) {
252
- try {
253
- const e = await this.validateEntityForInsert(output, trx);
254
- if (e.outputId === 0)
255
- delete e.outputId;
256
- const [id] = await this.toDb(trx)('outputs').insert(e);
257
- output.outputId = id;
258
- return output.outputId;
259
- }
260
- catch (e) {
261
- throw e;
450
+ const e = await this.validateEntityForInsert(output, trx);
451
+ if (e.outputId === 0)
452
+ delete e.outputId;
453
+ const [id] = await this.toDb(trx)('outputs').insert(e);
454
+ output.outputId = id;
455
+ return output.outputId;
456
+ }
457
+ async insertOutputs(outputs, trx) {
458
+ if (outputs.length === 0)
459
+ return;
460
+ const rows = await Promise.all(outputs.map(async (output) => {
461
+ const row = await this.validateEntityForInsert(output, trx);
462
+ if (row.outputId === 0)
463
+ delete row.outputId;
464
+ return row;
465
+ }));
466
+ for (let offset = 0; offset < rows.length; offset += OUTPUT_INSERT_SQL_CHUNK) {
467
+ await this.toDb(trx)('outputs').insert(rows.slice(offset, offset + OUTPUT_INSERT_SQL_CHUNK));
262
468
  }
263
469
  }
264
470
  async insertOutputTag(tag, trx) {
@@ -271,7 +477,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
271
477
  }
272
478
  async insertOutputTagMap(tagMap, trx) {
273
479
  const e = await this.validateEntityForInsert(tagMap, trx, undefined, ['isDeleted']);
274
- const [id] = await this.toDb(trx)('output_tags_map').insert(e);
480
+ await this.toDb(trx)('output_tags_map').insert(e);
275
481
  }
276
482
  async insertTxLabel(label, trx) {
277
483
  const e = await this.validateEntityForInsert(label, trx, undefined, ['isDeleted']);
@@ -283,7 +489,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
283
489
  }
284
490
  async insertTxLabelMap(labelMap, trx) {
285
491
  const e = await this.validateEntityForInsert(labelMap, trx, undefined, ['isDeleted']);
286
- const [id] = await this.toDb(trx)('tx_labels_map').insert(e);
492
+ await this.toDb(trx)('tx_labels_map').insert(e);
287
493
  }
288
494
  async insertMonitorEvent(event, trx) {
289
495
  const e = await this.validateEntityForInsert(event, trx);
@@ -379,12 +585,12 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
379
585
  if (Array.isArray(id)) {
380
586
  r = await this.toDb(trx)('transactions')
381
587
  .whereIn('transactionId', id)
382
- .update(await this.validatePartialForUpdate(update));
588
+ .update(this.validatePartialForUpdate(update));
383
589
  }
384
590
  else if (Number.isInteger(id)) {
385
591
  r = await this.toDb(trx)('transactions')
386
592
  .where({ transactionId: id })
387
- .update(await this.validatePartialForUpdate(update));
593
+ .update(this.validatePartialForUpdate(update));
388
594
  }
389
595
  else {
390
596
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('id', 'transactionId or array of transactionId');
@@ -414,12 +620,12 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
414
620
  .update(this.validatePartialForUpdate(update));
415
621
  }
416
622
  setupQuery(table, args) {
417
- let q = this.toDb(args.trx)(table);
418
- if (args.partial && Object.keys(args.partial).length > 0)
419
- q.where(args.partial);
420
- if (args.since)
421
- q.where('updated_at', '>=', this.validateDateForWhere(args.since));
422
- if (args.orderDescending) {
623
+ const q = this.toDb(args.trx)(table);
624
+ if (args.partial != null && Object.keys(args.partial).length > 0)
625
+ void q.where(args.partial);
626
+ if (args.since != null)
627
+ void q.where('updated_at', '>=', this.validateDateForWhere(args.since));
628
+ if (args.orderDescending === true) {
423
629
  let sortColumn = '';
424
630
  switch (table) {
425
631
  case 'certificates':
@@ -462,12 +668,12 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
462
668
  break;
463
669
  }
464
670
  if (sortColumn !== '') {
465
- q.orderBy(sortColumn, 'desc');
671
+ void q.orderBy(sortColumn, 'desc');
466
672
  }
467
673
  }
468
- if (args.paged) {
469
- q.limit(args.paged.limit);
470
- q.offset(args.paged.offset || 0);
674
+ if (args.paged != null) {
675
+ void q.limit(args.paged.limit);
676
+ void q.offset(args.paged.offset ?? 0);
471
677
  }
472
678
  return q;
473
679
  }
@@ -476,97 +682,111 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
476
682
  }
477
683
  findCertificatesQuery(args) {
478
684
  const q = this.setupQuery('certificates', args);
479
- if (args.certifiers && args.certifiers.length > 0)
480
- q.whereIn('certifier', args.certifiers);
481
- if (args.types && args.types.length > 0)
482
- q.whereIn('type', args.types);
685
+ if ((args.certifiers != null) && args.certifiers.length > 0)
686
+ void q.whereIn('certifier', args.certifiers);
687
+ if ((args.types != null) && args.types.length > 0)
688
+ void q.whereIn('type', args.types);
483
689
  return q;
484
690
  }
485
691
  findCommissionsQuery(args) {
486
- if (args.partial.lockingScript)
487
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('partial.lockingScript', `undefined. Commissions may not be found by lockingScript value.`);
692
+ if (args.partial.lockingScript != null) {
693
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('partial.lockingScript', 'undefined. Commissions may not be found by lockingScript value.');
694
+ }
488
695
  return this.setupQuery('commissions', args);
489
696
  }
490
697
  findOutputBasketsQuery(args) {
491
698
  return this.setupQuery('output_baskets', args);
492
699
  }
493
700
  findOutputsQuery(args, count) {
494
- if (args.partial.lockingScript)
495
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.lockingScript', `undefined. Outputs may not be found by lockingScript value.`);
701
+ if (args.partial.lockingScript != null) {
702
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.lockingScript', 'undefined. Outputs may not be found by lockingScript value.');
703
+ }
496
704
  const q = this.setupQuery('outputs', args);
497
- if (args.txStatus && args.txStatus.length > 0) {
498
- q.whereRaw(`(select status from transactions where transactions.transactionId = outputs.transactionId) in (${args.txStatus.map(s => `'${s}'`).join(',')})`);
705
+ if ((args.txStatus != null) && args.txStatus.length > 0) {
706
+ void q.whereRaw(`(select status from transactions where transactions.transactionId = outputs.transactionId) in (${args.txStatus.map(s => "'" + s + "'").join(',')})`);
499
707
  }
500
- if (args.noScript && !count) {
708
+ if ((args.noScript === true) && count !== true) {
501
709
  const columns = tables_1.outputColumnsWithoutLockingScript.map(c => `outputs.${c}`);
502
- q.select(columns);
710
+ void q.select(columns);
503
711
  }
504
712
  return q;
505
713
  }
506
714
  findOutputTagMapsQuery(args) {
507
715
  const q = this.setupQuery('output_tags_map', args);
508
- if (args.tagIds && args.tagIds.length > 0)
509
- q.whereIn('outputTagId', args.tagIds);
716
+ if ((args.tagIds != null) && args.tagIds.length > 0)
717
+ void q.whereIn('outputTagId', args.tagIds);
510
718
  return q;
511
719
  }
512
720
  findOutputTagsQuery(args) {
513
721
  return this.setupQuery('output_tags', args);
514
722
  }
515
723
  findProvenTxReqsQuery(args) {
516
- if (args.partial.rawTx)
517
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx', `undefined. ProvenTxReqs may not be found by rawTx value.`);
518
- if (args.partial.inputBEEF)
519
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.inputBEEF', `undefined. ProvenTxReqs may not be found by inputBEEF value.`);
724
+ if (args.partial.rawTx != null) {
725
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx', 'undefined. ProvenTxReqs may not be found by rawTx value.');
726
+ }
727
+ if (args.partial.inputBEEF != null) {
728
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.inputBEEF', 'undefined. ProvenTxReqs may not be found by inputBEEF value.');
729
+ }
520
730
  const q = this.setupQuery('proven_tx_reqs', args);
521
- if (args.status && args.status.length > 0)
522
- q.whereIn('status', args.status);
523
- if (args.txids) {
731
+ if ((args.status != null) && args.status.length > 0)
732
+ void q.whereIn('status', args.status);
733
+ if (args.txids != null) {
524
734
  const txids = args.txids.filter(txid => txid !== undefined);
525
735
  if (txids.length > 0)
526
- q.whereIn('txid', txids);
736
+ void q.whereIn('txid', txids);
527
737
  }
528
738
  return q;
529
739
  }
530
740
  findProvenTxsQuery(args) {
531
- if (args.partial.rawTx)
532
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx', `undefined. ProvenTxs may not be found by rawTx value.`);
533
- if (args.partial.merklePath)
534
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.merklePath', `undefined. ProvenTxs may not be found by merklePath value.`);
535
- return this.setupQuery('proven_txs', args);
741
+ if (args.partial.rawTx != null) {
742
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx', 'undefined. ProvenTxs may not be found by rawTx value.');
743
+ }
744
+ if (args.partial.merklePath != null) {
745
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.merklePath', 'undefined. ProvenTxs may not be found by merklePath value.');
746
+ }
747
+ const q = this.setupQuery('proven_txs', args);
748
+ if (args.txids != null) {
749
+ const txids = [...new Set(args.txids.filter(txid => txid !== undefined))];
750
+ if (txids.length > 0)
751
+ void q.whereIn('txid', txids);
752
+ }
753
+ return q;
536
754
  }
537
755
  findStaleMerkleRootsQuery(args) {
538
- let q = this.toDb(args.trx)('proven_txs');
539
- q.where('height', '=', args.height);
540
- q.where('merkleRoot', '!=', args.merkleRoot);
541
- q.select('merkleRoot');
542
- q.distinct('merkleRoot');
756
+ const q = this.toDb(args.trx)('proven_txs');
757
+ void q.where('height', '=', args.height);
758
+ void q.where('merkleRoot', '!=', args.merkleRoot);
759
+ void q.select('merkleRoot');
760
+ void q.distinct('merkleRoot');
543
761
  return q;
544
762
  }
545
763
  findSyncStatesQuery(args) {
546
764
  return this.setupQuery('sync_states', args);
547
765
  }
548
766
  findTransactionsQuery(args, count) {
549
- if (args.partial.rawTx)
550
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx', `undefined. Transactions may not be found by rawTx value.`);
551
- if (args.partial.inputBEEF)
552
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.inputBEEF', `undefined. Transactions may not be found by inputBEEF value.`);
767
+ if (args.partial.rawTx != null) {
768
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx', 'undefined. Transactions may not be found by rawTx value.');
769
+ }
770
+ if (args.partial.inputBEEF != null) {
771
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.inputBEEF', 'undefined. Transactions may not be found by inputBEEF value.');
772
+ }
553
773
  const q = this.setupQuery('transactions', args);
554
- if (args.status && args.status.length > 0)
555
- q.whereIn('status', args.status);
556
- if (args.from)
557
- q.where('created_at', '>=', this.validateDateForWhere(args.from));
558
- if (args.to)
559
- q.where('created_at', '<', this.validateDateForWhere(args.to));
560
- if (args.noRawTx && !count) {
774
+ if ((args.status != null) && args.status.length > 0)
775
+ void q.whereIn('status', args.status);
776
+ if (args.from != null)
777
+ void q.where('created_at', '>=', this.validateDateForWhere(args.from));
778
+ if (args.to != null)
779
+ void q.where('created_at', '<', this.validateDateForWhere(args.to));
780
+ if ((args.noRawTx === true) && count !== true) {
561
781
  const columns = tables_1.transactionColumnsWithoutRawTx.map(c => `transactions.${c}`);
562
- q.select(columns);
782
+ void q.select(columns);
563
783
  }
564
784
  return q;
565
785
  }
566
786
  findTxLabelMapsQuery(args) {
567
787
  const q = this.setupQuery('tx_labels_map', args);
568
- if (args.labelIds && args.labelIds.length > 0)
569
- q.whereIn('txLabelId', args.labelIds);
788
+ if ((args.labelIds != null) && args.labelIds.length > 0)
789
+ void q.whereIn('txLabelId', args.labelIds);
570
790
  return q;
571
791
  }
572
792
  findTxLabelsQuery(args) {
@@ -579,19 +799,19 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
579
799
  return this.setupQuery('monitor_events', args);
580
800
  }
581
801
  async findCertificatesAuth(auth, args) {
582
- if (!auth.userId || (args.partial.userId && args.partial.userId !== auth.userId))
802
+ if (auth.userId == null || (args.partial.userId != null && args.partial.userId !== 0 && args.partial.userId !== auth.userId))
583
803
  throw new WERR_errors_1.WERR_UNAUTHORIZED();
584
804
  args.partial.userId = auth.userId;
585
805
  return await this.findCertificates(args);
586
806
  }
587
807
  async findOutputBasketsAuth(auth, args) {
588
- if (!auth.userId || (args.partial.userId && args.partial.userId !== auth.userId))
808
+ if (auth.userId == null || (args.partial.userId != null && args.partial.userId !== 0 && args.partial.userId !== auth.userId))
589
809
  throw new WERR_errors_1.WERR_UNAUTHORIZED();
590
810
  args.partial.userId = auth.userId;
591
811
  return await this.findOutputBaskets(args);
592
812
  }
593
813
  async findOutputsAuth(auth, args) {
594
- if (!auth.userId || (args.partial.userId && args.partial.userId !== auth.userId))
814
+ if (auth.userId == null || (args.partial.userId != null && args.partial.userId !== 0 && args.partial.userId !== auth.userId))
595
815
  throw new WERR_errors_1.WERR_UNAUTHORIZED();
596
816
  args.partial.userId = auth.userId;
597
817
  return await this.findOutputs(args);
@@ -603,7 +823,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
603
823
  const q = this.findCertificatesQuery(args);
604
824
  let r = await q;
605
825
  r = this.validateEntities(r, undefined, ['isDeleted']);
606
- if (args.includeFields) {
826
+ if (args.includeFields === true) {
607
827
  for (const c of r) {
608
828
  c.fields = this.validateEntities(await this.findCertificateFields({
609
829
  partial: { certificateId: c.certificateId, userId: c.userId },
@@ -626,7 +846,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
626
846
  async findOutputs(args) {
627
847
  const q = this.findOutputsQuery(args);
628
848
  const r = await q;
629
- if (!args.noScript) {
849
+ if (args.noScript !== true) {
630
850
  for (const o of r) {
631
851
  await this.validateOutputScript(o, args.trx);
632
852
  }
@@ -646,7 +866,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
646
866
  async findProvenTxReqs(args) {
647
867
  const q = this.findProvenTxReqsQuery(args);
648
868
  const r = await q;
649
- return this.validateEntities(r, undefined, ['notified']);
869
+ return this.validateEntities(r, undefined, ['notified', 'wasBroadcast']);
650
870
  }
651
871
  async findProvenTxs(args) {
652
872
  const q = this.findProvenTxsQuery(args);
@@ -666,7 +886,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
666
886
  async findTransactions(args) {
667
887
  const q = this.findTransactionsQuery(args);
668
888
  const r = await q;
669
- if (!args.noRawTx) {
889
+ if (args.noRawTx !== true) {
670
890
  for (const t of r) {
671
891
  await this.validateRawTransaction(t, args.trx);
672
892
  }
@@ -705,10 +925,10 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
705
925
  async findMonitorEvents(args) {
706
926
  const q = this.findMonitorEventsQuery(args);
707
927
  const r = await q;
708
- return this.validateEntities(r, ['when'], undefined);
928
+ return this.validateEntities(r, ['when']);
709
929
  }
710
930
  async getCount(q) {
711
- q.count();
931
+ void q.count();
712
932
  const r = await q;
713
933
  return r[0]['count(*)'];
714
934
  }
@@ -758,13 +978,17 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
758
978
  return await this.getCount(this.findMonitorEventsQuery(args));
759
979
  }
760
980
  async destroy() {
761
- var _a;
762
- await ((_a = this.knex) === null || _a === void 0 ? void 0 : _a.destroy());
981
+ this.knex.off('query', this.onQuery);
982
+ this.knex.off('query-response', this.onQueryResponse);
983
+ this.knex.off('query-error', this.onQueryError);
984
+ for (const span of this.querySpans.values())
985
+ span.end({ status: 'cancelled' });
986
+ this.querySpans.clear();
987
+ await this.knex?.destroy();
763
988
  }
764
989
  async migrate(storageName, storageIdentityKey) {
765
- var _a;
766
990
  // Check if this is a SQLite database by looking at the Knex client config
767
- const clientName = ((_a = this.knex.client.config) === null || _a === void 0 ? void 0 : _a.client) || '';
991
+ const clientName = this.knex.client.config?.client ?? '';
768
992
  const isSQLite = clientName.includes('sqlite');
769
993
  // For SQLite, disable transactions during migrations and turn off foreign keys.
770
994
  // PRAGMA foreign_keys is silently ignored inside transactions, so we must
@@ -786,11 +1010,10 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
786
1010
  return version;
787
1011
  }
788
1012
  async dropAllData() {
789
- var _a;
790
1013
  // Only using migrations to migrate down, don't need valid properties for settings table.
791
1014
  const migrationSource = new KnexMigrations_1.KnexMigrations('test', '', '', 1024);
792
1015
  // Check if this is a SQLite database by looking at the Knex client config
793
- const clientName = ((_a = this.knex.client.config) === null || _a === void 0 ? void 0 : _a.client) || '';
1016
+ const clientName = this.knex.client.config?.client ?? '';
794
1017
  const isSQLite = clientName.includes('sqlite');
795
1018
  // For SQLite, disable transactions during migrations and turn off foreign keys.
796
1019
  // PRAGMA foreign_keys is silently ignored inside transactions, so we must
@@ -809,12 +1032,15 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
809
1032
  for (let i = 0; i < count; i++) {
810
1033
  try {
811
1034
  const r = await this.knex.migrate.down(config);
812
- if (!r) {
813
- console.error(`Migration returned falsy result await this.knex.migrate.down(config)`);
1035
+ if (r == null) {
1036
+ console.error('Migration returned falsy result await this.knex.migrate.down(config)');
814
1037
  break;
815
1038
  }
816
1039
  }
817
- catch (eu) {
1040
+ catch (migrationError) {
1041
+ // migrate.down throws when there are no more migrations to roll back — this is
1042
+ // the expected terminal condition, so we stop iterating rather than propagating.
1043
+ console.debug('migrate.down stopped (no more migrations or error):', migrationError);
818
1044
  break;
819
1045
  }
820
1046
  }
@@ -824,7 +1050,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
824
1050
  }
825
1051
  }
826
1052
  async transaction(scope, trx) {
827
- if (trx)
1053
+ if (trx != null)
828
1054
  return await scope(trx);
829
1055
  return await this.knex.transaction(async (knextrx) => {
830
1056
  const trx = knextrx;
@@ -835,22 +1061,24 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
835
1061
  * Convert the standard optional `TrxToken` parameter into either a direct knex database instance,
836
1062
  * or a Knex.Transaction as appropriate.
837
1063
  */
1064
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
838
1065
  toDb(trx) {
839
1066
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
840
- const db = !trx ? this.knex : trx;
1067
+ const db = (trx == null) ? this.knex : trx;
841
1068
  this.whenLastAccess = new Date();
842
1069
  return db;
843
1070
  }
844
1071
  async validateRawTransaction(t, trx) {
845
1072
  // if there is no txid or there is a rawTransaction return what we have.
846
- if (t.rawTx || !t.txid)
1073
+ if (t.rawTx != null || t.txid == null || t.txid === '')
847
1074
  return;
848
1075
  // rawTransaction is missing, see if we moved it ...
849
1076
  const rawTx = await this.getRawTxOfKnownValidTransaction(t.txid, undefined, undefined, trx);
850
- if (!rawTx)
1077
+ if (rawTx == null)
851
1078
  return;
852
1079
  t.rawTx = rawTx;
853
1080
  }
1081
+ _verifiedReadyForDatabaseAccess = false;
854
1082
  /**
855
1083
  * Make sure database is ready for access:
856
1084
  *
@@ -860,9 +1088,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
860
1088
  * @param trx
861
1089
  */
862
1090
  async verifyReadyForDatabaseAccess(trx) {
863
- if (!this._settings) {
864
- this._settings = await this.readSettings();
865
- }
1091
+ this._settings ??= await this.readSettings();
866
1092
  // Always run the PRAGMA for SQLite to ensure foreign key constraints are enabled.
867
1093
  // This is necessary because PRAGMA foreign_keys is a per-connection setting,
868
1094
  // and connection pools may create new connections that don't have it set.
@@ -873,43 +1099,61 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
873
1099
  this._verifiedReadyForDatabaseAccess = true;
874
1100
  return this._settings.dbtype;
875
1101
  }
1102
+ /** Convert every byte-array value to a Buffer and every undefined to null on an arbitrary object. */
1103
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1104
+ serialiseForKnex(v) {
1105
+ for (const key of Object.keys(v)) {
1106
+ const val = v[key];
1107
+ if (Array.isArray(val) && (val.length === 0 || typeof val[0] === 'number')) {
1108
+ v[key] = Buffer.from(val);
1109
+ }
1110
+ else if (val instanceof Uint8Array) {
1111
+ v[key] = Buffer.from(val.buffer, val.byteOffset, val.byteLength);
1112
+ }
1113
+ else if (val === undefined) {
1114
+ v[key] = null;
1115
+ }
1116
+ }
1117
+ }
1118
+ /** Apply optional date-field coercion list in-place. */
1119
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1120
+ coerceDateFields(v, dateFields) {
1121
+ if (dateFields == null)
1122
+ return;
1123
+ for (const df of dateFields) {
1124
+ if (v[df] != null)
1125
+ v[df] = this.validateOptionalEntityDate(v[df]);
1126
+ }
1127
+ }
1128
+ /** Apply optional boolean-field coercion list in-place. */
1129
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1130
+ coerceBooleanFields(v, booleanFields) {
1131
+ if (booleanFields == null)
1132
+ return;
1133
+ for (const df of booleanFields) {
1134
+ if (v[df] !== undefined)
1135
+ v[df] = v[df] != null && v[df] !== false ? 1 : 0;
1136
+ }
1137
+ }
876
1138
  /**
877
1139
  * Helper to force uniform behavior across database engines.
878
1140
  * Use to process the update template for entities being updated.
879
1141
  */
880
1142
  validatePartialForUpdate(update, dateFields, booleanFields) {
881
- if (!this.dbtype)
1143
+ if (this.dbtype == null)
882
1144
  throw new WERR_errors_1.WERR_INTERNAL('must call verifyReadyForDatabaseAccess first');
1145
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
883
1146
  const v = update;
884
- if (v.created_at)
1147
+ if (v.created_at != null)
885
1148
  v.created_at = this.validateEntityDate(v.created_at);
886
- if (v.updated_at)
1149
+ if (v.updated_at != null)
887
1150
  v.updated_at = this.validateEntityDate(v.updated_at);
888
- if (!v.created_at)
1151
+ if (v.created_at == null)
889
1152
  delete v.created_at;
890
- if (!v.updated_at)
891
- v.updated_at = this.validateEntityDate(new Date());
892
- if (dateFields) {
893
- for (const df of dateFields) {
894
- if (v[df])
895
- v[df] = this.validateOptionalEntityDate(v[df]);
896
- }
897
- }
898
- if (booleanFields) {
899
- for (const df of booleanFields) {
900
- if (update[df] !== undefined)
901
- update[df] = !!update[df] ? 1 : 0;
902
- }
903
- }
904
- for (const key of Object.keys(v)) {
905
- const val = v[key];
906
- if (Array.isArray(val) && (val.length === 0 || typeof val[0] === 'number')) {
907
- v[key] = Buffer.from(val);
908
- }
909
- else if (val === undefined) {
910
- v[key] = null;
911
- }
912
- }
1153
+ v.updated_at ??= this.validateEntityDate(new Date());
1154
+ this.coerceDateFields(v, dateFields);
1155
+ this.coerceBooleanFields(update, booleanFields);
1156
+ this.serialiseForKnex(v);
913
1157
  this.isDirty = true;
914
1158
  return v;
915
1159
  }
@@ -917,36 +1161,21 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
917
1161
  * Helper to force uniform behavior across database engines.
918
1162
  * Use to process new entities being inserted into the database.
919
1163
  */
920
- async validateEntityForInsert(entity, trx, dateFields, booleanFields) {
1164
+ async validateEntityForInsert(entity, trx, dateFields, booleanFields
1165
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1166
+ ) {
921
1167
  await this.verifyReadyForDatabaseAccess(trx);
1168
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
922
1169
  const v = { ...entity };
923
- v.created_at = this.validateOptionalEntityDate(v.created_at, true);
924
- v.updated_at = this.validateOptionalEntityDate(v.updated_at, true);
925
- if (!v.created_at)
1170
+ v.created_at = this.validateOptionalEntityDate(v.created_at, true) ?? new Date();
1171
+ v.updated_at = this.validateOptionalEntityDate(v.updated_at, true) ?? new Date();
1172
+ if (v.created_at == null)
926
1173
  delete v.created_at;
927
- if (!v.updated_at)
1174
+ if (v.updated_at == null)
928
1175
  delete v.updated_at;
929
- if (dateFields) {
930
- for (const df of dateFields) {
931
- if (v[df])
932
- v[df] = this.validateOptionalEntityDate(v[df]);
933
- }
934
- }
935
- if (booleanFields) {
936
- for (const df of booleanFields) {
937
- if (entity[df] !== undefined)
938
- entity[df] = !!entity[df] ? 1 : 0;
939
- }
940
- }
941
- for (const key of Object.keys(v)) {
942
- const val = v[key];
943
- if (Array.isArray(val) && (val.length === 0 || typeof val[0] === 'number')) {
944
- v[key] = Buffer.from(val);
945
- }
946
- else if (val === undefined) {
947
- v[key] = null;
948
- }
949
- }
1176
+ this.coerceDateFields(v, dateFields);
1177
+ this.coerceBooleanFields(entity, booleanFields);
1178
+ this.serialiseForKnex(v);
950
1179
  this.isDirty = true;
951
1180
  return v;
952
1181
  }
@@ -975,7 +1204,8 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
975
1204
  return await (0, reviewStatus_1.reviewStatus)(this, args);
976
1205
  }
977
1206
  /**
978
- * Counts the outputs for userId in basketId that are spendable: true
1207
+ * Counts wallet-managed BRC-29 change outputs for userId in basketId that
1208
+ * are currently eligible for automatic allocation
979
1209
  * AND whose transaction status is one of:
980
1210
  * - completed
981
1211
  * - unproven
@@ -985,13 +1215,103 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
985
1215
  const status = ['completed', 'unproven'];
986
1216
  if (!excludeSending)
987
1217
  status.push('sending');
1218
+ const now = new Date();
988
1219
  const q = this.knex('outputs as o')
989
1220
  .join('transactions as t', 'o.transactionId', 't.transactionId')
990
- .where({ 'o.userId': userId, 'o.spendable': true, 'o.basketId': basketId })
1221
+ .where({
1222
+ 'o.userId': userId,
1223
+ 'o.spendable': true,
1224
+ 'o.basketId': basketId,
1225
+ 'o.type': managedChange_1.managedChangeOutputFields.type,
1226
+ 'o.change': managedChange_1.managedChangeOutputFields.change,
1227
+ 'o.providedBy': managedChange_1.managedChangeOutputFields.providedBy,
1228
+ 'o.purpose': managedChange_1.managedChangeOutputFields.purpose
1229
+ })
1230
+ .whereNull('o.spentBy')
1231
+ .whereNotNull('o.derivationPrefix')
1232
+ .whereNot('o.derivationPrefix', '')
1233
+ .whereNotNull('o.derivationSuffix')
1234
+ .whereNot('o.derivationSuffix', '')
1235
+ .whereNotExists(function () {
1236
+ void this.select(1)
1237
+ .from('action_batch_outputs as abo')
1238
+ .join('action_batches as ab', 'abo.actionBatchId', 'ab.actionBatchId')
1239
+ .whereRaw('abo.outputId = o.outputId')
1240
+ .whereIn('ab.status', ['active', 'prepared'])
1241
+ .where('ab.expiresAt', '>', now)
1242
+ .where('ab.hardExpiresAt', '>', now);
1243
+ })
991
1244
  .whereIn('t.status', status);
992
1245
  const count = await this.getCount(q);
993
1246
  return count;
994
1247
  }
1248
+ async findAvailableManagedChangeInputs(userId, basketId, excludeSending, trx) {
1249
+ const statuses = ['completed', 'unproven'];
1250
+ if (!excludeSending)
1251
+ statuses.push('sending');
1252
+ const now = new Date();
1253
+ const rows = await this.toDb(trx)('outputs as o')
1254
+ .join('transactions as t', 'o.transactionId', 't.transactionId')
1255
+ .where({
1256
+ 'o.userId': userId,
1257
+ 'o.basketId': basketId,
1258
+ 'o.spendable': true,
1259
+ 'o.type': managedChange_1.managedChangeOutputFields.type,
1260
+ 'o.change': managedChange_1.managedChangeOutputFields.change,
1261
+ 'o.providedBy': managedChange_1.managedChangeOutputFields.providedBy,
1262
+ 'o.purpose': managedChange_1.managedChangeOutputFields.purpose
1263
+ })
1264
+ .whereNull('o.spentBy')
1265
+ .whereNotNull('o.derivationPrefix')
1266
+ .whereNot('o.derivationPrefix', '')
1267
+ .whereNotNull('o.derivationSuffix')
1268
+ .whereNot('o.derivationSuffix', '')
1269
+ .whereNotExists(function () {
1270
+ void this.select(1)
1271
+ .from('action_batch_outputs as abo')
1272
+ .join('action_batches as ab', 'abo.actionBatchId', 'ab.actionBatchId')
1273
+ .whereRaw('abo.outputId = o.outputId')
1274
+ .whereIn('ab.status', ['active', 'prepared'])
1275
+ .where('ab.expiresAt', '>', now)
1276
+ .where('ab.hardExpiresAt', '>', now);
1277
+ })
1278
+ .whereIn('t.status', statuses)
1279
+ .select(tables_1.outputColumnsWithoutLockingScript.map(column => `o.${column}`));
1280
+ return this.validateEntities(rows, undefined, ['spendable', 'change']);
1281
+ }
1282
+ async findAvailableManagedChangeInputCandidates(userId, basketId, excludeSending, trx) {
1283
+ const statuses = ['completed', 'unproven'];
1284
+ if (!excludeSending)
1285
+ statuses.push('sending');
1286
+ const now = new Date();
1287
+ return await this.toDb(trx)('outputs as o')
1288
+ .join('transactions as t', 'o.transactionId', 't.transactionId')
1289
+ .where({
1290
+ 'o.userId': userId,
1291
+ 'o.basketId': basketId,
1292
+ 'o.spendable': true,
1293
+ 'o.type': managedChange_1.managedChangeOutputFields.type,
1294
+ 'o.change': managedChange_1.managedChangeOutputFields.change,
1295
+ 'o.providedBy': managedChange_1.managedChangeOutputFields.providedBy,
1296
+ 'o.purpose': managedChange_1.managedChangeOutputFields.purpose
1297
+ })
1298
+ .whereNull('o.spentBy')
1299
+ .whereNotNull('o.derivationPrefix')
1300
+ .whereNot('o.derivationPrefix', '')
1301
+ .whereNotNull('o.derivationSuffix')
1302
+ .whereNot('o.derivationSuffix', '')
1303
+ .whereNotExists(function () {
1304
+ void this.select(1)
1305
+ .from('action_batch_outputs as abo')
1306
+ .join('action_batches as ab', 'abo.actionBatchId', 'ab.actionBatchId')
1307
+ .whereRaw('abo.outputId = o.outputId')
1308
+ .whereIn('ab.status', ['active', 'prepared'])
1309
+ .where('ab.expiresAt', '>', now)
1310
+ .where('ab.hardExpiresAt', '>', now);
1311
+ })
1312
+ .whereIn('t.status', statuses)
1313
+ .select('o.outputId', 'o.transactionId', 'o.satoshis', 'o.txid', 'o.vout');
1314
+ }
995
1315
  async findOutputsByIds(outputIds, trx) {
996
1316
  const byId = {};
997
1317
  if (outputIds.length < 1)
@@ -1020,14 +1340,79 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
1020
1340
  .whereIn('vout', vouts)
1021
1341
  .select('*');
1022
1342
  // Only return requested outpoints, vouts of one txid may end up matching another txid that was not requested.
1023
- const filteredRows = rows.filter(r => outpointSet.has(`${r.txid}.${r.vout}`));
1343
+ const filteredRows = rows.filter(r => outpointSet.has(`${String(r.txid)}.${String(r.vout)}`));
1024
1344
  const vrows = this.validateEntities(filteredRows, undefined, ['spendable', 'change']);
1025
1345
  for (const row of vrows) {
1026
1346
  await this.validateOutputScript(row, trx);
1027
- byOutpoint[`${row.txid}.${row.vout}`] = row;
1347
+ byOutpoint[`${String(row.txid)}.${String(row.vout)}`] = row;
1348
+ }
1349
+ return byOutpoint;
1350
+ }
1351
+ async findOutputsByOutpointsForUpdate(userId, outpoints, trx, noScript = false) {
1352
+ const byOutpoint = {};
1353
+ if (outpoints.length < 1)
1354
+ return byOutpoint;
1355
+ const outpointSet = new Set(outpoints.map(o => `${o.txid}.${o.vout}`));
1356
+ const rows = await this.toDb(trx)('outputs')
1357
+ .where('userId', userId)
1358
+ .whereIn('txid', [...new Set(outpoints.map(o => o.txid))])
1359
+ .whereIn('vout', [...new Set(outpoints.map(o => o.vout))])
1360
+ .select('*')
1361
+ .forUpdate();
1362
+ const filteredRows = rows.filter(r => outpointSet.has(`${String(r.txid)}.${String(r.vout)}`));
1363
+ for (const row of this.validateEntities(filteredRows, undefined, ['spendable', 'change'])) {
1364
+ if (!noScript)
1365
+ await this.validateOutputScript(row, trx);
1366
+ byOutpoint[`${String(row.txid)}.${String(row.vout)}`] = row;
1028
1367
  }
1029
1368
  return byOutpoint;
1030
1369
  }
1370
+ async findTransactionStatusesByIds(userId, transactionIds, trx) {
1371
+ const statuses = new Map();
1372
+ if (transactionIds.length === 0)
1373
+ return statuses;
1374
+ const rows = await this.toDb(trx)('transactions')
1375
+ .where('userId', userId)
1376
+ .whereIn('transactionId', [...new Set(transactionIds)])
1377
+ .select('transactionId', 'status');
1378
+ for (const row of rows)
1379
+ statuses.set(row.transactionId, row.status);
1380
+ return statuses;
1381
+ }
1382
+ async findFundingOutputsForUpdate(userId, outputIds, statuses, trx) {
1383
+ const byId = {};
1384
+ if (outputIds.length === 0)
1385
+ return byId;
1386
+ const uniqueOutputIds = [...new Set(outputIds)].sort((a, b) => a - b);
1387
+ // Lock source outputs through their primary key first. A single joined
1388
+ // SELECT ... FOR UPDATE caused PXC to lock one joined row at a time and
1389
+ // turned a 150-input claim into a ~220 ms statement. Transaction status
1390
+ // and action-batch reservations are then checked under the same database
1391
+ // transaction; action-batch reservation follows the same output-first lock
1392
+ // order, so a concurrent reserver cannot pass after this claim commits.
1393
+ const rows = await this.toDb(trx)('outputs as o')
1394
+ .where('o.userId', userId)
1395
+ .whereIn('o.outputId', uniqueOutputIds)
1396
+ .select('o.*')
1397
+ .forUpdate();
1398
+ const transactionIds = [...new Set(rows.map(output => output.transactionId))].sort((a, b) => a - b);
1399
+ const validTransactions = transactionIds.length === 0
1400
+ ? []
1401
+ : await this.toDb(trx)('transactions')
1402
+ .where('userId', userId)
1403
+ .whereIn('transactionId', transactionIds)
1404
+ .whereIn('status', statuses)
1405
+ .select('transactionId')
1406
+ .forShare();
1407
+ const validTransactionIds = new Set(validTransactions.map(transaction => transaction.transactionId));
1408
+ const reservedOutputIds = new Set(await this.findReservedActionBatchOutputIds(uniqueOutputIds, trx));
1409
+ for (const output of this.validateEntities(rows, undefined, ['spendable', 'change'])) {
1410
+ if (!validTransactionIds.has(output.transactionId) || reservedOutputIds.has(output.outputId))
1411
+ continue;
1412
+ byId[output.outputId] = output;
1413
+ }
1414
+ return byId;
1415
+ }
1031
1416
  async findOrInsertOutputBasketsBulk(userId, names, trx) {
1032
1417
  const byName = {};
1033
1418
  if (names.length < 1)
@@ -1043,8 +1428,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
1043
1428
  byName[basket.name] = basket;
1044
1429
  }
1045
1430
  for (const name of uniqueNames) {
1046
- if (!byName[name])
1047
- byName[name] = await this.findOrInsertOutputBasket(userId, name, trx);
1431
+ byName[name] ??= await this.findOrInsertOutputBasket(userId, name, trx);
1048
1432
  }
1049
1433
  return byName;
1050
1434
  }
@@ -1063,11 +1447,29 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
1063
1447
  byTag[outputTag.tag] = outputTag;
1064
1448
  }
1065
1449
  for (const tag of uniqueTags) {
1066
- if (!byTag[tag])
1067
- byTag[tag] = await this.findOrInsertOutputTag(userId, tag, trx);
1450
+ byTag[tag] ??= await this.findOrInsertOutputTag(userId, tag, trx);
1068
1451
  }
1069
1452
  return byTag;
1070
1453
  }
1454
+ async findOrInsertTxLabelsBulk(userId, labels, trx) {
1455
+ const byLabel = {};
1456
+ if (labels.length < 1)
1457
+ return byLabel;
1458
+ const uniqueLabels = [...new Set(labels)];
1459
+ const existing = await this.toDb(trx)('tx_labels')
1460
+ .where('userId', userId)
1461
+ .whereIn('label', uniqueLabels)
1462
+ .select('*');
1463
+ for (const label of existing) {
1464
+ if (label.isDeleted)
1465
+ await this.updateTxLabel((0, utilityHelpers_1.verifyId)(label.txLabelId), { isDeleted: false }, trx);
1466
+ byLabel[label.label] = label;
1467
+ }
1468
+ for (const label of uniqueLabels) {
1469
+ byLabel[label] ??= await this.findOrInsertTxLabel(userId, label, trx);
1470
+ }
1471
+ return byLabel;
1472
+ }
1071
1473
  async sumSpendableSatoshisInBasket(userId, basketId, excludeSending, trx) {
1072
1474
  const status = ['completed', 'unproven'];
1073
1475
  if (!excludeSending)
@@ -1075,10 +1477,12 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
1075
1477
  const row = await this.toDb(trx)('outputs as o')
1076
1478
  .join('transactions as t', 'o.transactionId', 't.transactionId')
1077
1479
  .where({ 'o.userId': userId, 'o.spendable': true, 'o.basketId': basketId })
1480
+ .whereNull('o.spentBy')
1078
1481
  .whereIn('t.status', status)
1079
1482
  .sum({ totalSatoshis: 'o.satoshis' })
1080
1483
  .first();
1081
- return Number((row && row['totalSatoshis']) || 0);
1484
+ const total = (row != null) ? row.totalSatoshis : undefined;
1485
+ return Number(total ?? 0);
1082
1486
  }
1083
1487
  /**
1084
1488
  * Finds closest matching available change output to use as input for new transaction.
@@ -1095,27 +1499,40 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
1095
1499
  .where('o.userId', userId)
1096
1500
  .where('o.spendable', true)
1097
1501
  .where('o.basketId', basketId)
1502
+ .where({
1503
+ 'o.type': managedChange_1.managedChangeOutputFields.type,
1504
+ 'o.change': managedChange_1.managedChangeOutputFields.change,
1505
+ 'o.providedBy': managedChange_1.managedChangeOutputFields.providedBy,
1506
+ 'o.purpose': managedChange_1.managedChangeOutputFields.purpose
1507
+ })
1508
+ .whereNotNull('o.derivationPrefix')
1509
+ .whereNot('o.derivationPrefix', '')
1510
+ .whereNotNull('o.derivationSuffix')
1511
+ .whereNot('o.derivationSuffix', '')
1512
+ .whereNull('o.spentBy')
1513
+ .whereNotExists(function () {
1514
+ void this.select(1)
1515
+ .from('action_batch_outputs as abo')
1516
+ .whereRaw('abo.outputId = o.outputId');
1517
+ })
1098
1518
  .whereIn('t.status', status)
1099
- .select('o.*');
1519
+ .select('o.*')
1520
+ .forUpdate();
1100
1521
  let output;
1101
1522
  if (exactSatoshis !== undefined) {
1102
1523
  output = await baseQuery().where('o.satoshis', exactSatoshis).orderBy('o.outputId', 'asc').first();
1103
1524
  }
1104
- if (!output) {
1105
- output = await baseQuery()
1106
- .where('o.satoshis', '>=', targetSatoshis)
1107
- .orderBy('o.satoshis', 'asc')
1108
- .orderBy('o.outputId', 'asc')
1109
- .first();
1110
- }
1111
- if (!output) {
1112
- output = await baseQuery()
1113
- .where('o.satoshis', '<', targetSatoshis)
1114
- .orderBy('o.satoshis', 'desc')
1115
- .orderBy('o.outputId', 'desc')
1116
- .first();
1117
- }
1118
- if (!output)
1525
+ output ??= await baseQuery()
1526
+ .where('o.satoshis', '>=', targetSatoshis)
1527
+ .orderBy('o.satoshis', 'asc')
1528
+ .orderBy('o.outputId', 'asc')
1529
+ .first();
1530
+ output ??= await baseQuery()
1531
+ .where('o.satoshis', '<', targetSatoshis)
1532
+ .orderBy('o.satoshis', 'desc')
1533
+ .orderBy('o.outputId', 'desc')
1534
+ .first();
1535
+ if (output == null)
1119
1536
  return undefined;
1120
1537
  await this.updateOutput(output.outputId, {
1121
1538
  spendable: false,
@@ -1130,6 +1547,32 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
1130
1547
  });
1131
1548
  return r;
1132
1549
  }
1550
+ async markChangeInputsSpent(outputIds, transactionId, trx) {
1551
+ if (outputIds.length === 0)
1552
+ return 0;
1553
+ return await this.toDb(trx)('outputs')
1554
+ .whereIn('outputId', outputIds)
1555
+ .where('spendable', true)
1556
+ .whereNull('spentBy')
1557
+ .update({ spendable: false, spentBy: transactionId });
1558
+ }
1559
+ /** Convert null→undefined and Buffer→number[] on a retrieved entity in-place. */
1560
+ deserialiseFromKnex(entity) {
1561
+ for (const key of Object.keys(entity)) {
1562
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1563
+ const val = entity[key];
1564
+ if (val === null) {
1565
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1566
+ ;
1567
+ entity[key] = undefined;
1568
+ }
1569
+ else if (Buffer.isBuffer(val)) {
1570
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1571
+ ;
1572
+ entity[key] = Array.from(val);
1573
+ }
1574
+ }
1575
+ }
1133
1576
  /**
1134
1577
  * Helper to force uniform behavior across database engines.
1135
1578
  * Use to process all individual records with time stamps retreived from database.
@@ -1137,27 +1580,21 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
1137
1580
  validateEntity(entity, dateFields, booleanFields) {
1138
1581
  entity.created_at = this.validateDate(entity.created_at);
1139
1582
  entity.updated_at = this.validateDate(entity.updated_at);
1140
- if (dateFields) {
1583
+ if (dateFields != null) {
1141
1584
  for (const df of dateFields) {
1142
- if (entity[df])
1585
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1586
+ if (entity[df] != null)
1143
1587
  entity[df] = this.validateDate(entity[df]);
1144
1588
  }
1145
1589
  }
1146
- if (booleanFields) {
1590
+ if (booleanFields != null) {
1147
1591
  for (const df of booleanFields) {
1592
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1148
1593
  if (entity[df] !== undefined)
1149
- entity[df] = !!entity[df];
1150
- }
1151
- }
1152
- for (const key of Object.keys(entity)) {
1153
- const val = entity[key];
1154
- if (val === null) {
1155
- entity[key] = undefined;
1156
- }
1157
- else if (Buffer.isBuffer(val)) {
1158
- entity[key] = Array.from(val);
1594
+ entity[df] = entity[df] !== 0 && entity[df] != null && entity[df] !== false;
1159
1595
  }
1160
1596
  }
1597
+ this.deserialiseFromKnex(entity);
1161
1598
  return entity;
1162
1599
  }
1163
1600
  /**
@@ -1179,81 +1616,81 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
1179
1616
  orderDescending: true,
1180
1617
  paged: { limit: 1 }
1181
1618
  }));
1182
- const monitorStats = monitorEvent ? JSON.parse(monitorEvent.details) : undefined;
1619
+ const monitorStats = (monitorEvent != null) ? JSON.parse(monitorEvent.details) : undefined;
1183
1620
  const servicesStats = this.getServices().getServicesCallHistory(true);
1184
- const one_day_ago = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString();
1185
- const one_week_ago = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString();
1186
- const one_month_ago = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString();
1621
+ const oneDayAgo = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString();
1622
+ const oneWeekAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString();
1623
+ const oneMonthAgo = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString();
1187
1624
  const [[{ usersDay, usersMonth, usersWeek, usersTotal, transactionsDay, transactionsMonth, transactionsWeek, transactionsTotal, txCompletedDay, txCompletedMonth, txCompletedWeek, txCompletedTotal, txFailedDay, txFailedMonth, txFailedWeek, txFailedTotal, txAbandonedDay, txAbandonedMonth, txAbandonedWeek, txAbandonedTotal, txUnprocessedDay, txUnprocessedMonth, txUnprocessedWeek, txUnprocessedTotal, txSendingDay, txSendingMonth, txSendingWeek, txSendingTotal, txUnprovenDay, txUnprovenMonth, txUnprovenWeek, txUnprovenTotal, txUnsignedDay, txUnsignedMonth, txUnsignedWeek, txUnsignedTotal, txNosendDay, txNosendMonth, txNosendWeek, txNosendTotal, txNonfinalDay, txNonfinalMonth, txNonfinalWeek, txNonfinalTotal, txUnfailDay, txUnfailMonth, txUnfailWeek, txUnfailTotal, satoshisDefaultDay, satoshisDefaultMonth, satoshisDefaultWeek, satoshisDefaultTotal, satoshisOtherDay, satoshisOtherMonth, satoshisOtherWeek, satoshisOtherTotal, basketsDay, basketsMonth, basketsWeek, basketsTotal, labelsDay, labelsMonth, labelsWeek, labelsTotal, tagsDay, tagsMonth, tagsWeek, tagsTotal }]] = await this.knex.raw(`
1188
1625
  select
1189
- (select count(*) from users where created_at > '${one_day_ago}') as usersDay,
1190
- (select count(*) from users where created_at > '${one_week_ago}') as usersWeek,
1191
- (select count(*) from users where created_at > '${one_month_ago}') as usersMonth,
1192
- (select count(*) from users) as usersTotal,
1193
- (select count(*) from transactions where created_at > '${one_day_ago}') as transactionsDay,
1194
- (select count(*) from transactions where created_at > '${one_week_ago}') as transactionsWeek,
1195
- (select count(*) from transactions where created_at > '${one_month_ago}') as transactionsMonth,
1196
- (select count(*) from transactions) as transactionsTotal,
1197
- (select count(*) from transactions where status = 'completed' and created_at > '${one_day_ago}') as txCompletedDay,
1198
- (select count(*) from transactions where status = 'completed' and created_at > '${one_week_ago}') as txCompletedWeek,
1199
- (select count(*) from transactions where status = 'completed' and created_at > '${one_month_ago}') as txCompletedMonth,
1200
- (select count(*) from transactions where status = 'completed') as txCompletedTotal,
1201
- (select count(*) from transactions where status = 'failed' and not txid is null and created_at > '${one_day_ago}') as txFailedDay,
1202
- (select count(*) from transactions where status = 'failed' and not txid is null and created_at > '${one_week_ago}') as txFailedWeek,
1203
- (select count(*) from transactions where status = 'failed' and not txid is null and created_at > '${one_month_ago}') as txFailedMonth,
1204
- (select count(*) from transactions where status = 'failed' and not txid is null) as txFailedTotal,
1205
- (select count(*) from transactions where status = 'failed' and txid is null and created_at > '${one_day_ago}') as txAbandonedDay,
1206
- (select count(*) from transactions where status = 'failed' and txid is null and created_at > '${one_week_ago}') as txAbandonedWeek,
1207
- (select count(*) from transactions where status = 'failed' and txid is null and created_at > '${one_month_ago}') as txAbandonedMonth,
1208
- (select count(*) from transactions where status = 'failed' and txid is null) as txAbandonedTotal,
1209
- (select count(*) from transactions where status = 'unprocessed' and created_at > '${one_day_ago}') as txUnprocessedDay,
1210
- (select count(*) from transactions where status = 'unprocessed' and created_at > '${one_week_ago}') as txUnprocessedWeek,
1211
- (select count(*) from transactions where status = 'unprocessed' and created_at > '${one_month_ago}') as txUnprocessedMonth,
1212
- (select count(*) from transactions where status = 'unprocessed') as txUnprocessedTotal,
1213
- (select count(*) from transactions where status = 'sending' and created_at > '${one_day_ago}') as txSendingDay,
1214
- (select count(*) from transactions where status = 'sending' and created_at > '${one_week_ago}') as txSendingWeek,
1215
- (select count(*) from transactions where status = 'sending' and created_at > '${one_month_ago}') as txSendingMonth,
1216
- (select count(*) from transactions where status = 'sending') as txSendingTotal,
1217
- (select count(*) from transactions where status = 'unproven' and created_at > '${one_day_ago}') as txUnprovenDay,
1218
- (select count(*) from transactions where status = 'unproven' and created_at > '${one_week_ago}') as txUnprovenWeek,
1219
- (select count(*) from transactions where status = 'unproven' and created_at > '${one_month_ago}') as txUnprovenMonth,
1220
- (select count(*) from transactions where status = 'unproven') as txUnprovenTotal,
1221
- (select count(*) from transactions where status = 'unsigned' and created_at > '${one_day_ago}') as txUnsignedDay,
1222
- (select count(*) from transactions where status = 'unsigned' and created_at > '${one_week_ago}') as txUnsignedWeek,
1223
- (select count(*) from transactions where status = 'unsigned' and created_at > '${one_month_ago}') as txUnsignedMonth,
1224
- (select count(*) from transactions where status = 'unsigned') as txUnsignedTotal,
1225
- (select count(*) from transactions where status = 'nosend' and created_at > '${one_day_ago}') as txNosendDay,
1226
- (select count(*) from transactions where status = 'nosend' and created_at > '${one_week_ago}') as txNosendWeek,
1227
- (select count(*) from transactions where status = 'nosend' and created_at > '${one_month_ago}') as txNosendMonth,
1228
- (select count(*) from transactions where status = 'nosend') as txNosendTotal,
1229
- (select count(*) from transactions where status = 'nonfinal' and created_at > '${one_day_ago}') as txNonfinalDay,
1230
- (select count(*) from transactions where status = 'nonfinal' and created_at > '${one_week_ago}') as txNonfinalWeek,
1231
- (select count(*) from transactions where status = 'nonfinal' and created_at > '${one_month_ago}') as txNonfinalMonth,
1232
- (select count(*) from transactions where status = 'nonfinal') as txNonfinalTotal,
1233
- (select count(*) from transactions where status = 'unfail' and created_at > '${one_day_ago}') as txUnfailDay,
1234
- (select count(*) from transactions where status = 'unfail' and created_at > '${one_week_ago}') as txUnfailWeek,
1235
- (select count(*) from transactions where status = 'unfail' and created_at > '${one_month_ago}') as txUnfailMonth,
1236
- (select count(*) from transactions where status = 'unfail') as txUnfailTotal,
1237
- (select sum(satoshis) from outputs where spendable = 1 and \`change\` = 1 and created_at > '${one_day_ago}') as satoshisDefaultDay,
1238
- (select sum(satoshis) from outputs where spendable = 1 and \`change\` = 1 and created_at > '${one_week_ago}') as satoshisDefaultWeek,
1239
- (select sum(satoshis) from outputs where spendable = 1 and \`change\` = 1 and created_at > '${one_month_ago}') as satoshisDefaultMonth,
1240
- (select sum(satoshis) from outputs where spendable = 1 and \`change\` = 1) as satoshisDefaultTotal,
1241
- (select sum(satoshis) from outputs where spendable = 1 and \`change\` = 0 and not basketId is null and created_at > '${one_day_ago}') as satoshisOtherDay,
1242
- (select sum(satoshis) from outputs where spendable = 1 and \`change\` = 0 and not basketId is null and created_at > '${one_week_ago}') as satoshisOtherWeek,
1243
- (select sum(satoshis) from outputs where spendable = 1 and \`change\` = 0 and not basketId is null and created_at > '${one_month_ago}') as satoshisOtherMonth,
1244
- (select sum(satoshis) from outputs where spendable = 1 and \`change\` = 0 and not basketId is null) as satoshisOtherTotal,
1245
- (select count(*) from output_baskets where created_at > '${one_day_ago}') as basketsDay,
1246
- (select count(*) from output_baskets where created_at > '${one_week_ago}') as basketsWeek,
1247
- (select count(*) from output_baskets where created_at > '${one_month_ago}') as basketsMonth,
1248
- (select count(*) from output_baskets) as basketsTotal,
1249
- (select count(*) from tx_labels where created_at > '${one_day_ago}') as labelsDay,
1250
- (select count(*) from tx_labels where created_at > '${one_week_ago}') as labelsWeek,
1251
- (select count(*) from tx_labels where created_at > '${one_month_ago}') as labelsMonth,
1252
- (select count(*) from tx_labels) as labelsTotal,
1253
- (select count(*) from output_tags where created_at > '${one_day_ago}') as tagsDay,
1254
- (select count(*) from output_tags where created_at > '${one_week_ago}') as tagsWeek,
1255
- (select count(*) from output_tags where created_at > '${one_month_ago}') as tagsMonth,
1256
- (select count(*) from output_tags) as tagsTotal
1626
+ (select count(*) from users where created_at > '${oneDayAgo}') as usersDay,
1627
+ (select count(*) from users where created_at > '${oneWeekAgo}') as usersWeek,
1628
+ (select count(*) from users where created_at > '${oneMonthAgo}') as usersMonth,
1629
+ (select count(*) from users) as usersTotal,
1630
+ (select count(*) from transactions where created_at > '${oneDayAgo}') as transactionsDay,
1631
+ (select count(*) from transactions where created_at > '${oneWeekAgo}') as transactionsWeek,
1632
+ (select count(*) from transactions where created_at > '${oneMonthAgo}') as transactionsMonth,
1633
+ (select count(*) from transactions) as transactionsTotal,
1634
+ (select count(*) from transactions where status = 'completed' and created_at > '${oneDayAgo}') as txCompletedDay,
1635
+ (select count(*) from transactions where status = 'completed' and created_at > '${oneWeekAgo}') as txCompletedWeek,
1636
+ (select count(*) from transactions where status = 'completed' and created_at > '${oneMonthAgo}') as txCompletedMonth,
1637
+ (select count(*) from transactions where status = 'completed') as txCompletedTotal,
1638
+ (select count(*) from transactions where status = 'failed' and not txid is null and created_at > '${oneDayAgo}') as txFailedDay,
1639
+ (select count(*) from transactions where status = 'failed' and not txid is null and created_at > '${oneWeekAgo}') as txFailedWeek,
1640
+ (select count(*) from transactions where status = 'failed' and not txid is null and created_at > '${oneMonthAgo}') as txFailedMonth,
1641
+ (select count(*) from transactions where status = 'failed' and not txid is null) as txFailedTotal,
1642
+ (select count(*) from transactions where status = 'failed' and txid is null and created_at > '${oneDayAgo}') as txAbandonedDay,
1643
+ (select count(*) from transactions where status = 'failed' and txid is null and created_at > '${oneWeekAgo}') as txAbandonedWeek,
1644
+ (select count(*) from transactions where status = 'failed' and txid is null and created_at > '${oneMonthAgo}') as txAbandonedMonth,
1645
+ (select count(*) from transactions where status = 'failed' and txid is null) as txAbandonedTotal,
1646
+ (select count(*) from transactions where status = 'unprocessed' and created_at > '${oneDayAgo}') as txUnprocessedDay,
1647
+ (select count(*) from transactions where status = 'unprocessed' and created_at > '${oneWeekAgo}') as txUnprocessedWeek,
1648
+ (select count(*) from transactions where status = 'unprocessed' and created_at > '${oneMonthAgo}') as txUnprocessedMonth,
1649
+ (select count(*) from transactions where status = 'unprocessed') as txUnprocessedTotal,
1650
+ (select count(*) from transactions where status = 'sending' and created_at > '${oneDayAgo}') as txSendingDay,
1651
+ (select count(*) from transactions where status = 'sending' and created_at > '${oneWeekAgo}') as txSendingWeek,
1652
+ (select count(*) from transactions where status = 'sending' and created_at > '${oneMonthAgo}') as txSendingMonth,
1653
+ (select count(*) from transactions where status = 'sending') as txSendingTotal,
1654
+ (select count(*) from transactions where status = 'unproven' and created_at > '${oneDayAgo}') as txUnprovenDay,
1655
+ (select count(*) from transactions where status = 'unproven' and created_at > '${oneWeekAgo}') as txUnprovenWeek,
1656
+ (select count(*) from transactions where status = 'unproven' and created_at > '${oneMonthAgo}') as txUnprovenMonth,
1657
+ (select count(*) from transactions where status = 'unproven') as txUnprovenTotal,
1658
+ (select count(*) from transactions where status = 'unsigned' and created_at > '${oneDayAgo}') as txUnsignedDay,
1659
+ (select count(*) from transactions where status = 'unsigned' and created_at > '${oneWeekAgo}') as txUnsignedWeek,
1660
+ (select count(*) from transactions where status = 'unsigned' and created_at > '${oneMonthAgo}') as txUnsignedMonth,
1661
+ (select count(*) from transactions where status = 'unsigned') as txUnsignedTotal,
1662
+ (select count(*) from transactions where status = 'nosend' and created_at > '${oneDayAgo}') as txNosendDay,
1663
+ (select count(*) from transactions where status = 'nosend' and created_at > '${oneWeekAgo}') as txNosendWeek,
1664
+ (select count(*) from transactions where status = 'nosend' and created_at > '${oneMonthAgo}') as txNosendMonth,
1665
+ (select count(*) from transactions where status = 'nosend') as txNosendTotal,
1666
+ (select count(*) from transactions where status = 'nonfinal' and created_at > '${oneDayAgo}') as txNonfinalDay,
1667
+ (select count(*) from transactions where status = 'nonfinal' and created_at > '${oneWeekAgo}') as txNonfinalWeek,
1668
+ (select count(*) from transactions where status = 'nonfinal' and created_at > '${oneMonthAgo}') as txNonfinalMonth,
1669
+ (select count(*) from transactions where status = 'nonfinal') as txNonfinalTotal,
1670
+ (select count(*) from transactions where status = 'unfail' and created_at > '${oneDayAgo}') as txUnfailDay,
1671
+ (select count(*) from transactions where status = 'unfail' and created_at > '${oneWeekAgo}') as txUnfailWeek,
1672
+ (select count(*) from transactions where status = 'unfail' and created_at > '${oneMonthAgo}') as txUnfailMonth,
1673
+ (select count(*) from transactions where status = 'unfail') as txUnfailTotal,
1674
+ (select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 1 and o.created_at > '${oneDayAgo}') as satoshisDefaultDay,
1675
+ (select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 1 and o.created_at > '${oneWeekAgo}') as satoshisDefaultWeek,
1676
+ (select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 1 and o.created_at > '${oneMonthAgo}') as satoshisDefaultMonth,
1677
+ (select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 1) as satoshisDefaultTotal,
1678
+ (select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 0 and not o.basketId is null and o.created_at > '${oneDayAgo}') as satoshisOtherDay,
1679
+ (select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 0 and not o.basketId is null and o.created_at > '${oneWeekAgo}') as satoshisOtherWeek,
1680
+ (select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 0 and not o.basketId is null and o.created_at > '${oneMonthAgo}') as satoshisOtherMonth,
1681
+ (select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 0 and not o.basketId is null) as satoshisOtherTotal,
1682
+ (select count(*) from output_baskets where created_at > '${oneDayAgo}') as basketsDay,
1683
+ (select count(*) from output_baskets where created_at > '${oneWeekAgo}') as basketsWeek,
1684
+ (select count(*) from output_baskets where created_at > '${oneMonthAgo}') as basketsMonth,
1685
+ (select count(*) from output_baskets) as basketsTotal,
1686
+ (select count(*) from tx_labels where created_at > '${oneDayAgo}') as labelsDay,
1687
+ (select count(*) from tx_labels where created_at > '${oneWeekAgo}') as labelsWeek,
1688
+ (select count(*) from tx_labels where created_at > '${oneMonthAgo}') as labelsMonth,
1689
+ (select count(*) from tx_labels) as labelsTotal,
1690
+ (select count(*) from output_tags where created_at > '${oneDayAgo}') as tagsDay,
1691
+ (select count(*) from output_tags where created_at > '${oneWeekAgo}') as tagsWeek,
1692
+ (select count(*) from output_tags where created_at > '${oneMonthAgo}') as tagsMonth,
1693
+ (select count(*) from output_tags) as tagsTotal
1257
1694
  `);
1258
1695
  const r = {
1259
1696
  monitorStats,