@bsv/wallet-toolbox 2.13.0 → 2.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (659) hide show
  1. package/CHANGELOG.md +283 -1
  2. package/README.md +403 -5
  3. package/docs/README.md +8 -1
  4. package/docs/client.md +13057 -4632
  5. package/docs/identity-verification.md +196 -0
  6. package/docs/monitor.md +505 -190
  7. package/docs/services.md +4013 -1153
  8. package/docs/setup.md +98 -58
  9. package/docs/storage.md +5780 -1609
  10. package/docs/wallet.md +10155 -10871
  11. package/out/src/CWIStyleWalletManager.d.ts +6 -8
  12. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  13. package/out/src/CWIStyleWalletManager.js +170 -125
  14. package/out/src/CWIStyleWalletManager.js.map +1 -1
  15. package/out/src/Setup.d.ts +2 -0
  16. package/out/src/Setup.d.ts.map +1 -1
  17. package/out/src/Setup.js +3 -2
  18. package/out/src/Setup.js.map +1 -1
  19. package/out/src/ShamirWalletManager.d.ts.map +1 -1
  20. package/out/src/ShamirWalletManager.js +34 -19
  21. package/out/src/ShamirWalletManager.js.map +1 -1
  22. package/out/src/SimpleWalletManager.d.ts.map +1 -1
  23. package/out/src/SimpleWalletManager.js +7 -6
  24. package/out/src/SimpleWalletManager.js.map +1 -1
  25. package/out/src/Wallet.d.ts +50 -11
  26. package/out/src/Wallet.d.ts.map +1 -1
  27. package/out/src/Wallet.js +183 -107
  28. package/out/src/Wallet.js.map +1 -1
  29. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  30. package/out/src/WalletAuthenticationManager.js +282 -26
  31. package/out/src/WalletAuthenticationManager.js.map +1 -1
  32. package/out/src/WalletLogger.js +1 -1
  33. package/out/src/WalletLogger.js.map +1 -1
  34. package/out/src/WalletPermissionsManager.d.ts +30 -17
  35. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  36. package/out/src/WalletPermissionsManager.js +540 -312
  37. package/out/src/WalletPermissionsManager.js.map +1 -1
  38. package/out/src/WalletSettingsManager.d.ts +3 -2
  39. package/out/src/WalletSettingsManager.d.ts.map +1 -1
  40. package/out/src/WalletSettingsManager.js +141 -6
  41. package/out/src/WalletSettingsManager.js.map +1 -1
  42. package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
  43. package/out/src/entropy/EntropyCollector.js +3 -2
  44. package/out/src/entropy/EntropyCollector.js.map +1 -1
  45. package/out/src/fundWalletP2PKH.d.ts.map +1 -1
  46. package/out/src/fundWalletP2PKH.js +143 -44
  47. package/out/src/fundWalletP2PKH.js.map +1 -1
  48. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
  49. package/out/src/mockchain/MockChainTracker.js +5 -5
  50. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  51. package/out/src/mockchain/MockServices.d.ts.map +1 -1
  52. package/out/src/mockchain/MockServices.js +32 -8
  53. package/out/src/mockchain/MockServices.js.map +1 -1
  54. package/out/src/monitor/Monitor.d.ts +17 -0
  55. package/out/src/monitor/Monitor.d.ts.map +1 -1
  56. package/out/src/monitor/Monitor.js +206 -42
  57. package/out/src/monitor/Monitor.js.map +1 -1
  58. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  59. package/out/src/monitor/MonitorDaemon.js +64 -16
  60. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  61. package/out/src/monitor/monitorValidation.d.ts +12 -0
  62. package/out/src/monitor/monitorValidation.d.ts.map +1 -0
  63. package/out/src/monitor/monitorValidation.js +133 -0
  64. package/out/src/monitor/monitorValidation.js.map +1 -0
  65. package/out/src/monitor/tasks/TaskArcSSE.d.ts +2 -0
  66. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  67. package/out/src/monitor/tasks/TaskArcSSE.js +28 -12
  68. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  69. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +5 -0
  70. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  71. package/out/src/monitor/tasks/TaskCheckForProofs.js +29 -24
  72. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  73. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  74. package/out/src/monitor/tasks/TaskCheckNoSends.js +11 -3
  75. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  76. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  77. package/out/src/monitor/tasks/TaskFailAbandoned.js +9 -4
  78. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  79. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  80. package/out/src/monitor/tasks/TaskNewHeader.js +3 -1
  81. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  82. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts.map +1 -1
  83. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js +9 -3
  84. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js.map +1 -1
  85. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  86. package/out/src/monitor/tasks/TaskReorg.js +4 -4
  87. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  88. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
  89. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +17 -7
  90. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  91. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +18 -1
  92. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
  93. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +99 -21
  94. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  95. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +4 -4
  96. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
  97. package/out/src/monitor/tasks/TaskReviewUtxos.js +41 -13
  98. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  99. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  100. package/out/src/monitor/tasks/TaskSendWaiting.js +52 -11
  101. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  102. package/out/src/monitor/tasks/TaskUnFail.d.ts +1 -0
  103. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  104. package/out/src/monitor/tasks/TaskUnFail.js +26 -8
  105. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  106. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  107. package/out/src/sdk/PrivilegedKeyManager.js +3 -2
  108. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  109. package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
  110. package/out/src/sdk/WalletErrorFromJson.js +112 -2
  111. package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
  112. package/out/src/sdk/WalletServices.interfaces.d.ts +17 -1
  113. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  114. package/out/src/services/Services.d.ts +4 -0
  115. package/out/src/services/Services.d.ts.map +1 -1
  116. package/out/src/services/Services.js +260 -117
  117. package/out/src/services/Services.js.map +1 -1
  118. package/out/src/services/chaintracker/BHServiceClient.d.ts +21 -4
  119. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
  120. package/out/src/services/chaintracker/BHServiceClient.js +267 -66
  121. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  122. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +25 -3
  123. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  124. package/out/src/services/chaintracker/ChaintracksChainTracker.js +188 -53
  125. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  126. package/out/src/services/chaintracker/LocalChainTracker.d.ts +26 -0
  127. package/out/src/services/chaintracker/LocalChainTracker.d.ts.map +1 -1
  128. package/out/src/services/chaintracker/LocalChainTracker.js +180 -10
  129. package/out/src/services/chaintracker/LocalChainTracker.js.map +1 -1
  130. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
  131. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +59 -7
  132. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
  133. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +6 -0
  134. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +1 -1
  135. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +7 -0
  136. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
  137. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +2 -0
  138. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
  139. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +9 -0
  140. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
  141. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +19 -0
  142. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  143. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +237 -61
  144. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  145. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +16 -0
  146. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
  147. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +150 -26
  148. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  149. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +30 -1
  150. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  151. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +346 -30
  152. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  153. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +32 -1
  154. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
  155. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +375 -43
  156. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
  157. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  158. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +28 -3
  159. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  160. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
  161. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +33 -9
  162. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  163. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
  164. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
  165. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.d.ts.map +1 -1
  166. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js +4 -2
  167. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js.map +1 -1
  168. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +2 -0
  169. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  170. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +17 -4
  171. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  172. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts +2 -0
  173. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
  174. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +40 -20
  175. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
  176. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  177. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +14 -0
  178. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  179. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +6 -0
  180. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -1
  181. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +56 -9
  182. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -1
  183. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
  184. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +6 -3
  185. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
  186. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +4 -0
  187. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
  188. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +27 -9
  189. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  190. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts +8 -0
  191. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
  192. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +49 -5
  193. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
  194. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +1 -1
  195. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  196. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +90 -21
  197. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  198. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +3 -1
  199. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
  200. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +185 -38
  201. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  202. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  203. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +59 -6
  204. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  205. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts +2 -0
  206. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
  207. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +89 -39
  208. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  209. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +10 -0
  210. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  211. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +225 -24
  212. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  213. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +2 -1
  214. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  215. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +265 -96
  216. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  217. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +3 -0
  218. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
  219. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +225 -86
  220. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  221. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +3 -0
  222. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  223. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +121 -35
  224. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  225. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +2 -2
  226. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
  227. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
  228. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  229. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
  230. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  231. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  232. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  233. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  234. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +1 -7
  235. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  236. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
  237. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +1 -7
  238. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
  239. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
  240. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +1 -7
  241. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  242. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +18 -0
  243. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -1
  244. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +204 -14
  245. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -1
  246. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +6 -1
  247. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  248. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +486 -82
  249. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  250. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
  251. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +17 -1
  252. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  253. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts.map +1 -1
  254. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js +12 -2
  255. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js.map +1 -1
  256. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  257. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +99 -30
  258. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  259. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +1 -0
  260. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  261. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +23 -15
  262. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  263. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +7 -0
  264. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  265. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +90 -24
  266. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  267. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +2 -1
  268. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
  269. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +57 -11
  270. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
  271. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts +9 -0
  272. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts.map +1 -1
  273. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js +100 -14
  274. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js.map +1 -1
  275. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  276. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  277. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts +2 -0
  278. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -1
  279. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +104 -8
  280. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -1
  281. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts +1 -0
  282. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts.map +1 -1
  283. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js +79 -15
  284. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js.map +1 -1
  285. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +3 -0
  286. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
  287. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +15 -0
  288. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  289. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +6 -1
  290. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  291. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +311 -93
  292. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  293. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts +4 -0
  294. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts.map +1 -0
  295. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js +33 -0
  296. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js.map +1 -0
  297. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  298. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  299. package/out/src/services/classifyOutputUtxo.d.ts.map +1 -1
  300. package/out/src/services/classifyOutputUtxo.js +19 -10
  301. package/out/src/services/classifyOutputUtxo.js.map +1 -1
  302. package/out/src/services/fiatRateValidation.d.ts +12 -0
  303. package/out/src/services/fiatRateValidation.d.ts.map +1 -0
  304. package/out/src/services/fiatRateValidation.js +138 -0
  305. package/out/src/services/fiatRateValidation.js.map +1 -0
  306. package/out/src/services/getCanonicalMerklePath.d.ts +15 -0
  307. package/out/src/services/getCanonicalMerklePath.d.ts.map +1 -0
  308. package/out/src/services/getCanonicalMerklePath.js +90 -0
  309. package/out/src/services/getCanonicalMerklePath.js.map +1 -0
  310. package/out/src/services/providers/ARC.d.ts +3 -16
  311. package/out/src/services/providers/ARC.d.ts.map +1 -1
  312. package/out/src/services/providers/ARC.js +36 -37
  313. package/out/src/services/providers/ARC.js.map +1 -1
  314. package/out/src/services/providers/ArcSSEClient.d.ts +25 -19
  315. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  316. package/out/src/services/providers/ArcSSEClient.js +352 -85
  317. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  318. package/out/src/services/providers/Arcade.d.ts +1 -0
  319. package/out/src/services/providers/Arcade.d.ts.map +1 -1
  320. package/out/src/services/providers/Arcade.js +56 -41
  321. package/out/src/services/providers/Arcade.js.map +1 -1
  322. package/out/src/services/providers/Bitails.d.ts +3 -0
  323. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  324. package/out/src/services/providers/Bitails.js +79 -12
  325. package/out/src/services/providers/Bitails.js.map +1 -1
  326. package/out/src/services/providers/SdkWhatsOnChain.d.ts +8 -2
  327. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  328. package/out/src/services/providers/SdkWhatsOnChain.js +83 -10
  329. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  330. package/out/src/services/providers/WhatsOnChain.d.ts +3 -0
  331. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  332. package/out/src/services/providers/WhatsOnChain.js +221 -69
  333. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  334. package/out/src/services/providers/arcProviderConfig.d.ts +27 -0
  335. package/out/src/services/providers/arcProviderConfig.d.ts.map +1 -0
  336. package/out/src/services/providers/arcProviderConfig.js +83 -0
  337. package/out/src/services/providers/arcProviderConfig.js.map +1 -0
  338. package/out/src/services/providers/arcTxDataValidation.d.ts +4 -0
  339. package/out/src/services/providers/arcTxDataValidation.d.ts.map +1 -0
  340. package/out/src/services/providers/arcTxDataValidation.js +92 -0
  341. package/out/src/services/providers/arcTxDataValidation.js.map +1 -0
  342. package/out/src/services/providers/exchangeRates.d.ts +3 -3
  343. package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
  344. package/out/src/services/providers/exchangeRates.js +153 -226
  345. package/out/src/services/providers/exchangeRates.js.map +1 -1
  346. package/out/src/services/providers/getBeefForTxid.d.ts.map +1 -1
  347. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  348. package/out/src/services/providers/whatsOnChainHelpers.d.ts +2 -2
  349. package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +1 -1
  350. package/out/src/services/providers/whatsOnChainHelpers.js +11 -8
  351. package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -1
  352. package/out/src/services/validateMerklePathResult.d.ts +30 -0
  353. package/out/src/services/validateMerklePathResult.d.ts.map +1 -0
  354. package/out/src/services/validateMerklePathResult.js +272 -0
  355. package/out/src/services/validateMerklePathResult.js.map +1 -0
  356. package/out/src/services/validatePostBeefResult.d.ts +17 -0
  357. package/out/src/services/validatePostBeefResult.d.ts.map +1 -0
  358. package/out/src/services/validatePostBeefResult.js +334 -0
  359. package/out/src/services/validatePostBeefResult.js.map +1 -0
  360. package/out/src/services/validateRawTxResult.d.ts +6 -0
  361. package/out/src/services/validateRawTxResult.d.ts.map +1 -0
  362. package/out/src/services/validateRawTxResult.js +77 -0
  363. package/out/src/services/validateRawTxResult.js.map +1 -0
  364. package/out/src/services/validateScriptHashHistoryResult.d.ts +5 -0
  365. package/out/src/services/validateScriptHashHistoryResult.d.ts.map +1 -0
  366. package/out/src/services/validateScriptHashHistoryResult.js +99 -0
  367. package/out/src/services/validateScriptHashHistoryResult.js.map +1 -0
  368. package/out/src/services/validateStatusForTxidsResult.d.ts +8 -0
  369. package/out/src/services/validateStatusForTxidsResult.d.ts.map +1 -0
  370. package/out/src/services/validateStatusForTxidsResult.js +181 -0
  371. package/out/src/services/validateStatusForTxidsResult.js.map +1 -0
  372. package/out/src/services/validateUtxoStatusResult.d.ts +6 -0
  373. package/out/src/services/validateUtxoStatusResult.d.ts.map +1 -0
  374. package/out/src/services/validateUtxoStatusResult.js +126 -0
  375. package/out/src/services/validateUtxoStatusResult.js.map +1 -0
  376. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +3 -2
  377. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -1
  378. package/out/src/signer/actionBatch/ActionBatchPlanner.js +4 -3
  379. package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -1
  380. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +6 -5
  381. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -1
  382. package/out/src/signer/actionBatch/ActionBatchWorkspace.js +70 -76
  383. package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -1
  384. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +2 -2
  385. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -1
  386. package/out/src/signer/actionBatch/actionBatchBootstrap.js +3 -3
  387. package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -1
  388. package/out/src/signer/methods/acquireDirectCertificate.d.ts +3 -2
  389. package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
  390. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  391. package/out/src/signer/methods/buildSignableTransaction.d.ts +6 -5
  392. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  393. package/out/src/signer/methods/buildSignableTransaction.js +6 -11
  394. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  395. package/out/src/signer/methods/createAction.d.ts +4 -3
  396. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  397. package/out/src/signer/methods/createAction.js +4 -2
  398. package/out/src/signer/methods/createAction.js.map +1 -1
  399. package/out/src/signer/methods/createNoSendExpiryAction.d.ts +3 -3
  400. package/out/src/signer/methods/createNoSendExpiryAction.d.ts.map +1 -1
  401. package/out/src/signer/methods/createNoSendExpiryAction.js +9 -4
  402. package/out/src/signer/methods/createNoSendExpiryAction.js.map +1 -1
  403. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  404. package/out/src/signer/methods/internalizeAction.js +2 -2
  405. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  406. package/out/src/signer/methods/proveCertificate.d.ts +3 -2
  407. package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
  408. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  409. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  410. package/out/src/signer/methods/signAction.js +3 -2
  411. package/out/src/signer/methods/signAction.js.map +1 -1
  412. package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -1
  413. package/out/src/signer/methods/verifyUnlockScripts.js +12 -17
  414. package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -1
  415. package/out/src/storage/StorageIdb.d.ts +5 -3
  416. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  417. package/out/src/storage/StorageIdb.js +15 -20
  418. package/out/src/storage/StorageIdb.js.map +1 -1
  419. package/out/src/storage/StorageKnex.d.ts +5 -3
  420. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  421. package/out/src/storage/StorageKnex.js +143 -93
  422. package/out/src/storage/StorageKnex.js.map +1 -1
  423. package/out/src/storage/StorageProvider.d.ts +19 -9
  424. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  425. package/out/src/storage/StorageProvider.js +229 -145
  426. package/out/src/storage/StorageProvider.js.map +1 -1
  427. package/out/src/storage/StorageReader.d.ts +1 -1
  428. package/out/src/storage/StorageReader.d.ts.map +1 -1
  429. package/out/src/storage/StorageReader.js +9 -42
  430. package/out/src/storage/StorageReader.js.map +1 -1
  431. package/out/src/storage/StorageReaderWriter.d.ts +1 -0
  432. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  433. package/out/src/storage/StorageReaderWriter.js +37 -36
  434. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  435. package/out/src/storage/StorageSyncReader.d.ts +1 -1
  436. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  437. package/out/src/storage/StorageSyncReader.js +3 -36
  438. package/out/src/storage/StorageSyncReader.js.map +1 -1
  439. package/out/src/storage/WalletStorageManager.d.ts +8 -7
  440. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  441. package/out/src/storage/WalletStorageManager.js +38 -65
  442. package/out/src/storage/WalletStorageManager.js.map +1 -1
  443. package/out/src/storage/adminServer/adminServer.d.ts +1 -1
  444. package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
  445. package/out/src/storage/adminServer/adminServer.js +16 -44
  446. package/out/src/storage/adminServer/adminServer.js.map +1 -1
  447. package/out/src/storage/methods/ListActionsSpecOp.d.ts +2 -2
  448. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  449. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  450. package/out/src/storage/methods/ListOutputsSpecOp.d.ts +7 -4
  451. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  452. package/out/src/storage/methods/ListOutputsSpecOp.js +1 -0
  453. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  454. package/out/src/storage/methods/actionBatch.d.ts.map +1 -1
  455. package/out/src/storage/methods/actionBatch.js +3 -2
  456. package/out/src/storage/methods/actionBatch.js.map +1 -1
  457. package/out/src/storage/methods/actionBatchBlobs.d.ts +2 -0
  458. package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -1
  459. package/out/src/storage/methods/actionBatchBlobs.js +40 -22
  460. package/out/src/storage/methods/actionBatchBlobs.js.map +1 -1
  461. package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -1
  462. package/out/src/storage/methods/actionBatchValidation.js +22 -30
  463. package/out/src/storage/methods/actionBatchValidation.js.map +1 -1
  464. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +7 -2
  465. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  466. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +57 -44
  467. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  468. package/out/src/storage/methods/createAction.d.ts +7 -6
  469. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  470. package/out/src/storage/methods/createAction.js +7 -5
  471. package/out/src/storage/methods/createAction.js.map +1 -1
  472. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  473. package/out/src/storage/methods/generateChange.js +12 -11
  474. package/out/src/storage/methods/generateChange.js.map +1 -1
  475. package/out/src/storage/methods/getBeefForTransaction.js +5 -7
  476. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  477. package/out/src/storage/methods/internalizeAction.d.ts +3 -3
  478. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  479. package/out/src/storage/methods/internalizeAction.js +134 -129
  480. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  481. package/out/src/storage/methods/listActionsIdb.d.ts +3 -2
  482. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  483. package/out/src/storage/methods/listActionsIdb.js +2 -2
  484. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  485. package/out/src/storage/methods/listActionsKnex.d.ts +3 -2
  486. package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
  487. package/out/src/storage/methods/listActionsKnex.js +10 -9
  488. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  489. package/out/src/storage/methods/listCertificates.d.ts +3 -2
  490. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  491. package/out/src/storage/methods/listCertificates.js.map +1 -1
  492. package/out/src/storage/methods/listOutputsIdb.d.ts +3 -2
  493. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  494. package/out/src/storage/methods/listOutputsIdb.js +11 -11
  495. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  496. package/out/src/storage/methods/listOutputsKnex.d.ts +3 -2
  497. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
  498. package/out/src/storage/methods/listOutputsKnex.js +15 -23
  499. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  500. package/out/src/storage/methods/noSendExpiry.d.ts +3 -3
  501. package/out/src/storage/methods/noSendExpiry.d.ts.map +1 -1
  502. package/out/src/storage/methods/noSendExpiry.js +10 -8
  503. package/out/src/storage/methods/noSendExpiry.js.map +1 -1
  504. package/out/src/storage/methods/preparedBeef.d.ts.map +1 -1
  505. package/out/src/storage/methods/preparedBeef.js +13 -14
  506. package/out/src/storage/methods/preparedBeef.js.map +1 -1
  507. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  508. package/out/src/storage/methods/processAction.js +37 -6
  509. package/out/src/storage/methods/processAction.js.map +1 -1
  510. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts +1 -1
  511. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts.map +1 -1
  512. package/out/src/storage/methods/reconcileFailedTransactionInputs.js.map +1 -1
  513. package/out/src/storage/methods/reviewStatusIdb.d.ts +1 -1
  514. package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
  515. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  516. package/out/src/storage/methods/reviewUtxoOutputs.d.ts +1 -0
  517. package/out/src/storage/methods/reviewUtxoOutputs.d.ts.map +1 -1
  518. package/out/src/storage/methods/reviewUtxoOutputs.js +51 -4
  519. package/out/src/storage/methods/reviewUtxoOutputs.js.map +1 -1
  520. package/out/src/storage/methods/validateSyncProof.d.ts.map +1 -1
  521. package/out/src/storage/methods/validateSyncProof.js +3 -3
  522. package/out/src/storage/methods/validateSyncProof.js.map +1 -1
  523. package/out/src/storage/portable/index.d.ts.map +1 -1
  524. package/out/src/storage/portable/index.js +21 -13
  525. package/out/src/storage/portable/index.js.map +1 -1
  526. package/out/src/storage/remoting/BinaryJson.d.ts +11 -0
  527. package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -1
  528. package/out/src/storage/remoting/BinaryJson.js +37 -0
  529. package/out/src/storage/remoting/BinaryJson.js.map +1 -1
  530. package/out/src/storage/remoting/KnexSessionManager.d.ts +26 -2
  531. package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -1
  532. package/out/src/storage/remoting/KnexSessionManager.js +222 -30
  533. package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
  534. package/out/src/storage/remoting/KnexSyncTransferStore.d.ts.map +1 -1
  535. package/out/src/storage/remoting/KnexSyncTransferStore.js +3 -4
  536. package/out/src/storage/remoting/KnexSyncTransferStore.js.map +1 -1
  537. package/out/src/storage/remoting/StorageClient.d.ts +6 -1
  538. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  539. package/out/src/storage/remoting/StorageClient.js +63 -6
  540. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  541. package/out/src/storage/remoting/StorageClientBase.d.ts +23 -6
  542. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  543. package/out/src/storage/remoting/StorageClientBase.js +148 -19
  544. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  545. package/out/src/storage/remoting/StorageMobile.d.ts +5 -0
  546. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  547. package/out/src/storage/remoting/StorageMobile.js +11 -9
  548. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  549. package/out/src/storage/remoting/StorageServer.d.ts +5 -1
  550. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  551. package/out/src/storage/remoting/StorageServer.js +95 -19
  552. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  553. package/out/src/storage/remoting/SyncTransfer.d.ts.map +1 -1
  554. package/out/src/storage/remoting/SyncTransfer.js +3 -2
  555. package/out/src/storage/remoting/SyncTransfer.js.map +1 -1
  556. package/out/src/storage/schema/KnexMigrations.d.ts +1 -0
  557. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  558. package/out/src/storage/schema/KnexMigrations.js +28 -6
  559. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  560. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
  561. package/out/src/storage/schema/entities/EntityOutput.js +11 -4
  562. package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
  563. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +2 -1
  564. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
  565. package/out/src/storage/schema/entities/EntityProvenTx.js +93 -39
  566. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  567. package/out/src/storage/schema/entities/EntityProvenTxReq.js +1 -1
  568. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  569. package/out/src/storage/schema/entities/EntitySyncState.js +1 -1
  570. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  571. package/out/src/storage/schema/tables/TableCertificate.d.ts +1 -1
  572. package/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -1
  573. package/out/src/storage/schema/tables/TableCertificateField.d.ts +1 -1
  574. package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -1
  575. package/out/src/storage/schema/tables/TableCommission.d.ts +1 -1
  576. package/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -1
  577. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +1 -1
  578. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -1
  579. package/out/src/storage/schema/tables/TableOutput.d.ts +1 -1
  580. package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
  581. package/out/src/storage/schema/tables/TableOutputBasket.d.ts +1 -1
  582. package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -1
  583. package/out/src/storage/schema/tables/TableOutputTag.d.ts +1 -1
  584. package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -1
  585. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +1 -1
  586. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -1
  587. package/out/src/storage/schema/tables/TableProvenTx.d.ts +1 -1
  588. package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -1
  589. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +1 -1
  590. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -1
  591. package/out/src/storage/schema/tables/TableSettings.d.ts +1 -1
  592. package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
  593. package/out/src/storage/schema/tables/TableSyncState.d.ts +1 -1
  594. package/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -1
  595. package/out/src/storage/schema/tables/TableTransaction.d.ts +1 -1
  596. package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
  597. package/out/src/storage/schema/tables/TableTransaction.js.map +1 -1
  598. package/out/src/storage/schema/tables/TableTxLabel.d.ts +1 -1
  599. package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -1
  600. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +1 -1
  601. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -1
  602. package/out/src/storage/schema/tables/TableUser.d.ts +1 -1
  603. package/out/src/storage/schema/tables/TableUser.d.ts.map +1 -1
  604. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  605. package/out/src/storage/sync/StorageMySQLDojoReader.js +8 -7
  606. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  607. package/out/src/utility/actionBatchDigest.d.ts.map +1 -1
  608. package/out/src/utility/actionBatchDigest.js +9 -7
  609. package/out/src/utility/actionBatchDigest.js.map +1 -1
  610. package/out/src/utility/actionBatchPack.d.ts.map +1 -1
  611. package/out/src/utility/actionBatchPack.js +7 -12
  612. package/out/src/utility/actionBatchPack.js.map +1 -1
  613. package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -1
  614. package/out/src/utility/brc153ReferenceLabels.js +4 -4
  615. package/out/src/utility/brc153ReferenceLabels.js.map +1 -1
  616. package/out/src/utility/brc177NoSendExpiry.d.ts +2 -2
  617. package/out/src/utility/brc177NoSendExpiry.d.ts.map +1 -1
  618. package/out/src/utility/canonicalizeAtomicBeef.js +2 -2
  619. package/out/src/utility/canonicalizeAtomicBeef.js.map +1 -1
  620. package/out/src/utility/exactActionSpend.d.ts +11 -0
  621. package/out/src/utility/exactActionSpend.d.ts.map +1 -0
  622. package/out/src/utility/exactActionSpend.js +11 -0
  623. package/out/src/utility/exactActionSpend.js.map +1 -0
  624. package/out/src/utility/identityUtils.d.ts +44 -4
  625. package/out/src/utility/identityUtils.d.ts.map +1 -1
  626. package/out/src/utility/identityUtils.js +376 -61
  627. package/out/src/utility/identityUtils.js.map +1 -1
  628. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
  629. package/out/src/utility/parseTxScriptOffsets.js +1 -19
  630. package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
  631. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  632. package/out/src/utility/tscProofToMerklePath.js +35 -4
  633. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  634. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  635. package/out/src/utility/utilityHelpers.js +8 -6
  636. package/out/src/utility/utilityHelpers.js.map +1 -1
  637. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  638. package/out/src/utility/utilityHelpers.noBuffer.js +6 -6
  639. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  640. package/out/src/utility/verifyOverlayOutput.d.ts +12 -0
  641. package/out/src/utility/verifyOverlayOutput.d.ts.map +1 -0
  642. package/out/src/utility/verifyOverlayOutput.js +22 -0
  643. package/out/src/utility/verifyOverlayOutput.js.map +1 -0
  644. package/out/src/utility/walletResultGuards.d.ts +14 -0
  645. package/out/src/utility/walletResultGuards.d.ts.map +1 -0
  646. package/out/src/utility/walletResultGuards.js +28 -0
  647. package/out/src/utility/walletResultGuards.js.map +1 -0
  648. package/out/src/wab-client/WABClient.d.ts +3 -17
  649. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  650. package/out/src/wab-client/WABClient.js +30 -14
  651. package/out/src/wab-client/WABClient.js.map +1 -1
  652. package/out/src/wab-client/WABResponseValidation.d.ts +48 -0
  653. package/out/src/wab-client/WABResponseValidation.d.ts.map +1 -0
  654. package/out/src/wab-client/WABResponseValidation.js +321 -0
  655. package/out/src/wab-client/WABResponseValidation.js.map +1 -0
  656. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  657. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +3 -2
  658. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  659. package/package.json +5 -5
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CWIStyleWalletManager = exports.OverlayUMPTokenInteractor = exports.UMPTokenLookupError = exports.DEFAULT_PROFILE_ID = exports.MAX_STATE_SNAPSHOT_BYTES = exports.PBKDF2_MAX_ITERATIONS = exports.KDF_MAX_HASH_LENGTH = exports.ARGON2ID_MAX_PARALLELISM = exports.ARGON2ID_MAX_MEMORY_KIB = exports.ARGON2ID_MAX_ITERATIONS = exports.ARGON2ID_DEFAULT_HASH_LENGTH = exports.ARGON2ID_DEFAULT_PARALLELISM = exports.ARGON2ID_DEFAULT_MEMORY_KIB = exports.ARGON2ID_DEFAULT_ITERATIONS = exports.PBKDF2_NUM_ROUNDS = void 0;
4
4
  const sdk_1 = require("@bsv/sdk");
