@bsv/wallet-toolbox 2.4.3 → 2.4.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/CHANGELOG.md +81 -1
  2. package/LICENSE.txt +58 -0
  3. package/README.md +98 -36
  4. package/docs/README.md +3 -1
  5. package/docs/action-batch-planning.md +220 -0
  6. package/docs/authentication-observability.md +94 -0
  7. package/docs/client.md +1125 -2776
  8. package/docs/monitor.md +29 -111
  9. package/docs/services.md +296 -602
  10. package/docs/setup.md +48 -28
  11. package/docs/storage.md +329 -1692
  12. package/docs/wallet.md +9718 -4890
  13. package/out/src/CWIStyleWalletManager.d.ts +62 -6
  14. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  15. package/out/src/CWIStyleWalletManager.js +584 -181
  16. package/out/src/CWIStyleWalletManager.js.map +1 -1
  17. package/out/src/Setup.d.ts +7 -0
  18. package/out/src/Setup.d.ts.map +1 -1
  19. package/out/src/Setup.js +10 -11
  20. package/out/src/Setup.js.map +1 -1
  21. package/out/src/SetupClient.d.ts +2 -0
  22. package/out/src/SetupClient.d.ts.map +1 -1
  23. package/out/src/SetupClient.js +8 -9
  24. package/out/src/SetupClient.js.map +1 -1
  25. package/out/src/SetupWallet.d.ts +6 -0
  26. package/out/src/SetupWallet.d.ts.map +1 -1
  27. package/out/src/ShamirWalletManager.d.ts.map +1 -1
  28. package/out/src/ShamirWalletManager.js.map +1 -1
  29. package/out/src/SimpleWalletManager.d.ts.map +1 -1
  30. package/out/src/SimpleWalletManager.js +2 -5
  31. package/out/src/SimpleWalletManager.js.map +1 -1
  32. package/out/src/Wallet.d.ts +36 -10
  33. package/out/src/Wallet.d.ts.map +1 -1
  34. package/out/src/Wallet.js +167 -132
  35. package/out/src/Wallet.js.map +1 -1
  36. package/out/src/WalletAuthenticationManager.d.ts +30 -6
  37. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  38. package/out/src/WalletAuthenticationManager.js +215 -34
  39. package/out/src/WalletAuthenticationManager.js.map +1 -1
  40. package/out/src/WalletLogger.d.ts.map +1 -1
  41. package/out/src/WalletLogger.js +33 -30
  42. package/out/src/WalletLogger.js.map +1 -1
  43. package/out/src/WalletPermissionsManager.d.ts +22 -1
  44. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  45. package/out/src/WalletPermissionsManager.js +392 -267
  46. package/out/src/WalletPermissionsManager.js.map +1 -1
  47. package/out/src/WalletSettingsManager.d.ts.map +1 -1
  48. package/out/src/WalletSettingsManager.js.map +1 -1
  49. package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
  50. package/out/src/entropy/EntropyCollector.js +6 -8
  51. package/out/src/entropy/EntropyCollector.js.map +1 -1
  52. package/out/src/fundWalletP2PKH.js.map +1 -1
  53. package/out/src/index.all.d.ts +1 -0
  54. package/out/src/index.all.d.ts.map +1 -1
  55. package/out/src/index.all.js +1 -0
  56. package/out/src/index.all.js.map +1 -1
  57. package/out/src/index.client.d.ts +2 -0
  58. package/out/src/index.client.d.ts.map +1 -1
  59. package/out/src/index.client.js +2 -0
  60. package/out/src/index.client.js.map +1 -1
  61. package/out/src/index.mobile.d.ts +2 -0
  62. package/out/src/index.mobile.d.ts.map +1 -1
  63. package/out/src/index.mobile.js +2 -0
  64. package/out/src/index.mobile.js.map +1 -1
  65. package/out/src/mockchain/MockChainMigrations.d.ts.map +1 -1
  66. package/out/src/mockchain/MockChainMigrations.js.map +1 -1
  67. package/out/src/mockchain/MockChainStorage.d.ts.map +1 -1
  68. package/out/src/mockchain/MockChainStorage.js.map +1 -1
  69. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
  70. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  71. package/out/src/mockchain/MockMiner.d.ts.map +1 -1
  72. package/out/src/mockchain/MockMiner.js.map +1 -1
  73. package/out/src/mockchain/MockServices.d.ts +4 -0
  74. package/out/src/mockchain/MockServices.d.ts.map +1 -1
  75. package/out/src/mockchain/MockServices.js +69 -74
  76. package/out/src/mockchain/MockServices.js.map +1 -1
  77. package/out/src/mockchain/merkleTree.d.ts.map +1 -1
  78. package/out/src/mockchain/merkleTree.js +51 -56
  79. package/out/src/mockchain/merkleTree.js.map +1 -1
  80. package/out/src/monitor/Monitor.d.ts +4 -0
  81. package/out/src/monitor/Monitor.d.ts.map +1 -1
  82. package/out/src/monitor/Monitor.js +60 -57
  83. package/out/src/monitor/Monitor.js.map +1 -1
  84. package/out/src/monitor/MonitorDaemon.d.ts +3 -0
  85. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  86. package/out/src/monitor/MonitorDaemon.js +65 -56
  87. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  88. package/out/src/monitor/index.all.js.map +1 -1
  89. package/out/src/monitor/tasks/TaskArcSSE.d.ts +5 -0
  90. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  91. package/out/src/monitor/tasks/TaskArcSSE.js +86 -77
  92. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  93. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +4 -2
  94. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  95. package/out/src/monitor/tasks/TaskCheckForProofs.js +132 -131
  96. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  97. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +3 -1
  98. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  99. package/out/src/monitor/tasks/TaskCheckNoSends.js +3 -1
  100. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  101. package/out/src/monitor/tasks/TaskCleanupActionBatches.d.ts +13 -0
  102. package/out/src/monitor/tasks/TaskCleanupActionBatches.d.ts.map +1 -0
  103. package/out/src/monitor/tasks/TaskCleanupActionBatches.js +24 -0
  104. package/out/src/monitor/tasks/TaskCleanupActionBatches.js.map +1 -0
  105. package/out/src/monitor/tasks/TaskClock.d.ts +1 -1
  106. package/out/src/monitor/tasks/TaskClock.d.ts.map +1 -1
  107. package/out/src/monitor/tasks/TaskClock.js +1 -1
  108. package/out/src/monitor/tasks/TaskClock.js.map +1 -1
  109. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  110. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  111. package/out/src/monitor/tasks/TaskMineBlock.d.ts +3 -1
  112. package/out/src/monitor/tasks/TaskMineBlock.d.ts.map +1 -1
  113. package/out/src/monitor/tasks/TaskMineBlock.js +3 -1
  114. package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -1
  115. package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts.map +1 -1
  116. package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
  117. package/out/src/monitor/tasks/TaskNewHeader.d.ts +4 -3
  118. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  119. package/out/src/monitor/tasks/TaskNewHeader.js +4 -3
  120. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  121. package/out/src/monitor/tasks/TaskPurge.d.ts +3 -1
  122. package/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -1
  123. package/out/src/monitor/tasks/TaskPurge.js +3 -1
  124. package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
  125. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  126. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  127. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts +3 -1
  128. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
  129. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +3 -1
  130. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  131. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +3 -1
  132. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
  133. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +3 -1
  134. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  135. package/out/src/monitor/tasks/TaskReviewStatus.d.ts +3 -1
  136. package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
  137. package/out/src/monitor/tasks/TaskReviewStatus.js +3 -1
  138. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
  139. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +3 -1
  140. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
  141. package/out/src/monitor/tasks/TaskReviewUtxos.js +3 -1
  142. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  143. package/out/src/monitor/tasks/TaskSendWaiting.d.ts +3 -0
  144. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  145. package/out/src/monitor/tasks/TaskSendWaiting.js +53 -46
  146. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  147. package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts +1 -1
  148. package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts.map +1 -1
  149. package/out/src/monitor/tasks/TaskSyncWhenIdle.js +1 -1
  150. package/out/src/monitor/tasks/TaskSyncWhenIdle.js.map +1 -1
  151. package/out/src/monitor/tasks/TaskUnFail.d.ts +3 -1
  152. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  153. package/out/src/monitor/tasks/TaskUnFail.js +3 -1
  154. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  155. package/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +1 -1
  156. package/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -1
  157. package/out/src/monitor/tasks/index.all.d.ts +1 -0
  158. package/out/src/monitor/tasks/index.all.d.ts.map +1 -1
  159. package/out/src/monitor/tasks/index.all.js +1 -0
  160. package/out/src/monitor/tasks/index.all.js.map +1 -1
  161. package/out/src/sdk/ActionBatch.interfaces.d.ts +159 -0
  162. package/out/src/sdk/ActionBatch.interfaces.d.ts.map +1 -0
  163. package/out/src/sdk/ActionBatch.interfaces.js +3 -0
  164. package/out/src/sdk/ActionBatch.interfaces.js.map +1 -0
  165. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  166. package/out/src/sdk/PrivilegedKeyManager.js +3 -3
  167. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  168. package/out/src/sdk/WERR_errors.d.ts +1 -1
  169. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  170. package/out/src/sdk/WERR_errors.js +2 -2
  171. package/out/src/sdk/WERR_errors.js.map +1 -1
  172. package/out/src/sdk/WalletError.d.ts +3 -0
  173. package/out/src/sdk/WalletError.d.ts.map +1 -1
  174. package/out/src/sdk/WalletError.js +53 -56
  175. package/out/src/sdk/WalletError.js.map +1 -1
  176. package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
  177. package/out/src/sdk/WalletServices.interfaces.d.ts +3 -1
  178. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  179. package/out/src/sdk/WalletStorage.interfaces.d.ts +22 -1
  180. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  181. package/out/src/sdk/index.d.ts +1 -0
  182. package/out/src/sdk/index.d.ts.map +1 -1
  183. package/out/src/sdk/index.js +1 -0
  184. package/out/src/sdk/index.js.map +1 -1
  185. package/out/src/sdk/types.js.map +1 -1
  186. package/out/src/services/ServiceCollection.d.ts.map +1 -1
  187. package/out/src/services/ServiceCollection.js.map +1 -1
  188. package/out/src/services/Services.d.ts +8 -2
  189. package/out/src/services/Services.d.ts.map +1 -1
  190. package/out/src/services/Services.js +86 -44
  191. package/out/src/services/Services.js.map +1 -1
  192. package/out/src/services/chaintracker/BHServiceClient.d.ts +7 -7
  193. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
  194. package/out/src/services/chaintracker/BHServiceClient.js +9 -9
  195. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  196. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +4 -1
  197. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  198. package/out/src/services/chaintracker/ChaintracksChainTracker.js +42 -6
  199. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  200. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts +4 -4
  201. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
  202. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +1 -1
  203. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
  204. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +3 -0
  205. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  206. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +45 -40
  207. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  208. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +5 -0
  209. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
  210. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +25 -18
  211. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  212. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +3 -3
  213. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  214. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +6 -7
  215. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  216. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
  217. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
  218. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  219. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  220. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
  221. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  222. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
  223. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
  224. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  225. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +0 -1
  226. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  227. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
  228. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
  229. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  230. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  231. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -1
  232. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -1
  233. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts +2 -2
  234. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
  235. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +2 -2
  236. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
  237. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
  238. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  239. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
  240. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
  241. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +12 -2
  242. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  243. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +110 -103
  244. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  245. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +8 -0
  246. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
  247. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +58 -48
  248. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  249. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  250. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  251. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
  252. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  253. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +3 -0
  254. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  255. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +55 -54
  256. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  257. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +4 -0
  258. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  259. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +97 -72
  260. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  261. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +5 -0
  262. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
  263. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +145 -136
  264. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  265. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +4 -0
  266. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  267. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +92 -68
  268. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  269. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +43 -0
  270. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
  271. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +76 -0
  272. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
  273. package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.d.ts +18 -0
  274. package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.d.ts.map +1 -0
  275. package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.js +24 -0
  276. package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.js.map +1 -0
  277. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts +2 -3
  278. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
  279. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +4 -22
  280. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  281. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts +2 -4
  282. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
  283. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js +12 -25
  284. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  285. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +2 -3
  286. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  287. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +4 -22
  288. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  289. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +2 -1
  290. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  291. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +3 -15
  292. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  293. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts +2 -2
  294. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
  295. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +3 -15
  296. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
  297. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts +2 -1
  298. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
  299. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +3 -15
  300. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  301. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +1 -1
  302. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
  303. package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
  304. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +2 -0
  305. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  306. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +64 -61
  307. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  308. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
  309. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  310. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  311. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +4 -3
  312. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  313. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  314. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  315. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  316. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  317. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +8 -10
  318. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
  319. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +14 -24
  320. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
  321. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  322. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  323. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
  324. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  325. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +1 -11
  326. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  327. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +20 -49
  328. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  329. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +1 -1
  330. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js +4 -2
  331. package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +1 -1
  332. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  333. package/out/src/services/createDefaultWalletServicesOptions.d.ts +23 -14
  334. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  335. package/out/src/services/createDefaultWalletServicesOptions.js +1 -14
  336. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  337. package/out/src/services/networkConfig.js.map +1 -1
  338. package/out/src/services/providers/ARC.d.ts +4 -0
  339. package/out/src/services/providers/ARC.d.ts.map +1 -1
  340. package/out/src/services/providers/ARC.js +96 -83
  341. package/out/src/services/providers/ARC.js.map +1 -1
  342. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  343. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  344. package/out/src/services/providers/Arcade.d.ts +4 -0
  345. package/out/src/services/providers/Arcade.d.ts.map +1 -1
  346. package/out/src/services/providers/Arcade.js +118 -92
  347. package/out/src/services/providers/Arcade.js.map +1 -1
  348. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  349. package/out/src/services/providers/Bitails.js +107 -86
  350. package/out/src/services/providers/Bitails.js.map +1 -1
  351. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  352. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  353. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  354. package/out/src/services/providers/WhatsOnChain.js +19 -6
  355. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  356. package/out/src/services/providers/exchangeRates.js +1 -1
  357. package/out/src/services/providers/exchangeRates.js.map +1 -1
  358. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  359. package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -1
  360. package/out/src/signer/WalletSigner.d.ts.map +1 -1
  361. package/out/src/signer/WalletSigner.js.map +1 -1
  362. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +29 -0
  363. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -0
  364. package/out/src/signer/actionBatch/ActionBatchPlanner.js +346 -0
  365. package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -0
  366. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +33 -0
  367. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -0
  368. package/out/src/signer/actionBatch/ActionBatchWorkspace.js +869 -0
  369. package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -0
  370. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +11 -0
  371. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -0
  372. package/out/src/signer/actionBatch/actionBatchBootstrap.js +38 -0
  373. package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -0
  374. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  375. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  376. package/out/src/signer/methods/buildSignableTransaction.js +97 -107
  377. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  378. package/out/src/signer/methods/completeSignedTransaction.d.ts +3 -7
  379. package/out/src/signer/methods/completeSignedTransaction.d.ts.map +1 -1
  380. package/out/src/signer/methods/completeSignedTransaction.js +14 -57
  381. package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
  382. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  383. package/out/src/signer/methods/createAction.js +50 -20
  384. package/out/src/signer/methods/createAction.js.map +1 -1
  385. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  386. package/out/src/signer/methods/internalizeAction.js +4 -4
  387. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  388. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  389. package/out/src/signer/methods/resultBeef.js.map +1 -1
  390. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  391. package/out/src/signer/methods/signAction.js +29 -4
  392. package/out/src/signer/methods/signAction.js.map +1 -1
  393. package/out/src/signer/methods/verifyUnlockScripts.d.ts +17 -0
  394. package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -0
  395. package/out/src/signer/methods/verifyUnlockScripts.js +137 -0
  396. package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -0
  397. package/out/src/storage/StorageIdb.d.ts +19 -3
  398. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  399. package/out/src/storage/StorageIdb.js +232 -53
  400. package/out/src/storage/StorageIdb.js.map +1 -1
  401. package/out/src/storage/StorageKnex.d.ts +29 -1
  402. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  403. package/out/src/storage/StorageKnex.js +225 -10
  404. package/out/src/storage/StorageKnex.js.map +1 -1
  405. package/out/src/storage/StorageProvider.d.ts +57 -1
  406. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  407. package/out/src/storage/StorageProvider.js +277 -145
  408. package/out/src/storage/StorageProvider.js.map +1 -1
  409. package/out/src/storage/StorageReader.d.ts +13 -5
  410. package/out/src/storage/StorageReader.d.ts.map +1 -1
  411. package/out/src/storage/StorageReader.js +3 -0
  412. package/out/src/storage/StorageReader.js.map +1 -1
  413. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  414. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  415. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  416. package/out/src/storage/StorageSyncReader.js.map +1 -1
  417. package/out/src/storage/WalletStorageManager.d.ts +10 -0
  418. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  419. package/out/src/storage/WalletStorageManager.js +49 -6
  420. package/out/src/storage/WalletStorageManager.js.map +1 -1
  421. package/out/src/storage/adminServer/adminServer.d.ts +79 -0
  422. package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
  423. package/out/src/storage/adminServer/adminServer.js +47 -16
  424. package/out/src/storage/adminServer/adminServer.js.map +1 -1
  425. package/out/src/storage/adminServer/adminUi.js.map +1 -1
  426. package/out/src/storage/idbHelpers.d.ts +2 -0
  427. package/out/src/storage/idbHelpers.d.ts.map +1 -1
  428. package/out/src/storage/idbHelpers.js +19 -0
  429. package/out/src/storage/idbHelpers.js.map +1 -1
  430. package/out/src/storage/index.all.js.map +1 -1
  431. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  432. package/out/src/storage/methods/ListActionsSpecOp.js +48 -71
  433. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  434. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  435. package/out/src/storage/methods/ListOutputsSpecOp.js +29 -27
  436. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  437. package/out/src/storage/methods/actionBatch.d.ts +15 -0
  438. package/out/src/storage/methods/actionBatch.d.ts.map +1 -0
  439. package/out/src/storage/methods/actionBatch.js +737 -0
  440. package/out/src/storage/methods/actionBatch.js.map +1 -0
  441. package/out/src/storage/methods/actionBatchBlobs.d.ts +15 -0
  442. package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -0
  443. package/out/src/storage/methods/actionBatchBlobs.js +184 -0
  444. package/out/src/storage/methods/actionBatchBlobs.js.map +1 -0
  445. package/out/src/storage/methods/actionBatchValidation.d.ts +17 -0
  446. package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -0
  447. package/out/src/storage/methods/actionBatchValidation.js +416 -0
  448. package/out/src/storage/methods/actionBatchValidation.js.map +1 -0
  449. package/out/src/storage/methods/actionPlanning.d.ts +12 -0
  450. package/out/src/storage/methods/actionPlanning.d.ts.map +1 -0
  451. package/out/src/storage/methods/actionPlanning.js +48 -0
  452. package/out/src/storage/methods/actionPlanning.js.map +1 -0
  453. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +0 -21
  454. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  455. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +43 -51
  456. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  457. package/out/src/storage/methods/createAction.d.ts +1 -1
  458. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  459. package/out/src/storage/methods/createAction.js +66 -63
  460. package/out/src/storage/methods/createAction.js.map +1 -1
  461. package/out/src/storage/methods/generateChange.d.ts +2 -2
  462. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  463. package/out/src/storage/methods/generateChange.js +66 -38
  464. package/out/src/storage/methods/generateChange.js.map +1 -1
  465. package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
  466. package/out/src/storage/methods/getBeefForTransaction.js +48 -42
  467. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  468. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
  469. package/out/src/storage/methods/getSyncChunk.js +8 -6
  470. package/out/src/storage/methods/getSyncChunk.js.map +1 -1
  471. package/out/src/storage/methods/internalizeAction.js +145 -121
  472. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  473. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  474. package/out/src/storage/methods/listActionsKnex.js +1 -1
  475. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  476. package/out/src/storage/methods/listCertificates.d.ts +1 -1
  477. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  478. package/out/src/storage/methods/listCertificates.js +1 -1
  479. package/out/src/storage/methods/listCertificates.js.map +1 -1
  480. package/out/src/storage/methods/listOutputsIdb.d.ts +1 -1
  481. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  482. package/out/src/storage/methods/listOutputsIdb.js +133 -152
  483. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  484. package/out/src/storage/methods/listOutputsKnex.d.ts +1 -1
  485. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
  486. package/out/src/storage/methods/listOutputsKnex.js +213 -254
  487. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  488. package/out/src/storage/methods/managedChange.d.ts +3 -3
  489. package/out/src/storage/methods/managedChange.d.ts.map +1 -1
  490. package/out/src/storage/methods/managedChange.js +1 -2
  491. package/out/src/storage/methods/managedChange.js.map +1 -1
  492. package/out/src/storage/methods/offsetKey.d.ts.map +1 -1
  493. package/out/src/storage/methods/offsetKey.js +0 -1
  494. package/out/src/storage/methods/offsetKey.js.map +1 -1
  495. package/out/src/storage/methods/processAction.d.ts +2 -0
  496. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  497. package/out/src/storage/methods/processAction.js +8 -8
  498. package/out/src/storage/methods/processAction.js.map +1 -1
  499. package/out/src/storage/methods/purgeData.d.ts.map +1 -1
  500. package/out/src/storage/methods/purgeData.js +157 -179
  501. package/out/src/storage/methods/purgeData.js.map +1 -1
  502. package/out/src/storage/methods/purgeDataIdb.d.ts +1 -1
  503. package/out/src/storage/methods/purgeDataIdb.d.ts.map +1 -1
  504. package/out/src/storage/methods/purgeDataIdb.js +1 -1
  505. package/out/src/storage/methods/purgeDataIdb.js.map +1 -1
  506. package/out/src/storage/methods/reviewStatus.js +6 -6
  507. package/out/src/storage/methods/reviewStatus.js.map +1 -1
  508. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  509. package/out/src/storage/methods/utils.Buffer.js.map +1 -1
  510. package/out/src/storage/methods/utils.js.map +1 -1
  511. package/out/src/storage/portable/index.js +2 -2
  512. package/out/src/storage/portable/index.js.map +1 -1
  513. package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -1
  514. package/out/src/storage/remoting/BinaryJson.js +84 -38
  515. package/out/src/storage/remoting/BinaryJson.js.map +1 -1
  516. package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -1
  517. package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
  518. package/out/src/storage/remoting/RateLimitPolicy.d.ts +10 -0
  519. package/out/src/storage/remoting/RateLimitPolicy.d.ts.map +1 -0
  520. package/out/src/storage/remoting/RateLimitPolicy.js +37 -0
  521. package/out/src/storage/remoting/RateLimitPolicy.js.map +1 -0
  522. package/out/src/storage/remoting/StorageClient.d.ts +2 -0
  523. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  524. package/out/src/storage/remoting/StorageClient.js +82 -50
  525. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  526. package/out/src/storage/remoting/StorageClientBase.d.ts +23 -4
  527. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  528. package/out/src/storage/remoting/StorageClientBase.js +97 -4
  529. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  530. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  531. package/out/src/storage/remoting/StorageMobile.js +34 -22
  532. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  533. package/out/src/storage/remoting/StorageServer.d.ts +62 -1
  534. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  535. package/out/src/storage/remoting/StorageServer.js +451 -172
  536. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  537. package/out/src/storage/remoting/edgePolicy.d.ts +57 -0
  538. package/out/src/storage/remoting/edgePolicy.d.ts.map +1 -0
  539. package/out/src/storage/remoting/edgePolicy.js +387 -0
  540. package/out/src/storage/remoting/edgePolicy.js.map +1 -0
  541. package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +1 -1
  542. package/out/src/storage/remoting/entityValidationHelpers.js +22 -5
  543. package/out/src/storage/remoting/entityValidationHelpers.js.map +1 -1
  544. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  545. package/out/src/storage/schema/KnexMigrations.js +56 -0
  546. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  547. package/out/src/storage/schema/StorageIdbSchema.d.ts +24 -0
  548. package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
  549. package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -1
  550. package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
  551. package/out/src/storage/schema/entities/EntityCertificate.d.ts.map +1 -1
  552. package/out/src/storage/schema/entities/EntityCertificate.js.map +1 -1
  553. package/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +1 -1
  554. package/out/src/storage/schema/entities/EntityCertificateField.js.map +1 -1
  555. package/out/src/storage/schema/entities/EntityCommission.d.ts.map +1 -1
  556. package/out/src/storage/schema/entities/EntityCommission.js.map +1 -1
  557. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
  558. package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
  559. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -1
  560. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
  561. package/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +1 -1
  562. package/out/src/storage/schema/entities/EntityOutputTag.js.map +1 -1
  563. package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +1 -1
  564. package/out/src/storage/schema/entities/EntityOutputTagMap.js.map +1 -1
  565. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +3 -0
  566. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
  567. package/out/src/storage/schema/entities/EntityProvenTx.js +46 -36
  568. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  569. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +2 -2
  570. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +1 -1
  571. package/out/src/storage/schema/entities/EntityProvenTxReq.js +12 -10
  572. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  573. package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
  574. package/out/src/storage/schema/entities/EntitySyncState.js +25 -34
  575. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  576. package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
  577. package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
  578. package/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +1 -1
  579. package/out/src/storage/schema/entities/EntityTxLabel.js.map +1 -1
  580. package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +1 -1
  581. package/out/src/storage/schema/entities/EntityTxLabelMap.js.map +1 -1
  582. package/out/src/storage/schema/entities/EntityUser.d.ts.map +1 -1
  583. package/out/src/storage/schema/entities/EntityUser.js.map +1 -1
  584. package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -1
  585. package/out/src/storage/schema/entities/MergeEntity.js +9 -14
  586. package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
  587. package/out/src/storage/schema/tables/TableActionBatch.d.ts +26 -0
  588. package/out/src/storage/schema/tables/TableActionBatch.d.ts.map +1 -0
  589. package/out/src/storage/schema/tables/TableActionBatch.js +3 -0
  590. package/out/src/storage/schema/tables/TableActionBatch.js.map +1 -0
  591. package/out/src/storage/schema/tables/TableAuthSession.js.map +1 -1
  592. package/out/src/storage/schema/tables/index.d.ts +1 -0
  593. package/out/src/storage/schema/tables/index.d.ts.map +1 -1
  594. package/out/src/storage/schema/tables/index.js +1 -0
  595. package/out/src/storage/schema/tables/index.js.map +1 -1
  596. package/out/src/storage/storageProviderHelpers.js.map +1 -1
  597. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts +3 -0
  598. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  599. package/out/src/storage/sync/StorageMySQLDojoReader.js +30 -16
  600. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  601. package/out/src/utility/Format.d.ts.map +1 -1
  602. package/out/src/utility/Format.js +2 -2
  603. package/out/src/utility/Format.js.map +1 -1
  604. package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
  605. package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
  606. package/out/src/utility/actionBatchDigest.d.ts +9 -0
  607. package/out/src/utility/actionBatchDigest.d.ts.map +1 -0
  608. package/out/src/utility/actionBatchDigest.js +86 -0
  609. package/out/src/utility/actionBatchDigest.js.map +1 -0
  610. package/out/src/utility/actionBatchPack.d.ts +16 -0
  611. package/out/src/utility/actionBatchPack.d.ts.map +1 -0
  612. package/out/src/utility/actionBatchPack.js +220 -0
  613. package/out/src/utility/actionBatchPack.js.map +1 -0
  614. package/out/src/utility/aggregateResults.d.ts.map +1 -1
  615. package/out/src/utility/aggregateResults.js.map +1 -1
  616. package/out/src/utility/beefForTxids.d.ts +9 -0
  617. package/out/src/utility/beefForTxids.d.ts.map +1 -0
  618. package/out/src/utility/beefForTxids.js +35 -0
  619. package/out/src/utility/beefForTxids.js.map +1 -0
  620. package/out/src/utility/brc114ActionTimeLabels.d.ts.map +1 -1
  621. package/out/src/utility/brc114ActionTimeLabels.js +26 -30
  622. package/out/src/utility/brc114ActionTimeLabels.js.map +1 -1
  623. package/out/src/utility/formatUnknown.d.ts +6 -0
  624. package/out/src/utility/formatUnknown.d.ts.map +1 -0
  625. package/out/src/utility/formatUnknown.js +39 -0
  626. package/out/src/utility/formatUnknown.js.map +1 -0
  627. package/out/src/utility/hashWasm.d.ts +5 -0
  628. package/out/src/utility/hashWasm.d.ts.map +1 -0
  629. package/out/src/utility/hashWasm.js +15 -0
  630. package/out/src/utility/hashWasm.js.map +1 -0
  631. package/out/src/utility/identityUtils.d.ts.map +1 -1
  632. package/out/src/utility/identityUtils.js +2 -4
  633. package/out/src/utility/identityUtils.js.map +1 -1
  634. package/out/src/utility/parseTxScriptOffsets.d.ts +1 -1
  635. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
  636. package/out/src/utility/parseTxScriptOffsets.js +1 -1
  637. package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
  638. package/out/src/utility/stampLog.d.ts.map +1 -1
  639. package/out/src/utility/stampLog.js +49 -42
  640. package/out/src/utility/stampLog.js.map +1 -1
  641. package/out/src/utility/traceContext.d.ts +13 -0
  642. package/out/src/utility/traceContext.d.ts.map +1 -0
  643. package/out/src/utility/traceContext.js +34 -0
  644. package/out/src/utility/traceContext.js.map +1 -0
  645. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  646. package/out/src/utility/tscProofToMerklePath.js +1 -1
  647. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  648. package/out/src/utility/utilityHelpers.buffer.js.map +1 -1
  649. package/out/src/utility/utilityHelpers.d.ts +2 -2
  650. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  651. package/out/src/utility/utilityHelpers.js +8 -4
  652. package/out/src/utility/utilityHelpers.js.map +1 -1
  653. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  654. package/out/src/utility/utilityHelpers.noBuffer.js +1 -2
  655. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  656. package/out/src/wab-client/WABClient.d.ts +36 -90
  657. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  658. package/out/src/wab-client/WABClient.js +103 -151
  659. package/out/src/wab-client/WABClient.js.map +1 -1
  660. package/out/src/wab-client/WABTransport.d.ts +81 -0
  661. package/out/src/wab-client/WABTransport.d.ts.map +1 -0
  662. package/out/src/wab-client/WABTransport.js +420 -0
  663. package/out/src/wab-client/WABTransport.js.map +1 -0
  664. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +10 -10
  665. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  666. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +16 -21
  667. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  668. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +1 -1
  669. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -1
  670. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +2 -1
  671. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +1 -1
  672. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +14 -0
  673. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -1
  674. package/package.json +66 -30
  675. package/license.md +0 -28
