@bsv/wallet-toolbox-client 2.4.3 → 2.4.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (789) hide show
  1. package/LICENSE.txt +58 -0
  2. package/README.md +43 -22
  3. package/out/index.client.cjs +33583 -0
  4. package/out/index.client.cjs.map +1 -0
  5. package/out/index.client.d.cts +10768 -0
  6. package/out/index.client.d.cts.map +1 -0
  7. package/out/index.client.d.mts +10767 -0
  8. package/out/index.client.d.mts.map +1 -0
  9. package/out/index.client.mjs +33377 -0
  10. package/out/index.client.mjs.map +1 -0
  11. package/out/rolldown-runtime-D7D4PA-g.mjs +13 -0
  12. package/package.json +59 -7
  13. package/out/src/CWIStyleWalletManager.d.ts +0 -517
  14. package/out/src/CWIStyleWalletManager.d.ts.map +0 -1
  15. package/out/src/CWIStyleWalletManager.js +0 -1594
  16. package/out/src/CWIStyleWalletManager.js.map +0 -1
  17. package/out/src/SetupClient.d.ts +0 -135
  18. package/out/src/SetupClient.d.ts.map +0 -1
  19. package/out/src/SetupClient.js +0 -226
  20. package/out/src/SetupClient.js.map +0 -1
  21. package/out/src/SetupWallet.d.ts +0 -103
  22. package/out/src/SetupWallet.d.ts.map +0 -1
  23. package/out/src/SetupWallet.js +0 -3
  24. package/out/src/SetupWallet.js.map +0 -1
  25. package/out/src/SimpleWalletManager.d.ts +0 -179
  26. package/out/src/SimpleWalletManager.d.ts.map +0 -1
  27. package/out/src/SimpleWalletManager.js +0 -360
  28. package/out/src/SimpleWalletManager.js.map +0 -1
  29. package/out/src/Wallet.d.ts +0 -254
  30. package/out/src/Wallet.d.ts.map +0 -1
  31. package/out/src/Wallet.js +0 -909
  32. package/out/src/Wallet.js.map +0 -1
  33. package/out/src/WalletAuthenticationManager.d.ts +0 -33
  34. package/out/src/WalletAuthenticationManager.d.ts.map +0 -1
  35. package/out/src/WalletAuthenticationManager.js +0 -126
  36. package/out/src/WalletAuthenticationManager.js.map +0 -1
  37. package/out/src/WalletLogger.d.ts +0 -65
  38. package/out/src/WalletLogger.d.ts.map +0 -1
  39. package/out/src/WalletLogger.js +0 -177
  40. package/out/src/WalletLogger.js.map +0 -1
  41. package/out/src/WalletPermissionsManager.d.ts +0 -981
  42. package/out/src/WalletPermissionsManager.d.ts.map +0 -1
  43. package/out/src/WalletPermissionsManager.js +0 -3744
  44. package/out/src/WalletPermissionsManager.js.map +0 -1
  45. package/out/src/WalletSettingsManager.d.ts +0 -53
  46. package/out/src/WalletSettingsManager.d.ts.map +0 -1
  47. package/out/src/WalletSettingsManager.js +0 -86
  48. package/out/src/WalletSettingsManager.js.map +0 -1
  49. package/out/src/fundWalletP2PKH.d.ts +0 -48
  50. package/out/src/fundWalletP2PKH.d.ts.map +0 -1
  51. package/out/src/fundWalletP2PKH.js +0 -239
  52. package/out/src/fundWalletP2PKH.js.map +0 -1
  53. package/out/src/index.client.d.ts +0 -23
  54. package/out/src/index.client.d.ts.map +0 -1
  55. package/out/src/index.client.js +0 -62
  56. package/out/src/index.client.js.map +0 -1
  57. package/out/src/mockchain/MockChainMigrations.d.ts +0 -20
  58. package/out/src/mockchain/MockChainMigrations.d.ts.map +0 -1
  59. package/out/src/mockchain/MockChainMigrations.js +0 -67
  60. package/out/src/mockchain/MockChainMigrations.js.map +0 -1
  61. package/out/src/mockchain/MockChainStorage.d.ts +0 -58
  62. package/out/src/mockchain/MockChainStorage.d.ts.map +0 -1
  63. package/out/src/mockchain/MockChainStorage.js +0 -102
  64. package/out/src/mockchain/MockChainStorage.js.map +0 -1
  65. package/out/src/mockchain/MockChainTracker.d.ts +0 -28
  66. package/out/src/mockchain/MockChainTracker.d.ts.map +0 -1
  67. package/out/src/mockchain/MockChainTracker.js +0 -97
  68. package/out/src/mockchain/MockChainTracker.js.map +0 -1
  69. package/out/src/mockchain/MockMiner.d.ts +0 -16
  70. package/out/src/mockchain/MockMiner.d.ts.map +0 -1
  71. package/out/src/mockchain/MockMiner.js +0 -137
  72. package/out/src/mockchain/MockMiner.js.map +0 -1
  73. package/out/src/mockchain/MockServices.d.ts +0 -53
  74. package/out/src/mockchain/MockServices.d.ts.map +0 -1
  75. package/out/src/mockchain/MockServices.js +0 -459
  76. package/out/src/mockchain/MockServices.js.map +0 -1
  77. package/out/src/mockchain/merkleTree.d.ts +0 -13
  78. package/out/src/mockchain/merkleTree.d.ts.map +0 -1
  79. package/out/src/mockchain/merkleTree.js +0 -122
  80. package/out/src/mockchain/merkleTree.js.map +0 -1
  81. package/out/src/monitor/Monitor.d.ts +0 -189
  82. package/out/src/monitor/Monitor.d.ts.map +0 -1
  83. package/out/src/monitor/Monitor.js +0 -386
  84. package/out/src/monitor/Monitor.js.map +0 -1
  85. package/out/src/monitor/tasks/TaskArcSSE.d.ts +0 -29
  86. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +0 -1
  87. package/out/src/monitor/tasks/TaskArcSSE.js +0 -259
  88. package/out/src/monitor/tasks/TaskArcSSE.js.map +0 -1
  89. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +0 -53
  90. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +0 -1
  91. package/out/src/monitor/tasks/TaskCheckForProofs.js +0 -224
  92. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +0 -1
  93. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +0 -91
  94. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +0 -1
  95. package/out/src/monitor/tasks/TaskCheckNoSends.js +0 -159
  96. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +0 -1
  97. package/out/src/monitor/tasks/TaskClock.d.ts +0 -14
  98. package/out/src/monitor/tasks/TaskClock.d.ts.map +0 -1
  99. package/out/src/monitor/tasks/TaskClock.js +0 -29
  100. package/out/src/monitor/tasks/TaskClock.js.map +0 -1
  101. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts +0 -20
  102. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +0 -1
  103. package/out/src/monitor/tasks/TaskFailAbandoned.js +0 -53
  104. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +0 -1
  105. package/out/src/monitor/tasks/TaskMineBlock.d.ts +0 -13
  106. package/out/src/monitor/tasks/TaskMineBlock.d.ts.map +0 -1
  107. package/out/src/monitor/tasks/TaskMineBlock.js +0 -30
  108. package/out/src/monitor/tasks/TaskMineBlock.js.map +0 -1
  109. package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts +0 -12
  110. package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts.map +0 -1
  111. package/out/src/monitor/tasks/TaskMonitorCallHistory.js +0 -25
  112. package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +0 -1
  113. package/out/src/monitor/tasks/TaskNewHeader.d.ts +0 -50
  114. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +0 -1
  115. package/out/src/monitor/tasks/TaskNewHeader.js +0 -97
  116. package/out/src/monitor/tasks/TaskNewHeader.js.map +0 -1
  117. package/out/src/monitor/tasks/TaskPurge.d.ts +0 -45
  118. package/out/src/monitor/tasks/TaskPurge.d.ts.map +0 -1
  119. package/out/src/monitor/tasks/TaskPurge.js +0 -36
  120. package/out/src/monitor/tasks/TaskPurge.js.map +0 -1
  121. package/out/src/monitor/tasks/TaskReorg.d.ts +0 -43
  122. package/out/src/monitor/tasks/TaskReorg.d.ts.map +0 -1
  123. package/out/src/monitor/tasks/TaskReorg.js +0 -84
  124. package/out/src/monitor/tasks/TaskReorg.js.map +0 -1
  125. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts +0 -26
  126. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +0 -1
  127. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +0 -127
  128. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +0 -1
  129. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +0 -34
  130. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +0 -1
  131. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +0 -136
  132. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +0 -1
  133. package/out/src/monitor/tasks/TaskReviewStatus.d.ts +0 -26
  134. package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +0 -1
  135. package/out/src/monitor/tasks/TaskReviewStatus.js +0 -50
  136. package/out/src/monitor/tasks/TaskReviewStatus.js.map +0 -1
  137. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +0 -23
  138. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +0 -1
  139. package/out/src/monitor/tasks/TaskReviewUtxos.js +0 -75
  140. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +0 -1
  141. package/out/src/monitor/tasks/TaskSendWaiting.d.ts +0 -48
  142. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +0 -1
  143. package/out/src/monitor/tasks/TaskSendWaiting.js +0 -202
  144. package/out/src/monitor/tasks/TaskSendWaiting.js.map +0 -1
  145. package/out/src/monitor/tasks/TaskUnFail.d.ts +0 -41
  146. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +0 -1
  147. package/out/src/monitor/tasks/TaskUnFail.js +0 -89
  148. package/out/src/monitor/tasks/TaskUnFail.js.map +0 -1
  149. package/out/src/monitor/tasks/WalletMonitorTask.d.ts +0 -40
  150. package/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +0 -1
  151. package/out/src/monitor/tasks/WalletMonitorTask.js +0 -42
  152. package/out/src/monitor/tasks/WalletMonitorTask.js.map +0 -1
  153. package/out/src/sdk/CertOpsWallet.d.ts +0 -7
  154. package/out/src/sdk/CertOpsWallet.d.ts.map +0 -1
  155. package/out/src/sdk/CertOpsWallet.js +0 -3
  156. package/out/src/sdk/CertOpsWallet.js.map +0 -1
  157. package/out/src/sdk/PrivilegedKeyManager.d.ts +0 -125
  158. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +0 -1
  159. package/out/src/sdk/PrivilegedKeyManager.js +0 -320
  160. package/out/src/sdk/PrivilegedKeyManager.js.map +0 -1
  161. package/out/src/sdk/WERR_errors.d.ts +0 -136
  162. package/out/src/sdk/WERR_errors.d.ts.map +0 -1
  163. package/out/src/sdk/WERR_errors.js +0 -233
  164. package/out/src/sdk/WERR_errors.js.map +0 -1
  165. package/out/src/sdk/WalletError.d.ts +0 -63
  166. package/out/src/sdk/WalletError.d.ts.map +0 -1
  167. package/out/src/sdk/WalletError.js +0 -177
  168. package/out/src/sdk/WalletError.js.map +0 -1
  169. package/out/src/sdk/WalletErrorFromJson.d.ts +0 -12
  170. package/out/src/sdk/WalletErrorFromJson.d.ts.map +0 -1
  171. package/out/src/sdk/WalletErrorFromJson.js +0 -67
  172. package/out/src/sdk/WalletErrorFromJson.js.map +0 -1
  173. package/out/src/sdk/WalletServices.interfaces.d.ts +0 -643
  174. package/out/src/sdk/WalletServices.interfaces.d.ts.map +0 -1
  175. package/out/src/sdk/WalletServices.interfaces.js +0 -3
  176. package/out/src/sdk/WalletServices.interfaces.js.map +0 -1
  177. package/out/src/sdk/WalletSigner.interfaces.d.ts +0 -10
  178. package/out/src/sdk/WalletSigner.interfaces.d.ts.map +0 -1
  179. package/out/src/sdk/WalletSigner.interfaces.js +0 -3
  180. package/out/src/sdk/WalletSigner.interfaces.js.map +0 -1
  181. package/out/src/sdk/WalletStorage.interfaces.d.ts +0 -539
  182. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +0 -1
  183. package/out/src/sdk/WalletStorage.interfaces.js +0 -3
  184. package/out/src/sdk/WalletStorage.interfaces.js.map +0 -1
  185. package/out/src/sdk/index.d.ts +0 -11
  186. package/out/src/sdk/index.d.ts.map +0 -1
  187. package/out/src/sdk/index.js +0 -29
  188. package/out/src/sdk/index.js.map +0 -1
  189. package/out/src/sdk/types.d.ts +0 -178
  190. package/out/src/sdk/types.d.ts.map +0 -1
  191. package/out/src/sdk/types.js +0 -104
  192. package/out/src/sdk/types.js.map +0 -1
  193. package/out/src/services/ServiceCollection.d.ts +0 -79
  194. package/out/src/services/ServiceCollection.d.ts.map +0 -1
  195. package/out/src/services/ServiceCollection.js +0 -197
  196. package/out/src/services/ServiceCollection.js.map +0 -1
  197. package/out/src/services/Services.d.ts +0 -97
  198. package/out/src/services/Services.d.ts.map +0 -1
  199. package/out/src/services/Services.js +0 -729
  200. package/out/src/services/Services.js.map +0 -1
  201. package/out/src/services/chaintracker/BHServiceClient.d.ts +0 -39
  202. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +0 -1
  203. package/out/src/services/chaintracker/BHServiceClient.js +0 -180
  204. package/out/src/services/chaintracker/BHServiceClient.js.map +0 -1
  205. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +0 -16
  206. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +0 -1
  207. package/out/src/services/chaintracker/ChaintracksChainTracker.js +0 -59
  208. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +0 -1
  209. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts +0 -57
  210. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +0 -1
  211. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +0 -38
  212. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +0 -1
  213. package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts +0 -70
  214. package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts.map +0 -1
  215. package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.js +0 -3
  216. package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.js.map +0 -1
  217. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts +0 -81
  218. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts.map +0 -1
  219. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.js +0 -3
  220. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.js.map +0 -1
  221. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +0 -54
  222. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +0 -1
  223. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.js +0 -3
  224. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.js.map +0 -1
  225. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +0 -163
  226. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +0 -1
  227. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.js +0 -3
  228. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.js.map +0 -1
  229. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +0 -18
  230. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +0 -1
  231. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.js +0 -3
  232. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.js.map +0 -1
  233. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.d.ts +0 -55
  234. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.d.ts.map +0 -1
  235. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.js +0 -3
  236. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.js.map +0 -1
  237. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +0 -338
  238. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +0 -1
  239. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.js +0 -3
  240. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.js.map +0 -1
  241. package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts +0 -19
  242. package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts.map +0 -1
  243. package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.js +0 -3
  244. package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.js.map +0 -1
  245. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +0 -113
  246. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +0 -1
  247. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +0 -607
  248. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +0 -1
  249. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +0 -38
  250. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +0 -1
  251. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +0 -149
  252. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +0 -1
  253. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +0 -52
  254. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +0 -1
  255. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +0 -232
  256. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +0 -1
  257. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts +0 -60
  258. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +0 -1
  259. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +0 -126
  260. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +0 -1
  261. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts +0 -75
  262. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +0 -1
  263. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +0 -121
  264. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +0 -1
  265. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts +0 -13
  266. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +0 -1
  267. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js +0 -20
  268. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +0 -1
  269. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +0 -62
  270. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +0 -1
  271. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +0 -61
  272. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +0 -1
  273. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts +0 -62
  274. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +0 -1
  275. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +0 -44
  276. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +0 -1
  277. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +0 -24
  278. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +0 -1
  279. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +0 -55
  280. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +0 -1
  281. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +0 -64
  282. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +0 -1
  283. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +0 -95
  284. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +0 -1
  285. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +0 -171
  286. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +0 -1
  287. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +0 -487
  288. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +0 -1
  289. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +0 -89
  290. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +0 -1
  291. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +0 -142
  292. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +0 -1
  293. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts +0 -23
  294. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +0 -1
  295. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +0 -63
  296. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +0 -1
  297. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +0 -68
  298. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +0 -1
  299. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +0 -311
  300. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +0 -1
  301. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +0 -92
  302. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +0 -1
  303. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +0 -467
  304. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +0 -1
  305. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +0 -37
  306. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +0 -1
  307. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +0 -261
  308. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +0 -1
  309. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +0 -22
  310. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +0 -1
  311. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +0 -54
  312. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +0 -1
  313. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts +0 -5
  314. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +0 -1
  315. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +0 -29
  316. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +0 -1
  317. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +0 -5
  318. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +0 -1
  319. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +0 -29
  320. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +0 -1
  321. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +0 -13
  322. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +0 -1
  323. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +0 -27
  324. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +0 -1
  325. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts +0 -13
  326. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +0 -1
  327. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +0 -27
  328. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +0 -1
  329. package/out/src/services/chaintracker/chaintracks/index.client.d.ts +0 -4
  330. package/out/src/services/chaintracker/chaintracks/index.client.d.ts.map +0 -1
  331. package/out/src/services/chaintracker/chaintracks/index.client.js +0 -20
  332. package/out/src/services/chaintracker/chaintracks/index.client.js.map +0 -1
  333. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +0 -32
  334. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +0 -1
  335. package/out/src/services/chaintracker/chaintracks/index.mobile.js +0 -70
  336. package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +0 -1
  337. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +0 -142
  338. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +0 -1
  339. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +0 -821
  340. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +0 -1
  341. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts +0 -22
  342. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +0 -1
  343. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +0 -65
  344. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +0 -1
  345. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts +0 -78
  346. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +0 -1
  347. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +0 -284
  348. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +0 -1
  349. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +0 -129
  350. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +0 -1
  351. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +0 -168
  352. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +0 -1
  353. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +0 -21
  354. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +0 -1
  355. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +0 -108
  356. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +0 -1
  357. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts +0 -90
  358. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +0 -1
  359. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +0 -150
  360. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +0 -1
  361. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +0 -14
  362. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +0 -1
  363. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +0 -86
  364. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +0 -1
  365. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +0 -159
  366. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +0 -1
  367. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +0 -530
  368. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +0 -1
  369. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts +0 -20
  370. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +0 -1
  371. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js +0 -31
  372. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +0 -1
  373. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts +0 -37
  374. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +0 -1
  375. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +0 -429
  376. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +0 -1
  377. package/out/src/services/chaintracker/index.client.d.ts +0 -4
  378. package/out/src/services/chaintracker/index.client.d.ts.map +0 -1
  379. package/out/src/services/chaintracker/index.client.js +0 -20
  380. package/out/src/services/chaintracker/index.client.js.map +0 -1
  381. package/out/src/services/createDefaultWalletServicesOptions.d.ts +0 -25
  382. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +0 -1
  383. package/out/src/services/createDefaultWalletServicesOptions.js +0 -143
  384. package/out/src/services/createDefaultWalletServicesOptions.js.map +0 -1
  385. package/out/src/services/networkConfig.d.ts +0 -29
  386. package/out/src/services/networkConfig.d.ts.map +0 -1
  387. package/out/src/services/networkConfig.js +0 -54
  388. package/out/src/services/networkConfig.js.map +0 -1
  389. package/out/src/services/providers/ARC.d.ts +0 -96
  390. package/out/src/services/providers/ARC.d.ts.map +0 -1
  391. package/out/src/services/providers/ARC.js +0 -332
  392. package/out/src/services/providers/ARC.js.map +0 -1
  393. package/out/src/services/providers/ArcSSEClient.d.ts +0 -58
  394. package/out/src/services/providers/ArcSSEClient.d.ts.map +0 -1
  395. package/out/src/services/providers/ArcSSEClient.js +0 -115
  396. package/out/src/services/providers/ArcSSEClient.js.map +0 -1
  397. package/out/src/services/providers/Arcade.d.ts +0 -73
  398. package/out/src/services/providers/Arcade.d.ts.map +0 -1
  399. package/out/src/services/providers/Arcade.js +0 -330
  400. package/out/src/services/providers/Arcade.js.map +0 -1
  401. package/out/src/services/providers/Bitails.d.ts +0 -50
  402. package/out/src/services/providers/Bitails.d.ts.map +0 -1
  403. package/out/src/services/providers/Bitails.js +0 -237
  404. package/out/src/services/providers/Bitails.js.map +0 -1
  405. package/out/src/services/providers/SdkWhatsOnChain.d.ts +0 -21
  406. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +0 -1
  407. package/out/src/services/providers/SdkWhatsOnChain.js +0 -82
  408. package/out/src/services/providers/SdkWhatsOnChain.js.map +0 -1
  409. package/out/src/services/providers/WhatsOnChain.d.ts +0 -132
  410. package/out/src/services/providers/WhatsOnChain.d.ts.map +0 -1
  411. package/out/src/services/providers/WhatsOnChain.js +0 -558
  412. package/out/src/services/providers/WhatsOnChain.js.map +0 -1
  413. package/out/src/services/providers/exchangeRates.d.ts +0 -12
  414. package/out/src/services/providers/exchangeRates.d.ts.map +0 -1
  415. package/out/src/services/providers/exchangeRates.js +0 -244
  416. package/out/src/services/providers/exchangeRates.js.map +0 -1
  417. package/out/src/services/providers/getBeefForTxid.d.ts +0 -4
  418. package/out/src/services/providers/getBeefForTxid.d.ts.map +0 -1
  419. package/out/src/services/providers/getBeefForTxid.js +0 -287
  420. package/out/src/services/providers/getBeefForTxid.js.map +0 -1
  421. package/out/src/services/providers/whatsOnChainHelpers.d.ts +0 -68
  422. package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +0 -1
  423. package/out/src/services/providers/whatsOnChainHelpers.js +0 -147
  424. package/out/src/services/providers/whatsOnChainHelpers.js.map +0 -1
  425. package/out/src/signer/WalletSigner.d.ts +0 -11
  426. package/out/src/signer/WalletSigner.d.ts.map +0 -1
  427. package/out/src/signer/WalletSigner.js +0 -16
  428. package/out/src/signer/WalletSigner.js.map +0 -1
  429. package/out/src/signer/methods/acquireDirectCertificate.d.ts +0 -5
  430. package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +0 -1
  431. package/out/src/signer/methods/acquireDirectCertificate.js +0 -44
  432. package/out/src/signer/methods/acquireDirectCertificate.js.map +0 -1
  433. package/out/src/signer/methods/buildSignableTransaction.d.ts +0 -69
  434. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +0 -1
  435. package/out/src/signer/methods/buildSignableTransaction.js +0 -267
  436. package/out/src/signer/methods/buildSignableTransaction.js.map +0 -1
  437. package/out/src/signer/methods/completeSignedTransaction.d.ts +0 -10
  438. package/out/src/signer/methods/completeSignedTransaction.d.ts.map +0 -1
  439. package/out/src/signer/methods/completeSignedTransaction.js +0 -106
  440. package/out/src/signer/methods/completeSignedTransaction.js.map +0 -1
  441. package/out/src/signer/methods/createAction.d.ts +0 -14
  442. package/out/src/signer/methods/createAction.d.ts.map +0 -1
  443. package/out/src/signer/methods/createAction.js +0 -123
  444. package/out/src/signer/methods/createAction.js.map +0 -1
  445. package/out/src/signer/methods/internalizeAction.d.ts +0 -43
  446. package/out/src/signer/methods/internalizeAction.d.ts.map +0 -1
  447. package/out/src/signer/methods/internalizeAction.js +0 -109
  448. package/out/src/signer/methods/internalizeAction.js.map +0 -1
  449. package/out/src/signer/methods/proveCertificate.d.ts +0 -5
  450. package/out/src/signer/methods/proveCertificate.d.ts.map +0 -1
  451. package/out/src/signer/methods/proveCertificate.js +0 -29
  452. package/out/src/signer/methods/proveCertificate.js.map +0 -1
  453. package/out/src/signer/methods/resultBeef.d.ts +0 -4
  454. package/out/src/signer/methods/resultBeef.d.ts.map +0 -1
  455. package/out/src/signer/methods/resultBeef.js +0 -12
  456. package/out/src/signer/methods/resultBeef.js.map +0 -1
  457. package/out/src/signer/methods/signAction.d.ts +0 -11
  458. package/out/src/signer/methods/signAction.d.ts.map +0 -1
  459. package/out/src/signer/methods/signAction.js +0 -43
  460. package/out/src/signer/methods/signAction.js.map +0 -1
  461. package/out/src/storage/StorageIdb.d.ts +0 -234
  462. package/out/src/storage/StorageIdb.d.ts.map +0 -1
  463. package/out/src/storage/StorageIdb.js +0 -1701
  464. package/out/src/storage/StorageIdb.js.map +0 -1
  465. package/out/src/storage/StorageProvider.d.ts +0 -281
  466. package/out/src/storage/StorageProvider.d.ts.map +0 -1
  467. package/out/src/storage/StorageProvider.js +0 -924
  468. package/out/src/storage/StorageProvider.js.map +0 -1
  469. package/out/src/storage/StorageReader.d.ts +0 -77
  470. package/out/src/storage/StorageReader.d.ts.map +0 -1
  471. package/out/src/storage/StorageReader.js +0 -166
  472. package/out/src/storage/StorageReader.js.map +0 -1
  473. package/out/src/storage/StorageReaderWriter.d.ts +0 -102
  474. package/out/src/storage/StorageReaderWriter.d.ts.map +0 -1
  475. package/out/src/storage/StorageReaderWriter.js +0 -335
  476. package/out/src/storage/StorageReaderWriter.js.map +0 -1
  477. package/out/src/storage/StorageSyncReader.d.ts +0 -18
  478. package/out/src/storage/StorageSyncReader.d.ts.map +0 -1
  479. package/out/src/storage/StorageSyncReader.js +0 -73
  480. package/out/src/storage/StorageSyncReader.js.map +0 -1
  481. package/out/src/storage/WalletStorageManager.d.ts +0 -217
  482. package/out/src/storage/WalletStorageManager.d.ts.map +0 -1
  483. package/out/src/storage/WalletStorageManager.js +0 -830
  484. package/out/src/storage/WalletStorageManager.js.map +0 -1
  485. package/out/src/storage/idbHelpers.d.ts +0 -42
  486. package/out/src/storage/idbHelpers.d.ts.map +0 -1
  487. package/out/src/storage/idbHelpers.js +0 -374
  488. package/out/src/storage/idbHelpers.js.map +0 -1
  489. package/out/src/storage/index.client.d.ts +0 -12
  490. package/out/src/storage/index.client.d.ts.map +0 -1
  491. package/out/src/storage/index.client.js +0 -28
  492. package/out/src/storage/index.client.js.map +0 -1
  493. package/out/src/storage/methods/ListActionsSpecOp.d.ts +0 -23
  494. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +0 -1
  495. package/out/src/storage/methods/ListActionsSpecOp.js +0 -129
  496. package/out/src/storage/methods/ListActionsSpecOp.js.map +0 -1
  497. package/out/src/storage/methods/ListOutputsSpecOp.d.ts +0 -42
  498. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +0 -1
  499. package/out/src/storage/methods/ListOutputsSpecOp.js +0 -154
  500. package/out/src/storage/methods/ListOutputsSpecOp.js.map +0 -1
  501. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +0 -124
  502. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +0 -1
  503. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +0 -490
  504. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +0 -1
  505. package/out/src/storage/methods/createAction.d.ts +0 -13
  506. package/out/src/storage/methods/createAction.d.ts.map +0 -1
  507. package/out/src/storage/methods/createAction.js +0 -793
  508. package/out/src/storage/methods/createAction.js.map +0 -1
  509. package/out/src/storage/methods/generateChange.d.ts +0 -121
  510. package/out/src/storage/methods/generateChange.d.ts.map +0 -1
  511. package/out/src/storage/methods/generateChange.js +0 -496
  512. package/out/src/storage/methods/generateChange.js.map +0 -1
  513. package/out/src/storage/methods/getBeefForTransaction.d.ts +0 -23
  514. package/out/src/storage/methods/getBeefForTransaction.d.ts.map +0 -1
  515. package/out/src/storage/methods/getBeefForTransaction.js +0 -132
  516. package/out/src/storage/methods/getBeefForTransaction.js.map +0 -1
  517. package/out/src/storage/methods/getSyncChunk.d.ts +0 -10
  518. package/out/src/storage/methods/getSyncChunk.d.ts.map +0 -1
  519. package/out/src/storage/methods/getSyncChunk.js +0 -273
  520. package/out/src/storage/methods/getSyncChunk.js.map +0 -1
  521. package/out/src/storage/methods/internalizeAction.d.ts +0 -102
  522. package/out/src/storage/methods/internalizeAction.d.ts.map +0 -1
  523. package/out/src/storage/methods/internalizeAction.js +0 -670
  524. package/out/src/storage/methods/internalizeAction.js.map +0 -1
  525. package/out/src/storage/methods/listActionsIdb.d.ts +0 -5
  526. package/out/src/storage/methods/listActionsIdb.d.ts.map +0 -1
  527. package/out/src/storage/methods/listActionsIdb.js +0 -142
  528. package/out/src/storage/methods/listActionsIdb.js.map +0 -1
  529. package/out/src/storage/methods/listCertificates.d.ts +0 -5
  530. package/out/src/storage/methods/listCertificates.d.ts.map +0 -1
  531. package/out/src/storage/methods/listCertificates.js +0 -68
  532. package/out/src/storage/methods/listCertificates.js.map +0 -1
  533. package/out/src/storage/methods/listOutputsIdb.d.ts +0 -5
  534. package/out/src/storage/methods/listOutputsIdb.d.ts.map +0 -1
  535. package/out/src/storage/methods/listOutputsIdb.js +0 -195
  536. package/out/src/storage/methods/listOutputsIdb.js.map +0 -1
  537. package/out/src/storage/methods/managedChange.d.ts +0 -26
  538. package/out/src/storage/methods/managedChange.d.ts.map +0 -1
  539. package/out/src/storage/methods/managedChange.js +0 -43
  540. package/out/src/storage/methods/managedChange.js.map +0 -1
  541. package/out/src/storage/methods/offsetKey.d.ts +0 -24
  542. package/out/src/storage/methods/offsetKey.d.ts.map +0 -1
  543. package/out/src/storage/methods/offsetKey.js +0 -65
  544. package/out/src/storage/methods/offsetKey.js.map +0 -1
  545. package/out/src/storage/methods/processAction.d.ts +0 -43
  546. package/out/src/storage/methods/processAction.d.ts.map +0 -1
  547. package/out/src/storage/methods/processAction.js +0 -313
  548. package/out/src/storage/methods/processAction.js.map +0 -1
  549. package/out/src/storage/methods/purgeDataIdb.d.ts +0 -4
  550. package/out/src/storage/methods/purgeDataIdb.d.ts.map +0 -1
  551. package/out/src/storage/methods/purgeDataIdb.js +0 -9
  552. package/out/src/storage/methods/purgeDataIdb.js.map +0 -1
  553. package/out/src/storage/methods/reviewStatusIdb.d.ts +0 -20
  554. package/out/src/storage/methods/reviewStatusIdb.d.ts.map +0 -1
  555. package/out/src/storage/methods/reviewStatusIdb.js +0 -76
  556. package/out/src/storage/methods/reviewStatusIdb.js.map +0 -1
  557. package/out/src/storage/methods/utils.d.ts +0 -25
  558. package/out/src/storage/methods/utils.d.ts.map +0 -1
  559. package/out/src/storage/methods/utils.js +0 -59
  560. package/out/src/storage/methods/utils.js.map +0 -1
  561. package/out/src/storage/portable/index.d.ts +0 -55
  562. package/out/src/storage/portable/index.d.ts.map +0 -1
  563. package/out/src/storage/portable/index.js +0 -872
  564. package/out/src/storage/portable/index.js.map +0 -1
  565. package/out/src/storage/remoting/BinaryJson.d.ts +0 -10
  566. package/out/src/storage/remoting/BinaryJson.d.ts.map +0 -1
  567. package/out/src/storage/remoting/BinaryJson.js +0 -172
  568. package/out/src/storage/remoting/BinaryJson.js.map +0 -1
  569. package/out/src/storage/remoting/StorageClient.d.ts +0 -26
  570. package/out/src/storage/remoting/StorageClient.d.ts.map +0 -1
  571. package/out/src/storage/remoting/StorageClient.js +0 -98
  572. package/out/src/storage/remoting/StorageClient.js.map +0 -1
  573. package/out/src/storage/remoting/StorageClientBase.d.ts +0 -299
  574. package/out/src/storage/remoting/StorageClientBase.d.ts.map +0 -1
  575. package/out/src/storage/remoting/StorageClientBase.js +0 -381
  576. package/out/src/storage/remoting/StorageClientBase.js.map +0 -1
  577. package/out/src/storage/remoting/entityValidationHelpers.d.ts +0 -29
  578. package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +0 -1
  579. package/out/src/storage/remoting/entityValidationHelpers.js +0 -91
  580. package/out/src/storage/remoting/entityValidationHelpers.js.map +0 -1
  581. package/out/src/storage/schema/StorageIdbSchema.d.ts +0 -133
  582. package/out/src/storage/schema/StorageIdbSchema.d.ts.map +0 -1
  583. package/out/src/storage/schema/StorageIdbSchema.js +0 -3
  584. package/out/src/storage/schema/StorageIdbSchema.js.map +0 -1
  585. package/out/src/storage/schema/entities/EntityBase.d.ts +0 -106
  586. package/out/src/storage/schema/entities/EntityBase.d.ts.map +0 -1
  587. package/out/src/storage/schema/entities/EntityBase.js +0 -101
  588. package/out/src/storage/schema/entities/EntityBase.js.map +0 -1
  589. package/out/src/storage/schema/entities/EntityCertificate.d.ts +0 -44
  590. package/out/src/storage/schema/entities/EntityCertificate.d.ts.map +0 -1
  591. package/out/src/storage/schema/entities/EntityCertificate.js +0 -163
  592. package/out/src/storage/schema/entities/EntityCertificate.js.map +0 -1
  593. package/out/src/storage/schema/entities/EntityCertificateField.d.ts +0 -33
  594. package/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +0 -1
  595. package/out/src/storage/schema/entities/EntityCertificateField.js +0 -110
  596. package/out/src/storage/schema/entities/EntityCertificateField.js.map +0 -1
  597. package/out/src/storage/schema/entities/EntityCommission.d.ts +0 -38
  598. package/out/src/storage/schema/entities/EntityCommission.d.ts.map +0 -1
  599. package/out/src/storage/schema/entities/EntityCommission.js +0 -125
  600. package/out/src/storage/schema/entities/EntityCommission.js.map +0 -1
  601. package/out/src/storage/schema/entities/EntityOutput.d.ts +0 -68
  602. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +0 -1
  603. package/out/src/storage/schema/entities/EntityOutput.js +0 -261
  604. package/out/src/storage/schema/entities/EntityOutput.js.map +0 -1
  605. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts +0 -36
  606. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +0 -1
  607. package/out/src/storage/schema/entities/EntityOutputBasket.js +0 -133
  608. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +0 -1
  609. package/out/src/storage/schema/entities/EntityOutputTag.d.ts +0 -32
  610. package/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +0 -1
  611. package/out/src/storage/schema/entities/EntityOutputTag.js +0 -104
  612. package/out/src/storage/schema/entities/EntityOutputTag.js.map +0 -1
  613. package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts +0 -29
  614. package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +0 -1
  615. package/out/src/storage/schema/entities/EntityOutputTagMap.js +0 -96
  616. package/out/src/storage/schema/entities/EntityOutputTagMap.js.map +0 -1
  617. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +0 -87
  618. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +0 -1
  619. package/out/src/storage/schema/entities/EntityProvenTx.js +0 -276
  620. package/out/src/storage/schema/entities/EntityProvenTx.js.map +0 -1
  621. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +0 -148
  622. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +0 -1
  623. package/out/src/storage/schema/entities/EntityProvenTxReq.js +0 -570
  624. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +0 -1
  625. package/out/src/storage/schema/entities/EntitySyncState.d.ts +0 -69
  626. package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +0 -1
  627. package/out/src/storage/schema/entities/EntitySyncState.js +0 -338
  628. package/out/src/storage/schema/entities/EntitySyncState.js.map +0 -1
  629. package/out/src/storage/schema/entities/EntityTransaction.d.ts +0 -71
  630. package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +0 -1
  631. package/out/src/storage/schema/entities/EntityTransaction.js +0 -265
  632. package/out/src/storage/schema/entities/EntityTransaction.js.map +0 -1
  633. package/out/src/storage/schema/entities/EntityTxLabel.d.ts +0 -32
  634. package/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +0 -1
  635. package/out/src/storage/schema/entities/EntityTxLabel.js +0 -104
  636. package/out/src/storage/schema/entities/EntityTxLabel.js.map +0 -1
  637. package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts +0 -29
  638. package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +0 -1
  639. package/out/src/storage/schema/entities/EntityTxLabelMap.js +0 -96
  640. package/out/src/storage/schema/entities/EntityTxLabelMap.js.map +0 -1
  641. package/out/src/storage/schema/entities/EntityUser.d.ts +0 -30
  642. package/out/src/storage/schema/entities/EntityUser.d.ts.map +0 -1
  643. package/out/src/storage/schema/entities/EntityUser.js +0 -99
  644. package/out/src/storage/schema/entities/EntityUser.js.map +0 -1
  645. package/out/src/storage/schema/entities/MergeEntity.d.ts +0 -34
  646. package/out/src/storage/schema/entities/MergeEntity.d.ts.map +0 -1
  647. package/out/src/storage/schema/entities/MergeEntity.js +0 -67
  648. package/out/src/storage/schema/entities/MergeEntity.js.map +0 -1
  649. package/out/src/storage/schema/entities/index.d.ts +0 -17
  650. package/out/src/storage/schema/entities/index.d.ts.map +0 -1
  651. package/out/src/storage/schema/entities/index.js +0 -33
  652. package/out/src/storage/schema/entities/index.js.map +0 -1
  653. package/out/src/storage/schema/tables/TableAuthSession.d.ts +0 -20
  654. package/out/src/storage/schema/tables/TableAuthSession.d.ts.map +0 -1
  655. package/out/src/storage/schema/tables/TableAuthSession.js +0 -15
  656. package/out/src/storage/schema/tables/TableAuthSession.js.map +0 -1
  657. package/out/src/storage/schema/tables/TableCertificate.d.ts +0 -21
  658. package/out/src/storage/schema/tables/TableCertificate.d.ts.map +0 -1
  659. package/out/src/storage/schema/tables/TableCertificate.js +0 -3
  660. package/out/src/storage/schema/tables/TableCertificate.js.map +0 -1
  661. package/out/src/storage/schema/tables/TableCertificateField.d.ts +0 -12
  662. package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +0 -1
  663. package/out/src/storage/schema/tables/TableCertificateField.js +0 -3
  664. package/out/src/storage/schema/tables/TableCertificateField.js.map +0 -1
  665. package/out/src/storage/schema/tables/TableCommission.d.ts +0 -13
  666. package/out/src/storage/schema/tables/TableCommission.d.ts.map +0 -1
  667. package/out/src/storage/schema/tables/TableCommission.js +0 -3
  668. package/out/src/storage/schema/tables/TableCommission.js.map +0 -1
  669. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +0 -9
  670. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +0 -1
  671. package/out/src/storage/schema/tables/TableMonitorEvent.js +0 -3
  672. package/out/src/storage/schema/tables/TableMonitorEvent.js.map +0 -1
  673. package/out/src/storage/schema/tables/TableOutput.d.ts +0 -37
  674. package/out/src/storage/schema/tables/TableOutput.d.ts.map +0 -1
  675. package/out/src/storage/schema/tables/TableOutput.js +0 -31
  676. package/out/src/storage/schema/tables/TableOutput.js.map +0 -1
  677. package/out/src/storage/schema/tables/TableOutputBasket.d.ts +0 -12
  678. package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +0 -1
  679. package/out/src/storage/schema/tables/TableOutputBasket.js +0 -3
  680. package/out/src/storage/schema/tables/TableOutputBasket.js.map +0 -1
  681. package/out/src/storage/schema/tables/TableOutputTag.d.ts +0 -10
  682. package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +0 -1
  683. package/out/src/storage/schema/tables/TableOutputTag.js +0 -3
  684. package/out/src/storage/schema/tables/TableOutputTag.js.map +0 -1
  685. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +0 -9
  686. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +0 -1
  687. package/out/src/storage/schema/tables/TableOutputTagMap.js +0 -3
  688. package/out/src/storage/schema/tables/TableOutputTagMap.js.map +0 -1
  689. package/out/src/storage/schema/tables/TableProvenTx.d.ts +0 -14
  690. package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +0 -1
  691. package/out/src/storage/schema/tables/TableProvenTx.js +0 -3
  692. package/out/src/storage/schema/tables/TableProvenTx.js.map +0 -1
  693. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +0 -87
  694. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +0 -1
  695. package/out/src/storage/schema/tables/TableProvenTxReq.js +0 -3
  696. package/out/src/storage/schema/tables/TableProvenTxReq.js.map +0 -1
  697. package/out/src/storage/schema/tables/TableSettings.d.ts +0 -17
  698. package/out/src/storage/schema/tables/TableSettings.d.ts.map +0 -1
  699. package/out/src/storage/schema/tables/TableSettings.js +0 -3
  700. package/out/src/storage/schema/tables/TableSettings.js.map +0 -1
  701. package/out/src/storage/schema/tables/TableSyncState.d.ts +0 -18
  702. package/out/src/storage/schema/tables/TableSyncState.d.ts.map +0 -1
  703. package/out/src/storage/schema/tables/TableSyncState.js +0 -3
  704. package/out/src/storage/schema/tables/TableSyncState.js.map +0 -1
  705. package/out/src/storage/schema/tables/TableTransaction.d.ts +0 -37
  706. package/out/src/storage/schema/tables/TableTransaction.d.ts.map +0 -1
  707. package/out/src/storage/schema/tables/TableTransaction.js +0 -21
  708. package/out/src/storage/schema/tables/TableTransaction.js.map +0 -1
  709. package/out/src/storage/schema/tables/TableTxLabel.d.ts +0 -10
  710. package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +0 -1
  711. package/out/src/storage/schema/tables/TableTxLabel.js +0 -3
  712. package/out/src/storage/schema/tables/TableTxLabel.js.map +0 -1
  713. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +0 -9
  714. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +0 -1
  715. package/out/src/storage/schema/tables/TableTxLabelMap.js +0 -3
  716. package/out/src/storage/schema/tables/TableTxLabelMap.js.map +0 -1
  717. package/out/src/storage/schema/tables/TableUser.d.ts +0 -16
  718. package/out/src/storage/schema/tables/TableUser.d.ts.map +0 -1
  719. package/out/src/storage/schema/tables/TableUser.js +0 -3
  720. package/out/src/storage/schema/tables/TableUser.js.map +0 -1
  721. package/out/src/storage/schema/tables/index.d.ts +0 -18
  722. package/out/src/storage/schema/tables/index.d.ts.map +0 -1
  723. package/out/src/storage/schema/tables/index.js +0 -34
  724. package/out/src/storage/schema/tables/index.js.map +0 -1
  725. package/out/src/storage/storageProviderHelpers.d.ts +0 -35
  726. package/out/src/storage/storageProviderHelpers.d.ts.map +0 -1
  727. package/out/src/storage/storageProviderHelpers.js +0 -100
  728. package/out/src/storage/storageProviderHelpers.js.map +0 -1
  729. package/out/src/utility/ScriptTemplateBRC29.d.ts +0 -25
  730. package/out/src/utility/ScriptTemplateBRC29.d.ts.map +0 -1
  731. package/out/src/utility/ScriptTemplateBRC29.js +0 -51
  732. package/out/src/utility/ScriptTemplateBRC29.js.map +0 -1
  733. package/out/src/utility/aggregateResults.d.ts +0 -8
  734. package/out/src/utility/aggregateResults.d.ts.map +0 -1
  735. package/out/src/utility/aggregateResults.js +0 -59
  736. package/out/src/utility/aggregateResults.js.map +0 -1
  737. package/out/src/utility/brc114ActionTimeLabels.d.ts +0 -9
  738. package/out/src/utility/brc114ActionTimeLabels.d.ts.map +0 -1
  739. package/out/src/utility/brc114ActionTimeLabels.js +0 -58
  740. package/out/src/utility/brc114ActionTimeLabels.js.map +0 -1
  741. package/out/src/utility/identityUtils.d.ts +0 -37
  742. package/out/src/utility/identityUtils.d.ts.map +0 -1
  743. package/out/src/utility/identityUtils.js +0 -162
  744. package/out/src/utility/identityUtils.js.map +0 -1
  745. package/out/src/utility/index.client.d.ts +0 -8
  746. package/out/src/utility/index.client.d.ts.map +0 -1
  747. package/out/src/utility/index.client.js +0 -24
  748. package/out/src/utility/index.client.js.map +0 -1
  749. package/out/src/utility/parseTxScriptOffsets.d.ts +0 -14
  750. package/out/src/utility/parseTxScriptOffsets.d.ts.map +0 -1
  751. package/out/src/utility/parseTxScriptOffsets.js +0 -26
  752. package/out/src/utility/parseTxScriptOffsets.js.map +0 -1
  753. package/out/src/utility/stampLog.d.ts +0 -18
  754. package/out/src/utility/stampLog.d.ts.map +0 -1
  755. package/out/src/utility/stampLog.js +0 -74
  756. package/out/src/utility/stampLog.js.map +0 -1
  757. package/out/src/utility/tscProofToMerklePath.d.ts +0 -8
  758. package/out/src/utility/tscProofToMerklePath.d.ts.map +0 -1
  759. package/out/src/utility/tscProofToMerklePath.js +0 -41
  760. package/out/src/utility/tscProofToMerklePath.js.map +0 -1
  761. package/out/src/utility/utilityHelpers.d.ts +0 -142
  762. package/out/src/utility/utilityHelpers.d.ts.map +0 -1
  763. package/out/src/utility/utilityHelpers.js +0 -319
  764. package/out/src/utility/utilityHelpers.js.map +0 -1
  765. package/out/src/utility/utilityHelpers.noBuffer.d.ts +0 -30
  766. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +0 -1
  767. package/out/src/utility/utilityHelpers.noBuffer.js +0 -64
  768. package/out/src/utility/utilityHelpers.noBuffer.js.map +0 -1
  769. package/out/src/wab-client/WABClient.d.ts +0 -114
  770. package/out/src/wab-client/WABClient.d.ts.map +0 -1
  771. package/out/src/wab-client/WABClient.js +0 -188
  772. package/out/src/wab-client/WABClient.js.map +0 -1
  773. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +0 -41
  774. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +0 -1
  775. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +0 -49
  776. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +0 -1
  777. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.d.ts +0 -11
  778. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.d.ts.map +0 -1
  779. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js +0 -15
  780. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +0 -1
  781. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts +0 -5
  782. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts.map +0 -1
  783. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +0 -9
  784. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +0 -1
  785. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +0 -10
  786. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +0 -1
  787. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +0 -14
  788. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +0 -1
  789. package/out/tsconfig.client.tsbuildinfo +0 -1
