@bopen-io/wallet-toolbox 2.6.2-brc153.3 → 2.14.5

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 +4 -3
  492. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  493. package/out/src/signer/methods/createAction.js +3 -1
  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 +12 -2
  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 +391 -107
  593. package/out/src/storage/methods/createAction.js.map +1 -1
  594. package/out/src/storage/methods/generateChange.d.ts +15 -5
  595. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  596. package/out/src/storage/methods/generateChange.js +187 -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 +172 -135
  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 +32 -30
  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 +359 -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 +372 -9
  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 +221 -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 +4 -0
  712. package/out/src/storage/remoting/syncChunkBinary.d.ts.map +1 -0
  713. package/out/src/storage/remoting/syncChunkBinary.js +38 -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 +3 -5
  809. package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -1
  810. package/out/src/utility/brc153ReferenceLabels.js +8 -14
  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 +40 -33
  878. package/docs/open-rpc/index.html +0 -46
package/CHANGELOG.md CHANGED
@@ -4,8 +4,751 @@ This document captures the history of significant changes to the wallet-toolbox
4
4
  The git commit history contains the details but is unable to draw
5
5
  attention to changes that materially alter behavior or extend functionality.
6
6
 
7
+ ## wallet-toolbox 2.14.5
8
+
9
+ - `WalletPermissionsManager` retires no-send transaction ownership and reference
10
+ aliases when `createAction` or `signAction` reports them as `sending` or
11
+ `unproven`, including sendWith-only calls and successful members of an
12
+ undelayed batch's review error. Failed or unreported actions retain their
13
+ originator binding for retry or abort. Cleanup visits only the retired
14
+ transaction's references instead of scanning the session's history.
15
+
16
+ ## wallet-toolbox 2.14.4
17
+
18
+ - `discoverByIdentityKey` and `discoverByAttributes` keep each certificate's
19
+ `certifierInfo.description` within BRC-100's 5-50 UTF-8 bytes. The default
20
+ SocialCert (56 bytes) and Metanet Trust Services (55 bytes) descriptions
21
+ exceeded it, so `@bsv/sdk` 2.8.8+ rejected every discovery result from one of
22
+ them with `Invalid discoverByAttributes result
23
+ certificates[n].certifierInfo.description: expected 5–50 UTF-8 bytes`, which
24
+ broke `IdentityClient.resolveByAttributes` and `resolveByIdentityKey`. Both
25
+ defaults are shortened. Trust settings still accept descriptions of up to 500
26
+ bytes so stored settings stay readable; a longer one is cut at a code point
27
+ boundary when the result is built, and one under 5 bytes becomes
28
+ `Trusted certifier`.
29
+ - A non-admin `createAction` with `noSend` that `WalletPermissionsManager`
30
+ signs internally returned `noSendChange` outpoints on the unsigned txid next
31
+ to the signed `txid`, so `@bsv/sdk` 2.8.8+ rejected it with `Invalid
32
+ createAction result noSendChange[0]: expected an outpoint of the returned
33
+ transaction`. The outpoints now name the signed transaction (vouts are
34
+ unchanged by signing).
35
+ - That same no-send action could not be released: the caller only gets its
36
+ `txid`, and `abortAction` from a non-admin originator accepted only references
37
+ the manager had issued, which it drops once it signs. The originator that
38
+ created a no-send action can now abort it by that `txid`; other originators
39
+ still cannot, and a broadcast action is never abortable this way. The same
40
+ applies when the caller signs a `signAndProcess: false` no-send action itself
41
+ with `signAction`: it can then abort it by the `reference` it signed or by the
42
+ signed `txid`, where before `abortAction` failed with `The action reference
43
+ was not issued by this permissions manager.`
44
+ - `discoverByIdentityKey` and `discoverByAttributes` return the requested
45
+ `limit`/`offset` page (limit 10 when omitted). They returned every trusted
46
+ match, and `@bsv/sdk` rejects a page longer than the limit. `totalCertificates`
47
+ still counts every trusted match.
48
+ - `ChaintracksServiceClient`, `BHServiceClient` and `GoChaintracksServiceClient`
49
+ called `fetch` as a method of the client, which browsers refuse ("Failed to
50
+ execute 'fetch' on 'Window': Illegal invocation" in Chrome, "Can only call
51
+ Window.fetch on instances of Window" in WebKit). Any in-page wallet verifying
52
+ a merkle proof through them failed, for example `internalizeAction` of a BRC-29
53
+ payment. They now call the default or supplied `fetch` with no receiver.
54
+
55
+ ## wallet-toolbox 2.14.3
56
+
57
+ - Surplus change shaping no longer splits change into outputs below the dust
58
+ floor. Baskets still on the legacy 32-sat `minimumDesiredUTXOValue` produced
59
+ split outputs that were later folded away, leaving a fee sized for the larger
60
+ transaction and failing with `generateChangeSdk error: required fee error`.
61
+ Each split output now gets at least `max(dustFloor, changeInitialSatoshis)`.
62
+ - `WalletPermissionsManager.abortAction` lets the admin originator abort any of
63
+ the wallet's actions, including signed `noSend` actions and actions from an
64
+ earlier session, which the in-memory pending-reference map no longer holds.
65
+ Other originators still need a reference this manager issued to them.
66
+
67
+ ## wallet-toolbox 2.14.2
68
+
69
+ - Match complete English text tokens and default stopwords consistently with SDK 2.8.7; preserve quoted and excluded phrases. Scan ordered literal tokens without a combined wildcard expression. Direct filtering ignores inherited attributes and rejects non-string requested values without coercion.
70
+
71
+ - `discoverByAttributes` no longer drops every overlay result for `any`
72
+ searches. `filterCertificatesByAttributes` treated the identity overlay's
73
+ all-fields `any` search as a literal field name, so no certificate matched.
74
+ It now accepts a certificate when searchable decrypted fields satisfy the requested text terms,
75
+ and named attributes use the overlay's fuzzy matching (`userName` stays
76
+ exact). `any` follows the overlay's MongoDB text search: case- and
77
+ diacritic-insensitive, quoted phrases required, `-term` excluded, and
78
+ `profilePhoto`/`icon` not searched. Word stemming is not reproduced, so a
79
+ stem-only overlay match can still be dropped. Blank named attributes are
80
+ ignored, as on the overlay; a query with no usable attribute matches nothing.
81
+ Results are still bound to the query they answered.
82
+
83
+ ## wallet-toolbox 2.14.1
84
+
85
+ - Keep exact action-spend metadata in a shared local WeakMap, preserving storage
86
+ service-charge authorization across permission-module transforms and separately
87
+ loaded core, client and mobile bundles without adding keys to public results.
88
+ - Consume the legacy internal Symbol before returning permission-managed results.
89
+ Completed and two-step `createAction` responses now pass the existing strict
90
+ binary BRC-100 codec. No app, wire, database, BRC-39 or recovery migration is
91
+ required; upgrade the wallet host and permission manager together. Reconcile
92
+ history before retrying an older host's failed response because the transaction
93
+ may already exist.
94
+
7
95
  ## wallet-toolbox (unreleased)
