@bopen-io/wallet-toolbox 2.6.2-brc153.5 → 2.14.6

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 (878) hide show
  1. package/CHANGELOG.md +744 -1
  2. package/LICENSES/Open-BSV-License-4-wallet-pre-2026.txt +28 -0
  3. package/README.md +823 -14
  4. package/THIRD_PARTY_NOTICES.md +35 -0
  5. package/docs/README.md +44 -31
  6. package/docs/action-batch-planning.md +80 -37
  7. package/docs/client.md +12996 -4571
  8. package/docs/identity-verification.md +218 -0
  9. package/docs/local-first-chaintracks.md +129 -0
  10. package/docs/managed-change-liquidity.md +258 -0
  11. package/docs/managed-change-policy.md +14 -1
  12. package/docs/monitor.md +505 -190
  13. package/docs/no-send-expiry.md +167 -0
  14. package/docs/prepared-beef.md +197 -0
  15. package/docs/services.md +4013 -1153
  16. package/docs/setup.md +107 -56
  17. package/docs/storage.md +5781 -1599
  18. package/docs/sync-transfer.md +144 -0
  19. package/docs/wab-shamir.md +5 -1
  20. package/docs/wallet.md +10188 -10904
  21. package/out/src/CWIStyleWalletManager.d.ts +39 -31
  22. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  23. package/out/src/CWIStyleWalletManager.js +309 -258
  24. package/out/src/CWIStyleWalletManager.js.map +1 -1
  25. package/out/src/Setup.d.ts +14 -0
  26. package/out/src/Setup.d.ts.map +1 -1
  27. package/out/src/Setup.js +6 -2
  28. package/out/src/Setup.js.map +1 -1
  29. package/out/src/SetupClient.d.ts +3 -0
  30. package/out/src/SetupClient.d.ts.map +1 -1
  31. package/out/src/SetupClient.js +1 -0
  32. package/out/src/SetupClient.js.map +1 -1
  33. package/out/src/SetupWallet.d.ts +3 -0
  34. package/out/src/SetupWallet.d.ts.map +1 -1
  35. package/out/src/ShamirWalletManager.d.ts.map +1 -1
  36. package/out/src/ShamirWalletManager.js +34 -19
  37. package/out/src/ShamirWalletManager.js.map +1 -1
  38. package/out/src/SimpleWalletManager.d.ts.map +1 -1
  39. package/out/src/SimpleWalletManager.js +7 -6
  40. package/out/src/SimpleWalletManager.js.map +1 -1
  41. package/out/src/Wallet.d.ts +54 -14
  42. package/out/src/Wallet.d.ts.map +1 -1
  43. package/out/src/Wallet.js +216 -114
  44. package/out/src/Wallet.js.map +1 -1
  45. package/out/src/WalletAuthenticationManager.d.ts +32 -0
  46. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  47. package/out/src/WalletAuthenticationManager.js +531 -78
  48. package/out/src/WalletAuthenticationManager.js.map +1 -1
  49. package/out/src/WalletLogger.js +1 -1
  50. package/out/src/WalletLogger.js.map +1 -1
  51. package/out/src/WalletPermissionsManager.d.ts +101 -43
  52. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  53. package/out/src/WalletPermissionsManager.js +897 -414
  54. package/out/src/WalletPermissionsManager.js.map +1 -1
  55. package/out/src/WalletSettingsManager.d.ts +3 -2
  56. package/out/src/WalletSettingsManager.d.ts.map +1 -1
  57. package/out/src/WalletSettingsManager.js +143 -8
  58. package/out/src/WalletSettingsManager.js.map +1 -1
  59. package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
  60. package/out/src/entropy/EntropyCollector.js +3 -2
  61. package/out/src/entropy/EntropyCollector.js.map +1 -1
  62. package/out/src/fundWalletP2PKH.d.ts.map +1 -1
  63. package/out/src/fundWalletP2PKH.js +143 -44
  64. package/out/src/fundWalletP2PKH.js.map +1 -1
  65. package/out/src/index.client.d.ts +6 -0
  66. package/out/src/index.client.d.ts.map +1 -1
  67. package/out/src/index.client.js +16 -1
  68. package/out/src/index.client.js.map +1 -1
  69. package/out/src/index.mobile.d.ts +7 -0
  70. package/out/src/index.mobile.d.ts.map +1 -1
  71. package/out/src/index.mobile.js +17 -1
  72. package/out/src/index.mobile.js.map +1 -1
  73. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
  74. package/out/src/mockchain/MockChainTracker.js +5 -5
  75. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  76. package/out/src/mockchain/MockServices.d.ts +2 -0
  77. package/out/src/mockchain/MockServices.d.ts.map +1 -1
  78. package/out/src/mockchain/MockServices.js +54 -14
  79. package/out/src/mockchain/MockServices.js.map +1 -1
  80. package/out/src/monitor/Monitor.d.ts +51 -0
  81. package/out/src/monitor/Monitor.d.ts.map +1 -1
  82. package/out/src/monitor/Monitor.js +282 -41
  83. package/out/src/monitor/Monitor.js.map +1 -1
  84. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  85. package/out/src/monitor/MonitorDaemon.js +64 -16
  86. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  87. package/out/src/monitor/monitorValidation.d.ts +12 -0
  88. package/out/src/monitor/monitorValidation.d.ts.map +1 -0
  89. package/out/src/monitor/monitorValidation.js +133 -0
  90. package/out/src/monitor/monitorValidation.js.map +1 -0
  91. package/out/src/monitor/tasks/TaskArcSSE.d.ts +6 -1
  92. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  93. package/out/src/monitor/tasks/TaskArcSSE.js +117 -74
  94. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  95. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +5 -0
  96. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  97. package/out/src/monitor/tasks/TaskCheckForProofs.js +29 -24
  98. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  99. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  100. package/out/src/monitor/tasks/TaskCheckNoSends.js +11 -3
  101. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  102. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  103. package/out/src/monitor/tasks/TaskFailAbandoned.js +9 -4
  104. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  105. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  106. package/out/src/monitor/tasks/TaskNewHeader.js +3 -1
  107. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  108. package/out/src/monitor/tasks/TaskNoSendExpiry.d.ts +19 -0
  109. package/out/src/monitor/tasks/TaskNoSendExpiry.d.ts.map +1 -0
  110. package/out/src/monitor/tasks/TaskNoSendExpiry.js +47 -0
  111. package/out/src/monitor/tasks/TaskNoSendExpiry.js.map +1 -0
  112. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts +27 -0
  113. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts.map +1 -0
  114. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js +242 -0
  115. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js.map +1 -0
  116. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  117. package/out/src/monitor/tasks/TaskReorg.js +4 -4
  118. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  119. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
  120. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +31 -9
  121. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  122. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +18 -1
  123. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
  124. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +99 -21
  125. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  126. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +33 -6
  127. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
  128. package/out/src/monitor/tasks/TaskReviewUtxos.js +189 -13
  129. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  130. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  131. package/out/src/monitor/tasks/TaskSendWaiting.js +52 -11
  132. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  133. package/out/src/monitor/tasks/TaskUnFail.d.ts +1 -0
  134. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  135. package/out/src/monitor/tasks/TaskUnFail.js +26 -8
  136. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  137. package/out/src/monitor/tasks/index.all.d.ts +2 -0
  138. package/out/src/monitor/tasks/index.all.d.ts.map +1 -1
  139. package/out/src/monitor/tasks/index.all.js +2 -0
  140. package/out/src/monitor/tasks/index.all.js.map +1 -1
  141. package/out/src/sdk/ActionBatch.interfaces.d.ts +23 -0
  142. package/out/src/sdk/ActionBatch.interfaces.d.ts.map +1 -1
  143. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  144. package/out/src/sdk/PrivilegedKeyManager.js +3 -2
  145. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  146. package/out/src/sdk/WERR_errors.d.ts +23 -0
  147. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  148. package/out/src/sdk/WERR_errors.js +51 -7
  149. package/out/src/sdk/WERR_errors.js.map +1 -1
  150. package/out/src/sdk/WalletError.d.ts.map +1 -1
  151. package/out/src/sdk/WalletError.js +7 -21
  152. package/out/src/sdk/WalletError.js.map +1 -1
  153. package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
  154. package/out/src/sdk/WalletErrorFromJson.js +121 -3
  155. package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
  156. package/out/src/sdk/WalletServices.interfaces.d.ts +45 -2
  157. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  158. package/out/src/sdk/WalletStorage.interfaces.d.ts +87 -4
  159. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  160. package/out/src/sdk/types.d.ts +3 -2
  161. package/out/src/sdk/types.d.ts.map +1 -1
  162. package/out/src/sdk/types.js +3 -2
  163. package/out/src/sdk/types.js.map +1 -1
  164. package/out/src/services/ServiceCollection.js +2 -2
  165. package/out/src/services/ServiceCollection.js.map +1 -1
  166. package/out/src/services/Services.d.ts +5 -0
  167. package/out/src/services/Services.d.ts.map +1 -1
  168. package/out/src/services/Services.js +346 -120
  169. package/out/src/services/Services.js.map +1 -1
  170. package/out/src/services/chaintracker/BHServiceClient.d.ts +21 -4
  171. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
  172. package/out/src/services/chaintracker/BHServiceClient.js +269 -66
  173. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  174. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +25 -3
  175. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  176. package/out/src/services/chaintracker/ChaintracksChainTracker.js +188 -53
  177. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  178. package/out/src/services/chaintracker/LocalChainTracker.d.ts +122 -0
  179. package/out/src/services/chaintracker/LocalChainTracker.d.ts.map +1 -0
  180. package/out/src/services/chaintracker/LocalChainTracker.js +465 -0
  181. package/out/src/services/chaintracker/LocalChainTracker.js.map +1 -0
  182. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
  183. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +59 -7
  184. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
  185. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts +48 -0
  186. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts.map +1 -0
  187. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js +3 -0
  188. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js.map +1 -0
  189. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts +70 -0
  190. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts.map +1 -0
  191. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js +21 -0
  192. package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js.map +1 -0
  193. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +6 -0
  194. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +1 -1
  195. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +53 -0
  196. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
  197. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +9 -2
  198. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
  199. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +9 -0
  200. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
  201. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +28 -3
  202. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  203. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +282 -64
  204. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  205. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +16 -0
  206. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
  207. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +150 -26
  208. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  209. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +30 -1
  210. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  211. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +348 -30
  212. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  213. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +32 -1
  214. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
  215. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +378 -44
  216. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
  217. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  218. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +28 -3
  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 +33 -9
  222. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  223. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
  224. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
  225. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.d.ts.map +1 -1
  226. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js +4 -2
  227. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js.map +1 -1
  228. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +2 -0
  229. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  230. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +17 -4
  231. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  232. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts +2 -0
  233. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
  234. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +40 -20
  235. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
  236. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  237. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +14 -0
  238. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  239. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +6 -0
  240. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -1
  241. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +56 -9
  242. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -1
  243. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
  244. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +6 -3
  245. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
  246. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +4 -0
  247. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
  248. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +27 -9
  249. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  250. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts +8 -0
  251. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
  252. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +49 -5
  253. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
  254. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +1 -1
  255. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  256. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +90 -21
  257. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  258. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +3 -1
  259. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
  260. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +185 -38
  261. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  262. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  263. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +59 -6
  264. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  265. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts +2 -0
  266. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
  267. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +89 -39
  268. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  269. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +10 -0
  270. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  271. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +230 -28
  272. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  273. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +2 -1
  274. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  275. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +265 -96
  276. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  277. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +3 -1
  278. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
  279. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +240 -87
  280. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  281. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +3 -0
  282. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  283. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +121 -35
  284. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  285. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +8 -0
  286. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
  287. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +6 -3
  288. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
  289. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
  290. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  291. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
  292. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  293. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  294. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  295. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  296. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +1 -7
  297. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  298. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
  299. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +1 -7
  300. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
  301. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
  302. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +1 -7
  303. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  304. package/out/src/services/chaintracker/chaintracks/index.all.d.ts +3 -0
  305. package/out/src/services/chaintracker/chaintracks/index.all.d.ts.map +1 -1
  306. package/out/src/services/chaintracker/chaintracks/index.all.js +3 -0
  307. package/out/src/services/chaintracker/chaintracks/index.all.js.map +1 -1
  308. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +5 -0
  309. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
  310. package/out/src/services/chaintracker/chaintracks/index.mobile.js +5 -0
  311. package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
  312. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +51 -0
  313. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -0
  314. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +394 -0
  315. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -0
  316. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +45 -1
  317. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  318. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +733 -166
  319. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  320. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
  321. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +17 -1
  322. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  323. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts +32 -0
  324. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts.map +1 -0
  325. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js +40 -0
  326. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js.map +1 -0
  327. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  328. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +99 -30
  329. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  330. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +3 -1
  331. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  332. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +23 -15
  333. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  334. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +38 -4
  335. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  336. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +191 -47
  337. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  338. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +2 -1
  339. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
  340. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +57 -11
  341. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
  342. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts +48 -0
  343. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts.map +1 -0
  344. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js +280 -0
  345. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js.map +1 -0
  346. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts +30 -0
  347. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts.map +1 -0
  348. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js +57 -0
  349. package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js.map +1 -0
  350. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  351. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  352. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts +14 -0
  353. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -0
  354. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +148 -0
  355. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -0
  356. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts +41 -0
  357. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts.map +1 -0
  358. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js +271 -0
  359. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js.map +1 -0
  360. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +3 -0
  361. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
  362. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +15 -0
  363. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  364. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +17 -4
  365. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  366. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +362 -105
  367. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  368. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts +4 -0
  369. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts.map +1 -0
  370. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js +33 -0
  371. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js.map +1 -0
  372. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  373. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  374. package/out/src/services/chaintracker/index.all.d.ts +1 -0
  375. package/out/src/services/chaintracker/index.all.d.ts.map +1 -1
  376. package/out/src/services/chaintracker/index.all.js +1 -0
  377. package/out/src/services/chaintracker/index.all.js.map +1 -1
  378. package/out/src/services/chaintracker/index.client.d.ts +1 -0
  379. package/out/src/services/chaintracker/index.client.d.ts.map +1 -1
  380. package/out/src/services/chaintracker/index.client.js +1 -0
  381. package/out/src/services/chaintracker/index.client.js.map +1 -1
  382. package/out/src/services/chaintracker/index.mobile.d.ts +1 -0
  383. package/out/src/services/chaintracker/index.mobile.d.ts.map +1 -1
  384. package/out/src/services/chaintracker/index.mobile.js +1 -0
  385. package/out/src/services/chaintracker/index.mobile.js.map +1 -1
  386. package/out/src/services/classifyOutputUtxo.d.ts +25 -0
  387. package/out/src/services/classifyOutputUtxo.d.ts.map +1 -0
  388. package/out/src/services/classifyOutputUtxo.js +96 -0
  389. package/out/src/services/classifyOutputUtxo.js.map +1 -0
  390. package/out/src/services/createDefaultWalletServicesOptions.d.ts +16 -3
  391. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  392. package/out/src/services/createDefaultWalletServicesOptions.js +38 -8
  393. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  394. package/out/src/services/fiatRateValidation.d.ts +12 -0
  395. package/out/src/services/fiatRateValidation.d.ts.map +1 -0
  396. package/out/src/services/fiatRateValidation.js +138 -0
  397. package/out/src/services/fiatRateValidation.js.map +1 -0
  398. package/out/src/services/getCanonicalMerklePath.d.ts +15 -0
  399. package/out/src/services/getCanonicalMerklePath.d.ts.map +1 -0
  400. package/out/src/services/getCanonicalMerklePath.js +90 -0
  401. package/out/src/services/getCanonicalMerklePath.js.map +1 -0
  402. package/out/src/services/providers/ARC.d.ts +3 -16
  403. package/out/src/services/providers/ARC.d.ts.map +1 -1
  404. package/out/src/services/providers/ARC.js +36 -37
  405. package/out/src/services/providers/ARC.js.map +1 -1
  406. package/out/src/services/providers/ArcSSEClient.d.ts +38 -23
  407. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  408. package/out/src/services/providers/ArcSSEClient.js +384 -63
  409. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  410. package/out/src/services/providers/Arcade.d.ts +11 -1
  411. package/out/src/services/providers/Arcade.d.ts.map +1 -1
  412. package/out/src/services/providers/Arcade.js +111 -33
  413. package/out/src/services/providers/Arcade.js.map +1 -1
  414. package/out/src/services/providers/Bitails.d.ts +3 -0
  415. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  416. package/out/src/services/providers/Bitails.js +79 -12
  417. package/out/src/services/providers/Bitails.js.map +1 -1
  418. package/out/src/services/providers/SdkWhatsOnChain.d.ts +8 -2
  419. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  420. package/out/src/services/providers/SdkWhatsOnChain.js +83 -10
  421. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  422. package/out/src/services/providers/WhatsOnChain.d.ts +3 -0
  423. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  424. package/out/src/services/providers/WhatsOnChain.js +221 -69
  425. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  426. package/out/src/services/providers/arcProviderConfig.d.ts +27 -0
  427. package/out/src/services/providers/arcProviderConfig.d.ts.map +1 -0
  428. package/out/src/services/providers/arcProviderConfig.js +83 -0
  429. package/out/src/services/providers/arcProviderConfig.js.map +1 -0
  430. package/out/src/services/providers/arcTxDataValidation.d.ts +4 -0
  431. package/out/src/services/providers/arcTxDataValidation.d.ts.map +1 -0
  432. package/out/src/services/providers/arcTxDataValidation.js +92 -0
  433. package/out/src/services/providers/arcTxDataValidation.js.map +1 -0
  434. package/out/src/services/providers/arcadeStatus.d.ts +18 -0
  435. package/out/src/services/providers/arcadeStatus.d.ts.map +1 -0
  436. package/out/src/services/providers/arcadeStatus.js +56 -0
  437. package/out/src/services/providers/arcadeStatus.js.map +1 -0
  438. package/out/src/services/providers/exchangeRates.d.ts +3 -3
  439. package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
  440. package/out/src/services/providers/exchangeRates.js +153 -226
  441. package/out/src/services/providers/exchangeRates.js.map +1 -1
  442. package/out/src/services/providers/getBeefForTxid.d.ts.map +1 -1
  443. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  444. package/out/src/services/providers/whatsOnChainHelpers.d.ts +2 -2
  445. package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +1 -1
  446. package/out/src/services/providers/whatsOnChainHelpers.js +11 -8
  447. package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -1
  448. package/out/src/services/validateMerklePathResult.d.ts +30 -0
  449. package/out/src/services/validateMerklePathResult.d.ts.map +1 -0
  450. package/out/src/services/validateMerklePathResult.js +272 -0
  451. package/out/src/services/validateMerklePathResult.js.map +1 -0
  452. package/out/src/services/validatePostBeefResult.d.ts +17 -0
  453. package/out/src/services/validatePostBeefResult.d.ts.map +1 -0
  454. package/out/src/services/validatePostBeefResult.js +334 -0
  455. package/out/src/services/validatePostBeefResult.js.map +1 -0
  456. package/out/src/services/validateRawTxResult.d.ts +6 -0
  457. package/out/src/services/validateRawTxResult.d.ts.map +1 -0
  458. package/out/src/services/validateRawTxResult.js +77 -0
  459. package/out/src/services/validateRawTxResult.js.map +1 -0
  460. package/out/src/services/validateScriptHashHistoryResult.d.ts +5 -0
  461. package/out/src/services/validateScriptHashHistoryResult.d.ts.map +1 -0
  462. package/out/src/services/validateScriptHashHistoryResult.js +99 -0
  463. package/out/src/services/validateScriptHashHistoryResult.js.map +1 -0
  464. package/out/src/services/validateStatusForTxidsResult.d.ts +8 -0
  465. package/out/src/services/validateStatusForTxidsResult.d.ts.map +1 -0
  466. package/out/src/services/validateStatusForTxidsResult.js +181 -0
  467. package/out/src/services/validateStatusForTxidsResult.js.map +1 -0
  468. package/out/src/services/validateUtxoStatusResult.d.ts +6 -0
  469. package/out/src/services/validateUtxoStatusResult.d.ts.map +1 -0
  470. package/out/src/services/validateUtxoStatusResult.js +126 -0
  471. package/out/src/services/validateUtxoStatusResult.js.map +1 -0
  472. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +3 -2
  473. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -1
  474. package/out/src/signer/actionBatch/ActionBatchPlanner.js +29 -6
  475. package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -1
  476. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +8 -5
  477. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -1
  478. package/out/src/signer/actionBatch/ActionBatchWorkspace.js +186 -73
  479. package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -1
  480. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +2 -2
  481. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -1
  482. package/out/src/signer/actionBatch/actionBatchBootstrap.js +3 -3
  483. package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -1
  484. package/out/src/signer/methods/acquireDirectCertificate.d.ts +3 -2
  485. package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
  486. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  487. package/out/src/signer/methods/buildSignableTransaction.d.ts +6 -5
  488. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  489. package/out/src/signer/methods/buildSignableTransaction.js +6 -11
  490. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  491. package/out/src/signer/methods/createAction.d.ts +35 -3
  492. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  493. package/out/src/signer/methods/createAction.js +50 -2
  494. package/out/src/signer/methods/createAction.js.map +1 -1
  495. package/out/src/signer/methods/createNoSendExpiryAction.d.ts +7 -0
  496. package/out/src/signer/methods/createNoSendExpiryAction.d.ts.map +1 -0
  497. package/out/src/signer/methods/createNoSendExpiryAction.js +254 -0
  498. package/out/src/signer/methods/createNoSendExpiryAction.js.map +1 -0
  499. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  500. package/out/src/signer/methods/internalizeAction.js +9 -5
  501. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  502. package/out/src/signer/methods/proveCertificate.d.ts +3 -2
  503. package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
  504. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  505. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  506. package/out/src/signer/methods/signAction.js +20 -3
  507. package/out/src/signer/methods/signAction.js.map +1 -1
  508. package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -1
  509. package/out/src/signer/methods/verifyUnlockScripts.js +12 -17
  510. package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -1
  511. package/out/src/storage/StorageIdb.d.ts +11 -3
  512. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  513. package/out/src/storage/StorageIdb.js +134 -44
  514. package/out/src/storage/StorageIdb.js.map +1 -1
  515. package/out/src/storage/StorageKnex.d.ts +68 -7
  516. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  517. package/out/src/storage/StorageKnex.js +551 -105
  518. package/out/src/storage/StorageKnex.js.map +1 -1
  519. package/out/src/storage/StorageProvider.d.ts +41 -10
  520. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  521. package/out/src/storage/StorageProvider.js +397 -107
  522. package/out/src/storage/StorageProvider.js.map +1 -1
  523. package/out/src/storage/StorageReader.d.ts +9 -3
  524. package/out/src/storage/StorageReader.d.ts.map +1 -1
  525. package/out/src/storage/StorageReader.js +21 -43
  526. package/out/src/storage/StorageReader.js.map +1 -1
  527. package/out/src/storage/StorageReaderWriter.d.ts +4 -0
  528. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  529. package/out/src/storage/StorageReaderWriter.js +68 -38
  530. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  531. package/out/src/storage/StorageSyncReader.d.ts +1 -1
  532. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  533. package/out/src/storage/StorageSyncReader.js +3 -36
  534. package/out/src/storage/StorageSyncReader.js.map +1 -1
  535. package/out/src/storage/WalletStorageManager.d.ts +31 -6
  536. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  537. package/out/src/storage/WalletStorageManager.js +166 -75
  538. package/out/src/storage/WalletStorageManager.js.map +1 -1
  539. package/out/src/storage/adminServer/adminServer.d.ts +3 -1
  540. package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
  541. package/out/src/storage/adminServer/adminServer.js +38 -49
  542. package/out/src/storage/adminServer/adminServer.js.map +1 -1
  543. package/out/src/storage/adminServer/adminUi.d.ts.map +1 -1
  544. package/out/src/storage/adminServer/adminUi.js +32 -9
  545. package/out/src/storage/adminServer/adminUi.js.map +1 -1
  546. package/out/src/storage/adminServer/reviewUtxos.d.ts +27 -0
  547. package/out/src/storage/adminServer/reviewUtxos.d.ts.map +1 -0
  548. package/out/src/storage/adminServer/reviewUtxos.js +62 -0
  549. package/out/src/storage/adminServer/reviewUtxos.js.map +1 -0
  550. package/out/src/storage/idbHelpers.d.ts.map +1 -1
  551. package/out/src/storage/idbHelpers.js +14 -2
  552. package/out/src/storage/idbHelpers.js.map +1 -1
  553. package/out/src/storage/index.all.d.ts +3 -0
  554. package/out/src/storage/index.all.d.ts.map +1 -1
  555. package/out/src/storage/index.all.js +3 -0
  556. package/out/src/storage/index.all.js.map +1 -1
  557. package/out/src/storage/index.client.d.ts +1 -0
  558. package/out/src/storage/index.client.d.ts.map +1 -1
  559. package/out/src/storage/index.client.js +1 -0
  560. package/out/src/storage/index.client.js.map +1 -1
  561. package/out/src/storage/index.mobile.d.ts +1 -0
  562. package/out/src/storage/index.mobile.d.ts.map +1 -1
  563. package/out/src/storage/index.mobile.js +1 -0
  564. package/out/src/storage/index.mobile.js.map +1 -1
  565. package/out/src/storage/methods/ListActionsSpecOp.d.ts +2 -2
  566. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  567. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  568. package/out/src/storage/methods/ListOutputsSpecOp.d.ts +7 -4
  569. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  570. package/out/src/storage/methods/ListOutputsSpecOp.js +5 -44
  571. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  572. package/out/src/storage/methods/actionBatch.d.ts +9 -2
  573. package/out/src/storage/methods/actionBatch.d.ts.map +1 -1
  574. package/out/src/storage/methods/actionBatch.js +260 -67
  575. package/out/src/storage/methods/actionBatch.js.map +1 -1
  576. package/out/src/storage/methods/actionBatchBlobs.d.ts +2 -0
  577. package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -1
  578. package/out/src/storage/methods/actionBatchBlobs.js +47 -26
  579. package/out/src/storage/methods/actionBatchBlobs.js.map +1 -1
  580. package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -1
  581. package/out/src/storage/methods/actionBatchValidation.js +22 -30
  582. package/out/src/storage/methods/actionBatchValidation.js.map +1 -1
  583. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +7 -2
  584. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  585. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +59 -110
  586. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  587. package/out/src/storage/methods/availableManagedChange.d.ts +8 -1
  588. package/out/src/storage/methods/availableManagedChange.d.ts.map +1 -1
  589. package/out/src/storage/methods/availableManagedChange.js.map +1 -1
  590. package/out/src/storage/methods/createAction.d.ts +60 -3
  591. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  592. package/out/src/storage/methods/createAction.js +396 -106
  593. package/out/src/storage/methods/createAction.js.map +1 -1
  594. package/out/src/storage/methods/generateChange.d.ts +21 -5
  595. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  596. package/out/src/storage/methods/generateChange.js +194 -27
  597. package/out/src/storage/methods/generateChange.js.map +1 -1
  598. package/out/src/storage/methods/getBeefForTransaction.js +5 -7
  599. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  600. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
  601. package/out/src/storage/methods/getSyncChunk.js +42 -11
  602. package/out/src/storage/methods/getSyncChunk.js.map +1 -1
  603. package/out/src/storage/methods/internalizeAction.d.ts +3 -3
  604. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  605. package/out/src/storage/methods/internalizeAction.js +171 -133
  606. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  607. package/out/src/storage/methods/listActionsIdb.d.ts +3 -2
  608. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  609. package/out/src/storage/methods/listActionsIdb.js +2 -2
  610. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  611. package/out/src/storage/methods/listActionsKnex.d.ts +3 -2
  612. package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
  613. package/out/src/storage/methods/listActionsKnex.js +22 -11
  614. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  615. package/out/src/storage/methods/listCertificates.d.ts +3 -2
  616. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  617. package/out/src/storage/methods/listCertificates.js.map +1 -1
  618. package/out/src/storage/methods/listOutputsIdb.d.ts +3 -2
  619. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  620. package/out/src/storage/methods/listOutputsIdb.js +25 -18
  621. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  622. package/out/src/storage/methods/listOutputsKnex.d.ts +3 -2
  623. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
  624. package/out/src/storage/methods/listOutputsKnex.js +33 -31
  625. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  626. package/out/src/storage/methods/managedChangePolicy.d.ts +44 -0
  627. package/out/src/storage/methods/managedChangePolicy.d.ts.map +1 -0
  628. package/out/src/storage/methods/managedChangePolicy.js +58 -0
  629. package/out/src/storage/methods/managedChangePolicy.js.map +1 -0
  630. package/out/src/storage/methods/maxPossibleSatoshis.d.ts +13 -0
  631. package/out/src/storage/methods/maxPossibleSatoshis.d.ts.map +1 -0
  632. package/out/src/storage/methods/maxPossibleSatoshis.js +16 -0
  633. package/out/src/storage/methods/maxPossibleSatoshis.js.map +1 -0
  634. package/out/src/storage/methods/noSendExpiry.d.ts +11 -0
  635. package/out/src/storage/methods/noSendExpiry.d.ts.map +1 -0
  636. package/out/src/storage/methods/noSendExpiry.js +369 -0
  637. package/out/src/storage/methods/noSendExpiry.js.map +1 -0
  638. package/out/src/storage/methods/noSendExpiryLifecycle.d.ts +14 -0
  639. package/out/src/storage/methods/noSendExpiryLifecycle.d.ts.map +1 -0
  640. package/out/src/storage/methods/noSendExpiryLifecycle.js +691 -0
  641. package/out/src/storage/methods/noSendExpiryLifecycle.js.map +1 -0
  642. package/out/src/storage/methods/preparedBeef.d.ts +104 -0
  643. package/out/src/storage/methods/preparedBeef.d.ts.map +1 -0
  644. package/out/src/storage/methods/preparedBeef.js +524 -0
  645. package/out/src/storage/methods/preparedBeef.js.map +1 -0
  646. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  647. package/out/src/storage/methods/processAction.js +144 -32
  648. package/out/src/storage/methods/processAction.js.map +1 -1
  649. package/out/src/storage/methods/purgeData.d.ts.map +1 -1
  650. package/out/src/storage/methods/purgeData.js +21 -3
  651. package/out/src/storage/methods/purgeData.js.map +1 -1
  652. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts +32 -0
  653. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts.map +1 -0
  654. package/out/src/storage/methods/reconcileFailedTransactionInputs.js +142 -0
  655. package/out/src/storage/methods/reconcileFailedTransactionInputs.js.map +1 -0
  656. package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
  657. package/out/src/storage/methods/reviewStatus.js +7 -4
  658. package/out/src/storage/methods/reviewStatus.js.map +1 -1
  659. package/out/src/storage/methods/reviewStatusIdb.d.ts +1 -1
  660. package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
  661. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  662. package/out/src/storage/methods/reviewUtxoOutputs.d.ts +38 -0
  663. package/out/src/storage/methods/reviewUtxoOutputs.d.ts.map +1 -0
  664. package/out/src/storage/methods/reviewUtxoOutputs.js +197 -0
  665. package/out/src/storage/methods/reviewUtxoOutputs.js.map +1 -0
  666. package/out/src/storage/methods/validateSyncProof.d.ts +32 -0
  667. package/out/src/storage/methods/validateSyncProof.d.ts.map +1 -0
  668. package/out/src/storage/methods/validateSyncProof.js +139 -0
  669. package/out/src/storage/methods/validateSyncProof.js.map +1 -0
  670. package/out/src/storage/portable/index.d.ts.map +1 -1
  671. package/out/src/storage/portable/index.js +25 -15
  672. package/out/src/storage/portable/index.js.map +1 -1
  673. package/out/src/storage/remoting/BinaryJson.d.ts +11 -0
  674. package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -1
  675. package/out/src/storage/remoting/BinaryJson.js +94 -8
  676. package/out/src/storage/remoting/BinaryJson.js.map +1 -1
  677. package/out/src/storage/remoting/KnexPaymentReplayStore.d.ts.map +1 -1
  678. package/out/src/storage/remoting/KnexPaymentReplayStore.js +1 -0
  679. package/out/src/storage/remoting/KnexPaymentReplayStore.js.map +1 -1
  680. package/out/src/storage/remoting/KnexSessionManager.d.ts +26 -2
  681. package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -1
  682. package/out/src/storage/remoting/KnexSessionManager.js +221 -40
  683. package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
  684. package/out/src/storage/remoting/KnexSyncTransferStore.d.ts +26 -0
  685. package/out/src/storage/remoting/KnexSyncTransferStore.d.ts.map +1 -0
  686. package/out/src/storage/remoting/KnexSyncTransferStore.js +222 -0
  687. package/out/src/storage/remoting/KnexSyncTransferStore.js.map +1 -0
  688. package/out/src/storage/remoting/StorageClient.d.ts +6 -1
  689. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  690. package/out/src/storage/remoting/StorageClient.js +65 -8
  691. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  692. package/out/src/storage/remoting/StorageClientBase.d.ts +57 -10
  693. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  694. package/out/src/storage/remoting/StorageClientBase.js +382 -10
  695. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  696. package/out/src/storage/remoting/StorageMobile.d.ts +5 -0
  697. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  698. package/out/src/storage/remoting/StorageMobile.js +13 -11
  699. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  700. package/out/src/storage/remoting/StorageServer.d.ts +10 -1
  701. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  702. package/out/src/storage/remoting/StorageServer.js +232 -20
  703. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  704. package/out/src/storage/remoting/SyncTransfer.d.ts +29 -0
  705. package/out/src/storage/remoting/SyncTransfer.d.ts.map +1 -0
  706. package/out/src/storage/remoting/SyncTransfer.js +153 -0
  707. package/out/src/storage/remoting/SyncTransfer.js.map +1 -0
  708. package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +1 -1
  709. package/out/src/storage/remoting/entityValidationHelpers.js +35 -0
  710. package/out/src/storage/remoting/entityValidationHelpers.js.map +1 -1
  711. package/out/src/storage/remoting/syncChunkBinary.d.ts +14 -0
  712. package/out/src/storage/remoting/syncChunkBinary.d.ts.map +1 -0
  713. package/out/src/storage/remoting/syncChunkBinary.js +42 -0
  714. package/out/src/storage/remoting/syncChunkBinary.js.map +1 -0
  715. package/out/src/storage/remoting/validateRpcSyncProofs.d.ts +5 -0
  716. package/out/src/storage/remoting/validateRpcSyncProofs.d.ts.map +1 -0
  717. package/out/src/storage/remoting/validateRpcSyncProofs.js +82 -0
  718. package/out/src/storage/remoting/validateRpcSyncProofs.js.map +1 -0
  719. package/out/src/storage/schema/KnexMigrations.d.ts +6 -0
  720. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  721. package/out/src/storage/schema/KnexMigrations.js +194 -5
  722. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  723. package/out/src/storage/schema/StorageIdbSchema.d.ts +3 -0
  724. package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
  725. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
  726. package/out/src/storage/schema/entities/EntityOutput.js +24 -4
  727. package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
  728. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -1
  729. package/out/src/storage/schema/entities/EntityOutputBasket.js +5 -2
  730. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
  731. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +4 -1
  732. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
  733. package/out/src/storage/schema/entities/EntityProvenTx.js +125 -41
  734. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  735. package/out/src/storage/schema/entities/EntityProvenTxReq.js +1 -1
  736. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  737. package/out/src/storage/schema/entities/EntitySyncState.d.ts +4 -2
  738. package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
  739. package/out/src/storage/schema/entities/EntitySyncState.js +12 -6
  740. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  741. package/out/src/storage/schema/entities/EntityTransaction.d.ts +26 -0
  742. package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
  743. package/out/src/storage/schema/entities/EntityTransaction.js +221 -21
  744. package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
  745. package/out/src/storage/schema/tables/TableCertificate.d.ts +1 -1
  746. package/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -1
  747. package/out/src/storage/schema/tables/TableCertificateField.d.ts +1 -1
  748. package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -1
  749. package/out/src/storage/schema/tables/TableCommission.d.ts +1 -1
  750. package/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -1
  751. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +1 -1
  752. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -1
  753. package/out/src/storage/schema/tables/TableOutput.d.ts +1 -1
  754. package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
  755. package/out/src/storage/schema/tables/TableOutputBasket.d.ts +1 -1
  756. package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -1
  757. package/out/src/storage/schema/tables/TableOutputTag.d.ts +1 -1
  758. package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -1
  759. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +1 -1
  760. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -1
  761. package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.d.ts +23 -0
  762. package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.d.ts.map +1 -0
  763. package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.js +3 -0
  764. package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.js.map +1 -0
  765. package/out/src/storage/schema/tables/TableProvenTx.d.ts +1 -1
  766. package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -1
  767. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +1 -1
  768. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -1
  769. package/out/src/storage/schema/tables/TableSettings.d.ts +2 -2
  770. package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
  771. package/out/src/storage/schema/tables/TableSyncState.d.ts +1 -1
  772. package/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -1
  773. package/out/src/storage/schema/tables/TableTransaction.d.ts +17 -1
  774. package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
  775. package/out/src/storage/schema/tables/TableTransaction.js +14 -1
  776. package/out/src/storage/schema/tables/TableTransaction.js.map +1 -1
  777. package/out/src/storage/schema/tables/TableTxLabel.d.ts +1 -1
  778. package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -1
  779. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +1 -1
  780. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -1
  781. package/out/src/storage/schema/tables/TableUser.d.ts +1 -1
  782. package/out/src/storage/schema/tables/TableUser.d.ts.map +1 -1
  783. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  784. package/out/src/storage/sync/StorageMySQLDojoReader.js +8 -7
  785. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  786. package/out/src/storage/sync/SyncPageBudget.d.ts +8 -0
  787. package/out/src/storage/sync/SyncPageBudget.d.ts.map +1 -0
  788. package/out/src/storage/sync/SyncPageBudget.js +24 -0
  789. package/out/src/storage/sync/SyncPageBudget.js.map +1 -0
  790. package/out/src/storage/sync/syncCheckpoint.d.ts +4 -0
  791. package/out/src/storage/sync/syncCheckpoint.d.ts.map +1 -0
  792. package/out/src/storage/sync/syncCheckpoint.js +49 -0
  793. package/out/src/storage/sync/syncCheckpoint.js.map +1 -0
  794. package/out/src/utility/Argon2idBackend.d.ts +36 -0
  795. package/out/src/utility/Argon2idBackend.d.ts.map +1 -0
  796. package/out/src/utility/Argon2idBackend.js +60 -0
  797. package/out/src/utility/Argon2idBackend.js.map +1 -0
  798. package/out/src/utility/actionBatchDigest.d.ts.map +1 -1
  799. package/out/src/utility/actionBatchDigest.js +9 -7
  800. package/out/src/utility/actionBatchDigest.js.map +1 -1
  801. package/out/src/utility/actionBatchPack.d.ts.map +1 -1
  802. package/out/src/utility/actionBatchPack.js +7 -12
  803. package/out/src/utility/actionBatchPack.js.map +1 -1
  804. package/out/src/utility/beefForTxids.d.ts +12 -3
  805. package/out/src/utility/beefForTxids.d.ts.map +1 -1
  806. package/out/src/utility/beefForTxids.js +69 -21
  807. package/out/src/utility/beefForTxids.js.map +1 -1
  808. package/out/src/utility/brc153ReferenceLabels.d.ts +16 -0
  809. package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -1
  810. package/out/src/utility/brc153ReferenceLabels.js +20 -5
  811. package/out/src/utility/brc153ReferenceLabels.js.map +1 -1
  812. package/out/src/utility/brc177NoSendExpiry.d.ts +34 -0
  813. package/out/src/utility/brc177NoSendExpiry.d.ts.map +1 -0
  814. package/out/src/utility/brc177NoSendExpiry.js +81 -0
  815. package/out/src/utility/brc177NoSendExpiry.js.map +1 -0
  816. package/out/src/utility/canonicalizeAtomicBeef.d.ts +12 -0
  817. package/out/src/utility/canonicalizeAtomicBeef.d.ts.map +1 -0
  818. package/out/src/utility/canonicalizeAtomicBeef.js +23 -0
  819. package/out/src/utility/canonicalizeAtomicBeef.js.map +1 -0
  820. package/out/src/utility/exactActionSpend.d.ts +9 -0
  821. package/out/src/utility/exactActionSpend.d.ts.map +1 -0
  822. package/out/src/utility/exactActionSpend.js +26 -0
  823. package/out/src/utility/exactActionSpend.js.map +1 -0
  824. package/out/src/utility/hashWasm.d.ts +1 -1
  825. package/out/src/utility/hashWasm.d.ts.map +1 -1
  826. package/out/src/utility/hashWasm.js +83 -1
  827. package/out/src/utility/hashWasm.js.map +1 -1
  828. package/out/src/utility/identityUtils.d.ts +44 -4
  829. package/out/src/utility/identityUtils.d.ts.map +1 -1
  830. package/out/src/utility/identityUtils.js +523 -61
  831. package/out/src/utility/identityUtils.js.map +1 -1
  832. package/out/src/utility/index.all.d.ts +2 -0
  833. package/out/src/utility/index.all.d.ts.map +1 -1
  834. package/out/src/utility/index.all.js +2 -0
  835. package/out/src/utility/index.all.js.map +1 -1
  836. package/out/src/utility/index.client.d.ts +2 -0
  837. package/out/src/utility/index.client.d.ts.map +1 -1
  838. package/out/src/utility/index.client.js +2 -0
  839. package/out/src/utility/index.client.js.map +1 -1
  840. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
  841. package/out/src/utility/parseTxScriptOffsets.js +1 -19
  842. package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
  843. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  844. package/out/src/utility/tscProofToMerklePath.js +35 -4
  845. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  846. package/out/src/utility/utilityHelpers.d.ts +1 -1
  847. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  848. package/out/src/utility/utilityHelpers.js +10 -7
  849. package/out/src/utility/utilityHelpers.js.map +1 -1
  850. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  851. package/out/src/utility/utilityHelpers.noBuffer.js +6 -6
  852. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  853. package/out/src/utility/verifyOverlayOutput.d.ts +12 -0
  854. package/out/src/utility/verifyOverlayOutput.d.ts.map +1 -0
  855. package/out/src/utility/verifyOverlayOutput.js +22 -0
  856. package/out/src/utility/verifyOverlayOutput.js.map +1 -0
  857. package/out/src/utility/walletResultGuards.d.ts +14 -0
  858. package/out/src/utility/walletResultGuards.d.ts.map +1 -0
  859. package/out/src/utility/walletResultGuards.js +28 -0
  860. package/out/src/utility/walletResultGuards.js.map +1 -0
  861. package/out/src/wab-client/WABClient.d.ts +4 -17
  862. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  863. package/out/src/wab-client/WABClient.js +35 -12
  864. package/out/src/wab-client/WABClient.js.map +1 -1
  865. package/out/src/wab-client/WABResponseValidation.d.ts +48 -0
  866. package/out/src/wab-client/WABResponseValidation.d.ts.map +1 -0
  867. package/out/src/wab-client/WABResponseValidation.js +321 -0
  868. package/out/src/wab-client/WABResponseValidation.js.map +1 -0
  869. package/out/src/wab-client/WABTransport.d.ts +17 -23
  870. package/out/src/wab-client/WABTransport.d.ts.map +1 -1
  871. package/out/src/wab-client/WABTransport.js +130 -142
  872. package/out/src/wab-client/WABTransport.js.map +1 -1
  873. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +8 -0
  874. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  875. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +3 -2
  876. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  877. package/package.json +45 -41
  878. package/docs/open-rpc/index.html +0 -46