@@ -6,6 +6,20 @@ const blockHeaderUtilities_1 = require("../util/blockHeaderUtilities");
6
6
  const HeightRange_1 = require("../util/HeightRange");
7
7
  const WERR_errors_1 = require("../../../../sdk/WERR_errors");
8
8
  const idb_1 = require("idb");
9
+ function createInsertHeaderResult() {
10
+ return {
11
+ added: false,
12
+ dupe: false,
13
+ noPrev: false,
14
+ badPrev: false,
15
+ noActiveAncestor: false,
16
+ isActiveTip: false,
17
+ reorgDepth: 0,
18
+ priorTip: undefined,
19
+ noTip: false,
20
+ deactivatedHeaders: []
21
+ };
22
+ }
9
23
  class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageBase {
10
24
  dbName;
11
25
  db;
@@ -34,7 +48,9 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
34
48
  this.db = await this.initDB();
35
49
  await super.migrateLatest();
36
50
  }
37
- async destroy() { }
51
+ async destroy() {
52
+ /* intentional no-op: IDB cleanup handled by openDB */
53
+ }
38
54
  async deleteLiveBlockHeaders() {
39
55
  await this.makeAvailable();
40
56
  await this.db?.clear('live_headers');
@@ -163,7 +179,7 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
163
179
  const heightIndex = store.index('height');
164
180
  let cursor = await heightIndex.openCursor(null, 'next');
165
181
  const headers = [];
166
- while ((cursor != null) && count > 0) {
182
+ while (cursor != null && count > 0) {
167
183
  const header = this.repairStoredLiveHeader(cursor.value);
168
184
  if (header?.isActive) {
169
185
  count--;
@@ -185,7 +201,7 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
185
201
  const headers = [];
186
202
  while (cursor != null) {
187
203
  const header = this.repairStoredLiveHeader(cursor.value);
188
- if ((header != null) && range.contains(header.height)) {
204
+ if (header != null && range.contains(header.height)) {
189
205
  headers.push(header);
190
206
  }
191
207
  cursor = await cursor.continue();
@@ -193,24 +209,83 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
193
209
  await trx.done;
194
210
  return headers;
195
211
  }
212
+ async insertFirstHeader(trx, header, result) {
213
+ const store = trx.objectStore('live_headers');
214
+ if ((await store.count()) !== 0)
215
+ return false;
216
+ const lastBulkFile = await this.bulkManager.getLastFile();
217
+ if (lastBulkFile == null) {
218
+ throw new WERR_errors_1.WERR_INVALID_OPERATION('bulk headers must exist before first live header can be added');
219
+ }
220
+ if (header.previousHash !== lastBulkFile.lastHash ||
221
+ header.height !== lastBulkFile.firstHeight + lastBulkFile.count) {
222
+ return false;
223
+ }
224
+ const newHeader = {
225
+ ...header,
226
+ headerId: 0,
227
+ previousHeaderId: null,
228
+ chainWork: (0, blockHeaderUtilities_1.addWork)(lastBulkFile.lastChainWork, (0, blockHeaderUtilities_1.convertBitsToWork)(header.bits)),
229
+ isChainTip: true,
230
+ isActive: true
231
+ };
232
+ newHeader.headerId = Number(await store.add(this.prepareStoredLiveHeader(newHeader, true)));
233
+ result.isActiveTip = true;
234
+ result.added = true;
235
+ return true;
236
+ }
237
+ async findActiveAncestor(trx, oneBack, result) {
238
+ const store = trx.objectStore('live_headers');
239
+ let activeAncestor = oneBack;
240
+ while (!activeAncestor.isActive) {
241
+ const previousHeader = this.repairStoredLiveHeader(await store.get(activeAncestor.previousHeaderId));
242
+ if (previousHeader == null) {
243
+ result.noActiveAncestor = true;
244
+ return undefined;
245
+ }
246
+ activeAncestor = previousHeader;
247
+ }
248
+ return activeAncestor;
249
+ }
250
+ async applyReorganization(trx, oneBack, activeAncestor, result) {
251
+ if (activeAncestor.headerId === oneBack.headerId)
252
+ return;
253
+ const store = trx.objectStore('live_headers');
254
+ const activeTipIndex = store.index('activeTip');
255
+ let headerToDeactivate = this.repairStoredLiveHeader(await activeTipIndex.get([1, 1]));
256
+ while (headerToDeactivate != null && headerToDeactivate.headerId !== activeAncestor.headerId) {
257
+ result.deactivatedHeaders.push(headerToDeactivate);
258
+ await store.put(this.prepareStoredLiveHeader({
259
+ ...headerToDeactivate,
260
+ isActive: false
261
+ }));
262
+ headerToDeactivate = this.repairStoredLiveHeader(await store.get(headerToDeactivate.previousHeaderId));
263
+ }
264
+ let headerToActivate = oneBack;
265
+ while (headerToActivate.headerId !== activeAncestor.headerId) {
266
+ await store.put(this.prepareStoredLiveHeader({ ...headerToActivate, isActive: true }));
267
+ headerToActivate = this.repairStoredLiveHeader(await store.get(headerToActivate.previousHeaderId));
268
+ }
269
+ }
270
+ async prepareActiveTip(trx, header, oneBack, result) {
271
+ if (!result.isActiveTip)
272
+ return true;
273
+ const activeAncestor = await this.findActiveAncestor(trx, oneBack, result);
274
+ if (activeAncestor == null)
275
+ return false;
276
+ if (!(oneBack.isActive && oneBack.isChainTip)) {
277
+ result.reorgDepth = Math.min(result.priorTip.height, header.height) - activeAncestor.height;
278
+ }
279
+ await this.applyReorganization(trx, oneBack, activeAncestor, result);
280
+ return true;
281
+ }
196
282
  async insertHeader(header) {
197
283
  await this.makeAvailable();
198
284
  const trx = this.toDbTrxReadWrite(['live_headers']);
199
285
  const store = trx.objectStore('live_headers');
200
286
  const hashIndex = store.index('hash');
201
287
  const activeTipIndex = store.index('activeTip');
202
- const r = {
203
- added: false,
204
- dupe: false,
205
- noPrev: false,
206
- badPrev: false,
207
- noActiveAncestor: false,
208
- isActiveTip: false,
209
- reorgDepth: 0,
210
- priorTip: undefined,
211
- noTip: false,
212
- deactivatedHeaders: []
213
- };
288
+ const r = createInsertHeaderResult();
214
289
  // Check for duplicate
215
290
  if (await hashIndex.get(header.hash)) {
216
291
  r.dupe = true;
@@ -223,35 +298,10 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
223
298
  // Find previous header
224
299
  const oneBack = this.repairStoredLiveHeader(await hashIndex.get(header.previousHash));
225
300
  if (oneBack == null) {
226
- // Check if this is first live header
227
- const count = await store.count();
228
- if (count === 0) {
229
- // If this is the first live header, the last bulk header (if there is one) is the previous header.
230
- const lbf = await this.bulkManager.getLastFile();
231
- if (lbf == null)
232
- throw new WERR_errors_1.WERR_INVALID_OPERATION('bulk headers must exist before first live header can be added');
233
- if (header.previousHash === lbf.lastHash && header.height === lbf.firstHeight + lbf.count) {
234
- // Valid first live header. Add it.
235
- const chainWork = (0, blockHeaderUtilities_1.addWork)(lbf.lastChainWork, (0, blockHeaderUtilities_1.convertBitsToWork)(header.bits));
236
- r.isActiveTip = true;
237
- const newHeader = {
238
- ...header,
239
- headerId: 0,
240
- previousHeaderId: null,
241
- chainWork,
242
- isChainTip: r.isActiveTip,
243
- isActive: r.isActiveTip
244
- };
245
- const h = this.prepareStoredLiveHeader(newHeader, true);
246
- newHeader.headerId = Number(await store.add(h));
247
- r.added = true;
248
- await trx.done;
249
- return r;
250
- }
301
+ if (await this.insertFirstHeader(trx, header, r)) {
302
+ await trx.done;
303
+ return r;
251
304
  }
252
- // Failure without a oneBack
253
- // First live header that does not follow last bulk header or
254
- // Not the first live header and live headers doesn't include a previousHash header.
255
305
  r.noPrev = true;
256
306
  await trx.done;
257
307
  return r;
@@ -279,34 +329,9 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
279
329
  isChainTip: r.isActiveTip,
280
330
  isActive: r.isActiveTip
281
331
  };
282
- if (r.isActiveTip) {
283
- let activeAncestor = oneBack;
284
- while (!activeAncestor.isActive) {
285
- const previousHeader = this.repairStoredLiveHeader(await store.get(activeAncestor.previousHeaderId));
286
- if (previousHeader == null) {
287
- r.noActiveAncestor = true;
288
- await trx.done;
289
- return r;
290
- }
291
- activeAncestor = previousHeader;
292
- }
293
- if (!(oneBack.isActive && oneBack.isChainTip)) {
294
- r.reorgDepth = Math.min(r.priorTip.height, header.height) - activeAncestor.height;
295
- }
296
- if (activeAncestor.headerId !== oneBack.headerId) {
297
- // Deactivate reorg'ed headers
298
- let headerToDeactivate = this.repairStoredLiveHeader(await activeTipIndex.get([1, 1]));
299
- while (headerToDeactivate && headerToDeactivate.headerId !== activeAncestor.headerId) {
300
- r.deactivatedHeaders.push(headerToDeactivate);
301
- await store.put(this.prepareStoredLiveHeader({ ...headerToDeactivate, isActive: false }));
302
- headerToDeactivate = this.repairStoredLiveHeader(await store.get(headerToDeactivate.previousHeaderId));
303
- }
304
- let headerToActivate = oneBack;
305
- while (headerToActivate.headerId !== activeAncestor.headerId) {
306
- await store.put(this.prepareStoredLiveHeader({ ...headerToActivate, isActive: true }));
307
- headerToActivate = this.repairStoredLiveHeader(await store.get(headerToActivate.previousHeaderId));
308
- }
309
- }
332
+ if (!(await this.prepareActiveTip(trx, header, oneBack, r))) {
333
+ await trx.done;
334
+ return r;
310
335
  }
311
336
  if (oneBack.isChainTip) {
312
337
  await store.put(this.prepareStoredLiveHeader({ ...oneBack, isChainTip: false }));
@@ -424,7 +449,7 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
424
449
  }
425
450
  async initDB() {
426
451
  const db = await (0, idb_1.openDB)(this.dbName, 1, {
427
- upgrade(db, oldVersion, newVersion, transaction) {
452
+ upgrade(db, _oldVersion, _newVersion, _transaction) {
428
453
  if (!db.objectStoreNames.contains('live_headers')) {
429
454
  const liveHeadersStore = db.createObjectStore('live_headers', {
430
455
  keyPath: 'headerId',
@@ -1 +1 @@
1
- {"version":3,"file":"ChaintracksStorageIdb.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChaintracksStorageIdb.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,11 @@ export declare class ChaintracksStorageKnex extends ChaintracksStorageBase imple
49
49
  * @param header Header to attempt to add to live storage.
50
50
  * @returns details of conditions found attempting to insert header
51
51
  */
52
+ private insertFirstHeader;
53
+ private findActiveAncestor;
54
+ private applyReorganization;
55
+ private prepareActiveTip;
56
+ private insertHeaderWithinTransaction;
52
57
  insertHeader(header: BlockHeader): Promise<InsertHeaderResult>;
53
58
  findMaxHeaderId(): Promise<number>;
54
59
  deleteLiveBlockHeaders(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"ChaintracksStorageKnex.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChaintracksStorageKnex.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,20 @@ const utilityHelpers_1 = require("../../../../utility/utilityHelpers");
8
8
  const HeightRange_1 = require("../util/HeightRange");
9
9
  const WERR_errors_1 = require("../../../../sdk/WERR_errors");
10
10
  const KnexMigrations_1 = require("../../../../storage/schema/KnexMigrations");
11
+ function createInsertHeaderResult() {
12
+ return {
13
+ added: false,
14
+ dupe: false,
15
+ noPrev: false,
16
+ badPrev: false,
17
+ noActiveAncestor: false,
18
+ isActiveTip: false,
19
+ reorgDepth: 0,
20
+ priorTip: undefined,
21
+ noTip: false,
22
+ deactivatedHeaders: []
23
+ };
24
+ }
11
25
  /**
12
26
  * Implements the ChaintracksStorageApi using Knex.js for both MySql and Sqlite support.
13
27
  * Also see `chaintracksStorageMemory` which leverages Knex support for an in memory database.
@@ -173,144 +187,139 @@ class ChaintracksStorageKnex extends ChaintracksStorageBase_1.ChaintracksStorage
173
187
  * @param header Header to attempt to add to live storage.
174
188
  * @returns details of conditions found attempting to insert header
175
189
  */
176
- async insertHeader(header) {
177
- const table = this.headerTableName;
178
- const r = {
179
- added: false,
180
- dupe: false,
181
- noPrev: false,
182
- badPrev: false,
183
- noActiveAncestor: false,
184
- isActiveTip: false,
185
- reorgDepth: 0,
186
- priorTip: undefined,
187
- noTip: false,
188
- deactivatedHeaders: []
189
- };
190
- await this.knex.transaction(async (trx) => {
191
- /*
192
- We ensure the header does not already exist. This needs to be done
193
- inside the transaction to avoid inserting multiple headers. If an
194
- identical header is found, there is no need to insert a new header.
195
- */
196
- const [dupeCheck] = await trx(table).where({ hash: header.hash }).count();
197
- if (dupeCheck['count(*)']) {
198
- r.dupe = true;
199
- return;
200
- }
201
- // This is the existing previous header to the one being inserted...
202
- const [oneBack] = await trx(table).where({ hash: header.previousHash });
203
- if (!oneBack) {
204
- // Check if this is first live header...
205
- const cr = await trx(table).count();
206
- const count = Number(cr[0]['count(*)']);
207
- if (count === 0) {
208
- // If this is the first live header, the last bulk header (if there is one) is the previous header.
209
- const lbf = await this.bulkManager.getLastFile();
210
- if (lbf == null)
211
- throw new WERR_errors_1.WERR_INVALID_OPERATION('bulk headers must exist before first live header can be added');
212
- if (header.previousHash === lbf.lastHash && header.height === lbf.firstHeight + lbf.count) {
213
- // Valid first live header. Add it.
214
- const chainWork = (0, blockHeaderUtilities_1.addWork)(lbf.lastChainWork, (0, blockHeaderUtilities_1.convertBitsToWork)(header.bits));
215
- r.isActiveTip = true;
216
- const newHeader = {
217
- ...header,
218
- previousHeaderId: null,
219
- chainWork,
220
- isChainTip: r.isActiveTip,
221
- isActive: r.isActiveTip
222
- };
223
- // Success
224
- await trx(table).insert(newHeader);
225
- r.added = true;
226
- return;
227
- }
228
- }
229
- // Failure without a oneBack
230
- // First live header that does not follow last bulk header or
231
- // Not the first live header and live headers doesn't include a previousHash header.
232
- r.noPrev = true;
233
- return;
234
- }
235
- // This header's previousHash matches an existing live header's hash, if height isn't +1, reject it.
236
- if (oneBack.height + 1 != header.height) {
237
- r.badPrev = true;
238
- return;
239
- }
240
- if (oneBack.isActive && oneBack.isChainTip) {
241
- r.priorTip = oneBack;
242
- }
243
- else {
244
- ;
245
- [r.priorTip] = await trx(table).where({ isActive: true, isChainTip: true });
246
- }
247
- if (!r.priorTip) {
248
- // No active chain tip found. This is a logic error in state of live headers.
249
- r.noTip = true;
250
- return;
251
- }
252
- // We have an acceptable new live header...and live headers has an active chain tip.
253
- const chainWork = (0, blockHeaderUtilities_1.addWork)(oneBack.chainWork, (0, blockHeaderUtilities_1.convertBitsToWork)(header.bits));
254
- r.isActiveTip = (0, blockHeaderUtilities_1.isMoreWork)(chainWork, r.priorTip.chainWork);
255
- const newHeader = {
256
- ...header,
257
- previousHeaderId: oneBack.headerId,
258
- chainWork,
259
- isChainTip: r.isActiveTip,
260
- isActive: r.isActiveTip
261
- };
262
- if (r.isActiveTip) {
263
- // Find newHeader's first active ancestor
264
- let activeAncestor = oneBack;
265
- while (!activeAncestor.isActive) {
266
- const [previousHeader] = await trx(table).where({
267
- headerId: activeAncestor.previousHeaderId || -1
268
- });
269
- if (!previousHeader) {
270
- // live headers doesn't contain an active ancestor. This is a live header's logic error.
271
- r.noActiveAncestor = true;
272
- return;
273
- }
274
- activeAncestor = previousHeader;
275
- }
276
- if (!(oneBack.isActive && oneBack.isChainTip))
277
- // If this is the new active chain tip, and oneBack was not, this is a reorg.
278
- {
279
- r.reorgDepth = Math.min(r.priorTip.height, header.height) - activeAncestor.height;
280
- }
281
- if (activeAncestor.headerId !== oneBack.headerId) {
282
- // Deactivate headers from the current active chain tip up to but excluding our activeAncestor:
283
- let [headerToDeactivate] = await trx(table).where({ isChainTip: true, isActive: true });
284
- while (headerToDeactivate.headerId !== activeAncestor.headerId) {
285
- // Headers are deactivated until we reach the activeAncestor
286
- r.deactivatedHeaders.push(headerToDeactivate);
287
- await trx(table)
288
- .where({ headerId: headerToDeactivate.headerId })
289
- .update({ isActive: false });
290
- const [previousHeader] = await trx(table).where({
291
- headerId: headerToDeactivate.previousHeaderId || -1
292
- });
293
- headerToDeactivate = previousHeader;
294
- }
295
- // The first header to activate is one before the one we are about to insert
296
- let headerToActivate = oneBack;
297
- while (headerToActivate.headerId !== activeAncestor.headerId) {
298
- // Headers are activated until we reach the active ancestor
299
- await trx(table).where({ headerId: headerToActivate.headerId }).update({ isActive: true });
300
- const [previousHeader] = await trx(table).where({
301
- headerId: headerToActivate.previousHeaderId || -1
302
- });
303
- headerToActivate = previousHeader;
304
- }
305
- }
306
- }
307
- if (oneBack.isChainTip) {
308
- // Deactivate the old chain tip
309
- await trx(table).where({ headerId: oneBack.headerId }).update({ isChainTip: false });
190
+ async insertFirstHeader(trx, table, header, result) {
191
+ const countRows = await trx(table).count();
192
+ if (Number(countRows[0]['count(*)']) !== 0)
193
+ return false;
194
+ const lastBulkFile = await this.bulkManager.getLastFile();
195
+ if (lastBulkFile == null) {
196
+ throw new WERR_errors_1.WERR_INVALID_OPERATION('bulk headers must exist before first live header can be added');
197
+ }
198
+ if (header.previousHash !== lastBulkFile.lastHash ||
199
+ header.height !== lastBulkFile.firstHeight + lastBulkFile.count) {
200
+ return false;
201
+ }
202
+ await trx(table).insert({
203
+ ...header,
204
+ previousHeaderId: null,
205
+ chainWork: (0, blockHeaderUtilities_1.addWork)(lastBulkFile.lastChainWork, (0, blockHeaderUtilities_1.convertBitsToWork)(header.bits)),
206
+ isChainTip: true,
207
+ isActive: true
208
+ });
209
+ result.isActiveTip = true;
210
+ result.added = true;
211
+ return true;
212
+ }
213
+ async findActiveAncestor(trx, table, oneBack, result) {
214
+ let activeAncestor = oneBack;
215
+ while (!activeAncestor.isActive) {
216
+ const [previousHeader] = await trx(table).where({
217
+ headerId: activeAncestor.previousHeaderId || -1
218
+ });
219
+ if (previousHeader == null) {
220
+ result.noActiveAncestor = true;
221
+ return undefined;
310
222
  }
311
- await trx(table).insert(newHeader);
312
- r.added = true;
223
+ activeAncestor = previousHeader;
224
+ }
225
+ return activeAncestor;
226
+ }
227
+ async applyReorganization(trx, table, oneBack, activeAncestor, result) {
228
+ if (activeAncestor.headerId === oneBack.headerId)
229
+ return;
230
+ let [headerToDeactivate] = await trx(table).where({
231
+ isChainTip: true,
232
+ isActive: true
313
233
  });
234
+ while (headerToDeactivate.headerId !== activeAncestor.headerId) {
235
+ result.deactivatedHeaders.push(headerToDeactivate);
236
+ await trx(table)
237
+ .where({ headerId: headerToDeactivate.headerId })
238
+ .update({ isActive: false });
239
+ [headerToDeactivate] = await trx(table).where({
240
+ headerId: headerToDeactivate.previousHeaderId || -1
241
+ });
242
+ }
243
+ let headerToActivate = oneBack;
244
+ while (headerToActivate.headerId !== activeAncestor.headerId) {
245
+ await trx(table)
246
+ .where({ headerId: headerToActivate.headerId })
247
+ .update({ isActive: true });
248
+ [headerToActivate] = await trx(table).where({
249
+ headerId: headerToActivate.previousHeaderId || -1
250
+ });
251
+ }
252
+ }
253
+ async prepareActiveTip(trx, table, header, oneBack, result) {
254
+ if (!result.isActiveTip)
255
+ return true;
256
+ const activeAncestor = await this.findActiveAncestor(trx, table, oneBack, result);
257
+ if (activeAncestor == null)
258
+ return false;
259
+ if (!(oneBack.isActive && oneBack.isChainTip)) {
260
+ result.reorgDepth =
261
+ Math.min(result.priorTip.height, header.height) - activeAncestor.height;
262
+ }
263
+ await this.applyReorganization(trx, table, oneBack, activeAncestor, result);
264
+ return true;
265
+ }
266
+ async insertHeaderWithinTransaction(trx, table, header, result) {
267
+ const [dupeCheck] = await trx(table).where({ hash: header.hash }).count();
268
+ if (dupeCheck['count(*)']) {
269
+ result.dupe = true;
270
+ return;
271
+ }
272
+ const [oneBack] = await trx(table).where({
273
+ hash: header.previousHash
274
+ });
275
+ if (oneBack == null) {
276
+ if (await this.insertFirstHeader(trx, table, header, result))
277
+ return;
278
+ result.noPrev = true;
279
+ return;
280
+ }
281
+ if (oneBack.height + 1 != header.height) {
282
+ result.badPrev = true;
283
+ return;
284
+ }
285
+ if (oneBack.isActive && oneBack.isChainTip) {
286
+ result.priorTip = oneBack;
287
+ }
288
+ else {
289
+ ;
290
+ [result.priorTip] = await trx(table).where({
291
+ isActive: true,
292
+ isChainTip: true
293
+ });
294
+ }
295
+ if (result.priorTip == null) {
296
+ result.noTip = true;
297
+ return;
298
+ }
299
+ const chainWork = (0, blockHeaderUtilities_1.addWork)(oneBack.chainWork, (0, blockHeaderUtilities_1.convertBitsToWork)(header.bits));
300
+ result.isActiveTip = (0, blockHeaderUtilities_1.isMoreWork)(chainWork, result.priorTip.chainWork);
301
+ const newHeader = {
302
+ ...header,
303
+ previousHeaderId: oneBack.headerId,
304
+ chainWork,
305
+ isChainTip: result.isActiveTip,
306
+ isActive: result.isActiveTip
307
+ };
308
+ if (!(await this.prepareActiveTip(trx, table, header, oneBack, result))) {
309
+ return;
310
+ }
311
+ if (oneBack.isChainTip) {
312
+ await trx(table)
313
+ .where({ headerId: oneBack.headerId })
314
+ .update({ isChainTip: false });
315
+ }
316
+ await trx(table).insert(newHeader);
317
+ result.added = true;
318
+ }
319
+ async insertHeader(header) {
320
+ const table = this.headerTableName;
321
+ const r = createInsertHeaderResult();
322
+ await this.knex.transaction(async (trx) => this.insertHeaderWithinTransaction(trx, table, header, r));
314
323
  if (r.added && r.isActiveTip)
315
324
  this.pruneLiveBlockHeaders(header.height);
316
325
  return r;