8
96
 
97
+ - Raise the `@bsv/sdk` peer dependency floor to `^2.8.0` in `@bsv/wallet-toolbox`,
98
+ `@bsv/wallet-toolbox-client`, and `@bsv/wallet-toolbox-mobile`. Value imports
99
+ used by the built mobile/client bundles and by internal helpers
100
+ (`TransactionEvidenceCoordinator`, `TransactionEvidenceError`,
101
+ `completeBoundAction`, `createPublicHTTPSFetch`, `decodeCanonicalPushDrop`,
102
+ `defaultTransactionEvidenceLimits`, `toUTF8Strict`,
103
+ `MAXIMUM_SEND_WITH_TRANSACTIONS`) do not exist in `@bsv/sdk` 2.4.1 through
104
+ 2.7.1 despite the prior `^2.4.1` peer range; confirmed against the published
105
+ tarballs for each version.
106
+ - `Monitor`'s scheduler no longer stops running every task when the optional
107
+ Chaintracks header/reorg push subscription setup fails or is unimplemented.
108
+ `runOnce`/`startTasks` previously awaited `ready` directly, so any
109
+ `chaintracksWithEvents` failure (e.g. the built-in HTTP-polling
110
+ `ChaintracksServiceClient`, which documents `supportsReorgEvents: false` and
111
+ throws `Method not implemented.` from `subscribeHeaders`/`subscribeReorgs`)
112
+ rejected the whole task loop and permanently stopped `startTasks()`. Monitor
113
+ now skips the subscription attempt entirely when an event source declares
114
+ `supportsReorgEvents: false`, and otherwise retries subscription setup
115
+ opportunistically on the next tick, logging a `chaintracksEventsError`
116
+ monitor event, while every other scheduled task keeps running. A genuine
117
+ configured-chain mismatch still fails closed: subscriptions are never
118
+ registered against a `chaintracksWithEvents` source reporting the wrong
119
+ chain.
120
+ - Confirm `relinquishOutput`'s `basket` argument against the output's actual
121
+ current basket (looked up inside the same transaction) before clearing
122
+ `basketId`, instead of clearing it unconditionally. Rejects a basket that
123
+ does not contain the output, a basket name that does not exist, and an
124
+ already-unbasketed output, each with `WERR_INVALID_PARAMETER`. Without this,
125
+ `WalletPermissionsManager.relinquishOutput` (which only checks the
126
+ originator's access to the _claimed_ basket) let an app with permission on
127
+ any basket relinquish any output by outpoint, including another app's basket
128
+ output or the admin `default` change basket.
129
+ - Reject `internalizeAction` basket-insertion merges that would reclassify an
130
+ existing output out of a different basket it already occupies, closing a gap
131
+ where `validateBasketMerges()` only rejected reclassifying wallet-managed
132
+ change. An app with insertion permission on basket X could previously
133
+ internalize an already-known transaction and move another app's output from
134
+ basket Y into X, then spend it. Idempotent re-internalization into the same
135
+ basket, and inserting a currently unbasketed (non-managed-change) output —
136
+ including the documented default-basket legacy-recovery sweep — keep
137
+ working. The requested basket is resolved with a plain lookup so a rejected
138
+ request never creates it.
139
+ - Fix `WalletPermissionsManager` rejecting every sendMax `createAction` call.
140
+ `verifyRequestedOutputsPresent` now matches fixed-amount outputs first by
141
+ exact (script, satoshis), then matches any output requested with the
142
+ `maxPossibleSatoshis` sentinel by locking script alone against whatever is
143
+ left unused, and returns the resolved real amount per requested output.
144
+ `computeNetSpend` bills that resolved amount instead of the sentinel, so
145
+ spending authorization reflects the real funded value (previously ~21
146
+ million BSV) instead of throwing `The transaction returned for signing does
147
+ not contain caller-requested output ...`.
148
+ - Additively export `WalletMonitorTask`, `attemptToPostReqsToNetwork` (with its
149
+ `PostReqsToNetworkResult` type), `parseJsonRpc`/`stringifyJsonRpc`, and
150
+ `verifyUnlockScripts` (with its `UnlockScriptVerificationResult` type) from
151
+ `src/index.mobile.ts` and `src/index.client.ts`. The published
152
+ `@bsv/wallet-toolbox-mobile` and `@bsv/wallet-toolbox-client` bundles do not
153
+ support deep imports, so hosts implementing a custom `Monitor.addTask` task,
154
+ posting signed requests to the network directly, exchanging the storage
155
+ remoting wire format, or verifying unlock scripts previously could not reach
156
+ these symbols at all.
157
+ - Keep cold raw-transaction reads on the caller's transaction, including SQLite
158
+ with one connection; do not cache uncommitted settings or start background
159
+ work. Accept missing optional inputBEEF when returning stored raw bytes.
160
+ - Reject unresolved output-basket mappings before sync writes. Apply valid newer
161
+ basket assignments/removals, preserving equal/older local relinquishment and
162
+ transaction rollback/retry. Included in unpublished 2.13.2; no schema migration.
163
+ - Restore transactional SQLite migrations in the unpublished 2.13.2 candidate.
164
+ DDL, migration journal and lock changes roll back after an interrupted attempt;
165
+ foreign-key enforcement is restored after success or failure. Existing stores
166
+ with unjournaled partial schema need operator-reviewed recovery; this change
167
+ does not delete or automatically reconcile historical wallet data.
168
+
169
+ - Implement `BHServiceClient.findChainTipHash()` by delegating to its existing
170
+ `findChainTipHeader()` call against `/api/v1/chain/tip/longest`, instead of
171
+ throwing `Not implemented`. `ChaintracksChainTracker.getVerificationContextToken()`
172
+ calls `findChainTipHash()` on every verification attempt, so any wallet
173
+ configured with a `BHServiceClient` as `options.chaintracks`, or as a
174
+ `LocalChainTracker` participating source, previously failed on every
175
+ attempt. No `ChaintracksClientApi` contract change; no migration required.
176
+
177
+ - Preserve valid compound proofs with multiple marked transactions. Rotate
178
+ unresolved proof repairs behind waiting heights across monitor restarts, and
179
+ retain retries that become temporarily ineligible after the chain tip
180
+ retreats. Existing checkpoints remain compatible; no migration is required.
181
+
182
+ - Validate every newly acquired and replacement Merkle proof against the active
183
+ ChainTracks root before persistence, continue to later providers when an
184
+ earlier provider returns an orphan proof, and retain unresolved reorg heights
185
+ for bounded per-run retries without stopping the forward review cursor. No
186
+ schema or consumer migration is required.
187
+
188
+ - Require mutually authenticated responses from remote wallet storage, pin the
189
+ authenticated server identity for each client instance, optionally accept an
190
+ independently validated `serverIdentityKey`, and bind the distinct advertised
191
+ storage identity to that channel, with an optional independent
192
+ `storageIdentityKey` pin. Strictly correlate JSON-RPC version and request ID,
193
+ require one unambiguous result or error, keep remote response details out of
194
+ transport diagnostics, and preserve an explicit null result for void server
195
+ methods.
196
+
197
+ - Complete WAB faucet funding through one exact wallet-owned BRC-29 output.
198
+ Fee-adjusted output amounts are bounded without weakening exact script
199
+ binding, real Wallet Toolbox symbol metadata remains accessor-safe, and the
200
+ redemption is staged and labeled before broadcast. Interrupted retries
201
+ recover the same transaction from its dedicated basket or recognize the
202
+ already-internalized action instead of signing the faucet input again.
203
+
204
+ - Make ChainTracks lifecycle and event delivery fail closed. Startup errors are
205
+ awaited and retryable, failed or cold instances can be fully destroyed,
206
+ long-running source promises are drained, subscriptions are bounded and
207
+ deleted rather than tombstoned, and every listener receives an isolated
208
+ header snapshot. Provider heights, bulk results, type guards, direct source
209
+ options, and diagnostics are now bounded and accessor-safe. WhatsOnChain
210
+ options and shared chain-info results cannot be mutated after validation.
211
+ Filesystem cache mutation is serialized per digest across processes, caller
212
+ metadata/bytes are snapshotted before awaits, and bulk revalidation takes the
213
+ writer lock. Bulk-file reconciliation and multi-record replacement are atomic
214
+ in Knex and IndexedDB, ordinary mutations reach durable storage before memory,
215
+ failed writes restore the prior manager state, and remote manifests cannot
216
+ supply local storage identities. Custom storage implementations must add the
217
+ optional atomic replacement method before performing multi-file changes.
218
+ Remote clients require complete live metadata and bounded event topology,
219
+ subscription state, timers, and single-line diagnostics. Destructive Knex
220
+ rollback failures now propagate. The wallet monitor independently binds its
221
+ event source to the configured network, authenticates and copies every
222
+ reorganization header, bounds and deduplicates deactivation retries,
223
+ coalesces prepared-proof invalidation, cleans up partial subscriptions, and
224
+ contains application callback failures without implicit console output.
225
+
226
+ - Make Arcade transaction-status SSE a bounded, ordered durable stream. Client
227
+ options are snapshotted without accessors; credentials, cursors, payloads,
228
+ fields, queued count, and queued bytes have explicit ceilings; and event data
229
+ is validated and copied. Only one event reaches storage at a time, its cursor
230
+ advances only after processing and persistence succeed, and a malformed,
231
+ excessive, or failed event closes the stream without dispatching later queued
232
+ events. Logging is silent by default and transport errors never forward the
233
+ credential-bearing EventSource object. Monitor task setup retains one pending
234
+ event, retries storage/checkpoint failures, and closes on removal or teardown.
235
+
236
+ - Repair monitor and daemon lifecycle ordering. Every scheduled or standalone
237
+ run now awaits retryable ChainTracks subscriptions, standalone runs initialize
238
+ every task, transient setup failures retry, and loop failures reset running
239
+ state. The daemon starts subscriptions before ChainTracks and tasks, can stop
240
+ after a successful start, and destroys monitor resources before storage even
241
+ when cleanup fails. Monitor event/task names and diagnostic text are bounded;
242
+ library logging is opt-in and dotenv loading is quiet.
243
+
244
+ - Authenticate every ordinary Merkle-proof result before it can create a
245
+ `ProvenTx` or restore a failed transaction. Provider responses are copied and
246
+ structurally bounded, must contain a leaf matching the requested txid
247
+ (independently of the optional `txid` marker),
248
+ must compute the canonical header root at the same height, and must resolve
249
+ through a proof-of-work-valid wallet header. Monitor consumers additionally
250
+ require the local ChainTracks root verdict and bind the request's raw
251
+ transaction to its txid. WhatsOnChain, Bitails, and Arcade enforce the same
252
+ invariant when called directly; TSC conversion rejects malformed, sparse,
253
+ oversized, and unsafe-integer proofs. `TaskUnFail` uses a one-shot internal
254
+ authorization guard and re-reads its first mutating page so batches over 100
255
+ cannot be skipped. Existing wire formats and public method signatures remain
256
+ compatible; the optional root-validator argument is additive.
257
+
258
+ - Authenticate external transaction-status results before they can influence
259
+ wallet state. Results must be uniquely bound to requested txids and have
260
+ consistent mined/known/unknown depth, terminal, and input-conflict fields;
261
+ provider attribution is local, while descriptions and competing txids are
262
+ copied and bounded. Malformed providers fail over instead of supplying
263
+ failure, quarantine, abort-protection, or double-spend evidence. Arcade also
264
+ validates and binds its complete transaction-data response before status
265
+ classification or proof parsing, and WhatsOnChain rejects impossible depth.
266
+ Monitor proof, no-send, and abandonment scans now preserve stable pagination
267
+ while rows leave their query, and a rejected proof counts as one attempt.
268
+
269
+ - Bound raw-transaction and proof-provider envelopes before inspection.
270
+ Raw results are txid-bound, accessor-free owned byte arrays capped at 32 MiB;
271
+ malformed providers fail over and cannot forge local attribution or mutate
272
+ accepted bytes. Merkle provider notes are copied as bounded scalar data and
273
+ legacy custom services may supply at most eight dense proof candidates.
274
+ Monitor options, task work controls, persisted checkpoints, and polled block
275
+ headers are also validated and copied before they control background work.
276
+
277
+ - Contain UTXO-oracle evidence and invalid-change review work. Provider results
278
+ are accessor-free, bounded, outpoint-consistent owned data with locally
279
+ configured attribution; malformed responses fail over and never become spent
280
+ evidence. Manual and admin review require canonical identities and exact
281
+ modes, booleans, pages, offsets, tags, and safe monetary totals. Whole-wallet
282
+ compatibility scans have a 10,000-candidate ceiling, and a release rebinds the
283
+ exact classified outpoint, value, basket, ownership, and allocation state
284
+ under the write lock before changing spendability.
285
+
286
+ - Authenticate and bound script-history and transaction-broadcast provider
287
+ boundaries. History is hash/endian-bound, accessor-free, deduplicated, and
288
+ capped; all WhatsOnChain calls carry validated whole-request deadlines and
289
+ chain responses are copied before use. BEEF and direct raw submissions are
290
+ size- and txid-bound, providers receive isolated snapshots, result identities
291
+ and state invariants are enforced with local attribution, and sensitive or
292
+ excessive diagnostics are discarded. Malformed, throwing, or hung providers
293
+ fail over without forging the wallet's internal timeout marker. A broadcast
294
+ double-spend claim is terminal only after at least one exact input is
295
+ conclusively observed spent; unknown oracle evidence remains retryable.
296
+
297
+ - Enforce one atomic `sendWith` resource invariant from SDK validation and
298
+ binary decoding through storage, action-batch commit, provider submission,
299
+ and delayed monitor retry. Broadcast sets contain at most 1,000 unique,
300
+ canonical transaction IDs, including the newly created or signed
301
+ transaction. Malformed storage flags cannot diverge from the actual list,
302
+ and an oversized legacy batch is reported and skipped as a whole rather than
303
+ partially broadcast or expanded without bound. If any member cannot be
304
+ resolved or assembled, no ready subset is scheduled or broadcast; members
305
+ already known by the network remain compatible with retrying the rest.
306
+
307
+ - Make user provisioning and schema lifecycle failure-atomic. A newly inserted
308
+ user and its mandatory managed-change basket now share one transaction, and
309
+ creation-race retry restarts the whole transaction. Knex migration and
310
+ destructive rollback errors propagate, explicit empty-schema state is the
311
+ only rollback terminator, and SQLite foreign-key enforcement is restored in
312
+ `finally` after both successful and failed migration work.
313
+
314
+ - Keep secrets and untrusted wallet material out of implicit process logs.
315
+ `Setup.makeEnv()` returns generated development keys without printing them;
316
+ invalid BEEF, identity/certificate parsing, permission batching, provisioning
317
+ races, migration failures, and IndexedDB orphan handling no longer emit raw
318
+ objects, transaction/proof data, database details, or row identifiers. The
319
+ existing explicit wallet logger receives only a generic BEEF-validation
320
+ message when a caller opts into it.
321
+
322
+ - Preserve wallet write atomicity across metadata revival, entity insertion,
323
+ and abort-time chain checks. Soft-deleted baskets, labels, label mappings,
324
+ output tags, and tag mappings now revive in the caller's exact transaction;
325
+ new proof-request and sync-state entities retain that transaction as well.
326
+ `abortAction` queries external chain status before opening an IndexedDB write
327
+ scope, then rebinds the observation to the exact transaction ID and txid
328
+ under the write lock before committing its decision.
329
+
330
+ - Keep shared-storage schema and process lifecycle under operator authority.
331
+ Authenticated remote migration requests are compatibility no-ops, matching
332
+ remote destroy requests, so a wallet tenant cannot contend on global DDL or
333
+ initialize shared storage metadata.
334
+
335
+ - Bound authenticated proof-request reads before database and memory work.
336
+ Knex and IndexedDB apply wallet ownership in the same query/cursor scan as
337
+ status, partial, offset, and limit filtering. Custom providers retain a
338
+ bounded compatibility path and must supply exact txids or a provider-native
339
+ scoped query for wallets with more than 10,000 proof requests.
340
+
341
+ - Bound caller-selected Wallet Storage RPC offsets as well as page sizes.
342
+ Top-level list offsets, nested find paging, and synchronization checkpoints
343
+ are rejected before database/cursor work when they exceed the selected
344
+ resource profile. Operators can raise the explicit ceiling for larger
345
+ histories without changing the wire format.
346
+
347
+ - Redact internal Wallet Storage failures at every authenticated HTTP response
348
+ boundary. JSON-RPC and action-batch upload routes preserve explicit public
349
+ wallet errors, but generic exceptions and custom `WERR_INTERNAL` diagnostics
350
+ now return only the stable internal-error name and default message. Detailed
351
+ provider, database, and filesystem failures remain available through
352
+ explicitly configured operator logging and telemetry.
353
+
354
+ - Clarify local-contact authority throughout SDK and Wallet Toolbox identity
355
+ documentation. A saved contact is an authoritative wallet-local trust anchor
356
+ based on the user's independent validation, analogous to accepting a
357
+ self-signed certificate. Its infinite trust is intentionally local—not a
358
+ third-party certification or transferable trust claim—and authenticated
359
+ contact storage proves retention of that decision rather than the underlying
360
+ real-world identity.
361
+
362
+ - Re-bind cryptographically authenticated identity-overlay certificates to the
363
+ exact lookup they answer before applying trust thresholds. A dishonest lookup
364
+ host can no longer answer an identity-key or public-attribute query with a
365
+ different valid trusted certificate. Local contacts remain authoritative;
366
+ contact lookup matching continues to follow the caller-installed source's
367
+ explicit local trust contract.
368
+
369
+ - Harden local ChainTracks persistence and legacy bulk tooling. Memory-backed
370
+ trackers no longer share state, IndexedDB and Knex require unique active
371
+ headers and consecutive parent linkage, reorganization walks are bounded and
372
+ fail atomically, direct admissions are authenticated, and Knex serializes tip
373
+ mutation through an internal state row. MySQL now stores 64-character hex
374
+ values as `VARCHAR(64)` and multi-megabyte header objects as `LONGBLOB`; the
375
+ additive migration clears the rebuildable legacy live-header cache before
376
+ widening fields that permissive MySQL could already have truncated. Bulk
377
+ manifests, local readers, exporters, filesystem operations, and lock queues
378
+ now have canonical path, byte, count, continuity, genesis, digest,
379
+ proof-of-work, and progress bounds. Filesystem cache reads are bounded before
380
+ allocation and authenticate writes, while the durable download budget now
381
+ serializes reservations across processes and fails closed on an abandoned
382
+ lock instead of silently resetting or losing allowance.
383
+
384
+ - Fix the legacy `BHServiceClient` Merkle-root cache so rejected, stale, or
385
+ externally written roots can never become authoritative. Every verdict now
386
+ resolves a bounded canonical header, validates its computed hash and proof
387
+ of work, and binds it to the requested height or hash. Its HTTP reads reject
388
+ redirects and malformed endpoints, retain whole-body deadlines, and enforce
389
+ response and batch ceilings. ChainTracks core options are validated before
390
+ startup, and all library/factory logging is now silent unless the embedding
391
+ application supplies the existing optional logger.
392
+
393
+ - Treat every remote ChainTracks HTTP/SSE and WhatsOnChain HTTP/CDN/WebSocket
394
+ response as untrusted input: retain the
395
+ deadline through bounded body consumption, bound and idle-timeout streams,
396
+ prohibit redirects and ambiguous endpoint URLs, validate canonical header
397
+ bytes and proof of work, and bind network, height, hash, and reorganization
398
+ results to each request before returning or queueing them. Submitted and live
399
+ header queues are copy-isolated, deduplicated where applicable, and bounded.
400
+ Service-discovered CDN links must remain credential-free public HTTPS with
401
+ DNS-pinned Node connections, legacy history streams are range-ordered and
402
+ chunked, and no declared target contributes to bulk chain selection before
403
+ its complete header and proof of work have been authenticated.
404
+
405
+ - Authenticate every discovered permission token against its exact BEEF
406
+ outpoint, canonical signed PushDrop fields, locally derived locking key, and
407
+ signed grant content. Basket membership and tags remain selectors only. Bind
408
+ public partial actions and all token mint, renewal, coalescing, and revocation
409
+ flows to the exact authorized final transaction and actual input indexes.
410
+ Include signer-authenticated storage service charges in the exact spend sent
411
+ for permission approval, without changing the BRC-100 API or wire format, and
412
+ fail closed on inconsistent sources or unsafe monetary arithmetic. The exact
413
+ packed platform measurements are 2,184,519 / 520,753 / 397,289 bytes for Vite
414
+ and 1,704,383 / 471,571 / 370,439 for esbuild (raw/gzip/Brotli), with reviewed
415
+ ceilings of 2,230,000 / 535,000 / 410,000 and
416
+ 1,740,000 / 485,000 / 380,000 respectively. Mobile measures
417
+ 2,344,815 / 597,625 / 454,020 for Metro and
418
+ 4,579,110 / 1,919,816 / 1,489,229 for optimized Hermes bytecode, with reviewed
419
+ ceilings of 2,400,000 / 610,000 / 465,000 and
420
+ 4,675,000 / 1,960,000 / 1,520,000 respectively.
421
+
422
+ - Bind UMP renewal to an exact canonical, field-signed predecessor owned by the
423
+ local wallet and require one exact replacement token in the completed action.
424
+ Bind WAB faucet funding to its exact Atomic BEEF target, output-zero R-puzzle
425
+ commitment, actual wallet input index, and returned final transaction ID.
426
+
427
+ - Bind legacy P2PKH funding imports to the exact atomic signing target and
428
+ final wallet transaction. Reject result-only transaction IDs, ambiguous
429
+ outpoints, oversized or redirected provider responses, and unbounded BEEF
430
+ recursion/source graphs before signing or allocation.
431
+
432
+ - Atomically consume BRC-103 signed-message nonces across StorageServer replicas.
433
+ The additive `2026-09-16-001 add auth message replay claims` migration creates
434
+ `auth_message_nonces` with a composite session-or-identity scope/nonce
435
+ uniqueness constraint and expiry index. Signed follow-up and unsigned
436
+ initial-request replays are both rejected. Run the migration before deploying
437
+ the new runtime; otherwise authentication processing fails closed.
438
+
439
+ - Integrate upstream security corrections without dropping the sync recovery contracts.
440
+ Record combined browser/mobile artifact costs and limits in the sync transfer guide.
441
+
442
+ - Validate replacement proofs across providers before reconciling stale RPC sync metadata; preserve raw transactions and checkpoints on failure.
443
+
444
+ - Start sync copies conservatively and adapt page work after committed responses.
445
+ Validate at most eight remote proofs concurrently, draining failure work before
446
+ rejecting the page. Preserve all proof and checkpoint checks. Record-transfer
447
+ candidates now use 2.13.0 to distinguish them from published 2.12.0.
448
+
449
+ - Require an affirmative certifier-signature verification result before
450
+ storing directly acquired or issuer-returned certificates. Identity overlay
451
+ results are verified before decryption and trust scoring, so forged
452
+ certificates cannot become wallet-held or trusted discovered identities. The
453
+ synchronized browser Vite ceilings advance to 1,695,000 raw and 401,000 gzip,
454
+ covering measured 1,694,211-byte and 400,048-byte bundles; Brotli is unchanged.
455
+ The mobile Metro raw ceiling advances to 1,750,000 for the measured
456
+ 1,748,892-byte bundle. The browser esbuild raw ceiling advances to 1,323,000
457
+ for the measured 1,321,768-byte bundle, its gzip ceiling advances to 365,000
458
+ for the measured 364,413-byte bundle, and the optimized Hermes gzip ceiling
459
+ advances to 1,442,000 for the measured 1,441,531-byte bytecode; remaining
460
+ compressed ceilings are unchanged.
461
+ - Never cache, coalesce, or reuse spending approvals, give each prompt a
462
+ distinct request identity, and paginate the complete action history before
463
+ calculating an authorization token's prior spending.
464
+ - Require HTTPS for credential-bearing remote storage and Arcade SSE outside
465
+ explicit loopback development, disable dependency debug output, and avoid
466
+ serializing credential-bearing transport errors. Snapshot formats remain
467
+ unchanged and are documented as wallet-equivalent secrets.
468
+ - Make new WAB account creation resumable when wallet setup, funding, KDF, UMP
469
+ publication, or the final acknowledgement is interrupted. The manager accepts
470
+ a clean missing-token result only for a server-declared pending registration,
471
+ finalizes after successful publication, repairs a lost acknowledgement on the
472
+ next login, and preserves fail-closed continuity for active and legacy WABs.
473
+ - Add optional bounded sync transfers for oversized records, authenticated pieces,
474
+ durable Knex staging, full-frame SHA-256 verification, and stale-checkpoint
475
+ rejection before merging. Add the two staging tables through migration
476
+ `2026-09-09-001`; reverse only that migration before restarting older code. Frames are limited
477
+ to 64 MiB and ordinary pages keep their existing transport. See
478
+ [the transport and migration guide](./docs/sync-transfer.md).
479
+
480
+ - Upgrade IndexedDB to schema version 6 with a non-unique transaction-ID/user
481
+ index. Use existing reference, reclaim, commission, and relation keys for
482
+ sync lookups, avoiding repeated scans as a local wallet grows. Preserve
483
+ user filtering, pagination, existing bytes, and duplicate transaction IDs.
484
+ Proof-batch preflight checks resolve only requested transaction IDs through
485
+ the existing index, preserving proof validation and primary-key ordering.
486
+ Older clients requesting schema version 5 cannot open the upgraded database.
487
+
488
+ - Add negotiated compact sync checkpoints, reusing committed page progress while
489
+ retaining complete writer-side ID mappings and the legacy provider fallback.
490
+ Avoid per-scalar reviver callbacks when decoding binary JSON pages without
491
+ changing marker escaping or byte semantics. Use the already negotiated binary
492
+ codec for large schema-defined sync response byte arrays, reducing wire and
493
+ authentication payload size while preserving legacy arrays and unrelated data.
494
+ Retain authenticated full-copy,
495
+ resume, malformed-input, and transport CPU/payload regression coverage.
496
+ Local packed measurements are 1,701,711 raw / 401,038 gzip / 314,272 Brotli
497
+ bytes (Vite), 1,327,368 / 364,550 / 293,224 (esbuild),
498
+ 1,753,648 / 445,136 / 345,369 (Metro), and
499
+ 3,557,663 / 1,426,740 / 1,121,821 (Hermes). The raw ceilings become
500
+ 1,702,000, 1,327,500, 1,755,000, and 3,558,500 respectively.
501
+ Vite and esbuild gzip ceilings increase to 402,000 and 366,000 bytes.
502
+ Hosted Linux measures 365,818 esbuild gzip bytes and 1,445,624 Hermes gzip
503
+ bytes; the Hermes gzip ceiling becomes 1,446,500.
504
+ The esbuild Brotli ceiling is 293,750 bytes. Asynchronous platform hashing
505
+ for large SDK signature payloads brings the Vite Brotli ceiling to 314,500
506
+ bytes, the Hermes raw ceiling to 3,560,000 bytes, and its Brotli ceiling to
507
+ 1,125,000 bytes (measured 1,124,446); other compressed ceilings remain unchanged.
508
+ The added portable sync/progress and decoding paths account for
509
+ the increase; no Node-only backend is introduced into portable bundles.
510
+
511
+ - Keep Argon2id-backed UMP v3 wallets available in React Native and other
512
+ runtimes without WebAssembly by falling back to an asynchronously yielding,
513
+ standards-compatible JavaScript implementation. The same KDF parameters and
514
+ derived bytes are preserved, so existing tokens require no migration and
515
+ WebAssembly-capable runtimes retain the faster path. The existing public
516
+ `hash-wasm`-compatible utility contract remains intact: secret-bearing,
517
+ non-binary-output, and non-byte-array requests stay on `hash-wasm` and are
518
+ never reinterpreted by a host backend or fallback. Native registration is
519
+ available from both mobile and client roots, concurrent cold callers share
520
+ one preload attempt, and both alternative implementations validate result
521
+ type and length. Unrelated validation errors propagate even without the
522
+ WebAssembly global. The current-main macOS
523
+ reference fixtures measure 1,690,925 raw / 398,461 gzip / 311,955 Brotli
524
+ bytes with Vite, 1,319,059 raw / 362,220 gzip / 291,206 Brotli bytes with
525
+ esbuild, 1,746,067 raw / 442,648 gzip / 343,342 Brotli bytes with Metro, and
526
+ 3,542,034 raw / 1,419,515 gzip / 1,117,531 Brotli bytes as optimized Hermes
527
+ bytecode; hosted Linux measures 1,439,166 gzip bytes. Combined with the
528
+ interrupted-registration recovery path above, current measurements are
529
+ 1,694,823 raw / 399,940 gzip / 312,528 Brotli bytes with Vite, 1,322,223 raw
530
+ / 364,260 gzip / 291,914 Brotli bytes with esbuild, 1,749,694 raw / 443,665
531
+ gzip / 344,059 Brotli bytes with Metro, and 3,549,495 raw / 1,441,622 gzip /
532
+ 1,119,600 Brotli bytes as optimized Hermes bytecode. The reviewed ceilings
533
+ advance to 1,697,000 raw / 400,000 gzip Vite bytes, 1,324,000 raw / 365,000
534
+ gzip esbuild bytes, 1,752,000 raw Metro bytes, and 3,552,000 raw / 1,442,000
535
+ gzip Hermes bytes; Brotli ceilings remain unchanged.
536
+
537
+ - Extend the BRC-98/99/111 permission-module interface with an optional semantic
538
+ `handleRequest` hook. A module can now return a conforming BRC-100 result
539
+ directly or invoke the underlying wallet operation at most once, while
540
+ existing `onRequest`/`onResponse` transformation modules remain compatible.
541
+ The companion `@bsv/ecpm-permission-module` uses this hook to implement
542
+ `p ecpm` point multiplication without adding a BRC-100 method or wire call.
543
+
544
+ - Add opt-in prepared BEEF storage for Knex-backed normal `createAction`
545
+ funding. COOK (Create Once, Output Kept) stores a user-scoped, exact,
546
+ independently verified and checksummed proof closure, merges valid hits
547
+ without invoking the canonical builder, and treats every miss or cache
548
+ failure as the existing canonical path. Missing roots and newly finalized
549
+ managed-change transactions are queued only after foreground action work is
550
+ complete; bounded writes, reads, and gradual backfill are separately
551
+ controlled and default off. Reorganizations stale derived artifacts, a
552
+ database proof epoch fences in-flight cross-process writes, purge removes
553
+ unused rows, and prepared data remains outside wallet sync. The
554
+ Knex worker is excluded from portable bundles. Reviewed Vite ceilings advance
555
+ to 1,610,250 raw / 379,750 gzip / 298,000 Brotli bytes and esbuild ceilings
556
+ to 1,255,000 raw / 346,250 gzip / 278,000 Brotli, covering local measurements
557
+ of 1,609,783 / 379,492 / 297,253 and 1,254,603 / 344,792 / 277,384 bytes;
558
+ hosted Linux Vite Brotli and esbuild gzip measured 297,585 and 345,711 bytes.
559
+ The Hermes raw / gzip ceilings advance to 3,374,500 / 1,369,000 bytes,
560
+ covering local measurements of 3,372,554 / 1,348,354 and hosted Linux
561
+ measurements of 3,373,560 / 1,368,128 bytes; Metro and Hermes Brotli
562
+ ceilings remain unchanged.
563
+ - Add the built-in BRC-177 `p nosend expiry` module for seconds, Unix timestamp,
564
+ and block-height deadlines. Protected actions are prefunded through an
565
+ accepted transaction, contain no wallet change, and retain a pre-signed
566
+ reclaim across restarts, synchronized storage, devices, and keyless remote
567
+ monitors. Atomic lifecycle transitions, active-storage ownership,
568
+ fail-closed status checks, backoff-controlled recovery of terminally rejected
569
+ reclaims, quarantined race outputs, and locally validated proof finality
570
+ prevent duplicate reclaim activation and unsafe state regression. Wallet
571
+ Permissions Manager authorizes module use and spending
572
+ before prefunding, attributes the funding fee to the requesting originator,
573
+ and rechecks the current monthly ledger before releasing the protected
574
+ action. Existing actions and ordinary `noSend` calls are unchanged. The
575
+ current-main macOS reference fixtures measure 1,662,220 raw / 388,763 gzip /
576
+ 305,307 Brotli bytes with Vite, 1,297,621 raw / 355,579 gzip / 285,031 Brotli
577
+ bytes with esbuild, 1,710,494 raw / 430,613 gzip / 334,490 Brotli bytes with
578
+ Metro, and 3,474,604 raw / 1,406,878 gzip / 1,090,948 Brotli bytes as
579
+ optimized Hermes bytecode. The reviewed ceilings advance to 1,665,000 /
580
+ 390,000 / 307,000 Vite bytes, 1,300,000 / 357,000 / 287,000 esbuild bytes,
581
+ 1,712,000 / 455,000 / 360,000 Metro bytes, and 3,480,000 / 1,410,000 /
582
+ 1,095,000 Hermes bytes.
583
+
584
+ - Report `listOutputs` `totalOutputs` as the size of the whole result set on
585
+ every page, in both the IndexedDB and Knex storage providers. A short final
586
+ page previously returned only that page's length, so a client paging a large
587
+ basket saw the total collapse to the size of the last page; an offset at or
588
+ past the end now counts instead of inferring, and the managed-change spec-op
589
+ no longer discards the total it already computed. Full pages, first pages,
590
+ and empty result sets are unchanged, so no consumer migration is required.
591
+ `balanceAndUtxos` now terminates from page progress instead of relying on the
592
+ former collapsing total, preventing a zero-progress loop after the final page.
593
+ The reviewed Vite raw-size ceiling advances by 500 bytes to 1,607,500,
594
+ covering the hosted Linux measurement of 1,607,015 bytes; the Vite compressed
595
+ and esbuild ceilings remain unchanged.
596
+
597
+ - Serialize typed AtomicBEEF and competing BEEF in wallet review errors as
598
+ portable JSON arrays, keeping HTTP and relay error recovery compatible with
599
+ both historical array wallets and current binary Wallet Wire wallets.
600
+ - Serialize real typed arrays portably in outbound WAB requests while
601
+ preserving arbitrary inbound WAB JSON objects exactly.
602
+
603
+ - Accept legacy BRC-95 payment envelopes that include unrelated BEEF branches
604
+ by reducing them to the declared transaction and its dependency closure
605
+ before strict proof and BRC-29 validation. Malformed transactions, invalid
606
+ proofs, and incorrectly locked payment outputs remain rejected. The shared
607
+ helper adds 137 bytes to the local optimized Hermes fixture. The reviewed
608
+ ceilings advance by 1,000 bytes to 3,361,000 raw and 1,362,000 gzip, covering
609
+ the measured macOS raw size of 3,360,137 bytes and hosted Linux gzip size of
610
+ 1,361,509 bytes; the Brotli ceiling remains unchanged.
611
+
612
+ - Commit each received wallet-storage sync page and its durable checkpoint in
613
+ one provider transaction. Large IndexedDB replications avoid thousands of
614
+ transaction startup/commit cycles, failed pages roll back without advancing
615
+ the checkpoint, and abort cleanup preserves the original storage error.
616
+
617
+ - Fill wallet-storage sync pages with adaptive, size-aware source queries and
618
+ add composite SQL indexes for user-scoped proof lookups. Sync clients may
619
+ request optional source record totals for exact progress and ETA displays;
620
+ older clients and providers remain wire-compatible and do not incur count
621
+ queries unless totals are requested. Remote clients also recover from a
622
+ provider's HTTP 413 response ceiling by retrying the read-only sync request
623
+ with a smaller chunk budget and reusing the working limit for later pages.
624
+ Runtime validation rejects malformed remote totals, and MySQL rollback
625
+ restores the foreign-key support index before removing the new composites.
626
+ The retained authenticated candidate-provider benchmark fills a 250-record
627
+ proof page with three source reads (`10, 80, 160`) on SQLite and MySQL.
628
+ Clean macOS fixtures measure Vite at 1,609,916 raw, 379,552 gzip, and 297,188
629
+ Brotli bytes; esbuild at 1,254,827 raw, 344,883 gzip, and 277,729 Brotli
630
+ bytes; Metro at 1,662,714 raw, 419,740 gzip, and 326,785 Brotli bytes; and
631
+ Hermes at 3,371,236 raw, 1,347,950 gzip, and 1,061,946 Brotli bytes. The
632
+ reviewed ceilings advance to 1,611,000/380,000/297,500 for Vite,
633
+ 1,256,000/346,000/278,200 for esbuild, and 3,373,000/1,368,000 raw/gzip for
634
+ Hermes. Metro and the Hermes Brotli ceiling remain unchanged.
635
+
636
+ - Make verified phone changes interruption-safe by staging the replacement key
637
+ in WAB, publishing the UMP rotation, and then finalizing WAB. Authentication
638
+ can recover an interrupted transition from the current or pending key and
639
+ idempotently finish it without creating a second UMP update.
640
+
641
+ - Prune `inputBEEF` to the dependency closure of explicitly declared action
642
+ inputs before remote request serialization and repeat the pruning on the
643
+ server before verification and persistence. Unrelated proof branches no
644
+ longer consume transfer or validation work or cause an otherwise valid
645
+ action to fail; proof data required by a declared input is still fully
646
+ validated.
647
+
648
+ - Add a local-first ChainTracks control plane for browser, mobile, and Node
649
+ wallets, including explicit local-primary/remote-only mode, independently
650
+ sourced consistency checks, quorum-backed exceptional fallback, local-clear
651
+ hooks, and opt-in divergence recovery. Add a portable packaged-checkpoint
652
+ cache contract and a Node filesystem implementation with validated reads and
653
+ atomic writes. Coalesce concurrent immutable-file misses, centralize bounded
654
+ fetch retries, enforce whole-response deadlines and byte ceilings, and expose
655
+ cache/download counters and an optional upstream-byte budget. Bulk and live
656
+ ingestion now enforce each header's declared proof-of-work target, and local
657
+ consistency checks detect both quorum-confirmed divergence and a
658
+ quorum-confirmed stuck height before optional recovery. The reviewed platform
659
+ service seam also accepts a composed SDK `chainTracker` directly while
660
+ retaining the existing client-wrapping default. The reviewed platform
661
+ ceilings advance to 1,601,000 Vite bytes, 1,249,000 esbuild bytes, and
662
+ 3,358,000 Hermes bytes; their matching gzip/Brotli ceilings are
663
+ 377,000/296,000, 344,000/276,000, and 1,360,000/1,070,000 bytes.
664
+ - Keep ChainTracks availability independent of immutable-header verification:
665
+ stale heights now return immediately behind a single refresh, complete
666
+ digest/linkage/chain-work/proof-of-work validation can run in a bounded Node
667
+ worker pool, and historical reads release the manager lock before disk,
668
+ network, or worker waits. Filesystem caches use content-addressed objects,
669
+ quarantine rejected entries, and promote validated legacy files without
670
+ deleting the only retained copy. A crash-safe download ledger reserves every
671
+ physical retry before network I/O and survives restarts; failed objects back
672
+ off before another attempt. The reference server keeps probes local, applies
673
+ separate historical concurrency admission, and publishes complete CDN
674
+ generations behind an atomic pointer while retaining rollback generations.
675
+ - Age proactive pending-transaction review from immutable request creation
676
+ time, so repeated proof polling cannot keep a rejected transaction below the
677
+ reconciliation threshold forever. A descendant of a locally terminal parent
678
+ now fails from that durable storage evidence; failed-parent outputs remain
679
+ quarantined while unrelated inputs are released for reuse. The shared change
680
+ adds about 1.1 kB to the Vite browser artifact and 3.8 kB to Hermes bytecode;
681
+ the reviewed raw ceilings advance to 1,585,000 and 3,322,000 bytes while all
682
+ compressed ceilings remain unchanged; the esbuild raw ceiling advances to
683
+ 1,238,000 bytes.
684
+ - Keep mainnet and testnet ChainTracks usable from browser and webview wallets:
685
+ browser runtimes temporarily select the CORS-enabled legacy service while
686
+ Node runtimes retain Arcade/go-chaintracks v2. `Services.getHeight` now falls
687
+ back to WhatsOnChain if ChainTracks is unavailable and preserves the original
688
+ ChainTracks error when both providers fail.
689
+ - Route `ttn` wallets through the isolated `teratestnet` overlay preset and
690
+ enable the public TTN Arcade broadcaster/proof provider by default. TTN does
691
+ not register the incompatible legacy ARC BEEF fallback. Other chain defaults
692
+ are unchanged, and an empty Arcade URL explicitly disables Arcade.
693
+ - Reconcile Arcade broadcast outcomes as durable wallet state. Retryable
694
+ locktime and parent conditions remain pending, while validator failures fail
695
+ the request and explicit missing-input or conflict evidence atomically fails
696
+ every local transaction copy and quarantines its wallet-owned inputs without
697
+ depending on WhatsOnChain. Cached accepted/seen labels can no longer revive a
698
+ terminal conflict; only a mined event whose Merkle proof validates through
699
+ the configured chain tracker may repair it. Arcade also participates in the
700
+ shared transaction-status service so double-spend review remains conservative
701
+ on networks with no explorer. A scheduled paged pass also reconciles aged
702
+ pending requests from durable Arcade lifecycle state, including orphan-mempool
703
+ losers whose SSE event was missed; mined/known evidence wins over rejection.
704
+ Inconclusive or absent UTXO providers no longer
705
+ masquerade as a spent-output verdict in invalid-change release, stale-input
706
+ reconciliation, proof recovery, or storage diagnostics. Invalid-change review
707
+ returns conclusive read-only findings plus unknown diagnostics. Direct release
708
+ blocks atomically with machine-readable `WERR_UTXO_REVIEW_INCONCLUSIVE` when
709
+ any result is unknown. Monitor Admin uses bounded, five-second-deadline pages
710
+ and can explicitly release the confirmed-spent subset while retaining unknowns;
711
+ every mutation rechecks ownership/allocation under lock and records audit
712
+ evidence. Monitor Admin scans by default and requires explicit confirmation.
713
+ The
714
+ Arcade SSE cursor advances only after both event storage work and cursor
715
+ persistence succeed; either failure leaves the event queued for ordered retry.
716
+ - Replace 32-satoshi default-basket fragments with a progressive liquidity
717
+ policy targeting 144 useful 5,000-satoshi outputs. New actions create at most
718
+ eight outputs from real surplus and migrate at most four fee-positive legacy
719
+ fragments, while a same-tier compatibility plan guarantees that optional
720
+ shaping cannot refuse an action the former planner could fund. Explicitly
721
+ funded actions materialize change from their existing surplus without
722
+ gathering pool inputs, and SQLite policy migrations use sync-compatible UTC
723
+ ISO timestamps.
724
+ - Prefer completed, then unproven, then sending parents. Plans above 16 inputs
725
+ compare exact transaction-plus-BEEF bytes before accepting pending ancestry;
726
+ pending change remains an unconditional last-resort funding source. Align
727
+ action-batch reservation/planning and add a read-only Monitor liquidity
728
+ report. All work limits are configurable and accept `-1` for explicit
729
+ operator-selected unlimited behavior.
730
+ - Restore delayed broadcast for durable permission-token persistence. Permission
731
+ grants no longer inherit network-broadcast latency; the managed-change policy
732
+ handles queued ancestry without hiding it or preferring it over settled funds.
733
+ - Isolate each in-memory action batch by explicit staged-output or `sendWith`
734
+ membership, so unrelated immediate actions and `noSend` roots cannot be
735
+ captured by or commit a workspace. Add an exact-input resume protocol for
736
+ expired leases, structured lifecycle errors, and a provider-enforced
737
+ cumulative reservation limit that defaults to 256 outputs and can be
738
+ configured, including `-1` for operator-selected unlimited operation.
739
+ - Keep the combined action-batch, managed-liquidity, browser-fallback, and
740
+ fail-safe reconciliation browser/mobile cost bounded by exact packed-artifact
741
+ contracts. Local verification measures 1,557,683 raw / 366,927 gzip / 287,337
742
+ Brotli bytes with Vite, 1,215,983 raw / 333,466 gzip / 268,497 Brotli bytes
743
+ with esbuild, 1,617,544 raw Metro bytes, and 3,271,146 raw / 1,302,110 gzip /
744
+ 1,025,812 Brotli Hermes bytes. Reviewed raw ceilings are 1,561,000 Vite bytes,
745
+ 1,220,000 esbuild bytes, 1,710,000 Metro bytes, and 3,275,000 Hermes bytes;
746
+ compressed ceilings remain independently governed.
747
+ - Fix `WalletStorageManager.getStoreEndpointURL` / `getStores().endpointURL` to
748
+ duck-type provider `endpointUrl` instead of matching
749
+ `constructor.name === 'StorageClient'`. Production minifiers rename classes,
750
+ so the name check left remote stores with `endpointURL: undefined` while
751
+ sync still worked; clients that select a backup by URL (make primary) failed.
9
752
  - Let Storage Server operators select an explicit listener host while retaining
10
753
  the historical omitted-host behavior for existing callers. The official
11
754
  Wallet Infrastructure image uses this to bind direct-mode traffic on IPv4
@@ -222,7 +965,7 @@ attention to changes that materially alter behavior or extend functionality.
222
965
 
223
966
  ## wallet-toolbox 2.1.27
224
967
 
225
- - Add optional `contactSource` (and exported `ContactSource` / `ContactRecord` interfaces) on `WalletArgs` and the `Wallet` class. When provided, `Wallet.discoverByIdentityKey` consults the local contacts source **before** the in-process `_overlayCache` and before any network call; on a hit, the overlay is not queried at all. `Wallet.discoverByAttributes` consults the contact source's optional `findByAttributes` when present. Contact-source failures are swallowed and fall through to the existing network path so the network is never gated on a flaky contact store.
968
+ - Add optional `contactSource` (and exported `ContactSource` / `ContactRecord` interfaces) on `WalletArgs` and the `Wallet` class. When provided, `Wallet.discoverByIdentityKey` consults the local contacts source **before** the in-process `_overlayCache` and before any network call; on a hit, the overlay is not queried at all. `Wallet.discoverByAttributes` consults the contact source's optional `findByAttributes` when present. Contact-source failures are swallowed and fall through to the existing network path so the network is never gated on a flaky contact store. A caller-installed contact source is an explicit personal trust anchor: its records are locally authoritative, not third-party certifier attestations. Synthetic contact results default to type `contact`, use empty certificate-proof fields, and receive infinite trust to express that local policy decision.
226
969
  - `Wallet.discoverByIdentityKey` and `Wallet.discoverByAttributes` accept `forceRefresh?: boolean`. When `true`, both the contacts short-circuit and the 2-minute `_overlayCache` are bypassed so the network is consulted fresh — useful for a manual refresh action.
227
970
  - `identityUtils.parseResults` now yields to the host runtime between certificates on UI runtimes (browser / React Native, detected at call time). On Node the yield is skipped to avoid timer overhead. Same total work; the JS thread no longer owns the frame for the duration of the loop, so menu taps and scroll keep working while a large identity result is parsed.
228
971
  - `identityUtils.parseResults$` — new async-iterable form that emits each successfully parsed `VerifiableCertificate` as soon as it's ready, for callers that want progressive rendering.