@@ -3,12 +3,170 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WalletAuthenticationManager = exports.WABAccountContinuityError = void 0;
4
4
  const CWIStyleWalletManager_1 = require("./CWIStyleWalletManager");
5
5
  const sdk_1 = require("@bsv/sdk");
6
+ const utils_1 = require("@bsv/sdk/primitives/utils");
6
7
  const WABTransport_1 = require("./wab-client/WABTransport");
8
+ const WABResponseValidation_1 = require("./wab-client/WABResponseValidation");
9
+ const ScriptTemplateBRC29_1 = require("./utility/ScriptTemplateBRC29");
10
+ const generateChange_1 = require("./storage/methods/generateChange");
7
11
  const DEFAULT_AUTH_SESSION_TTL_MS = 10 * 60 * 1000;
8
12
  const MAX_AUTH_SESSION_TTL_MS = 60 * 60 * 1000;
13
+ const AUTH_COMPONENT = 'wallet-toolbox.authentication-manager';
14
+ const AUTH_EVENT = 'wallet-toolbox.authentication.';
15
+ const EXISTING_USER = 'existing-user';
16
+ const NEW_USER = 'new-user';
17
+ const PENDING_REGISTRATION = 'pending';
18
+ const WAB_FAUCET_RECOVERY_BASKET = 'wab faucet recovery';
19
+ const WAB_FAUCET_RECOVERY_VERSION = 1;
20
+ const MAX_WAB_FAUCET_RECOVERY_BEEF_BYTES = 16 * 1024 * 1024;
21
+ function parseFaucetRecoveryInstructions(value) {
22
+ if (typeof value !== 'string' || value.length === 0 || value.length > 2048)
23
+ return undefined;
24
+ let parsed;
25
+ try {
26
+ parsed = JSON.parse(value);
27
+ }
28
+ catch {
29
+ return undefined;
30
+ }
31
+ if (parsed == null || typeof parsed !== 'object' || Array.isArray(parsed))
32
+ return undefined;
33
+ const record = parsed;
34
+ if (record.version !== WAB_FAUCET_RECOVERY_VERSION ||
35
+ typeof record.faucetOutpoint !== 'string' ||
36
+ !/^[0-9a-f]{64}\.(?:0|[1-9]\d*)$/i.test(record.faucetOutpoint) ||
37
+ typeof record.derivationPrefix !== 'string' ||
38
+ typeof record.derivationSuffix !== 'string' ||
39
+ typeof record.senderIdentityKey !== 'string') {
40
+ return undefined;
41
+ }
42
+ try {
43
+ const prefix = (0, utils_1.toArray)(record.derivationPrefix, 'base64');
44
+ const suffix = (0, utils_1.toArray)(record.derivationSuffix, 'base64');
45
+ if (prefix.length === 0 ||
46
+ prefix.length > 64 ||
47
+ suffix.length === 0 ||
48
+ suffix.length > 64 ||
49
+ (0, utils_1.toBase64)(prefix) !== record.derivationPrefix ||
50
+ (0, utils_1.toBase64)(suffix) !== record.derivationSuffix ||
51
+ sdk_1.PublicKey.fromString(record.senderIdentityKey).toString() !== record.senderIdentityKey) {
52
+ return undefined;
53
+ }
54
+ }
55
+ catch {
56
+ return undefined;
57
+ }
58
+ return record;
59
+ }
60
+ function transactionInputOutpoint(transaction, inputIndex) {
61
+ const input = transaction.inputs[inputIndex];
62
+ if (input == null || !Number.isSafeInteger(input.sourceOutputIndex) || input.sourceOutputIndex < 0)
63
+ return undefined;
64
+ const sourceTxid = input.sourceTXID ?? input.sourceTransaction?.id('hex');
65
+ if (sourceTxid == null || !/^[0-9a-f]{64}$/i.test(sourceTxid))
66
+ return undefined;
67
+ return `${sourceTxid.toLowerCase()}.${input.sourceOutputIndex}`;
68
+ }
69
+ async function recoverWABFaucetPayment(wallet, faucetOutpoint, adminOriginator, resumeNosend = true) {
70
+ const label = `wab faucet ${faucetOutpoint.slice(0, 64)}`;
71
+ const listed = await wallet.listOutputs({
72
+ basket: WAB_FAUCET_RECOVERY_BASKET,
73
+ include: 'entire transactions',
74
+ includeCustomInstructions: true,
75
+ limit: 100
76
+ }, adminOriginator);
77
+ if (!Array.isArray(listed.outputs))
78
+ throw new Error('Wallet returned invalid faucet recovery outputs.');
79
+ const candidates = listed.outputs.flatMap(output => {
80
+ const instructions = parseFaucetRecoveryInstructions(output.customInstructions);
81
+ return instructions?.faucetOutpoint.toLowerCase() === faucetOutpoint ? [{ output, instructions }] : [];
82
+ });
83
+ if (candidates.length > 1)
84
+ throw new Error('Wallet returned ambiguous faucet recovery outputs.');
85
+ if (candidates.length === 1) {
86
+ if (!Array.isArray(listed.BEEF) ||
87
+ listed.BEEF.length === 0 ||
88
+ listed.BEEF.length > MAX_WAB_FAUCET_RECOVERY_BEEF_BYTES) {
89
+ throw new Error('Wallet omitted bounded faucet recovery transaction evidence.');
90
+ }
91
+ const { output, instructions } = candidates[0];
92
+ const match = /^([0-9a-f]{64})\.(0|[1-9]\d*)$/i.exec(output.outpoint);
93
+ if (match == null)
94
+ throw new Error('Wallet returned an invalid faucet recovery outpoint.');
95
+ const outputIndex = Number(match[2]);
96
+ if (!Number.isSafeInteger(outputIndex) || outputIndex > 0xffffffff) {
97
+ throw new Error('Wallet returned an invalid faucet recovery output index.');
98
+ }
99
+ const beef = sdk_1.Beef.fromBinaryStrict(listed.BEEF);
100
+ const transaction = beef.findTxid(match[1].toLowerCase())?.tx;
101
+ const transactionOutput = transaction?.outputs[outputIndex];
102
+ if (transaction == null ||
103
+ transactionOutput == null ||
104
+ transactionOutput.satoshis !== output.satoshis ||
105
+ transaction.inputs.filter((_, index) => transactionInputOutpoint(transaction, index) === faucetOutpoint)
106
+ .length !== 1) {
107
+ throw new Error('Wallet returned unrelated faucet recovery transaction evidence.');
108
+ }
109
+ const result = await wallet.internalizeAction({
110
+ tx: beef.toBinaryAtomic(transaction.id('hex')),
111
+ outputs: [
112
+ {
113
+ outputIndex,
114
+ protocol: 'wallet payment',
115
+ paymentRemittance: {
116
+ derivationPrefix: instructions.derivationPrefix,
117
+ derivationSuffix: instructions.derivationSuffix,
118
+ senderIdentityKey: instructions.senderIdentityKey
119
+ }
120
+ }
121
+ ],
122
+ description: 'Recover WAB faucet funding'
123
+ }, adminOriginator);
124
+ if (result.accepted !== true)
125
+ throw new Error('Wallet did not accept its recovered WAB faucet payment.');
126
+ return true;
127
+ }
128
+ const actions = await wallet.listActions({
129
+ labels: [label],
130
+ includeLabels: true,
131
+ includeInputs: true,
132
+ includeOutputs: true,
133
+ includeOutputLockingScripts: true,
134
+ limit: 10
135
+ }, adminOriginator);
136
+ if (!Array.isArray(actions.actions))
137
+ throw new Error('Wallet returned invalid faucet recovery actions.');
138
+ const matchingActions = actions.actions.filter(action => action.labels?.includes(label));
139
+ if (matchingActions.length === 0)
140
+ return false;
141
+ if (matchingActions.length !== 1)
142
+ throw new Error('Wallet returned ambiguous faucet recovery actions.');
143
+ const action = matchingActions[0];
144
+ const matchingInputs = action.inputs?.filter(input => input.sourceOutpoint.toLowerCase() === faucetOutpoint) ?? [];
145
+ const matchingOutputs = action.outputs?.filter(output => {
146
+ const instructions = parseFaucetRecoveryInstructions(output.customInstructions);
147
+ return instructions?.faucetOutpoint.toLowerCase() === faucetOutpoint;
148
+ }) ?? [];
149
+ if (matchingInputs.length !== 1 || matchingOutputs.length !== 1) {
150
+ throw new Error('Wallet returned unrelated faucet recovery action evidence.');
151
+ }
152
+ if ((action.status === 'completed' || action.status === 'sending' || action.status === 'unproven') &&
153
+ matchingOutputs[0].basket === 'default') {
154
+ return true;
155
+ }
156
+ if (action.status === 'nosend') {
157
+ if (!resumeNosend)
158
+ throw new Error('Prior WAB faucet action remained unsent after broadcast retry.');
159
+ await wallet.createAction({
160
+ description: 'Resume WAB faucet broadcast',
161
+ options: { sendWith: [action.txid], acceptDelayedBroadcast: false }
162
+ }, adminOriginator);
163
+ return await recoverWABFaucetPayment(wallet, faucetOutpoint, adminOriginator, false);
164
+ }
165
+ throw new Error('Prior WAB faucet action requires reconciliation before retrying.');
166
+ }
9
167
  class WABAccountContinuityError extends Error {
10
168
  code = 'WERR_WAB_ACCOUNT_CONTINUITY';
11
- constructor(message = 'WAB and UMP account state did not agree. Retry or use account recovery.') {
169
+ constructor(message = 'WAB and UMP accounts disagree; retry or recover.') {
12
170
  super(message);
13
171
  this.name = 'WABAccountContinuityError';
14
172
  }
@@ -24,12 +182,14 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
24
182
  wabClient; // instance of WABClient
25
183
  authMethod; // chosen AuthMethod interactor
26
184
  authSession;
185
+ phoneChangeSession;
186
+ pendingRegistrationPresentationKey;
27
187
  authSessionTtlMs;
28
188
  constructor(...[adminOriginator, walletBuilder, interactor, recoveryKeySaver, passwordRetriever, wabClient, authMethod, stateSnapshot, options = {}]) {
29
189
  super(adminOriginator, walletBuilder, interactor, recoveryKeySaver, passwordRetriever,
30
190
  // Here, we provide a custom new wallet funder that uses the Secret Server
31
191
  async (presentationKey, wallet, adminOriginator) => {
32
- const faucetResponse = await this.wabClient.requestFaucet(sdk_1.Utils.toHex(presentationKey));
192
+ const faucetResponse = await this.wabClient.requestFaucet((0, utils_1.toHex)(presentationKey));
33
193
  const paymentData = faucetResponse.paymentData;
34
194
  const faucetSucceeded = faucetResponse.success;
35
195
  if (faucetSucceeded !== true || paymentData == null) {
@@ -47,37 +207,139 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
47
207
  throw new Error('Faucet response missing required fields: k, tx, or txid');
48
208
  }
49
209
  try {
210
+ if (!/^[0-9a-f]{64}$/i.test(paymentData.txid)) {
211
+ throw new Error('Faucet transaction ID is invalid.');
212
+ }
213
+ if (!/^[0-9a-f]{1,64}$/i.test(paymentData.k)) {
214
+ throw new Error('Faucet R-puzzle scalar is invalid.');
215
+ }
216
+ const faucetK = new sdk_1.PrivateKey(paymentData.k, 16, 'be', 'error');
217
+ if (faucetK.isZero()) {
218
+ throw new Error('Faucet R-puzzle scalar is invalid.');
219
+ }
50
220
  const tx = sdk_1.Transaction.fromAtomicBEEF(paymentData.tx);
51
- const faucetRedeemTXCreationResult = await wallet.createAction({
221
+ const txid = tx.id('hex');
222
+ if (txid !== paymentData.txid.toLowerCase()) {
223
+ throw new Error('Faucet transaction ID does not match its transaction data.');
224
+ }
225
+ const faucetOutput = tx.outputs[0];
226
+ if (faucetOutput == null) {
227
+ throw new Error('Faucet transaction output 0 is missing.');
228
+ }
229
+ const faucetSatoshis = faucetOutput.satoshis;
230
+ if (typeof faucetSatoshis !== 'number' ||
231
+ !Number.isSafeInteger(faucetSatoshis) ||
232
+ faucetSatoshis <= 0 ||
233
+ faucetSatoshis > 21e14) {
234
+ throw new Error('Faucet transaction output 0 has an invalid amount.');
235
+ }
236
+ let rValue = faucetK.toPublicKey().getX().toArray();
237
+ if (rValue[0] > 127)
238
+ rValue = [0, ...rValue];
239
+ const faucetRedemptionPuzzle = new sdk_1.RPuzzle();
240
+ if (faucetOutput.lockingScript.toHex() !== faucetRedemptionPuzzle.lock(rValue).toHex()) {
241
+ throw new Error('Faucet transaction output 0 does not match its R-puzzle scalar.');
242
+ }
243
+ const randomRedemptionPrivateKey = sdk_1.PrivateKey.fromRandom();
244
+ const faucetRedeemUnlocker = faucetRedemptionPuzzle.unlock(faucetK, randomRedemptionPrivateKey);
245
+ const outpoint = `${txid}.0`;
246
+ if (paymentData.outputIndex !== undefined && paymentData.outputIndex !== 0) {
247
+ throw new Error('Faucet response output index does not match output 0.');
248
+ }
249
+ if (paymentData.amount !== undefined && paymentData.amount !== faucetSatoshis) {
250
+ throw new Error('Faucet response amount does not match output 0.');
251
+ }
252
+ if (await recoverWABFaucetPayment(wallet, outpoint, adminOriginator))
253
+ return;
254
+ const identityResult = await wallet.getPublicKey({ identityKey: true }, adminOriginator);
255
+ const identityKey = sdk_1.PublicKey.fromString(identityResult.publicKey).toString();
256
+ const paymentSender = sdk_1.PrivateKey.fromRandom();
257
+ const derivationPrefix = (0, utils_1.toBase64)((0, sdk_1.Random)(16));
258
+ const derivationSuffix = (0, utils_1.toBase64)((0, sdk_1.Random)(16));
259
+ const paymentTemplate = new ScriptTemplateBRC29_1.ScriptTemplateBRC29({
260
+ derivationPrefix,
261
+ derivationSuffix,
262
+ keyDeriver: new sdk_1.CachedKeyDeriver(paymentSender)
263
+ });
264
+ const paymentLock = paymentTemplate.lock(paymentSender.toString(), identityKey).toHex();
265
+ const recoveryInstructions = JSON.stringify({
266
+ version: 1,
267
+ faucetOutpoint: outpoint,
268
+ derivationPrefix,
269
+ derivationSuffix,
270
+ senderIdentityKey: paymentSender.toPublicKey().toString()
271
+ });
272
+ const signed = await (0, sdk_1.completeBoundAction)(wallet, {
52
273
  inputBEEF: tx.toBEEF(),
53
274
  inputs: [
54
275
  {
55
- outpoint: `${paymentData.txid}.0`,
276
+ outpoint,
56
277
  unlockingScriptLength: 108,
57
278
  inputDescription: 'Fund from faucet'
58
279
  }
59
280
  ],
281
+ outputs: [
282
+ {
283
+ lockingScript: paymentLock,
284
+ satoshis: generateChange_1.maxPossibleSatoshis,
285
+ outputDescription: 'Receive WAB faucet funds',
286
+ basket: 'wab faucet recovery',
287
+ customInstructions: recoveryInstructions
288
+ }
289
+ ],
290
+ labels: [`wab faucet ${txid}`],
60
291
  description: 'Fund wallet',
61
292
  options: {
62
- acceptDelayedBroadcast: false
293
+ acceptDelayedBroadcast: false,
294
+ noSend: true,
295
+ randomizeOutputs: false
63
296
  }
64
- }, adminOriginator);
65
- if (faucetRedeemTXCreationResult.signableTransaction == null) {
66
- throw new Error('Faucet redemption did not return a signableTransaction');
67
- }
68
- const faucetRedeemTX = sdk_1.Transaction.fromAtomicBEEF(faucetRedeemTXCreationResult.signableTransaction.tx);
69
- const faucetRedemptionPuzzle = new sdk_1.RPuzzle();
70
- const randomRedemptionPrivateKey = sdk_1.PrivateKey.fromRandom();
71
- const faucetRedeemUnlocker = faucetRedemptionPuzzle.unlock(new sdk_1.BigNumber(paymentData.k, 16), randomRedemptionPrivateKey);
72
- const faucetRedeemUnlockingScript = await faucetRedeemUnlocker.sign(faucetRedeemTX, 0);
73
- await wallet.signAction({
74
- reference: faucetRedeemTXCreationResult.signableTransaction.reference,
75
- spends: {
297
+ }, {
298
+ inputSigners: {
299
+ [outpoint]: async (transaction, inputIndex) => await faucetRedeemUnlocker.sign(transaction, inputIndex)
300
+ },
301
+ outputSatoshisRanges: {
76
302
  0: {
77
- unlockingScript: faucetRedeemUnlockingScript.toHex()
303
+ minimumSatoshis: 1,
304
+ maximumSatoshis: faucetSatoshis
78
305
  }
79
306
  }
307
+ }, adminOriginator);
308
+ const matches = signed.outputs.flatMap((output, outputIndex) => {
309
+ const outputSatoshis = output.satoshis;
310
+ return output.lockingScript.toHex() === paymentLock &&
311
+ typeof outputSatoshis === 'number' &&
312
+ outputSatoshis >= 1 &&
313
+ outputSatoshis <= faucetSatoshis
314
+ ? [outputIndex]
315
+ : [];
80
316
  });
317
+ if (matches.length !== 1) {
318
+ throw new Error('Faucet redemption omitted or duplicated its wallet-owned output.');
319
+ }
320
+ const redemptionTxid = signed.id('hex');
321
+ await wallet.createAction({
322
+ description: 'Broadcast WAB faucet funding',
323
+ options: { sendWith: [redemptionTxid], acceptDelayedBroadcast: false }
324
+ }, adminOriginator);
325
+ const internalized = await wallet.internalizeAction({
326
+ tx: signed.toAtomicBEEF(),
327
+ outputs: [
328
+ {
329
+ outputIndex: matches[0],
330
+ protocol: 'wallet payment',
331
+ paymentRemittance: {
332
+ derivationPrefix,
333
+ derivationSuffix,
334
+ senderIdentityKey: paymentSender.toPublicKey().toString()
335
+ }
336
+ }
337
+ ],
338
+ description: 'Receive WAB faucet funding'
339
+ }, adminOriginator);
340
+ if (internalized.accepted !== true) {
341
+ throw new Error('Wallet did not accept its WAB faucet payment.');
342
+ }
81
343
  }
82
344
  catch (error) {
83
345
  const message = error instanceof Error ? error.message : String(error);
@@ -87,9 +349,7 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
87
349
  this.wabClient = wabClient;
88
350
  this.authMethod = authMethod;
89
351
  const authSessionTtlMs = options.authSessionTtlMs ?? DEFAULT_AUTH_SESSION_TTL_MS;
90
- if (!Number.isInteger(authSessionTtlMs) ||
91
- authSessionTtlMs <= 0 ||
92
- authSessionTtlMs > MAX_AUTH_SESSION_TTL_MS) {
352
+ if (!Number.isInteger(authSessionTtlMs) || authSessionTtlMs <= 0 || authSessionTtlMs > MAX_AUTH_SESSION_TTL_MS) {
93
353
  throw new TypeError(`authSessionTtlMs must be between 1 and ${MAX_AUTH_SESSION_TTL_MS}.`);
94
354
  }
95
355
  this.authSessionTtlMs = authSessionTtlMs;
@@ -109,12 +369,13 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
109
369
  */
110
370
  async startAuth(payload) {
111
371
  if (this.authMethod == null) {
112
- throw new Error('No AuthMethod selected in WalletAuthenticationManager');
372
+ throw new Error('No WAB authentication method selected.');
113
373
  }
114
374
  const authMethod = this.authMethod;
115
375
  if (this.authenticated)
116
376
  throw new Error('User is already authenticated');
117
377
  this.cancelAuth();
378
+ this.pendingRegistrationPresentationKey = undefined;
118
379
  const presentationKey = this.generateTemporaryPresentationKey();
119
380
  const correlationId = this.telemetry.enabled === true ? this.telemetry.createCorrelationId() : undefined;
120
381
  this.authSession = {
@@ -124,8 +385,8 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
124
385
  ...(correlationId !== undefined ? { correlationId } : {})
125
386
  };
126
387
  this.telemetry.capture({
127
- name: 'wallet-toolbox.authentication.wab-start.started',
128
- component: 'wallet-toolbox.authentication-manager',
388
+ name: `${AUTH_EVENT}wab-start.started`,
389
+ component: AUTH_COMPONENT,
129
390
  severity: 'debug',
130
391
  correlationId,
131
392
  attributes: { methodType: authMethod.methodType }
@@ -134,14 +395,12 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
134
395
  const startRes = await this.wabClient.startAuthMethod(authMethod, presentationKey, payload, correlationId);
135
396
  const startSucceeded = startRes.success;
136
397
  if (startSucceeded !== true) {
137
- const message = startRes.message != null && startRes.message.length > 0
138
- ? startRes.message
139
- : 'Failed to start WAB auth method';
398
+ const message = startRes.message != null && startRes.message.length > 0 ? startRes.message : 'Failed to start WAB auth method';
140
399
  throw new Error(message);
141
400
  }
142
401
  this.telemetry.capture({
143
- name: 'wallet-toolbox.authentication.wab-start.completed',
144
- component: 'wallet-toolbox.authentication-manager',
402
+ name: `${AUTH_EVENT}wab-start.completed`,
403
+ component: AUTH_COMPONENT,
145
404
  severity: 'info',
146
405
  correlationId,
147
406
  attributes: { methodType: authMethod.methodType }
@@ -150,14 +409,12 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
150
409
  catch (error) {
151
410
  this.cancelAuth();
152
411
  this.telemetry.capture({
153
- name: 'wallet-toolbox.authentication.wab-start.failed',
154
- component: 'wallet-toolbox.authentication-manager',
412
+ name: `${AUTH_EVENT}wab-start.failed`,
413
+ component: AUTH_COMPONENT,
155
414
  severity: 'warn',
156
415
  correlationId,
157
416
  attributes: { methodType: authMethod.methodType },
158
- error: error instanceof WABTransport_1.WABClientError
159
- ? error
160
- : new Error('WAB authentication start failed.')
417
+ error: error instanceof WABTransport_1.WABClientError ? error : new Error('WAB authentication start failed.')
161
418
  });
162
419
  throw error;
163
420
  }
@@ -167,31 +424,29 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
167
424
  */
168
425
  async completeAuth(payload) {
169
426
  if (this.authMethod == null || this.authSession == null) {
170
- throw new Error('No AuthMethod selected in WalletAuthenticationManager or startAuth has yet to be called.');
427
+ throw new Error('Start WAB authentication first.');
171
428
  }
172
429
  const authMethod = this.authMethod;
173
430
  if (this.authSession.methodType !== authMethod.methodType) {
174
431
  this.cancelAuth();
175
- throw new Error('The selected authentication method changed. Start authentication again.');
432
+ throw new Error('WAB authentication method changed; restart.');
176
433
  }
177
434
  if (Date.now() >= this.authSession.expiresAt) {
178
435
  this.cancelAuth();
179
- throw new Error('The WAB authentication session expired. Start authentication again.');
436
+ throw new Error('WAB authentication expired; restart.');
180
437
  }
181
438
  const session = this.authSession;
182
439
  const result = await this.wabClient.completeAuthMethod(authMethod, session.presentationKey, payload, session.correlationId);
183
440
  const authSucceeded = result.success;
184
441
  if (authSucceeded !== true || result.presentationKey == null || result.presentationKey.length === 0) {
185
442
  this.telemetry.capture({
186
- name: 'wallet-toolbox.authentication.wab-complete.rejected',
187
- component: 'wallet-toolbox.authentication-manager',
443
+ name: `${AUTH_EVENT}wab-complete.rejected`,
444
+ component: AUTH_COMPONENT,
188
445
  severity: 'warn',
189
446
  correlationId: session.correlationId,
190
447
  attributes: { methodType: session.methodType }
191
448
  });
192
- const message = result.message != null && result.message.length > 0
193
- ? result.message
194
- : 'Failed to complete WAB auth';
449
+ const message = result.message != null && result.message.length > 0 ? result.message : 'Failed to complete WAB auth';
195
450
  throw new Error(message);
196
451
  }
197
452
  if (!/^[0-9a-fA-F]{64}$/.test(result.presentationKey)) {
@@ -200,13 +455,14 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
200
455
  }
201
456
  this.cancelAuth();
202
457
  const wabAccountStatus = this.inferAccountStatus(result, session.presentationKey);
458
+ const registrationStatus = this.readRegistrationStatus(result);
203
459
  try {
204
- await this.providePresentationKey(sdk_1.Utils.toArray(result.presentationKey, 'hex'));
460
+ await this.provideWABPresentationKey(result, wabAccountStatus);
205
461
  }
206
462
  catch (error) {
207
463
  this.telemetry.capture({
208
- name: 'wallet-toolbox.authentication.ump-continuity.failed',
209
- component: 'wallet-toolbox.authentication-manager',
464
+ name: `${AUTH_EVENT}ump-continuity.failed`,
465
+ component: AUTH_COMPONENT,
210
466
  severity: 'warn',
211
467
  correlationId: session.correlationId,
212
468
  attributes: {
@@ -217,27 +473,12 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
217
473
  });
218
474
  throw error;
219
475
  }
220
- if (wabAccountStatus === 'existing-user' && this.authenticationFlow !== 'existing-user') {
221
- super.destroy();
222
- const error = new WABAccountContinuityError();
223
- this.telemetry.capture({
224
- name: 'wallet-toolbox.authentication.account-continuity.mismatch',
225
- component: 'wallet-toolbox.authentication-manager',
226
- severity: 'error',
227
- correlationId: session.correlationId,
228
- attributes: {
229
- methodType: session.methodType,
230
- wabAccountStatus,
231
- umpAccountStatus: 'new-user'
232
- },
233
- error
234
- });
235
- throw error;
236
- }
237
- const continuity = wabAccountStatus === this.authenticationFlow ? 'matched' : 'ump-existing';
476
+ this.assertAccountContinuity(wabAccountStatus, registrationStatus, session);
477
+ await this.reconcilePendingRegistration(result, registrationStatus);
478
+ const continuity = this.describeContinuity(wabAccountStatus, registrationStatus);
238
479
  this.telemetry.capture({
239
- name: 'wallet-toolbox.authentication.completed',
240
- component: 'wallet-toolbox.authentication-manager',
480
+ name: `${AUTH_EVENT}completed`,
481
+ component: AUTH_COMPONENT,
241
482
  severity: continuity === 'matched' ? 'info' : 'warn',
242
483
  correlationId: session.correlationId,
243
484
  attributes: {
@@ -251,40 +492,252 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
251
492
  cancelAuth() {
252
493
  this.authSession = undefined;
253
494
  }
495
+ /**
496
+ * Publishes a new UMP token before committing WAB's registration state.
497
+ * Finalization is deliberately best-effort: if its response is lost, the
498
+ * next verified login finds the UMP token and repairs WAB idempotently.
499
+ */
500
+ async providePassword(password) {
501
+ const shouldFinalize = this.pendingRegistrationPresentationKey != null && this.authenticationFlow === NEW_USER;
502
+ await super.providePassword(password);
503
+ if (shouldFinalize)
504
+ await this.finalizePendingRegistration();
505
+ }
506
+ readRegistrationStatus(result) {
507
+ const status = result.registrationStatus;
508
+ if (status === undefined)
509
+ return 'active';
510
+ if (status !== 'pending' && status !== 'active') {
511
+ throw new WABAccountContinuityError('WAB returned an invalid registration status.');
512
+ }
513
+ return status;
514
+ }
515
+ assertAccountContinuity(wabAccountStatus, registrationStatus, session) {
516
+ const mismatch = wabAccountStatus === EXISTING_USER && this.authenticationFlow !== EXISTING_USER;
517
+ if (!mismatch || registrationStatus === PENDING_REGISTRATION)
518
+ return;
519
+ super.destroy();
520
+ const error = new WABAccountContinuityError();
521
+ this.telemetry.capture({
522
+ name: `${AUTH_EVENT}account-continuity.mismatch`,
523
+ component: AUTH_COMPONENT,
524
+ severity: 'error',
525
+ correlationId: session.correlationId,
526
+ attributes: {
527
+ methodType: session.methodType,
528
+ wabAccountStatus,
529
+ umpAccountStatus: NEW_USER
530
+ },
531
+ error
532
+ });
533
+ throw error;
534
+ }
535
+ async reconcilePendingRegistration(result, registrationStatus) {
536
+ if (registrationStatus !== PENDING_REGISTRATION)
537
+ return;
538
+ this.pendingRegistrationPresentationKey = result.presentationKey;
539
+ if (this.authenticationFlow === EXISTING_USER)
540
+ await this.finalizePendingRegistration();
541
+ }
542
+ describeContinuity(wabAccountStatus, registrationStatus) {
543
+ if (registrationStatus === PENDING_REGISTRATION && this.authenticationFlow === NEW_USER) {
544
+ return 'registration-resumed';
545
+ }
546
+ if (wabAccountStatus === this.authenticationFlow)
547
+ return 'matched';
548
+ return 'ump-existing';
549
+ }
550
+ async finalizePendingRegistration() {
551
+ const presentationKey = this.pendingRegistrationPresentationKey;
552
+ if (presentationKey == null)
553
+ return;
554
+ try {
555
+ const result = await this.wabClient.finalizeRegistration(presentationKey);
556
+ if (result.success !== true || result.registrationStatus !== 'active') {
557
+ throw new Error(result.message || 'WAB registration finalization was not acknowledged.');
558
+ }
559
+ this.pendingRegistrationPresentationKey = undefined;
560
+ this.telemetry.capture({
561
+ name: `${AUTH_EVENT}registration-finalize.completed`,
562
+ component: AUTH_COMPONENT,
563
+ severity: 'info'
564
+ });
565
+ }
566
+ catch (error) {
567
+ this.telemetry.capture({
568
+ name: `${AUTH_EVENT}registration-finalize.deferred`,
569
+ component: AUTH_COMPONENT,
570
+ severity: 'warn',
571
+ error: new Error('WAB registration finalization was deferred.', { cause: error })
572
+ });
573
+ }
574
+ }
575
+ readPendingPhoneChange(result) {
576
+ const presentationKey = result.pendingPresentationKey;
577
+ const changeId = result.pendingPhoneChangeId;
578
+ if (presentationKey === undefined && changeId === undefined)
579
+ return undefined;
580
+ if (!/^[0-9a-fA-F]{64}$/.test(presentationKey ?? '') || !Number.isSafeInteger(changeId) || changeId <= 0) {
581
+ throw new WABAccountContinuityError('WAB returned invalid pending phone-change data.');
582
+ }
583
+ return { presentationKey: presentationKey, changeId: changeId };
584
+ }
585
+ async provideWABPresentationKey(result, wabAccountStatus) {
586
+ const umpTokenOutpoint = typeof result.umpTokenOutpoint === 'string' ? result.umpTokenOutpoint : undefined;
587
+ const lookupOptions = umpTokenOutpoint == null ? undefined : { pinnedOutpoint: umpTokenOutpoint };
588
+ const pending = this.readPendingPhoneChange(result);
589
+ let usePending = false;
590
+ try {
591
+ await this.providePresentationKey((0, utils_1.toArray)(result.presentationKey, 'hex'), lookupOptions);
592
+ }
593
+ catch (error) {
594
+ if (pending == null)
595
+ throw error;
596
+ usePending = true;
597
+ }
598
+ if (pending != null &&
599
+ (usePending || (wabAccountStatus === EXISTING_USER && this.authenticationFlow !== EXISTING_USER))) {
600
+ await this.providePresentationKey((0, utils_1.toArray)(pending.presentationKey, 'hex'), lookupOptions);
601
+ if (this.authenticationFlow === EXISTING_USER) {
602
+ await this.finalizePendingPhoneChange(result.presentationKey, pending);
603
+ }
604
+ }
605
+ }
606
+ async finalizePendingPhoneChange(currentPresentationKey, pending) {
607
+ const finalized = await this.phoneChange('finalize', {
608
+ changeId: pending.changeId,
609
+ presentationKey: currentPresentationKey,
610
+ newPresentationKey: pending.presentationKey
611
+ });
612
+ if (finalized.success !== true || finalized.changeId !== pending.changeId) {
613
+ throw new WABAccountContinuityError(finalized.message || 'WAB could not finalize the pending phone change.');
614
+ }
615
+ }
616
+ /**
617
+ * Starts OTP verification for a replacement phone number. The same number
618
+ * is valid and intentionally produces a fresh presentation key/hash.
619
+ */
620
+ async startPhoneNumberChange(phoneNumber) {
621
+ if (!this.authenticated)
622
+ throw new Error('Not authenticated');
623
+ const normalizedPhone = phoneNumber.trim();
624
+ const currentPresentationKey = (0, utils_1.toHex)(await this.getFactor('presentationKey'));
625
+ const response = await this.phoneChange('start', {
626
+ presentationKey: currentPresentationKey,
627
+ phoneNumber: normalizedPhone
628
+ });
629
+ if (response.success !== true)
630
+ throw new Error(response.message || 'Phone change failed');
631
+ this.phoneChangeSession = {
632
+ phoneNumber: normalizedPhone,
633
+ presentationKey: currentPresentationKey
634
+ };
635
+ }
636
+ /**
637
+ * Completes phone verification and stages the WAB association before
638
+ * publishing the UMP key rotation. WAB retains both the current and pending
639
+ * presentation keys until finalization, so either side of an interrupted
640
+ * transition remains recoverable on the next verified login.
641
+ */
642
+ async completePhoneNumberChange(otp) {
643
+ const session = this.phoneChangeSession;
644
+ if (session == null)
645
+ throw new Error('No phone change');
646
+ if (session.changeToken == null) {
647
+ const authorization = await this.phoneChange('complete', {
648
+ presentationKey: session.presentationKey,
649
+ phoneNumber: session.phoneNumber,
650
+ otp: otp.trim()
651
+ });
652
+ if (authorization.success !== true) {
653
+ throw new Error(authorization.message || 'Phone change failed');
654
+ }
655
+ const resumable = /^[0-9a-fA-F]{64}$/.test(authorization.pendingPresentationKey ?? '') &&
656
+ Number.isSafeInteger(authorization.pendingPhoneChangeId) &&
657
+ authorization.pendingPhoneChangeId > 0;
658
+ if (resumable) {
659
+ session.newKey = (0, utils_1.toArray)(authorization.pendingPresentationKey, 'hex');
660
+ session.changeId = authorization.pendingPhoneChangeId;
661
+ }
662
+ else if (typeof authorization.changeToken === 'string' && authorization.changeToken.length > 0) {
663
+ session.changeToken = authorization.changeToken;
664
+ }
665
+ else {
666
+ throw new Error(authorization.message || 'Phone change failed');
667
+ }
668
+ }
669
+ session.newKey ??= (0, sdk_1.Random)(32);
670
+ if (session.changeId == null) {
671
+ const committed = await this.phoneChange('commit', {
672
+ changeToken: session.changeToken,
673
+ presentationKey: session.presentationKey,
674
+ newPresentationKey: (0, utils_1.toHex)(session.newKey)
675
+ });
676
+ if (committed.success !== true || !Number.isSafeInteger(committed.changeId) || committed.changeId <= 0) {
677
+ throw new Error(committed.message || 'Phone change failed');
678
+ }
679
+ session.changeId = committed.changeId;
680
+ }
681
+ const changeId = session.changeId;
682
+ if (session.umpUpdated !== true) {
683
+ await this.changePresentationKey(session.newKey);
684
+ session.umpUpdated = true;
685
+ }
686
+ const finalized = await this.phoneChange('finalize', {
687
+ changeId,
688
+ presentationKey: session.presentationKey,
689
+ newPresentationKey: (0, utils_1.toHex)(session.newKey)
690
+ });
691
+ if (finalized.success !== true || finalized.changeId !== changeId) {
692
+ throw new Error(finalized.message || 'Phone change failed');
693
+ }
694
+ this.phoneChangeSession = undefined;
695
+ return { changeId };
696
+ }
697
+ cancelPhoneNumberChange() {
698
+ this.phoneChangeSession = undefined;
699
+ }
254
700
  destroy() {
255
701
  this.cancelAuth();
702
+ this.cancelPhoneNumberChange();
703
+ this.pendingRegistrationPresentationKey = undefined;
256
704
  super.destroy();
257
705
  }
706
+ async phoneChange(phase, body) {
707
+ const response = await this.wabClient.transport.request(`/auth/phone-change/${phase}`, {
708
+ operation: 'phone-change',
709
+ body
710
+ });
711
+ return (0, WABResponseValidation_1.validateWABOperationResponse)(response, `phone-change-${phase}`);
712
+ }
258
713
  inferAccountStatus(result, temporaryPresentationKey) {
259
714
  if (result.presentationKey == null) {
260
715
  throw new WABAccountContinuityError('WAB did not return a presentation key.');
261
716
  }
262
717
  const keyMatchesTemporary = this.constantTimeHexEqual(result.presentationKey, temporaryPresentationKey);
263
718
  const rawAccountStatus = result.accountStatus;
264
- if (rawAccountStatus !== undefined &&
265
- rawAccountStatus !== 'new-user' &&
266
- rawAccountStatus !== 'existing-user') {
267
- throw new WABAccountContinuityError('WAB returned an invalid account-continuity status.');
719
+ if (rawAccountStatus !== undefined && rawAccountStatus !== NEW_USER && rawAccountStatus !== EXISTING_USER) {
720
+ throw new WABAccountContinuityError('WAB returned an invalid account status.');
268
721
  }
269
722
  const rawExistingUser = result.existingUser;
270
723
  if (rawExistingUser !== undefined && typeof rawExistingUser !== 'boolean') {
271
- throw new WABAccountContinuityError('WAB returned an invalid existing-user status.');
724
+ throw new WABAccountContinuityError('WAB returned invalid existing-user data.');
272
725
  }
273
726
  if (rawAccountStatus !== undefined &&
274
727
  rawExistingUser !== undefined &&
275
- (rawAccountStatus === 'existing-user') !== rawExistingUser) {
276
- throw new WABAccountContinuityError('WAB returned contradictory account-continuity statuses.');
728
+ (rawAccountStatus === EXISTING_USER) !== rawExistingUser) {
729
+ throw new WABAccountContinuityError('WAB returned conflicting account status.');
277
730
  }
278
731
  let compatibilityStatus;
279
732
  if (typeof rawExistingUser === 'boolean') {
280
- compatibilityStatus = rawExistingUser ? 'existing-user' : 'new-user';
733
+ compatibilityStatus = rawExistingUser ? EXISTING_USER : NEW_USER;
281
734
  }
282
735
  const explicitStatus = rawAccountStatus ?? compatibilityStatus;
283
- if ((explicitStatus === 'new-user' && !keyMatchesTemporary) ||
284
- (explicitStatus === 'existing-user' && keyMatchesTemporary)) {
285
- throw new WABAccountContinuityError('WAB returned contradictory account-continuity data.');
736
+ if ((explicitStatus === NEW_USER && !keyMatchesTemporary) ||
737
+ (explicitStatus === EXISTING_USER && keyMatchesTemporary)) {
738
+ throw new WABAccountContinuityError('WAB returned conflicting account status.');
286
739
  }
287
- return explicitStatus ?? (keyMatchesTemporary ? 'new-user' : 'existing-user');
740
+ return explicitStatus ?? (keyMatchesTemporary ? NEW_USER : EXISTING_USER);
288
741
  }
289
742
  constantTimeHexEqual(left, right) {
290
743
  if (left.length !== right.length)
@@ -300,7 +753,7 @@ class WalletAuthenticationManager extends CWIStyleWalletManager_1.CWIStyleWallet
300
753
  generateTemporaryPresentationKey() {
301
754
  // For the 'startAuth' call, we can generate a random 32 bytes → 64 hex chars.
302
755
  const randomBytes = (0, sdk_1.Random)(32); // array of length 32
303
- return sdk_1.Utils.toHex(randomBytes);
756
+ return (0, utils_1.toHex)(randomBytes);
304
757
  }
305
758
  }
306
759
  exports.WalletAuthenticationManager = WalletAuthenticationManager;