@@ -1,1701 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StorageIdb = void 0;
4
- const idb_1 = require("idb");
5
- const idbHelpers_1 = require("./idbHelpers");
6
- const utilityHelpers_1 = require("../utility/utilityHelpers");
7
- const StorageProvider_1 = require("./StorageProvider");
8
- const listActionsIdb_1 = require("./methods/listActionsIdb");
9
- const listOutputsIdb_1 = require("./methods/listOutputsIdb");
10
- const reviewStatusIdb_1 = require("./methods/reviewStatusIdb");
11
- const purgeDataIdb_1 = require("./methods/purgeDataIdb");
12
- const WERR_errors_1 = require("../sdk/WERR_errors");
13
- const managedChange_1 = require("./methods/managedChange");
14
- /**
15
- * Shared cursor-scan loop used by all `filterXxx` methods of StorageIdb.
16
- *
17
- * Walks `cursor` forward, applying `since`, a caller-supplied `matches`
18
- * predicate, paging (offset / limit), and an async `accept` callback for
19
- * records that pass all filters. Returns the number of accepted records.
20
- *
21
- * Implemented as a module-level helper (not a class method) so that
22
- * profiling/instrumentation that wraps class-prototype methods cannot
23
- * intercept or mutate its `matches` / `accept` callbacks.
24
- */
25
- async function scanCursor(
26
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
- cursor, since, offset, limit, matches, accept) {
28
- let skipped = 0;
29
- let count = 0;
30
- for (; cursor != null; cursor = await cursor.continue()) {
31
- const r = cursor.value;
32
- if (since != null && since > r.updated_at)
33
- continue;
34
- if (!await matches(r))
35
- continue;
36
- if (skipped < offset) {
37
- skipped++;
38
- continue;
39
- }
40
- accept(r);
41
- count++;
42
- if ((limit ?? 0) > 0 && count >= limit)
43
- break;
44
- }
45
- return count;
46
- }
47
- /**
48
- * This class implements the `StorageProvider` interface using IndexedDB,
49
- * via the promises wrapper package `idb`.
50
- */
51
- class StorageIdb extends StorageProvider_1.StorageProvider {
52
- dbName;
53
- db;
54
- constructor(options) {
55
- super(options);
56
- this.dbName = `wallet-toolbox-${this.chain}net`;
57
- }
58
- /**
59
- * This method must be called at least once before any other method accesses the database,
60
- * and each time the schema may have updated.
61
- *
62
- * If the database has already been created in this context, `storageName` and `storageIdentityKey`
63
- * are ignored.
64
- *
65
- * @param storageName
66
- * @param storageIdentityKey
67
- * @returns
68
- */
69
- async migrate(storageName, storageIdentityKey) {
70
- const db = await this.verifyDB(storageName, storageIdentityKey);
71
- return db.version.toString();
72
- }
73
- /**
74
- * Following initial database initialization, this method verfies that db is ready for use.
75
- *
76
- * @throws `WERR_INVALID_OPERATION` if the database has not been initialized by a call to `migrate`.
77
- *
78
- * @param storageName
79
- * @param storageIdentityKey
80
- *
81
- * @returns
82
- */
83
- async verifyDB(storageName, storageIdentityKey) {
84
- if (this.db != null)
85
- return this.db;
86
- this.db = await this.initDB(storageName, storageIdentityKey);
87
- this._settings = (await this.db.getAll('settings'))[0];
88
- this.whenLastAccess = new Date();
89
- return this.db;
90
- }
91
- /**
92
- * Convert the standard optional `TrxToken` parameter into either a direct knex database instance,
93
- * or a Knex.Transaction as appropriate.
94
- */
95
- toDbTrx(stores, mode, trx) {
96
- if (trx != null) {
97
- const t = trx;
98
- return t;
99
- }
100
- else {
101
- if (this.db == null)
102
- throw new Error('not initialized');
103
- const db = this.db;
104
- const trx = db.transaction(stores.length > 0 ? stores : this.allStores, mode);
105
- this.whenLastAccess = new Date();
106
- return trx;
107
- }
108
- }
109
- /**
110
- * Called by `makeAvailable` to return storage `TableSettings`.
111
- * Since this is the first async method that must be called by all clients,
112
- * it is where async initialization occurs.
113
- *
114
- * After initialization, cached settings are returned.
115
- *
116
- * @param trx
117
- */
118
- async readSettings(trx) {
119
- await this.verifyDB();
120
- return this._settings;
121
- }
122
- async initDB(storageName, storageIdentityKey) {
123
- const chain = this.chain;
124
- const maxOutputScript = 1024;
125
- const db = await (0, idb_1.openDB)(this.dbName, 1, {
126
- upgrade(db) {
127
- (0, idbHelpers_1.upgradeAllStoresV1)(db);
128
- if (!db.objectStoreNames.contains('settings')) {
129
- if (storageName == null || storageName === '' || storageIdentityKey == null || storageIdentityKey === '') {
130
- throw new WERR_errors_1.WERR_INVALID_OPERATION('migrate must be called before first access');
131
- }
132
- const settings = db.createObjectStore('settings', { keyPath: 'storageIdentityKey' });
133
- const s = {
134
- created_at: new Date(),
135
- updated_at: new Date(),
136
- storageIdentityKey,
137
- storageName,
138
- chain,
139
- dbtype: 'IndexedDB',
140
- maxOutputScript
141
- };
142
- void settings.put(s);
143
- }
144
- }
145
- });
146
- return db;
147
- }
148
- //
149
- // StorageProvider abstract methods
150
- //
151
- async reviewStatus(args) {
152
- return await (0, reviewStatusIdb_1.reviewStatusIdb)(this, args);
153
- }
154
- async purgeData(params, trx) {
155
- return await (0, purgeDataIdb_1.purgeDataIdb)(this, params, trx);
156
- }
157
- /**
158
- * Proceeds in three stages:
159
- * 1. Find an output that exactly funds the transaction (if exactSatoshis is not undefined).
160
- * 2. Find an output that overfunds by the least amount (targetSatoshis).
161
- * 3. Find an output that comes as close to funding as possible (targetSatoshis).
162
- * 4. Return undefined if no output is found.
163
- *
164
- * Outputs must belong to userId and basketId and satisfy the wallet-managed
165
- * BRC-29 change policy.
166
- * Their corresponding transaction must have status of 'completed', 'unproven', or 'sending' (if excludeSending is false).
167
- *
168
- * @param userId
169
- * @param basketId
170
- * @param targetSatoshis
171
- * @param exactSatoshis
172
- * @param excludeSending
173
- * @param transactionId
174
- * @returns next funding output to add to transaction or undefined if there are none.
175
- */
176
- async allocateChangeInput(userId, basketId, targetSatoshis, exactSatoshis, excludeSending, transactionId) {
177
- const dbTrx = this.toDbTrx(['outputs', 'transactions', 'proven_txs', 'proven_tx_reqs'], 'readwrite');
178
- try {
179
- const txStatus = ['completed', 'unproven'];
180
- if (!excludeSending)
181
- txStatus.push('sending');
182
- const args = {
183
- partial: { userId, basketId, spendable: true, ...managedChange_1.managedChangeOutputFields },
184
- txStatus,
185
- // Skip per-output script hydration during the candidate scan — we only need
186
- // the locking script for the one we actually pick below. Matches Knex's
187
- // pattern: SELECT candidates cheaply, hydrate the chosen output explicitly.
188
- noScript: true,
189
- trx: dbTrx
190
- };
191
- const outputs = (await this.findOutputs(args)).filter(managedChange_1.isAutoSpendableChangeOutput);
192
- let output;
193
- let scores = [];
194
- for (const o of outputs) {
195
- if (exactSatoshis != null && exactSatoshis !== 0 && o.satoshis === exactSatoshis) {
196
- output = o;
197
- break;
198
- }
199
- const score = o.satoshis - targetSatoshis;
200
- scores.push({ output: o, score });
201
- }
202
- if (output == null) {
203
- // sort scores increasing by score property
204
- scores = scores.sort((a, b) => a.score - b.score);
205
- // find the first score that is greater than or equal to 0
206
- const o = scores.find(s => s.score >= 0);
207
- if (o != null) {
208
- // stage 2 satisfied (minimally funded)
209
- output = o.output;
210
- }
211
- else if (scores.length > 0) {
212
- // stage 3 satisfied (minimally under-funded)
213
- output = scores.at(-1).output;
214
- }
215
- else {
216
- // no available funding outputs
217
- output = undefined;
218
- }
219
- }
220
- if (output != null) {
221
- // mark output as spent by transactionId
222
- await this.updateOutput(output.outputId, { spendable: false, spentBy: transactionId }, dbTrx);
223
- // Hydrate the locking script for the chosen output. Identical to Knex canon at
224
- // StorageKnex.allocateChangeInput: required when the script was offloaded into
225
- // rawTx storage due to exceeding maxOutputScript.
226
- await this.validateOutputScript(output, dbTrx);
227
- }
228
- return output;
229
- }
230
- finally {
231
- await dbTrx.done;
232
- }
233
- }
234
- async getProvenOrRawTx(txid, trx) {
235
- const r = {
236
- proven: undefined,
237
- rawTx: undefined,
238
- inputBEEF: undefined
239
- };
240
- r.proven = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid }, trx }));
241
- if (r.proven == null) {
242
- const req = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxReqs({ partial: { txid }, trx }));
243
- if ((req != null) && ['unsent', 'unmined', 'unconfirmed', 'sending', 'nosend', 'completed'].includes(req.status)) {
244
- r.rawTx = req.rawTx;
245
- r.inputBEEF = req.inputBEEF;
246
- }
247
- }
248
- return r;
249
- }
250
- async getRawTxOfKnownValidTransaction(txid, offset, length, trx) {
251
- if (txid == null || txid === '')
252
- return undefined;
253
- if (!this.isAvailable())
254
- await this.makeAvailable();
255
- const sliceRequested = offset !== undefined && length !== undefined && Number.isInteger(offset) && Number.isInteger(length);
256
- // Slice path uses an extended status set that includes 'unfail' — matches Knex
257
- // canon at StorageKnex.ts:131. The non-slice path continues to delegate to
258
- // getProvenOrRawTx which uses the narrower set.
259
- const rawTx = sliceRequested
260
- ? await this.getRawTxForSlice(txid, trx)
261
- : await this.getRawTxFull(txid, trx);
262
- if (rawTx != null && sliceRequested) {
263
- return rawTx.slice(offset, offset + length);
264
- }
265
- return rawTx;
266
- }
267
- async getRawTxForSlice(txid, trx) {
268
- const proven = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid }, trx }));
269
- if (proven != null)
270
- return proven.rawTx;
271
- const req = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxReqs({ partial: { txid }, trx }));
272
- const validStatuses = ['unsent', 'nosend', 'sending', 'unmined', 'completed', 'unfail'];
273
- if (req != null && validStatuses.includes(req.status))
274
- return req.rawTx;
275
- return undefined;
276
- }
277
- async getRawTxFull(txid, trx) {
278
- const r = await this.getProvenOrRawTx(txid, trx);
279
- return r.proven != null ? r.proven.rawTx : r.rawTx;
280
- }
281
- async getLabelsForTransactionId(transactionId, trx) {
282
- const maps = await this.findTxLabelMaps({ partial: { transactionId, isDeleted: false }, trx });
283
- const labelIds = maps.map(m => m.txLabelId);
284
- const labels = [];
285
- for (const txLabelId of labelIds) {
286
- // verifyOneOrNone: a map row may reference a label that was later soft-deleted.
287
- // Knex/Bun drop it via JOIN; we must do the same silently or we'd break the whole
288
- // listActions response. Skip + log so persistent orphans still produce a signal.
289
- const label = (0, utilityHelpers_1.verifyOneOrNone)(await this.findTxLabels({ partial: { txLabelId, isDeleted: false }, trx }));
290
- if (label != null) {
291
- labels.push(label);
292
- }
293
- else {
294
- console.debug(`[StorageIdb] orphan tx_labels_map row skipped: transactionId=${String(transactionId)} txLabelId=${txLabelId}`);
295
- }
296
- }
297
- return labels;
298
- }
299
- async getTagsForOutputId(outputId, trx) {
300
- const maps = await this.findOutputTagMaps({ partial: { outputId, isDeleted: false }, trx });
301
- const tagIds = maps.map(m => m.outputTagId);
302
- const tags = [];
303
- for (const outputTagId of tagIds) {
304
- const tag = (0, utilityHelpers_1.verifyOneOrNone)(await this.findOutputTags({ partial: { outputTagId, isDeleted: false }, trx }));
305
- if (tag != null) {
306
- tags.push(tag);
307
- }
308
- else {
309
- console.debug(`[StorageIdb] orphan output_tags_map row skipped: outputId=${outputId} outputTagId=${outputTagId}`);
310
- }
311
- }
312
- return tags;
313
- }
314
- async listActions(auth, vargs) {
315
- if (auth.userId == null)
316
- throw new WERR_errors_1.WERR_UNAUTHORIZED();
317
- return await (0, listActionsIdb_1.listActionsIdb)(this, auth, vargs);
318
- }
319
- async listOutputs(auth, vargs) {
320
- if (auth.userId == null)
321
- throw new WERR_errors_1.WERR_UNAUTHORIZED();
322
- return await (0, listOutputsIdb_1.listOutputsIdb)(this, auth, vargs);
323
- }
324
- async countChangeInputs(userId, basketId, excludeSending) {
325
- const txStatus = ['completed', 'unproven'];
326
- if (!excludeSending)
327
- txStatus.push('sending');
328
- const args = {
329
- partial: { userId, basketId, spendable: true, ...managedChange_1.managedChangeOutputFields },
330
- txStatus,
331
- noScript: true
332
- };
333
- let count = 0;
334
- await this.filterOutputs(args, r => {
335
- if ((0, managedChange_1.isAutoSpendableChangeOutput)(r))
336
- count++;
337
- });
338
- return count;
339
- }
340
- async findCertificatesAuth(auth, args) {
341
- if (auth.userId == null || (args.partial.userId != null && args.partial.userId !== 0 && args.partial.userId !== auth.userId))
342
- throw new WERR_errors_1.WERR_UNAUTHORIZED();
343
- args.partial.userId = auth.userId;
344
- return await this.findCertificates(args);
345
- }
346
- async findOutputBasketsAuth(auth, args) {
347
- if (auth.userId == null || (args.partial.userId != null && args.partial.userId !== 0 && args.partial.userId !== auth.userId))
348
- throw new WERR_errors_1.WERR_UNAUTHORIZED();
349
- args.partial.userId = auth.userId;
350
- return await this.findOutputBaskets(args);
351
- }
352
- async findOutputsAuth(auth, args) {
353
- if (auth.userId == null || (args.partial.userId != null && args.partial.userId !== 0 && args.partial.userId !== auth.userId))
354
- throw new WERR_errors_1.WERR_UNAUTHORIZED();
355
- args.partial.userId = auth.userId;
356
- return await this.findOutputs(args);
357
- }
358
- async insertCertificateAuth(auth, certificate) {
359
- if (auth.userId == null || (certificate.userId != null && certificate.userId !== 0 && certificate.userId !== auth.userId))
360
- throw new WERR_errors_1.WERR_UNAUTHORIZED();
361
- certificate.userId = auth.userId;
362
- return await this.insertCertificate(certificate);
363
- }
364
- //
365
- // StorageReaderWriter abstract methods
366
- //
367
- async dropAllData() {
368
- await (0, idb_1.deleteDB)(this.dbName);
369
- }
370
- /**
371
- * Reject undefined values in a `partial` filter argument. Matches
372
- * Knex behavior (which throws `Undefined binding(s) detected`) so that
373
- * callers can't pass an unmapped idMap lookup through as a silent
374
- * match-anything. Omit the key to skip filtering on it; pass null if
375
- * you need IS NULL semantics (only meaningful for nullable columns).
376
- */
377
- assertNoUndefinedInPartial(partial) {
378
- if (partial == null)
379
- return;
380
- for (const k of Object.keys(partial)) {
381
- if (partial[k] === undefined) {
382
- throw new WERR_errors_1.WERR_INVALID_PARAMETER(`args.partial.${k}`, 'not undefined. Passing undefined as a filter value is not supported — omit the key to skip filtering. Matches Knex semantics.');
383
- }
384
- }
385
- }
386
- async filterOutputTagMaps(args, filtered, userId) {
387
- this.assertNoUndefinedInPartial(args.partial);
388
- const dbTrx = this.toDbTrx(['output_tags_map', 'output_tags'], 'readonly', args.trx);
389
- const store = dbTrx.objectStore('output_tags_map');
390
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
391
- let cursor;
392
- if (args.partial?.outputTagId !== undefined) {
393
- cursor = await store.index('outputTagId').openCursor(args.partial.outputTagId);
394
- }
395
- else if (args.partial?.outputId !== undefined) {
396
- cursor = await store.index('outputId').openCursor(args.partial.outputId);
397
- }
398
- else {
399
- cursor = await store.openCursor();
400
- }
401
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, async (r) => {
402
- if (args.tagIds != null && !args.tagIds.includes(r.outputTagId))
403
- return false;
404
- if (!(0, idbHelpers_1.matchesOutputTagMapPartial)(r, args.partial))
405
- return false;
406
- if (userId !== undefined) {
407
- const tagsForUser = await this.countOutputTags({ partial: { userId, outputTagId: r.outputTagId }, trx: dbTrx });
408
- if (tagsForUser === 0)
409
- return false;
410
- }
411
- return true;
412
- }, filtered);
413
- if (args.trx == null)
414
- await dbTrx.done;
415
- }
416
- async findOutputTagMaps(args) {
417
- const results = [];
418
- await this.filterOutputTagMaps(args, r => {
419
- results.push(this.validateEntity(r));
420
- });
421
- return results;
422
- }
423
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
424
- async openProvenTxReqsCursor(
425
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
426
- store,
427
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
428
- partial, direction
429
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
430
- ) {
431
- if (partial?.provenTxReqId != null && partial.provenTxReqId !== 0)
432
- return store.openCursor(partial.provenTxReqId, direction);
433
- if (partial?.provenTxId !== undefined)
434
- return store.index('provenTxId').openCursor(partial.provenTxId, direction);
435
- if (partial?.txid !== undefined)
436
- return store.index('txid').openCursor(partial.txid, direction);
437
- if (partial?.status !== undefined)
438
- return store.index('status').openCursor(partial.status, direction);
439
- if (partial?.batch !== undefined)
440
- return store.index('batch').openCursor(partial.batch, direction);
441
- return store.openCursor(null, direction);
442
- }
443
- async filterProvenTxReqs(args, filtered, userId) {
444
- this.assertNoUndefinedInPartial(args.partial);
445
- if (args.partial.rawTx != null) {
446
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx', 'undefined. ProvenTxReqs may not be found by rawTx value.');
447
- }
448
- if (args.partial.inputBEEF != null) {
449
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.inputBEEF', 'undefined. ProvenTxReqs may not be found by inputBEEF value.');
450
- }
451
- const dbTrx = this.toDbTrx(['proven_tx_reqs', 'transactions'], 'readonly', args.trx);
452
- const direction = args.orderDescending === true ? 'prev' : 'next';
453
- const store = dbTrx.objectStore('proven_tx_reqs');
454
- const cursor = await this.openProvenTxReqsCursor(store, args.partial, direction);
455
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, async (r) => {
456
- if (!(0, idbHelpers_1.matchesProvenTxReqPartial)(r, args.partial))
457
- return false;
458
- if (args.status != null && args.status.length > 0 && !args.status.includes(r.status))
459
- return false;
460
- if (args.txids != null && args.txids.length > 0 && !args.txids.includes(r.txid))
461
- return false;
462
- if (userId !== undefined) {
463
- const txsForUser = await this.countTransactions({ partial: { userId, txid: r.txid }, trx: dbTrx });
464
- if (txsForUser === 0)
465
- return false;
466
- }
467
- return true;
468
- }, filtered);
469
- if (args.trx == null)
470
- await dbTrx.done;
471
- }
472
- async findProvenTxReqs(args) {
473
- const results = [];
474
- await this.filterProvenTxReqs(args, r => {
475
- results.push(this.validateEntity(r));
476
- });
477
- return results;
478
- }
479
- async filterProvenTxs(args, filtered, userId) {
480
- this.assertNoUndefinedInPartial(args.partial);
481
- if (args.partial.rawTx != null) {
482
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx', 'undefined. ProvenTxs may not be found by rawTx value.');
483
- }
484
- if (args.partial.merklePath != null) {
485
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.merklePath', 'undefined. ProvenTxs may not be found by merklePath value.');
486
- }
487
- const dbTrx = this.toDbTrx(['proven_txs', 'transactions'], 'readonly', args.trx);
488
- const direction = args.orderDescending === true ? 'prev' : 'next';
489
- const store = dbTrx.objectStore('proven_txs');
490
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
491
- let cursor;
492
- if (args.partial?.provenTxId != null && args.partial.provenTxId > 0) {
493
- cursor = await store.openCursor(args.partial.provenTxId, direction);
494
- }
495
- else if (args.partial?.txid !== undefined) {
496
- cursor = await store.index('txid').openCursor(args.partial.txid, direction);
497
- }
498
- else {
499
- cursor = await store.openCursor(null, direction);
500
- }
501
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, async (r) => {
502
- if (!(0, idbHelpers_1.matchesProvenTxPartial)(r, args.partial))
503
- return false;
504
- if (userId !== undefined) {
505
- const txCount = await this.countTransactions({ partial: { userId, provenTxId: r.provenTxId }, trx: dbTrx });
506
- if (txCount === 0)
507
- return false;
508
- }
509
- return true;
510
- }, filtered);
511
- if (args.trx == null)
512
- await dbTrx.done;
513
- }
514
- async findProvenTxs(args) {
515
- const results = [];
516
- await this.filterProvenTxs(args, r => {
517
- results.push(this.validateEntity(r));
518
- });
519
- return results;
520
- }
521
- async filterTxLabelMaps(args, filtered, userId) {
522
- this.assertNoUndefinedInPartial(args.partial);
523
- const dbTrx = this.toDbTrx(['tx_labels_map', 'tx_labels'], 'readonly', args.trx);
524
- const store = dbTrx.objectStore('tx_labels_map');
525
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
526
- let cursor;
527
- if (args.partial?.transactionId !== undefined) {
528
- cursor = await store.index('transactionId').openCursor(args.partial.transactionId);
529
- }
530
- else if (args.partial?.txLabelId !== undefined) {
531
- cursor = await store.index('txLabelId').openCursor(args.partial.txLabelId);
532
- }
533
- else {
534
- cursor = await store.openCursor();
535
- }
536
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, async (r) => {
537
- if (!(0, idbHelpers_1.matchesTxLabelMapPartial)(r, args.partial))
538
- return false;
539
- if (userId !== undefined) {
540
- const labelCount = await this.countTxLabels({ partial: { userId, txLabelId: r.txLabelId }, trx: dbTrx });
541
- if (labelCount === 0)
542
- return false;
543
- }
544
- return true;
545
- }, filtered);
546
- if (args.trx == null)
547
- await dbTrx.done;
548
- }
549
- async findTxLabelMaps(args) {
550
- const results = [];
551
- await this.filterTxLabelMaps(args, r => {
552
- results.push(this.validateEntity(r));
553
- });
554
- return results;
555
- }
556
- async countOutputTagMaps(args) {
557
- let count = 0;
558
- await this.filterOutputTagMaps(args, () => {
559
- count++;
560
- });
561
- return count;
562
- }
563
- async countProvenTxReqs(args) {
564
- let count = 0;
565
- await this.filterProvenTxReqs(args, () => {
566
- count++;
567
- });
568
- return count;
569
- }
570
- async countProvenTxs(args) {
571
- let count = 0;
572
- await this.filterProvenTxs(args, () => {
573
- count++;
574
- });
575
- return count;
576
- }
577
- async countTxLabelMaps(args) {
578
- let count = 0;
579
- await this.filterTxLabelMaps(args, () => {
580
- count++;
581
- });
582
- return count;
583
- }
584
- async insertCertificate(certificate, trx) {
585
- const e = await this.validateEntityForInsert(certificate, trx, undefined, ['isDeleted']);
586
- // Strip non-schema runtime fields before insert. Matches Knex canon.
587
- if (e.logger != null)
588
- delete e.logger;
589
- const fields = e.fields;
590
- if (e.fields != null)
591
- delete e.fields;
592
- if (e.certificateId === 0)
593
- delete e.certificateId;
594
- const dbTrx = this.toDbTrx(['certificates', 'certificate_fields'], 'readwrite', trx);
595
- const store = dbTrx.objectStore('certificates');
596
- try {
597
- const id = Number(await store.add(e));
598
- certificate.certificateId = id;
599
- if (fields != null) {
600
- for (const field of fields) {
601
- field.certificateId = certificate.certificateId;
602
- field.userId = certificate.userId;
603
- await this.insertCertificateField(field, dbTrx);
604
- }
605
- }
606
- }
607
- finally {
608
- if (trx == null)
609
- await dbTrx.done;
610
- }
611
- return certificate.certificateId;
612
- }
613
- async insertCertificateField(certificateField, trx) {
614
- const e = await this.validateEntityForInsert(certificateField, trx);
615
- const dbTrx = this.toDbTrx(['certificate_fields'], 'readwrite', trx);
616
- const store = dbTrx.objectStore('certificate_fields');
617
- try {
618
- await store.add(e);
619
- }
620
- finally {
621
- if (trx == null)
622
- await dbTrx.done;
623
- }
624
- }
625
- async insertCommission(commission, trx) {
626
- const e = await this.validateEntityForInsert(commission, trx);
627
- if (e.commissionId === 0)
628
- delete e.commissionId;
629
- const dbTrx = this.toDbTrx(['commissions'], 'readwrite', trx);
630
- const store = dbTrx.objectStore('commissions');
631
- try {
632
- const id = Number(await store.add(e));
633
- commission.commissionId = id;
634
- }
635
- finally {
636
- if (trx == null)
637
- await dbTrx.done;
638
- }
639
- return commission.commissionId;
640
- }
641
- async insertMonitorEvent(event, trx) {
642
- const e = await this.validateEntityForInsert(event, trx);
643
- if (e.id === 0)
644
- delete e.id;
645
- const dbTrx = this.toDbTrx(['monitor_events'], 'readwrite', trx);
646
- const store = dbTrx.objectStore('monitor_events');
647
- try {
648
- const id = Number(await store.add(e));
649
- event.id = id;
650
- }
651
- finally {
652
- if (trx == null)
653
- await dbTrx.done;
654
- }
655
- return event.id;
656
- }
657
- async insertOutput(output, trx) {
658
- const e = await this.validateEntityForInsert(output, trx);
659
- if (e.outputId === 0)
660
- delete e.outputId;
661
- const dbTrx = this.toDbTrx(['outputs'], 'readwrite', trx);
662
- const store = dbTrx.objectStore('outputs');
663
- try {
664
- const id = Number(await store.add(e));
665
- output.outputId = id;
666
- }
667
- finally {
668
- if (trx == null)
669
- await dbTrx.done;
670
- }
671
- return output.outputId;
672
- }
673
- async insertOutputBasket(basket, trx) {
674
- const e = await this.validateEntityForInsert(basket, trx, undefined, ['isDeleted']);
675
- if (e.basketId === 0)
676
- delete e.basketId;
677
- const dbTrx = this.toDbTrx(['output_baskets'], 'readwrite', trx);
678
- const store = dbTrx.objectStore('output_baskets');
679
- try {
680
- const id = Number(await store.add(e));
681
- basket.basketId = id;
682
- }
683
- finally {
684
- if (trx == null)
685
- await dbTrx.done;
686
- }
687
- return basket.basketId;
688
- }
689
- async insertOutputTag(tag, trx) {
690
- const e = await this.validateEntityForInsert(tag, trx, undefined, ['isDeleted']);
691
- if (e.outputTagId === 0)
692
- delete e.outputTagId;
693
- const dbTrx = this.toDbTrx(['output_tags'], 'readwrite', trx);
694
- const store = dbTrx.objectStore('output_tags');
695
- try {
696
- const id = Number(await store.add(e));
697
- tag.outputTagId = id;
698
- }
699
- finally {
700
- if (trx == null)
701
- await dbTrx.done;
702
- }
703
- return tag.outputTagId;
704
- }
705
- async insertOutputTagMap(tagMap, trx) {
706
- const e = await this.validateEntityForInsert(tagMap, trx, undefined, ['isDeleted']);
707
- const dbTrx = this.toDbTrx(['output_tags_map'], 'readwrite', trx);
708
- const store = dbTrx.objectStore('output_tags_map');
709
- try {
710
- await store.add(e);
711
- }
712
- finally {
713
- if (trx == null)
714
- await dbTrx.done;
715
- }
716
- }
717
- async insertProvenTx(tx, trx) {
718
- const e = await this.validateEntityForInsert(tx, trx);
719
- if (e.provenTxId === 0)
720
- delete e.provenTxId;
721
- const dbTrx = this.toDbTrx(['proven_txs'], 'readwrite', trx);
722
- const store = dbTrx.objectStore('proven_txs');
723
- try {
724
- const id = Number(await store.add(e));
725
- tx.provenTxId = id;
726
- }
727
- finally {
728
- if (trx == null)
729
- await dbTrx.done;
730
- }
731
- return tx.provenTxId;
732
- }
733
- async insertProvenTxReq(tx, trx) {
734
- const e = await this.validateEntityForInsert(tx, trx);
735
- if (e.provenTxReqId === 0)
736
- delete e.provenTxReqId;
737
- const dbTrx = this.toDbTrx(['proven_tx_reqs'], 'readwrite', trx);
738
- const store = dbTrx.objectStore('proven_tx_reqs');
739
- try {
740
- const id = Number(await store.add(e));
741
- tx.provenTxReqId = id;
742
- }
743
- finally {
744
- if (trx == null)
745
- await dbTrx.done;
746
- }
747
- return tx.provenTxReqId;
748
- }
749
- async insertSyncState(syncState, trx) {
750
- const e = await this.validateEntityForInsert(syncState, trx, ['when'], ['init']);
751
- if (e.syncStateId === 0)
752
- delete e.syncStateId;
753
- const dbTrx = this.toDbTrx(['sync_states'], 'readwrite', trx);
754
- const store = dbTrx.objectStore('sync_states');
755
- try {
756
- const id = Number(await store.add(e));
757
- syncState.syncStateId = id;
758
- }
759
- finally {
760
- if (trx == null)
761
- await dbTrx.done;
762
- }
763
- return syncState.syncStateId;
764
- }
765
- async insertTransaction(tx, trx) {
766
- const e = await this.validateEntityForInsert(tx, trx);
767
- if (e.transactionId === 0)
768
- delete e.transactionId;
769
- const dbTrx = this.toDbTrx(['transactions'], 'readwrite', trx);
770
- const store = dbTrx.objectStore('transactions');
771
- try {
772
- const id = Number(await store.add(e));
773
- tx.transactionId = id;
774
- }
775
- finally {
776
- if (trx == null)
777
- await dbTrx.done;
778
- }
779
- return tx.transactionId;
780
- }
781
- async insertTxLabel(label, trx) {
782
- const e = await this.validateEntityForInsert(label, trx, undefined, ['isDeleted']);
783
- if (e.txLabelId === 0)
784
- delete e.txLabelId;
785
- const dbTrx = this.toDbTrx(['tx_labels'], 'readwrite', trx);
786
- const store = dbTrx.objectStore('tx_labels');
787
- try {
788
- const id = Number(await store.add(e));
789
- label.txLabelId = id;
790
- }
791
- finally {
792
- if (trx == null)
793
- await dbTrx.done;
794
- }
795
- return label.txLabelId;
796
- }
797
- async insertTxLabelMap(labelMap, trx) {
798
- const e = await this.validateEntityForInsert(labelMap, trx, undefined, ['isDeleted']);
799
- const dbTrx = this.toDbTrx(['tx_labels_map'], 'readwrite', trx);
800
- const store = dbTrx.objectStore('tx_labels_map');
801
- try {
802
- await store.add(e);
803
- }
804
- finally {
805
- if (trx == null)
806
- await dbTrx.done;
807
- }
808
- }
809
- async insertUser(user, trx) {
810
- const e = await this.validateEntityForInsert(user, trx);
811
- if (e.userId === 0)
812
- delete e.userId;
813
- const dbTrx = this.toDbTrx(['users'], 'readwrite', trx);
814
- const store = dbTrx.objectStore('users');
815
- try {
816
- const id = Number(await store.add(e));
817
- user.userId = id;
818
- }
819
- finally {
820
- if (trx == null)
821
- await dbTrx.done;
822
- }
823
- return user.userId;
824
- }
825
- async updateIdb(id, update, keyProp, storeName, trx) {
826
- if (update[keyProp] !== undefined && (Array.isArray(id) || update[keyProp] !== id)) {
827
- throw new WERR_errors_1.WERR_INVALID_PARAMETER(`update.${keyProp}`, 'undefined');
828
- }
829
- const u = this.validatePartialForUpdate(update);
830
- const dbTrx = this.toDbTrx([storeName], 'readwrite', trx);
831
- const store = dbTrx.objectStore(storeName);
832
- const ids = Array.isArray(id) ? id : [id];
833
- let updated = 0;
834
- try {
835
- for (const i of ids) {
836
- const e = await store.get(i);
837
- // Match Knex/Bun semantics: missing rows produce a 0-row result, not an error.
838
- // Caller receives the true updated count and can decide how to react.
839
- if (e == null)
840
- continue;
841
- const v = {
842
- ...e,
843
- ...u
844
- };
845
- const uid = await store.put(v);
846
- if (uid !== i)
847
- throw new WERR_errors_1.WERR_INTERNAL(`updated id ${String(uid)} does not match original ${String(id)}`);
848
- updated++;
849
- }
850
- }
851
- finally {
852
- if (trx == null)
853
- await dbTrx.done;
854
- }
855
- return updated;
856
- }
857
- async updateIdbKey(key, update, keyProps, storeName, trx) {
858
- if (key.length !== keyProps.length) {
859
- throw new WERR_errors_1.WERR_INTERNAL(`key.length ${key.length} !== keyProps.length ${keyProps.length}`);
860
- }
861
- for (let i = 0; i < key.length; i++) {
862
- if (update[keyProps[i]] !== undefined && update[keyProps[i]] !== key[i]) {
863
- throw new WERR_errors_1.WERR_INVALID_PARAMETER(`update.${keyProps[i]}`, 'undefined');
864
- }
865
- }
866
- const u = this.validatePartialForUpdate(update);
867
- const dbTrx = this.toDbTrx([storeName], 'readwrite', trx);
868
- const store = dbTrx.objectStore(storeName);
869
- try {
870
- const e = await store.get(key);
871
- if (e == null) {
872
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('key', `an existing record to update ${keyProps.join(',')} ${key.join(',')} not found`);
873
- }
874
- const v = {
875
- ...e,
876
- ...u
877
- };
878
- const uid = await store.put(v);
879
- for (let i = 0; i < key.length; i++) {
880
- if (uid[i] !== key[i])
881
- throw new WERR_errors_1.WERR_INTERNAL(`updated key ${String(uid[i])} does not match original ${String(key[i])}`);
882
- }
883
- }
884
- finally {
885
- if (trx == null)
886
- await dbTrx.done;
887
- }
888
- return 1;
889
- }
890
- async updateCertificate(id, update, trx) {
891
- return await this.updateIdb(id, update, 'certificateId', 'certificates', trx);
892
- }
893
- async updateCertificateField(certificateId, fieldName, update, trx) {
894
- return await this.updateIdbKey([certificateId, fieldName], update, ['certificateId', 'fieldName'], 'certificate_fields', trx);
895
- }
896
- async updateCommission(id, update, trx) {
897
- return await this.updateIdb(id, update, 'commissionId', 'commissions', trx);
898
- }
899
- async updateMonitorEvent(id, update, trx) {
900
- return await this.updateIdb(id, update, 'id', 'monitor_events', trx);
901
- }
902
- async updateOutput(id, update, trx) {
903
- return await this.updateIdb(id, update, 'outputId', 'outputs', trx);
904
- }
905
- async updateOutputBasket(id, update, trx) {
906
- return await this.updateIdb(id, update, 'basketId', 'output_baskets', trx);
907
- }
908
- async updateOutputTag(id, update, trx) {
909
- return await this.updateIdb(id, update, 'outputTagId', 'output_tags', trx);
910
- }
911
- async updateProvenTx(id, update, trx) {
912
- return await this.updateIdb(id, update, 'provenTxId', 'proven_txs', trx);
913
- }
914
- async updateProvenTxReq(id, update, trx) {
915
- return await this.updateIdb(id, update, 'provenTxReqId', 'proven_tx_reqs', trx);
916
- }
917
- async updateSyncState(id, update, trx) {
918
- return await this.updateIdb(id, update, 'syncStateId', 'sync_states', trx);
919
- }
920
- async updateTransaction(id, update, trx) {
921
- return await this.updateIdb(id, update, 'transactionId', 'transactions', trx);
922
- }
923
- async updateTxLabel(id, update, trx) {
924
- return await this.updateIdb(id, update, 'txLabelId', 'tx_labels', trx);
925
- }
926
- async updateUser(id, update, trx) {
927
- return await this.updateIdb(id, update, 'userId', 'users', trx);
928
- }
929
- async updateOutputTagMap(outputId, tagId, update, trx) {
930
- return await this.updateIdbKey([tagId, outputId], update, ['outputTagId', 'outputId'], 'output_tags_map', trx);
931
- }
932
- async updateTxLabelMap(transactionId, txLabelId, update, trx) {
933
- return await this.updateIdbKey([txLabelId, transactionId], update, ['txLabelId', 'transactionId'], 'tx_labels_map', trx);
934
- }
935
- //
936
- // StorageReader abstract methods
937
- //
938
- async destroy() {
939
- if (this.db != null) {
940
- this.db.close();
941
- }
942
- this.db = undefined;
943
- this._settings = undefined;
944
- }
945
- allStores = [
946
- 'certificates',
947
- 'certificate_fields',
948
- 'commissions',
949
- 'monitor_events',
950
- 'outputs',
951
- 'output_baskets',
952
- 'output_tags',
953
- 'output_tags_map',
954
- 'proven_txs',
955
- 'proven_tx_reqs',
956
- 'sync_states',
957
- 'transactions',
958
- 'tx_labels',
959
- 'tx_labels_map',
960
- 'users'
961
- ];
962
- /**
963
- * @param scope
964
- * @param trx
965
- * @returns
966
- */
967
- async transaction(scope, trx) {
968
- if (trx != null)
969
- return await scope(trx);
970
- const stores = this.allStores;
971
- const db = await this.verifyDB();
972
- const tx = db.transaction(stores, 'readwrite');
973
- try {
974
- const r = await scope(tx);
975
- await tx.done;
976
- return r;
977
- }
978
- catch (err) {
979
- tx.abort();
980
- await tx.done;
981
- throw err;
982
- }
983
- }
984
- async filterCertificateFields(args, filtered) {
985
- this.assertNoUndefinedInPartial(args.partial);
986
- const dbTrx = this.toDbTrx(['certificate_fields'], 'readonly', args.trx);
987
- const store = dbTrx.objectStore('certificate_fields');
988
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
989
- let cursor;
990
- if (args.partial?.certificateId !== undefined) {
991
- cursor = await store.index('certificateId').openCursor(args.partial.certificateId);
992
- }
993
- else if (args.partial?.userId !== undefined) {
994
- cursor = await store.index('userId').openCursor(args.partial.userId);
995
- }
996
- else {
997
- cursor = await store.openCursor();
998
- }
999
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, r => (0, idbHelpers_1.matchesCertificateFieldPartial)(r, args.partial), filtered);
1000
- if (args.trx == null)
1001
- await dbTrx.done;
1002
- }
1003
- async findCertificateFields(args) {
1004
- const result = [];
1005
- await this.filterCertificateFields(args, r => {
1006
- result.push(this.validateEntity(r));
1007
- });
1008
- return result;
1009
- }
1010
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1011
- async openCertificatesCursor(
1012
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1013
- store,
1014
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1015
- partial
1016
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1017
- ) {
1018
- if (partial?.certificateId != null && partial.certificateId !== 0)
1019
- return store.openCursor(partial.certificateId);
1020
- if (partial?.userId !== undefined) {
1021
- if (partial?.type != null && partial?.certifier != null && partial?.serialNumber != null) {
1022
- return store
1023
- .index('userId_type_certifier_serialNumber')
1024
- .openCursor([partial.userId, partial.type, partial.certifier, partial.serialNumber]);
1025
- }
1026
- return store.index('userId').openCursor(partial.userId);
1027
- }
1028
- return store.openCursor();
1029
- }
1030
- async filterCertificates(args, filtered) {
1031
- this.assertNoUndefinedInPartial(args.partial);
1032
- const dbTrx = this.toDbTrx(['certificates'], 'readonly', args.trx);
1033
- const store = dbTrx.objectStore('certificates');
1034
- const cursor = await this.openCertificatesCursor(store, args.partial);
1035
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, r => {
1036
- if (args.certifiers != null && !args.certifiers.includes(r.certifier))
1037
- return false;
1038
- if (args.types != null && !args.types.includes(r.type))
1039
- return false;
1040
- return (0, idbHelpers_1.matchesCertificatePartial)(r, args.partial);
1041
- }, filtered);
1042
- if (args.trx == null)
1043
- await dbTrx.done;
1044
- }
1045
- async findCertificates(args) {
1046
- const result = [];
1047
- await this.filterCertificates(args, r => {
1048
- result.push(this.validateEntity(r));
1049
- });
1050
- if (args.includeFields === true) {
1051
- for (const c of result) {
1052
- const fields = await this.findCertificateFields({ partial: { certificateId: c.certificateId }, trx: args.trx });
1053
- c.fields = fields;
1054
- }
1055
- }
1056
- return result;
1057
- }
1058
- async filterCommissions(args, filtered) {
1059
- this.assertNoUndefinedInPartial(args.partial);
1060
- if (args.partial.lockingScript != null) {
1061
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('partial.lockingScript', 'undefined. Commissions may not be found by lockingScript value.');
1062
- }
1063
- const dbTrx = this.toDbTrx(['commissions'], 'readonly', args.trx);
1064
- const store = dbTrx.objectStore('commissions');
1065
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1066
- let cursor;
1067
- if (args.partial?.commissionId != null && args.partial.commissionId !== 0) {
1068
- cursor = await store.openCursor(args.partial.commissionId);
1069
- }
1070
- else if (args.partial?.userId !== undefined) {
1071
- cursor = await store.index('userId').openCursor(args.partial.userId);
1072
- }
1073
- else if (args.partial?.transactionId !== undefined) {
1074
- cursor = await store.index('transactionId').openCursor(args.partial.transactionId);
1075
- }
1076
- else {
1077
- cursor = await store.openCursor();
1078
- }
1079
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, r => (0, idbHelpers_1.matchesCommissionPartial)(r, args.partial), filtered);
1080
- if (args.trx == null)
1081
- await dbTrx.done;
1082
- }
1083
- async findCommissions(args) {
1084
- const result = [];
1085
- await this.filterCommissions(args, r => {
1086
- result.push(this.validateEntity(r));
1087
- });
1088
- return result;
1089
- }
1090
- async filterMonitorEvents(args, filtered) {
1091
- this.assertNoUndefinedInPartial(args.partial);
1092
- const dbTrx = this.toDbTrx(['monitor_events'], 'readonly', args.trx);
1093
- const store = dbTrx.objectStore('monitor_events');
1094
- const cursor = (args.partial?.id != null && args.partial.id !== 0) ? await store.openCursor(args.partial.id) : await store.openCursor();
1095
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, r => (0, idbHelpers_1.matchesMonitorEventPartial)(r, args.partial), filtered);
1096
- if (args.trx == null)
1097
- await dbTrx.done;
1098
- }
1099
- async findMonitorEvents(args) {
1100
- const result = [];
1101
- await this.filterMonitorEvents(args, r => {
1102
- result.push(this.validateEntity(r));
1103
- });
1104
- return result;
1105
- }
1106
- async filterOutputBaskets(args, filtered) {
1107
- this.assertNoUndefinedInPartial(args.partial);
1108
- const dbTrx = this.toDbTrx(['output_baskets'], 'readonly', args.trx);
1109
- const store = dbTrx.objectStore('output_baskets');
1110
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1111
- let cursor;
1112
- if (args.partial?.basketId != null && args.partial.basketId !== 0) {
1113
- cursor = await store.openCursor(args.partial.basketId);
1114
- }
1115
- else if (args.partial?.userId !== undefined && args.partial?.name !== undefined) {
1116
- cursor = await store.index('name_userId').openCursor([args.partial.name, args.partial.userId]);
1117
- }
1118
- else if (args.partial?.userId !== undefined) {
1119
- cursor = await store.index('userId').openCursor(args.partial.userId);
1120
- }
1121
- else {
1122
- cursor = await store.openCursor();
1123
- }
1124
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, r => (0, idbHelpers_1.matchesOutputBasketPartial)(r, args.partial), filtered);
1125
- if (args.trx == null)
1126
- await dbTrx.done;
1127
- }
1128
- async findOutputBaskets(args) {
1129
- const result = [];
1130
- await this.filterOutputBaskets(args, r => {
1131
- result.push(this.validateEntity(r));
1132
- });
1133
- return result;
1134
- }
1135
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1136
- async openOutputsCursor(
1137
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1138
- store,
1139
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1140
- partial, direction
1141
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1142
- ) {
1143
- if (partial?.outputId != null && partial.outputId !== 0)
1144
- return store.openCursor(partial.outputId, direction);
1145
- if (partial?.userId !== undefined) {
1146
- if (partial?.transactionId != null && partial.transactionId !== 0 && partial?.vout !== undefined) {
1147
- return store.index('transactionId_vout_userId').openCursor([partial.transactionId, partial.vout, partial.userId], direction);
1148
- }
1149
- return store.index('userId').openCursor(partial.userId, direction);
1150
- }
1151
- if (partial?.transactionId !== undefined)
1152
- return store.index('transactionId').openCursor(partial.transactionId, direction);
1153
- if (partial?.basketId !== undefined)
1154
- return store.index('basketId').openCursor(partial.basketId, direction);
1155
- if (partial?.spentBy !== undefined)
1156
- return store.index('spentBy').openCursor(partial.spentBy, direction);
1157
- return store.openCursor(null, direction);
1158
- }
1159
- async filterOutputs(args, filtered, tagIds, isQueryModeAll) {
1160
- this.assertNoUndefinedInPartial(args.partial);
1161
- if (args.partial.lockingScript != null) {
1162
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.lockingScript', 'undefined. Outputs may not be found by lockingScript value.');
1163
- }
1164
- const stores = ['outputs'];
1165
- if (tagIds != null && tagIds.length > 0)
1166
- stores.push('output_tags_map');
1167
- if (args.txStatus != null)
1168
- stores.push('transactions');
1169
- const dbTrx = this.toDbTrx(stores, 'readonly', args.trx);
1170
- const direction = args.orderDescending === true ? 'prev' : 'next';
1171
- const store = dbTrx.objectStore('outputs');
1172
- const cursor = await this.openOutputsCursor(store, args.partial, direction);
1173
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, async (r) => {
1174
- if (!(0, idbHelpers_1.matchesOutputPartial)(r, args.partial))
1175
- return false;
1176
- if (args.txStatus !== undefined) {
1177
- const txCount = await this.countTransactions({
1178
- partial: { transactionId: r.transactionId },
1179
- status: args.txStatus,
1180
- trx: dbTrx
1181
- });
1182
- if (txCount === 0)
1183
- return false;
1184
- }
1185
- if (tagIds != null && tagIds.length > 0 && !await this.outputMatchesTags(r.outputId, tagIds, isQueryModeAll, dbTrx))
1186
- return false;
1187
- return true;
1188
- }, r => {
1189
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1190
- if (args.noScript === true)
1191
- r.script = undefined;
1192
- filtered(r);
1193
- });
1194
- if (args.trx == null)
1195
- await dbTrx.done;
1196
- }
1197
- async outputMatchesTags(outputId, tagIds, isQueryModeAll, dbTrx) {
1198
- let ids = [...tagIds];
1199
- await this.filterOutputTagMaps({ partial: { outputId }, trx: dbTrx }, tm => {
1200
- if (ids.length > 0) {
1201
- const i = ids.indexOf(tm.outputTagId);
1202
- if (i >= 0) {
1203
- if (isQueryModeAll === true) {
1204
- ids.splice(i, 1);
1205
- }
1206
- else {
1207
- ids = [];
1208
- }
1209
- }
1210
- }
1211
- });
1212
- return ids.length === 0;
1213
- }
1214
- async findOutputs(args, tagIds, isQueryModeAll) {
1215
- const results = [];
1216
- await this.filterOutputs(args, r => {
1217
- results.push(this.validateEntity(r));
1218
- }, tagIds, isQueryModeAll);
1219
- for (const o of results) {
1220
- if (args.noScript === true) {
1221
- o.lockingScript = undefined;
1222
- }
1223
- else {
1224
- await this.validateOutputScript(o, args.trx);
1225
- }
1226
- }
1227
- return results;
1228
- }
1229
- async filterOutputTags(args, filtered) {
1230
- const dbTrx = this.toDbTrx(['output_tags'], 'readonly', args.trx);
1231
- const store = dbTrx.objectStore('output_tags');
1232
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1233
- let cursor;
1234
- if (args.partial?.outputTagId != null && args.partial.outputTagId !== 0) {
1235
- cursor = await store.openCursor(args.partial.outputTagId);
1236
- }
1237
- else if (args.partial?.userId !== undefined && args.partial?.tag !== undefined) {
1238
- cursor = await store.index('tag_userId').openCursor([args.partial.tag, args.partial.userId]);
1239
- }
1240
- else if (args.partial?.userId !== undefined) {
1241
- cursor = await store.index('userId').openCursor(args.partial.userId);
1242
- }
1243
- else {
1244
- cursor = await store.openCursor();
1245
- }
1246
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, r => (0, idbHelpers_1.matchesOutputTagPartial)(r, args.partial), filtered);
1247
- if (args.trx == null)
1248
- await dbTrx.done;
1249
- }
1250
- async findOutputTags(args) {
1251
- const result = [];
1252
- await this.filterOutputTags(args, r => {
1253
- result.push(this.validateEntity(r));
1254
- });
1255
- return result;
1256
- }
1257
- async filterSyncStates(args, filtered) {
1258
- if (args.partial.syncMap != null && args.partial.syncMap !== '') {
1259
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.syncMap', 'undefined. SyncStates may not be found by syncMap value.');
1260
- }
1261
- const dbTrx = this.toDbTrx(['sync_states'], 'readonly', args.trx);
1262
- const store = dbTrx.objectStore('sync_states');
1263
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1264
- let cursor;
1265
- if (args.partial?.syncStateId != null && args.partial.syncStateId !== 0) {
1266
- cursor = await store.openCursor(args.partial.syncStateId);
1267
- }
1268
- else if (args.partial?.userId !== undefined) {
1269
- cursor = await store.index('userId').openCursor(args.partial.userId);
1270
- }
1271
- else if (args.partial?.refNum !== undefined) {
1272
- cursor = await store.index('refNum').openCursor(args.partial.refNum);
1273
- }
1274
- else if (args.partial?.status !== undefined) {
1275
- cursor = await store.index('status').openCursor(args.partial.status);
1276
- }
1277
- else {
1278
- cursor = await store.openCursor();
1279
- }
1280
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, r => (0, idbHelpers_1.matchesSyncStatePartial)(r, args.partial), filtered);
1281
- if (args.trx == null)
1282
- await dbTrx.done;
1283
- }
1284
- async findSyncStates(args) {
1285
- const result = [];
1286
- await this.filterSyncStates(args, r => {
1287
- result.push(this.validateEntity(r));
1288
- });
1289
- return result;
1290
- }
1291
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1292
- async openTransactionsCursor(
1293
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1294
- store,
1295
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1296
- partial, direction
1297
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1298
- ) {
1299
- if (partial?.transactionId != null && partial.transactionId !== 0)
1300
- return store.openCursor(partial.transactionId, direction);
1301
- if (partial?.userId !== undefined) {
1302
- if (partial?.status !== undefined) {
1303
- return store.index('status_userId').openCursor([partial.status, partial.userId], direction);
1304
- }
1305
- return store.index('userId').openCursor(partial.userId, direction);
1306
- }
1307
- if (partial?.status !== undefined)
1308
- return store.index('status').openCursor(partial.status, direction);
1309
- if (partial?.provenTxId !== undefined)
1310
- return store.index('provenTxId').openCursor(partial.provenTxId, direction);
1311
- if (partial?.reference !== undefined)
1312
- return store.index('reference').openCursor(partial.reference, direction);
1313
- return store.openCursor(null, direction);
1314
- }
1315
- async filterTransactions(args, filtered, labelIds, isQueryModeAll) {
1316
- if (args.partial.rawTx != null) {
1317
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx', 'undefined. Transactions may not be found by rawTx value.');
1318
- }
1319
- if (args.partial.inputBEEF != null) {
1320
- throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.inputBEEF', 'undefined. Transactions may not be found by inputBEEF value.');
1321
- }
1322
- const stores = ['transactions'];
1323
- if (labelIds != null && labelIds.length > 0)
1324
- stores.push('tx_labels_map');
1325
- const dbTrx = this.toDbTrx(stores, 'readonly', args.trx);
1326
- const direction = args.orderDescending === true ? 'prev' : 'next';
1327
- const store = dbTrx.objectStore('transactions');
1328
- const cursor = await this.openTransactionsCursor(store, args.partial, direction);
1329
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, async (r) => {
1330
- if (args.from != null && r.created_at.getTime() < args.from.getTime())
1331
- return false;
1332
- if (args.to != null && r.created_at.getTime() >= args.to.getTime())
1333
- return false;
1334
- if (args.status != null && !args.status.includes(r.status))
1335
- return false;
1336
- if (!(0, idbHelpers_1.matchesTransactionPartial)(r, args.partial))
1337
- return false;
1338
- if (labelIds != null && labelIds.length > 0 && !await this.transactionMatchesLabels(r.transactionId, labelIds, isQueryModeAll, dbTrx))
1339
- return false;
1340
- return true;
1341
- }, filtered);
1342
- if (args.trx == null)
1343
- await dbTrx.done;
1344
- }
1345
- async transactionMatchesLabels(transactionId, labelIds, isQueryModeAll, dbTrx) {
1346
- let ids = [...labelIds];
1347
- await this.filterTxLabelMaps({ partial: { transactionId }, trx: dbTrx }, lm => {
1348
- if (ids.length > 0) {
1349
- const i = ids.indexOf(lm.txLabelId);
1350
- if (i >= 0) {
1351
- if (isQueryModeAll === true) {
1352
- ids.splice(i, 1);
1353
- }
1354
- else {
1355
- ids = [];
1356
- }
1357
- }
1358
- }
1359
- });
1360
- return ids.length === 0;
1361
- }
1362
- async findTransactions(args, labelIds, isQueryModeAll) {
1363
- const results = [];
1364
- await this.filterTransactions(args, r => {
1365
- results.push(this.validateEntity(r));
1366
- }, labelIds, isQueryModeAll);
1367
- for (const t of results) {
1368
- if (args.noRawTx === true) {
1369
- t.rawTx = undefined;
1370
- t.inputBEEF = undefined;
1371
- }
1372
- else {
1373
- await this.validateRawTransaction(t, args.trx);
1374
- }
1375
- }
1376
- return results;
1377
- }
1378
- async filterTxLabels(args, filtered) {
1379
- const dbTrx = this.toDbTrx(['tx_labels'], 'readonly', args.trx);
1380
- const store = dbTrx.objectStore('tx_labels');
1381
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1382
- let cursor;
1383
- if (args.partial?.txLabelId != null && args.partial.txLabelId !== 0) {
1384
- cursor = await store.openCursor(args.partial.txLabelId);
1385
- }
1386
- else if (args.partial?.userId !== undefined && args.partial?.label !== undefined) {
1387
- cursor = await store.index('label_userId').openCursor([args.partial.label, args.partial.userId]);
1388
- }
1389
- else if (args.partial?.userId !== undefined) {
1390
- cursor = await store.index('userId').openCursor(args.partial.userId);
1391
- }
1392
- else {
1393
- cursor = await store.openCursor();
1394
- }
1395
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, r => (0, idbHelpers_1.matchesTxLabelPartial)(r, args.partial), filtered);
1396
- if (args.trx == null)
1397
- await dbTrx.done;
1398
- }
1399
- async findTxLabels(args) {
1400
- const result = [];
1401
- await this.filterTxLabels(args, r => {
1402
- result.push(this.validateEntity(r));
1403
- });
1404
- return result;
1405
- }
1406
- matchesUserPartial(r, partial) {
1407
- if (partial == null)
1408
- return true;
1409
- if (partial.userId != null && partial.userId !== 0 && r.userId !== partial.userId)
1410
- return false;
1411
- if ((partial.created_at != null) && r.created_at.getTime() !== partial.created_at.getTime())
1412
- return false;
1413
- if ((partial.updated_at != null) && r.updated_at.getTime() !== partial.updated_at.getTime())
1414
- return false;
1415
- if (partial.identityKey != null && partial.identityKey !== '' && r.identityKey !== partial.identityKey)
1416
- return false;
1417
- if (partial.activeStorage != null && partial.activeStorage !== '' && r.activeStorage !== partial.activeStorage)
1418
- return false;
1419
- return true;
1420
- }
1421
- async filterUsers(args, filtered) {
1422
- const dbTrx = this.toDbTrx(['users'], 'readonly', args.trx);
1423
- const cursor = await dbTrx.objectStore('users').openCursor();
1424
- await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, r => this.matchesUserPartial(r, args.partial), filtered);
1425
- if (args.trx == null)
1426
- await dbTrx.done;
1427
- }
1428
- async findUsers(args) {
1429
- const result = [];
1430
- await this.filterUsers(args, r => {
1431
- result.push(this.validateEntity(r));
1432
- });
1433
- return result;
1434
- }
1435
- async countCertificateFields(args) {
1436
- let count = 0;
1437
- await this.filterCertificateFields(args, () => {
1438
- count++;
1439
- });
1440
- return count;
1441
- }
1442
- async countCertificates(args) {
1443
- let count = 0;
1444
- await this.filterCertificates(args, () => {
1445
- count++;
1446
- });
1447
- return count;
1448
- }
1449
- async countCommissions(args) {
1450
- let count = 0;
1451
- await this.filterCommissions(args, () => {
1452
- count++;
1453
- });
1454
- return count;
1455
- }
1456
- async countMonitorEvents(args) {
1457
- let count = 0;
1458
- await this.filterMonitorEvents(args, () => {
1459
- count++;
1460
- });
1461
- return count;
1462
- }
1463
- async countOutputBaskets(args) {
1464
- let count = 0;
1465
- await this.filterOutputBaskets(args, () => {
1466
- count++;
1467
- });
1468
- return count;
1469
- }
1470
- async countOutputs(args, tagIds, isQueryModeAll) {
1471
- let count = 0;
1472
- await this.filterOutputs({ ...args, noScript: true }, () => {
1473
- count++;
1474
- }, tagIds, isQueryModeAll);
1475
- return count;
1476
- }
1477
- async countOutputTags(args) {
1478
- let count = 0;
1479
- await this.filterOutputTags(args, () => {
1480
- count++;
1481
- });
1482
- return count;
1483
- }
1484
- async countSyncStates(args) {
1485
- let count = 0;
1486
- await this.filterSyncStates(args, () => {
1487
- count++;
1488
- });
1489
- return count;
1490
- }
1491
- async countTransactions(args, labelIds, isQueryModeAll) {
1492
- let count = 0;
1493
- await this.filterTransactions({ ...args, noRawTx: true }, () => {
1494
- count++;
1495
- }, labelIds, isQueryModeAll);
1496
- return count;
1497
- }
1498
- async countTxLabels(args) {
1499
- let count = 0;
1500
- await this.filterTxLabels(args, () => {
1501
- count++;
1502
- });
1503
- return count;
1504
- }
1505
- async countUsers(args) {
1506
- let count = 0;
1507
- await this.filterUsers(args, () => {
1508
- count++;
1509
- });
1510
- return count;
1511
- }
1512
- async getProvenTxsForUser(args) {
1513
- const results = [];
1514
- const fargs = {
1515
- partial: {},
1516
- since: args.since,
1517
- paged: args.paged,
1518
- trx: args.trx
1519
- };
1520
- await this.filterProvenTxs(fargs, r => {
1521
- results.push(this.validateEntity(r));
1522
- }, args.userId);
1523
- return results;
1524
- }
1525
- async getProvenTxReqsForUser(args) {
1526
- const results = [];
1527
- const fargs = {
1528
- partial: {},
1529
- since: args.since,
1530
- paged: args.paged,
1531
- trx: args.trx
1532
- };
1533
- await this.filterProvenTxReqs(fargs, r => {
1534
- results.push(this.validateEntity(r));
1535
- }, args.userId);
1536
- return results;
1537
- }
1538
- async getTxLabelMapsForUser(args) {
1539
- const results = [];
1540
- const fargs = {
1541
- partial: {},
1542
- since: args.since,
1543
- paged: args.paged,
1544
- trx: args.trx
1545
- };
1546
- await this.filterTxLabelMaps(fargs, r => {
1547
- results.push(this.validateEntity(r));
1548
- }, args.userId);
1549
- return results;
1550
- }
1551
- async getOutputTagMapsForUser(args) {
1552
- const results = [];
1553
- const fargs = {
1554
- partial: {},
1555
- since: args.since,
1556
- paged: args.paged,
1557
- trx: args.trx
1558
- };
1559
- await this.filterOutputTagMaps(fargs, r => {
1560
- results.push(this.validateEntity(r));
1561
- }, args.userId);
1562
- return results;
1563
- }
1564
- async verifyReadyForDatabaseAccess(trx) {
1565
- this._settings ??= await this.readSettings();
1566
- return this._settings.dbtype;
1567
- }
1568
- /**
1569
- * Helper to force uniform behavior across database engines.
1570
- * Use to process all individual records with time stamps or number[] retreived from database.
1571
- */
1572
- validateEntity(entity, dateFields, booleanFields) {
1573
- entity.created_at = this.validateDate(entity.created_at);
1574
- entity.updated_at = this.validateDate(entity.updated_at);
1575
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1576
- const e = entity;
1577
- this.applyDateFields(e, dateFields);
1578
- this.applyBooleanFields(e, booleanFields);
1579
- this.normalizeEntityValues(e);
1580
- return entity;
1581
- }
1582
- applyDateFields(entity, dateFields) {
1583
- if (dateFields == null)
1584
- return;
1585
- for (const df of dateFields) {
1586
- if (entity[df] != null)
1587
- entity[df] = this.validateDate(entity[df]);
1588
- }
1589
- }
1590
- applyBooleanFields(entity, booleanFields) {
1591
- if (booleanFields == null)
1592
- return;
1593
- for (const df of booleanFields) {
1594
- if (entity[df] !== undefined)
1595
- entity[df] = entity[df] !== 0 && entity[df] != null && entity[df] !== false;
1596
- }
1597
- }
1598
- normalizeEntityValues(entity) {
1599
- for (const key of Object.keys(entity)) {
1600
- const val = entity[key];
1601
- if (val === null) {
1602
- entity[key] = undefined;
1603
- }
1604
- else if (val instanceof Uint8Array) {
1605
- entity[key] = Array.from(val);
1606
- }
1607
- }
1608
- }
1609
- /**
1610
- * Helper to force uniform behavior across database engines.
1611
- * Use to process all arrays of records with time stamps retreived from database.
1612
- * @returns input `entities` array with contained values validated.
1613
- */
1614
- validateEntities(entities, dateFields, booleanFields) {
1615
- for (let i = 0; i < entities.length; i++) {
1616
- entities[i] = this.validateEntity(entities[i], dateFields, booleanFields);
1617
- }
1618
- return entities;
1619
- }
1620
- /**
1621
- * Helper to force uniform behavior across database engines.
1622
- * Use to process the update template for entities being updated.
1623
- */
1624
- validatePartialForUpdate(update, dateFields, booleanFields) {
1625
- if (this.dbtype == null)
1626
- throw new WERR_errors_1.WERR_INTERNAL('must call verifyReadyForDatabaseAccess first');
1627
- const v = { ...update };
1628
- v.created_at = v.created_at != null ? this.validateEntityDate(v.created_at) : undefined;
1629
- if (v.created_at == null)
1630
- delete v.created_at;
1631
- v.updated_at = v.updated_at != null ? this.validateEntityDate(v.updated_at) : this.validateEntityDate(new Date());
1632
- this.applyOptionalDateFields(v, dateFields);
1633
- this.applyIntegerBooleanFields(update, booleanFields);
1634
- this.normalizeForStorage(v);
1635
- this.isDirty = true;
1636
- return v;
1637
- }
1638
- applyOptionalDateFields(v, dateFields) {
1639
- if (dateFields == null)
1640
- return;
1641
- for (const df of dateFields) {
1642
- if (v[df] != null)
1643
- v[df] = this.validateOptionalEntityDate(v[df]);
1644
- }
1645
- }
1646
- applyIntegerBooleanFields(update, booleanFields) {
1647
- if (booleanFields == null)
1648
- return;
1649
- for (const df of booleanFields) {
1650
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1651
- const u = update;
1652
- if (u[df] !== undefined)
1653
- u[df] = u[df] != null && u[df] !== false ? 1 : 0;
1654
- }
1655
- }
1656
- normalizeForStorage(v) {
1657
- for (const key of Object.keys(v)) {
1658
- const val = v[key];
1659
- if (Array.isArray(val) && (val.length === 0 || Number.isInteger(val[0]))) {
1660
- v[key] = Uint8Array.from(val);
1661
- }
1662
- else if (val === null) {
1663
- v[key] = undefined;
1664
- }
1665
- }
1666
- }
1667
- /**
1668
- * Helper to force uniform behavior across database engines.
1669
- * Use to process new entities being inserted into the database.
1670
- */
1671
- async validateEntityForInsert(entity, trx, dateFields, booleanFields) {
1672
- await this.verifyReadyForDatabaseAccess(trx);
1673
- const v = { ...entity };
1674
- v.created_at = this.validateOptionalEntityDate(v.created_at, true) ?? new Date();
1675
- v.updated_at = this.validateOptionalEntityDate(v.updated_at, true) ?? new Date();
1676
- if (v.created_at == null)
1677
- delete v.created_at;
1678
- if (v.updated_at == null)
1679
- delete v.updated_at;
1680
- this.applyOptionalDateFields(v, dateFields);
1681
- this.applyIntegerBooleanFields(entity, booleanFields);
1682
- this.normalizeForStorage(v);
1683
- this.isDirty = true;
1684
- return v;
1685
- }
1686
- async validateRawTransaction(t, trx) {
1687
- // if there is no txid or there is a rawTransaction return what we have.
1688
- if (t.rawTx != null || t.txid == null || t.txid === '')
1689
- return;
1690
- // rawTransaction is missing, see if we moved it ...
1691
- const rawTx = await this.getRawTxOfKnownValidTransaction(t.txid, undefined, undefined, trx);
1692
- if (rawTx == null)
1693
- return;
1694
- t.rawTx = rawTx;
1695
- }
1696
- async adminStats(adminIdentityKey) {
1697
- throw new Error('Method intentionally not implemented for personal storage.');
1698
- }
1699
- }
1700
- exports.StorageIdb = StorageIdb;
1701
- //# sourceMappingURL=StorageIdb.js.map