5
+ const Hash_1 = require("@bsv/sdk/primitives/Hash");
6
+ const utils_1 = require("@bsv/sdk/primitives/utils");
5
7
  const PrivilegedKeyManager_1 = require("./sdk/PrivilegedKeyManager");
6
8
  const hashWasm_1 = require("./utility/hashWasm");
7
9
  const CWI_COMPONENT = 'wallet-toolbox.cwi-manager';
@@ -64,9 +66,9 @@ function addPasswordKdf(token, protocolFields, kdfVersionFieldIndex) {
64
66
  if (kdfAlgorithmField == null || kdfParamsField == null || kdfParamsField.length > 1024) {
65
67
  return false;
66
68
  }
67
- const kdfParams = JSON.parse(sdk_1.Utils.toUTF8(kdfParamsField));
69
+ const kdfParams = JSON.parse((0, utils_1.toUTF8)(kdfParamsField));
68
70
  const passwordKdf = {
69
- algorithm: sdk_1.Utils.toUTF8(kdfAlgorithmField),
71
+ algorithm: (0, utils_1.toUTF8)(kdfAlgorithmField),
70
72
  iterations: kdfParams.iterations,
71
73
  memoryKiB: kdfParams.memoryKiB,
72
74
  parallelism: kdfParams.parallelism,
@@ -120,6 +122,24 @@ function stripVerifiedPushDropSignature(fields, lockingPublicKey) {
120
122
  }
121
123
  return fields;
122
124
  }
125
+ function decodeAuthenticatedUMPFields(lockingScript) {
126
+ const decoded = (0, sdk_1.decodeCanonicalPushDrop)(lockingScript, {
127
+ fieldCount: [12, 13, 15, 16],
128
+ maximumFieldBytes: exports.MAX_STATE_SNAPSHOT_BYTES,
129
+ maximumPayloadBytes: exports.MAX_STATE_SNAPSHOT_BYTES
130
+ });
131
+ const fields = stripVerifiedPushDropSignature(decoded.fields, decoded.lockingPublicKey);
132
+ if (fields.length !== decoded.fields.length - 1) {
133
+ throw new Error('UMP token field signature is missing or invalid');
134
+ }
135
+ const kdfVersionFieldIndex = findKdfVersionFieldIndex(fields);
136
+ if ((kdfVersionFieldIndex === -1 && fields.length > 12) ||
137
+ (kdfVersionFieldIndex === 11 && fields.length !== 14) ||
138
+ (kdfVersionFieldIndex === 12 && fields.length !== 15)) {
139
+ throw new Error('UMP token field layout is invalid');
140
+ }
141
+ return { ...decoded, fields };
142
+ }
123
143
  /**
124
144
  * PBKDF-2 that prefers WebCrypto and falls back to hash-wasm.
125
145
  *
@@ -284,7 +304,7 @@ class OverlayUMPTokenInteractor {
284
304
  async findByPresentationKeyHash(hash, options) {
285
305
  return this.findToken({
286
306
  service: 'ls_users',
287
- query: { presentationHash: sdk_1.Utils.toHex(hash) }
307
+ query: { presentationHash: (0, utils_1.toHex)(hash) }
288
308
  }, 'presentation', options);
289
309
  }
290
310
  /**
@@ -297,7 +317,7 @@ class OverlayUMPTokenInteractor {
297
317
  async findByRecoveryKeyHash(hash, options) {
298
318
  return this.findToken({
299
319
  service: 'ls_users',
300
- query: { recoveryHash: sdk_1.Utils.toHex(hash) }
320
+ query: { recoveryHash: (0, utils_1.toHex)(hash) }
301
321
  }, 'recovery', options);
302
322
  }
303
323
  async findToken(question, lookupKind, options) {
@@ -325,7 +345,7 @@ class OverlayUMPTokenInteractor {
325
345
  const diagnostics = this.diagnosticsFor(resolution);
326
346
  const tokens = this.parseLookupAnswers(resolution.answer);
327
347
  const expectedHash = question.query[lookupKind === 'presentation' ? 'presentationHash' : 'recoveryHash'].toLowerCase();
328
- const matchingTokens = tokens.filter(token => sdk_1.Utils.toHex(lookupKind === 'presentation' ? token.presentationHash : token.recoveryHash).toLowerCase() ===
348
+ const matchingTokens = tokens.filter(token => (0, utils_1.toHex)(lookupKind === 'presentation' ? token.presentationHash : token.recoveryHash).toLowerCase() ===
329
349
  expectedHash);
330
350
  // A verified token is positive account-existence evidence. Empty, malformed,
331
351
  // rejected, or unavailable peers cannot override it. The resolver de-duplicates
@@ -435,8 +455,8 @@ class OverlayUMPTokenInteractor {
435
455
  * predecessor rather than an independently minted token.
436
456
  */
437
457
  consumesIdentity(tx, token) {
438
- const presentationHash = sdk_1.Utils.toHex(token.presentationHash);
439
- const recoveryHash = sdk_1.Utils.toHex(token.recoveryHash);
458
+ const presentationHash = (0, utils_1.toHex)(token.presentationHash);
459
+ const recoveryHash = (0, utils_1.toHex)(token.recoveryHash);
440
460
  for (const input of tx.inputs) {
441
461
  const source = input.sourceTransaction;
442
462
  if (source == null || input.sourceOutputIndex == null)
@@ -445,13 +465,10 @@ class OverlayUMPTokenInteractor {
445
465
  if (sourceOutput == null)
446
466
  continue;
447
467
  try {
448
- const decoded = sdk_1.PushDrop.decode(sourceOutput.lockingScript);
449
- if (decoded.fields == null)
450
- continue;
451
- const fields = stripVerifiedPushDropSignature(decoded.fields, decoded.lockingPublicKey);
468
+ const { fields } = decodeAuthenticatedUMPFields(sourceOutput.lockingScript);
452
469
  if (fields.length < 11 || fields[6]?.length !== 32 || fields[7]?.length !== 32)
453
470
  continue;
454
- if (sdk_1.Utils.toHex(fields[6]) === presentationHash || sdk_1.Utils.toHex(fields[7]) === recoveryHash) {
471
+ if ((0, utils_1.toHex)(fields[6]) === presentationHash || (0, utils_1.toHex)(fields[7]) === recoveryHash) {
455
472
  return true;
456
473
  }
457
474
  }
@@ -574,9 +591,13 @@ class OverlayUMPTokenInteractor {
574
591
  const script = await new sdk_1.PushDrop(wallet, adminOriginator).lock(fields, [2, 'admin user management token'], '1', 'self',
575
592
  /* forSelf= */ true,
576
593
  /* includeSignature= */ true);
577
- const tokenOutput = [{ lockingScript: script.toHex(), satoshis: 1, outputDescription: 'New UMP token output' }];
594
+ const tokenScript = script.toHex();
595
+ const tokenOutput = [{ lockingScript: tokenScript, satoshis: 1, outputDescription: 'New UMP token output' }];
578
596
  // 2) Resolve the old-token input (if provided) and create the action.
579
597
  const { resolvedOldToken, inputToken } = await this.resolveOldInput(oldTokenToConsume);
598
+ if (resolvedOldToken != null && inputToken != null) {
599
+ await this.assertOwnedUMPInput(wallet, adminOriginator, resolvedOldToken, inputToken);
600
+ }
580
601
  const inputs = resolvedOldToken?.currentOutpoint
581
602
  ? [
582
603
  {
@@ -586,18 +607,37 @@ class OverlayUMPTokenInteractor {
586
607
  }
587
608
  ]
588
609
  : [];
589
- const createResult = await this.createAction(wallet, adminOriginator, inputs, tokenOutput, inputToken, resolvedOldToken);
590
- // 3) If the wallet fully processed it (no signable tx), broadcast and return.
591
- if (!createResult.signableTransaction) {
592
- return this.broadcastFinal(createResult);
610
+ const createArgs = {
611
+ description: resolvedOldToken == null ? 'Create new UMP token' : 'Renew UMP token (consume old, create new)',
612
+ inputs,
613
+ outputs: tokenOutput,
614
+ inputBEEF: inputToken?.beef,
615
+ options: { randomizeOutputs: false, acceptDelayedBroadcast: false }
616
+ };
617
+ const inputSigners = Object.create(null);
618
+ if (resolvedOldToken?.currentOutpoint != null) {
619
+ const unlocker = new sdk_1.PushDrop(wallet, adminOriginator).unlock([2, 'admin user management token'], '1', 'self');
620
+ inputSigners[resolvedOldToken.currentOutpoint] = async (transaction, inputIndex) => await unlocker.sign(transaction, inputIndex);
621
+ }
622
+ const operation = resolvedOldToken == null ? 'create' : 'renew';
623
+ let transaction;
624
+ try {
625
+ transaction = await this.completeUMPAction(wallet, createArgs, inputSigners, adminOriginator);
593
626
  }
594
- // 4) Sign and broadcast: with old token input or without.
595
- const reference = createResult.signableTransaction.reference;
596
- const partialTx = sdk_1.Transaction.fromBEEF(createResult.signableTransaction.tx);
597
- if (resolvedOldToken?.currentOutpoint) {
598
- return this.renewToken(wallet, adminOriginator, reference, partialTx);
627
+ catch (error) {
628
+ this.telemetry.capture({
629
+ name: 'wallet-toolbox.ump.action.failed',
630
+ component: 'wallet-toolbox.ump',
631
+ severity: 'error',
632
+ attributes: {
633
+ operation,
634
+ oldTokenInputRequired: resolvedOldToken != null
635
+ },
636
+ error
637
+ });
638
+ throw error;
599
639
  }
600
- return this.broadcastNew(wallet, adminOriginator, reference);
640
+ return await this.broadcastUMPTransaction(transaction, tokenScript, operation);
601
641
  }
602
642
  /** Assembles the ordered number[][] fields array from a UMPToken. */
603
643
  tokenFields(token) {
@@ -618,7 +658,7 @@ class OverlayUMPTokenInteractor {
618
658
  if (token.umpVersion === 3 && token.passwordKdf != null) {
619
659
  const vi = token.profilesEncrypted == null ? 11 : 12;
620
660
  fields[vi] = [token.umpVersion];
621
- fields[vi + 1] = sdk_1.Utils.toArray(token.passwordKdf.algorithm, 'utf8');
661
+ fields[vi + 1] = (0, utils_1.toArray)(token.passwordKdf.algorithm, 'utf8');
622
662
  const kdfParams = { iterations: token.passwordKdf.iterations };
623
663
  if (token.passwordKdf.memoryKiB !== undefined)
624
664
  kdfParams.memoryKiB = token.passwordKdf.memoryKiB;
@@ -626,7 +666,7 @@ class OverlayUMPTokenInteractor {
626
666
  kdfParams.parallelism = token.passwordKdf.parallelism;
627
667
  if (token.passwordKdf.hashLength !== undefined)
628
668
  kdfParams.hashLength = token.passwordKdf.hashLength;
629
- fields[vi + 2] = sdk_1.Utils.toArray(JSON.stringify(kdfParams), 'utf8');
669
+ fields[vi + 2] = (0, utils_1.toArray)(JSON.stringify(kdfParams), 'utf8');
630
670
  }
631
671
  return fields;
632
672
  }
@@ -640,71 +680,47 @@ class OverlayUMPTokenInteractor {
640
680
  }
641
681
  return { resolvedOldToken: oldTokenToConsume, inputToken };
642
682
  }
643
- /** Creates the UMP action without dropping a required old-token input on failure. */
644
- async createAction(wallet, adminOriginator, inputs, outputs, inputToken, resolvedOldToken) {
645
- try {
646
- return await wallet.createAction({
647
- description: resolvedOldToken == null ? 'Create new UMP token' : 'Renew UMP token (consume old, create new)',
648
- inputs,
649
- outputs,
650
- inputBEEF: inputToken?.beef,
651
- options: { randomizeOutputs: false, acceptDelayedBroadcast: false }
652
- }, adminOriginator);
653
- }
654
- catch (error) {
655
- this.telemetry.capture({
656
- name: 'wallet-toolbox.ump.action.failed',
657
- component: 'wallet-toolbox.ump',
658
- severity: 'error',
659
- attributes: {
660
- operation: resolvedOldToken == null ? 'create' : 'renew',
661
- oldTokenInputRequired: resolvedOldToken != null
662
- },
663
- error
664
- });
665
- throw error;
666
- }
667
- }
668
- /** Handles a fully-finalized (no signable tx) createAction result broadcasts and returns outpoint. */
669
- async broadcastFinal(createResult) {
670
- const finalTxid = createResult.txid || (createResult.tx != null ? sdk_1.Transaction.fromAtomicBEEF(createResult.tx).id('hex') : undefined);
671
- if (!finalTxid)
672
- throw new Error('UMP transaction was not finalized.');
673
- if (createResult.tx == null)
674
- throw new Error('UMP transaction data missing.');
675
- const broadcastTx = sdk_1.Transaction.fromAtomicBEEF(createResult.tx);
676
- const result = await this.broadcaster.broadcast(broadcastTx);
677
- this.assertBroadcast(result, 'create-finalized');
678
- return `${finalTxid}.0`;
679
- }
680
- /** Signs the old-token input and broadcasts — used during UMP token renewal. */
681
- async renewToken(wallet, adminOriginator, reference, partialTx) {
682
- const unlocker = new sdk_1.PushDrop(wallet, adminOriginator).unlock([2, 'admin user management token'], '1', 'self');
683
- const unlockingScript = await unlocker.sign(partialTx, 0);
684
- const signResult = await wallet.signAction({ reference, spends: { 0: { unlockingScript: unlockingScript.toHex() } } }, adminOriginator);
685
- const finalTxid = signResult.txid || (signResult.tx == null ? '' : sdk_1.Transaction.fromAtomicBEEF(signResult.tx).id('hex'));
686
- if (!finalTxid)
687
- throw new Error('Could not finalize renewed UMP token.');
688
- if (signResult.tx == null)
689
- throw new Error('Renewed UMP token transaction data missing.');
690
- const result = await this.broadcaster.broadcast(sdk_1.Transaction.fromAtomicBEEF(signResult.tx));
691
- this.assertBroadcast(result, 'renew');
692
- return `${finalTxid}.0`;
693
- }
694
- /** Signs without input spending and broadcasts — used when creating a brand-new UMP token. */
695
- async broadcastNew(wallet, adminOriginator, reference) {
696
- const signResult = await wallet.signAction({ reference, spends: {} }, adminOriginator);
697
- const finalTxid = signResult.txid || (signResult.tx == null ? '' : sdk_1.Transaction.fromAtomicBEEF(signResult.tx).id('hex'));
698
- if (!finalTxid)
699
- throw new Error('Could not finalize new UMP token.');
700
- if (signResult.tx == null)
701
- throw new Error('New UMP token transaction data missing.');
702
- const result = await this.broadcaster.broadcast(sdk_1.Transaction.fromAtomicBEEF(signResult.tx));
703
- this.assertBroadcast(result, 'create');
704
- return `${finalTxid}.0`;
705
- }
706
- assertBroadcast(result, operation) {
707
- const succeeded = result.status === 'success';
683
+ /** Proves the exact predecessor is an authenticated token controlled by this wallet. */
684
+ async assertOwnedUMPInput(wallet, adminOriginator, oldToken, inputToken) {
685
+ const transaction = sdk_1.Transaction.fromBEEF(inputToken.beef);
686
+ const sourceOutput = transaction.outputs[inputToken.outputIndex];
687
+ if (sourceOutput == null)
688
+ throw new Error('Previous UMP token source output is missing.');
689
+ const decoded = decodeAuthenticatedUMPFields(sourceOutput.lockingScript);
690
+ if (decoded.fields[6]?.length !== 32 ||
691
+ decoded.fields[7]?.length !== 32 ||
692
+ (0, utils_1.toHex)(decoded.fields[6]) !== (0, utils_1.toHex)(oldToken.presentationHash) ||
693
+ (0, utils_1.toHex)(decoded.fields[7]) !== (0, utils_1.toHex)(oldToken.recoveryHash)) {
694
+ throw new Error('Previous UMP token identity does not match its authenticated source.');
695
+ }
696
+ const { publicKey } = await wallet.getPublicKey({
697
+ protocolID: [2, 'admin user management token'],
698
+ keyID: '1',
699
+ counterparty: 'self',
700
+ forSelf: true
701
+ }, adminOriginator);
702
+ if (publicKey.toLowerCase() !== decoded.lockingPublicKey.toString().toLowerCase()) {
703
+ throw new Error('Previous UMP token is not controlled by this wallet.');
704
+ }
705
+ }
706
+ /** Completes an action only after exact request, input, output, and final-transaction binding. */
707
+ async completeUMPAction(wallet, createArgs, inputSigners, adminOriginator) {
708
+ return await (0, sdk_1.completeBoundAction)(wallet, createArgs, { inputSigners }, adminOriginator);
709
+ }
710
+ /** Broadcasts a bound UMP transaction and returns the exact, uniquely matching token output. */
711
+ async broadcastUMPTransaction(transaction, tokenScript, operation) {
712
+ const normalizedScript = tokenScript.toLowerCase();
713
+ const matchingOutputs = transaction.outputs.flatMap((output, index) => output.satoshis === 1 && output.lockingScript.toHex().toLowerCase() === normalizedScript ? [index] : []);
714
+ if (matchingOutputs.length !== 1) {
715
+ throw new Error('Final UMP transaction must contain exactly one requested token output.');
716
+ }
717
+ const txid = transaction.id('hex');
718
+ const result = await this.broadcaster.broadcast(transaction);
719
+ this.assertBroadcast(result, operation, txid);
720
+ return `${txid}.${matchingOutputs[0]}`;
721
+ }
722
+ assertBroadcast(result, operation, expectedTxid) {
723
+ const succeeded = result.status === 'success' && result.txid.toLowerCase() === expectedTxid.toLowerCase();
708
724
  this.telemetry.capture({
709
725
  name: succeeded ? 'wallet-toolbox.ump.broadcast.completed' : 'wallet-toolbox.ump.broadcast.failed',
710
726
  component: 'wallet-toolbox.ump',
@@ -716,7 +732,8 @@ class OverlayUMPTokenInteractor {
716
732
  }
717
733
  });
718
734
  if (!succeeded) {
719
- throw new Error(`UMP token broadcast failed (${result.code}).`);
735
+ const reason = result.status === 'error' ? result.code : 'transaction ID mismatch';
736
+ throw new Error(`UMP token broadcast failed (${reason}).`);
720
737
  }
721
738
  }
722
739
  /**
@@ -747,11 +764,7 @@ class OverlayUMPTokenInteractor {
747
764
  const txOutput = tx.outputs[output.outputIndex];
748
765
  if (txOutput == null)
749
766
  return undefined;
750
- const decoded = sdk_1.PushDrop.decode(txOutput.lockingScript);
751
- if (decoded.fields == null || decoded.fields.length < 11 || decoded.fields.length > 16) {
752
- return undefined;
753
- }
754
- const protocolFields = stripVerifiedPushDropSignature(decoded.fields, decoded.lockingPublicKey);
767
+ const { fields: protocolFields } = decodeAuthenticatedUMPFields(txOutput.lockingScript);
755
768
  if (protocolFields.length < 11 ||
756
769
  protocolFields.slice(0, 11).some(field => field.length === 0 || field.length > exports.MAX_STATE_SNAPSHOT_BYTES)) {
757
770
  return undefined;
@@ -791,6 +804,14 @@ class OverlayUMPTokenInteractor {
791
804
  async findByOutpoint(outpoint) {
792
805
  const correlationId = this.telemetry.enabled === true ? this.telemetry.createCorrelationId() : undefined;
793
806
  const startedAt = Date.now();
807
+ const match = /^([0-9a-f]{64})\.(0|[1-9]\d*)$/i.exec(outpoint);
808
+ const requestedOutputIndex = match == null ? Number.NaN : Number(match[2]);
809
+ if (match == null || !Number.isSafeInteger(requestedOutputIndex) || requestedOutputIndex > 0xffffffff) {
810
+ const diagnostics = this.emptyStats(correlationId);
811
+ this.lookupFailed('outpoint', 'token-malformed', diagnostics, startedAt);
812
+ throw new UMPTokenLookupError('token-malformed', diagnostics);
813
+ }
814
+ const normalizedOutpoint = `${match[1].toLowerCase()}.${requestedOutputIndex}`;
794
815
  let resolution;
795
816
  try {
796
817
  resolution = await this.resolver.queryDetailed({
@@ -817,7 +838,31 @@ class OverlayUMPTokenInteractor {
817
838
  }
818
839
  return undefined;
819
840
  }
820
- return resolution.answer.outputs[0];
841
+ const diagnostics = this.diagnosticsFor(resolution);
842
+ const matchingOutputs = [];
843
+ try {
844
+ for (const output of resolution.answer.outputs) {
845
+ if (!Number.isSafeInteger(output.outputIndex) || output.outputIndex < 0 || output.outputIndex > 0xffffffff) {
846
+ throw new Error('UMP lookup returned an invalid output index');
847
+ }
848
+ const transaction = sdk_1.Transaction.fromBEEF(output.beef);
849
+ if (transaction.outputs[output.outputIndex] == null ||
850
+ `${transaction.id('hex')}.${output.outputIndex}` !== normalizedOutpoint) {
851
+ throw new Error('UMP lookup substituted the requested outpoint');
852
+ }
853
+ matchingOutputs.push(output);
854
+ }
855
+ }
856
+ catch (error) {
857
+ this.lookupFailed('outpoint', 'token-malformed', diagnostics, startedAt, error);
858
+ throw new UMPTokenLookupError('token-malformed', diagnostics, { cause: error });
859
+ }
860
+ if (matchingOutputs.length === 0) {
861
+ this.lookupFailed('outpoint', 'token-malformed', diagnostics, startedAt);
862
+ throw new UMPTokenLookupError('token-malformed', diagnostics);
863
+ }
864
+ matchingOutputs.sort((left, right) => right.beef.length - left.beef.length);
865
+ return matchingOutputs[0];
821
866
  }
822
867
  }
823
868
  exports.OverlayUMPTokenInteractor = OverlayUMPTokenInteractor;
@@ -998,7 +1043,7 @@ class CWIStyleWalletManager {
998
1043
  throw new TypeError('Presentation key must contain exactly 32 bytes.');
999
1044
  }
1000
1045
  this.authenticationFlow = 'unknown';
1001
- const hash = sdk_1.Hash.sha256(key);
1046
+ const hash = (0, Hash_1.sha256)(key);
1002
1047
  const startedAt = Date.now();
1003
1048
  this.telemetry.capture({
1004
1049
  name: 'wallet-toolbox.authentication.account-lookup.started',
@@ -1068,7 +1113,7 @@ class CWIStyleWalletManager {
1068
1113
  async unlockExisting(password) {
1069
1114
  if (this.currentUMPToken == null)
1070
1115
  throw new Error('Provide presentation or recovery key first.');
1071
- const derivedPasswordKey = await derivePasswordKey(this.currentUMPToken, sdk_1.Utils.toArray(password, 'utf8'));
1116
+ const derivedPasswordKey = await derivePasswordKey(this.currentUMPToken, (0, utils_1.toArray)(password, 'utf8'));
1072
1117
  let rootPrimaryKey;
1073
1118
  let rootPrivilegedKey;
1074
1119
  if (this.authenticationMode === 'presentation-key-and-password') {
@@ -1098,7 +1143,7 @@ class CWIStyleWalletManager {
1098
1143
  const recoveryKey = (0, sdk_1.Random)(32);
1099
1144
  await this.recoveryKeySaver(recoveryKey);
1100
1145
  const passwordSalt = (0, sdk_1.Random)(32);
1101
- const passwordKey = await derivePasswordKey({ passwordSalt, passwordKdf: this.kdfConfig }, sdk_1.Utils.toArray(password, 'utf8'));
1146
+ const passwordKey = await derivePasswordKey({ passwordSalt, passwordKdf: this.kdfConfig }, (0, utils_1.toArray)(password, 'utf8'));
1102
1147
  const rootPrimaryKey = (0, sdk_1.Random)(32);
1103
1148
  const rootPrivilegedKey = (0, sdk_1.Random)(32);
1104
1149
  // Build XOR-combined symmetric keys
@@ -1117,8 +1162,8 @@ class CWIStyleWalletManager {
1117
1162
  presentationRecoveryPrimary: presentationRecovery.encrypt(rootPrimaryKey),
1118
1163
  passwordPrimaryPrivileged: primaryPassword.encrypt(rootPrivilegedKey),
1119
1164
  presentationRecoveryPrivileged: presentationRecovery.encrypt(rootPrivilegedKey),
1120
- presentationHash: sdk_1.Hash.sha256(this.presentationKey),
1121
- recoveryHash: sdk_1.Hash.sha256(recoveryKey),
1165
+ presentationHash: (0, Hash_1.sha256)(this.presentationKey),
1166
+ recoveryHash: (0, Hash_1.sha256)(recoveryKey),
1122
1167
  presentationKeyEncrypted: await wrapKey(this.presentationKey),
1123
1168
  passwordKeyEncrypted: await wrapKey(passwordKey),
1124
1169
  recoveryKeyEncrypted: await wrapKey(recoveryKey),
@@ -1167,7 +1212,7 @@ class CWIStyleWalletManager {
1167
1212
  }
1168
1213
  if (this.authenticationMode === 'recovery-key-and-password') {
1169
1214
  // Wait for password
1170
- const hash = sdk_1.Hash.sha256(recoveryKey);
1215
+ const hash = (0, Hash_1.sha256)(recoveryKey);
1171
1216
  const token = await this.UMPTokenInteractor.findByRecoveryKeyHash(hash);
1172
1217
  if (token == null)
1173
1218
  throw new Error('No user found with this recovery key');
@@ -1202,7 +1247,7 @@ class CWIStyleWalletManager {
1202
1247
  throw new Error('No root primary key or current UMP token set');
1203
1248
  }
1204
1249
  const snapshotKey = (0, sdk_1.Random)(32);
1205
- const snapshotPreimageWriter = new sdk_1.Utils.Writer();
1250
+ const snapshotPreimageWriter = new utils_1.Writer();
1206
1251
  // Write root primary key
1207
1252
  snapshotPreimageWriter.write(this.rootPrimaryKey);
1208
1253
  // Write serialized UMP token (must have outpoint)
@@ -1216,7 +1261,7 @@ class CWIStyleWalletManager {
1216
1261
  const snapshotPreimage = snapshotPreimageWriter.toArray();
1217
1262
  const snapshotPayload = new sdk_1.SymmetricKey(snapshotKey).encrypt(snapshotPreimage);
1218
1263
  // Build final snapshot (Version 2)
1219
- const snapshotWriter = new sdk_1.Utils.Writer();
1264
+ const snapshotWriter = new utils_1.Writer();
1220
1265
  snapshotWriter.writeUInt8(2); // Version
1221
1266
  snapshotWriter.write(snapshotKey);
1222
1267
  snapshotWriter.write(this.activeProfileId); // Active profile ID
@@ -1249,7 +1294,7 @@ class CWIStyleWalletManager {
1249
1294
  snapshot.some(byte => !Number.isInteger(byte) || byte < 0 || byte > 255)) {
1250
1295
  throw new Error('Snapshot is empty, oversized, or contains invalid bytes.');
1251
1296
  }
1252
- const reader = new sdk_1.Utils.Reader(snapshot);
1297
+ const reader = new utils_1.Reader(snapshot);
1253
1298
  const version = reader.readUInt8();
1254
1299
  let snapshotKey;
1255
1300
  let encryptedPayload;
@@ -1268,11 +1313,11 @@ class CWIStyleWalletManager {
1268
1313
  }
1269
1314
  // Decrypt payload
1270
1315
  const decryptedPayload = new sdk_1.SymmetricKey(snapshotKey).decrypt(encryptedPayload);
1271
- const payloadReader = new sdk_1.Utils.Reader(decryptedPayload);
1316
+ const payloadReader = new utils_1.Reader(decryptedPayload);
1272
1317
  // Read root primary key
1273
1318
  const rootPrimaryKey = payloadReader.read(32);
1274
1319
  // Read serialized UMP token
1275
- const tokenLen = payloadReader.readVarIntNum();
1320
+ const tokenLen = payloadReader.readVarIntNumStrict(false);
1276
1321
  const tokenBytes = payloadReader.read(tokenLen);
1277
1322
  const token = this.deserializeUMPToken(tokenBytes);
1278
1323
  // Assign loaded data
@@ -1500,7 +1545,7 @@ class CWIStyleWalletManager {
1500
1545
  passwordSalt,
1501
1546
  passwordKdf: kdfToUse
1502
1547
  };
1503
- const newPasswordKey = await derivePasswordKey(tempTokenForKdf, sdk_1.Utils.toArray(newPassword, 'utf8'));
1548
+ const newPasswordKey = await derivePasswordKey(tempTokenForKdf, (0, utils_1.toArray)(newPassword, 'utf8'));
1504
1549
  // Decrypt existing factors needed for re-encryption, using the *root* privileged key manager
1505
1550
  const recoveryKey = await this.getFactor('recoveryKey');
1506
1551
  const presentationKey = await this.getFactor('presentationKey');
@@ -1661,7 +1706,7 @@ class CWIStyleWalletManager {
1661
1706
  let profilesEncrypted;
1662
1707
  if (profiles != null && profiles.length > 0) {
1663
1708
  const profilesJson = JSON.stringify(profiles);
1664
- const profilesBytes = sdk_1.Utils.toArray(profilesJson, 'utf8');
1709
+ const profilesBytes = (0, utils_1.toArray)(profilesJson, 'utf8');
1665
1710
  profilesEncrypted = new sdk_1.SymmetricKey(rootPrimaryKey).encrypt(profilesBytes);
1666
1711
  }
1667
1712
  // Construct the new UMP token data.
@@ -1676,8 +1721,8 @@ class CWIStyleWalletManager {
1676
1721
  presentationRecoveryPrimary: presentationRecovery.encrypt(rootPrimaryKey),
1677
1722
  passwordPrimaryPrivileged: primaryPassword.encrypt(rootPrivilegedKey),
1678
1723
  presentationRecoveryPrivileged: presentationRecovery.encrypt(rootPrivilegedKey),
1679
- presentationHash: sdk_1.Hash.sha256(presentationKey),
1680
- recoveryHash: sdk_1.Hash.sha256(recoveryKey),
1724
+ presentationHash: (0, Hash_1.sha256)(presentationKey),
1725
+ recoveryHash: (0, Hash_1.sha256)(recoveryKey),
1681
1726
  presentationKeyEncrypted: (await tempRootPrivilegedKeyManager.encrypt({
1682
1727
  plaintext: presentationKey,
1683
1728
  protocolID: [2, 'admin key wrapping'],
@@ -1748,7 +1793,7 @@ class CWIStyleWalletManager {
1748
1793
  if (!token.currentOutpoint) {
1749
1794
  throw new Error('Token must have outpoint for serialization');
1750
1795
  }
1751
- const writer = new sdk_1.Utils.Writer();
1796
+ const writer = new utils_1.Writer();
1752
1797
  const hasKdfMetadata = token.umpVersion === 3 && token.passwordKdf;
1753
1798
  writer.writeUInt8(hasKdfMetadata ? 3 : 2); // Version 3 for KDF, 2 for legacy
1754
1799
  const writeArray = (arr) => {
@@ -1779,7 +1824,7 @@ class CWIStyleWalletManager {
1779
1824
  if (hasKdfMetadata) {
1780
1825
  writer.writeUInt8(1); // Flag indicating KDF metadata present
1781
1826
  writer.writeUInt8(token.umpVersion); // On-chain UMP version
1782
- const algorithmBytes = sdk_1.Utils.toArray(token.passwordKdf.algorithm, 'utf8');
1827
+ const algorithmBytes = (0, utils_1.toArray)(token.passwordKdf.algorithm, 'utf8');
1783
1828
  writeArray(algorithmBytes);
1784
1829
  // Serialize KDF params as JSON
1785
1830
  const kdfParams = {
@@ -1794,7 +1839,7 @@ class CWIStyleWalletManager {
1794
1839
  if (token.passwordKdf.hashLength !== undefined) {
1795
1840
  kdfParams.hashLength = token.passwordKdf.hashLength;
1796
1841
  }
1797
- const kdfParamsBytes = sdk_1.Utils.toArray(JSON.stringify(kdfParams), 'utf8');
1842
+ const kdfParamsBytes = (0, utils_1.toArray)(JSON.stringify(kdfParams), 'utf8');
1798
1843
  writeArray(kdfParamsBytes);
1799
1844
  }
1800
1845
  else if (writer.toArray()[0] === 3) {
@@ -1802,7 +1847,7 @@ class CWIStyleWalletManager {
1802
1847
  writer.writeUInt8(0); // Flag indicating no KDF metadata
1803
1848
  }
1804
1849
  // Write outpoint string
1805
- const outpointBytes = sdk_1.Utils.toArray(token.currentOutpoint, 'utf8');
1850
+ const outpointBytes = (0, utils_1.toArray)(token.currentOutpoint, 'utf8');
1806
1851
  writer.writeVarIntNum(outpointBytes.length);
1807
1852
  writer.write(outpointBytes);
1808
1853
  return writer.toArray();
@@ -1811,13 +1856,13 @@ class CWIStyleWalletManager {
1811
1856
  * Deserializes a UMP token from binary format (Handles Version 1, 2, and 3).
1812
1857
  */
1813
1858
  deserializeUMPToken(bin) {
1814
- const reader = new sdk_1.Utils.Reader(bin);
1859
+ const reader = new utils_1.Reader(bin);
1815
1860
  const version = reader.readUInt8();
1816
1861
  if (version !== 1 && version !== 2 && version !== 3) {
1817
1862
  throw new Error(`Unsupported UMP token serialization version: ${version}`);
1818
1863
  }
1819
1864
  const readArray = () => {
1820
- const length = reader.readVarIntNum();
1865
+ const length = reader.readVarIntNumStrict(false);
1821
1866
  if (length <= 0 || length > exports.MAX_STATE_SNAPSHOT_BYTES) {
1822
1867
  throw new Error('UMP token field exceeds allowed bounds.');
1823
1868
  }
@@ -1851,9 +1896,9 @@ class CWIStyleWalletManager {
1851
1896
  if (kdfFlag === 1) {
1852
1897
  umpVersion = reader.readUInt8(); // On-chain UMP version
1853
1898
  const algorithmBytes = readArray();
1854
- const algorithm = sdk_1.Utils.toUTF8(algorithmBytes);
1899
+ const algorithm = (0, utils_1.toUTF8)(algorithmBytes);
1855
1900
  const kdfParamsBytes = readArray();
1856
- const kdfParamsJson = sdk_1.Utils.toUTF8(kdfParamsBytes);
1901
+ const kdfParamsJson = (0, utils_1.toUTF8)(kdfParamsBytes);
1857
1902
  const kdfParams = JSON.parse(kdfParamsJson);
1858
1903
  passwordKdf = {
1859
1904
  algorithm,
@@ -1868,9 +1913,9 @@ class CWIStyleWalletManager {
1868
1913
  }
1869
1914
  }
1870
1915
  // Read outpoint string
1871
- const outpointLen = reader.readVarIntNum();
1916
+ const outpointLen = reader.readVarIntNumStrict(false);
1872
1917
  const outpointBytes = reader.read(outpointLen);
1873
- const currentOutpoint = sdk_1.Utils.toUTF8(outpointBytes);
1918
+ const currentOutpoint = (0, utils_1.toUTF8)(outpointBytes);
1874
1919
  if (currentOutpoint.length > 128 || !/^[^\s.:]+[.:]\d+$/.test(currentOutpoint)) {
1875
1920
  throw new Error('Serialized UMP token contains an invalid outpoint.');
1876
1921
  }
@@ -1919,7 +1964,7 @@ class CWIStyleWalletManager {
1919
1964
  // 2. Otherwise, derive from password
1920
1965
  const password = await this.passwordRetriever(reason, async (passwordCandidate) => {
1921
1966
  try {
1922
- const derivedPasswordKey = await derivePasswordKey(this.currentUMPToken, sdk_1.Utils.toArray(passwordCandidate, 'utf8'));
1967
+ const derivedPasswordKey = await derivePasswordKey(this.currentUMPToken, (0, utils_1.toArray)(passwordCandidate, 'utf8'));
1923
1968
  const privilegedDecryptor = this.XOR(this.rootPrimaryKey, derivedPasswordKey);
1924
1969
  const decryptedPrivileged = new sdk_1.SymmetricKey(privilegedDecryptor).decrypt(this.currentUMPToken.passwordPrimaryPrivileged);
1925
1970
  return !!decryptedPrivileged; // Test passes if decryption works
@@ -1932,7 +1977,7 @@ class CWIStyleWalletManager {
1932
1977
  }
1933
1978
  });
1934
1979
  // Decrypt the root privileged key using the confirmed password (with token-driven KDF)
1935
- const derivedPasswordKey = await derivePasswordKey(this.currentUMPToken, sdk_1.Utils.toArray(password, 'utf8'));
1980
+ const derivedPasswordKey = await derivePasswordKey(this.currentUMPToken, (0, utils_1.toArray)(password, 'utf8'));
1936
1981
  const privilegedDecryptor = this.XOR(this.rootPrimaryKey, derivedPasswordKey);
1937
1982
  const rootPrivilegedBytes = new sdk_1.SymmetricKey(privilegedDecryptor).decrypt(this.currentUMPToken.passwordPrimaryPrivileged);
1938
1983
  return new sdk_1.PrivateKey(rootPrivilegedBytes); // Return the ROOT key object
@@ -1942,7 +1987,7 @@ class CWIStyleWalletManager {
1942
1987
  if (this.currentUMPToken.profilesEncrypted != null && this.currentUMPToken.profilesEncrypted.length > 0) {
1943
1988
  try {
1944
1989
  const decryptedProfileBytes = new sdk_1.SymmetricKey(rootKey).decrypt(this.currentUMPToken.profilesEncrypted);
1945
- const profilesJson = sdk_1.Utils.toUTF8(decryptedProfileBytes);
1990
+ const profilesJson = (0, utils_1.toUTF8)(decryptedProfileBytes);
1946
1991
  const profiles = JSON.parse(profilesJson);
1947
1992
  if (!Array.isArray(profiles) || profiles.length > 1000 || !profiles.every(isValidProfile)) {
1948
1993
  throw new Error('Decrypted profile data is invalid or exceeds supported bounds.');