@bsv/wallet-toolbox 2.13.0 → 2.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (659) hide show
  1. package/CHANGELOG.md +283 -1
  2. package/README.md +403 -5
  3. package/docs/README.md +8 -1
  4. package/docs/client.md +13057 -4632
  5. package/docs/identity-verification.md +196 -0
  6. package/docs/monitor.md +505 -190
  7. package/docs/services.md +4013 -1153
  8. package/docs/setup.md +98 -58
  9. package/docs/storage.md +5780 -1609
  10. package/docs/wallet.md +10155 -10871
  11. package/out/src/CWIStyleWalletManager.d.ts +6 -8
  12. package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
  13. package/out/src/CWIStyleWalletManager.js +170 -125
  14. package/out/src/CWIStyleWalletManager.js.map +1 -1
  15. package/out/src/Setup.d.ts +2 -0
  16. package/out/src/Setup.d.ts.map +1 -1
  17. package/out/src/Setup.js +3 -2
  18. package/out/src/Setup.js.map +1 -1
  19. package/out/src/ShamirWalletManager.d.ts.map +1 -1
  20. package/out/src/ShamirWalletManager.js +34 -19
  21. package/out/src/ShamirWalletManager.js.map +1 -1
  22. package/out/src/SimpleWalletManager.d.ts.map +1 -1
  23. package/out/src/SimpleWalletManager.js +7 -6
  24. package/out/src/SimpleWalletManager.js.map +1 -1
  25. package/out/src/Wallet.d.ts +50 -11
  26. package/out/src/Wallet.d.ts.map +1 -1
  27. package/out/src/Wallet.js +183 -107
  28. package/out/src/Wallet.js.map +1 -1
  29. package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
  30. package/out/src/WalletAuthenticationManager.js +282 -26
  31. package/out/src/WalletAuthenticationManager.js.map +1 -1
  32. package/out/src/WalletLogger.js +1 -1
  33. package/out/src/WalletLogger.js.map +1 -1
  34. package/out/src/WalletPermissionsManager.d.ts +30 -17
  35. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  36. package/out/src/WalletPermissionsManager.js +540 -312
  37. package/out/src/WalletPermissionsManager.js.map +1 -1
  38. package/out/src/WalletSettingsManager.d.ts +3 -2
  39. package/out/src/WalletSettingsManager.d.ts.map +1 -1
  40. package/out/src/WalletSettingsManager.js +141 -6
  41. package/out/src/WalletSettingsManager.js.map +1 -1
  42. package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
  43. package/out/src/entropy/EntropyCollector.js +3 -2
  44. package/out/src/entropy/EntropyCollector.js.map +1 -1
  45. package/out/src/fundWalletP2PKH.d.ts.map +1 -1
  46. package/out/src/fundWalletP2PKH.js +143 -44
  47. package/out/src/fundWalletP2PKH.js.map +1 -1
  48. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
  49. package/out/src/mockchain/MockChainTracker.js +5 -5
  50. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  51. package/out/src/mockchain/MockServices.d.ts.map +1 -1
  52. package/out/src/mockchain/MockServices.js +32 -8
  53. package/out/src/mockchain/MockServices.js.map +1 -1
  54. package/out/src/monitor/Monitor.d.ts +17 -0
  55. package/out/src/monitor/Monitor.d.ts.map +1 -1
  56. package/out/src/monitor/Monitor.js +206 -42
  57. package/out/src/monitor/Monitor.js.map +1 -1
  58. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  59. package/out/src/monitor/MonitorDaemon.js +64 -16
  60. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  61. package/out/src/monitor/monitorValidation.d.ts +12 -0
  62. package/out/src/monitor/monitorValidation.d.ts.map +1 -0
  63. package/out/src/monitor/monitorValidation.js +133 -0
  64. package/out/src/monitor/monitorValidation.js.map +1 -0
  65. package/out/src/monitor/tasks/TaskArcSSE.d.ts +2 -0
  66. package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
  67. package/out/src/monitor/tasks/TaskArcSSE.js +28 -12
  68. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  69. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +5 -0
  70. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
  71. package/out/src/monitor/tasks/TaskCheckForProofs.js +29 -24
  72. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  73. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  74. package/out/src/monitor/tasks/TaskCheckNoSends.js +11 -3
  75. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  76. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
  77. package/out/src/monitor/tasks/TaskFailAbandoned.js +9 -4
  78. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  79. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  80. package/out/src/monitor/tasks/TaskNewHeader.js +3 -1
  81. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  82. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts.map +1 -1
  83. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js +9 -3
  84. package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js.map +1 -1
  85. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
  86. package/out/src/monitor/tasks/TaskReorg.js +4 -4
  87. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  88. package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
  89. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +17 -7
  90. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  91. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +18 -1
  92. package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
  93. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +99 -21
  94. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  95. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +4 -4
  96. package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
  97. package/out/src/monitor/tasks/TaskReviewUtxos.js +41 -13
  98. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  99. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  100. package/out/src/monitor/tasks/TaskSendWaiting.js +52 -11
  101. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  102. package/out/src/monitor/tasks/TaskUnFail.d.ts +1 -0
  103. package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
  104. package/out/src/monitor/tasks/TaskUnFail.js +26 -8
  105. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  106. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
  107. package/out/src/sdk/PrivilegedKeyManager.js +3 -2
  108. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  109. package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
  110. package/out/src/sdk/WalletErrorFromJson.js +112 -2
  111. package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
  112. package/out/src/sdk/WalletServices.interfaces.d.ts +17 -1
  113. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  114. package/out/src/services/Services.d.ts +4 -0
  115. package/out/src/services/Services.d.ts.map +1 -1
  116. package/out/src/services/Services.js +260 -117
  117. package/out/src/services/Services.js.map +1 -1
  118. package/out/src/services/chaintracker/BHServiceClient.d.ts +21 -4
  119. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
  120. package/out/src/services/chaintracker/BHServiceClient.js +267 -66
  121. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  122. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +25 -3
  123. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  124. package/out/src/services/chaintracker/ChaintracksChainTracker.js +188 -53
  125. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  126. package/out/src/services/chaintracker/LocalChainTracker.d.ts +26 -0
  127. package/out/src/services/chaintracker/LocalChainTracker.d.ts.map +1 -1
  128. package/out/src/services/chaintracker/LocalChainTracker.js +180 -10
  129. package/out/src/services/chaintracker/LocalChainTracker.js.map +1 -1
  130. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
  131. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +59 -7
  132. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
  133. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +6 -0
  134. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +1 -1
  135. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +7 -0
  136. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
  137. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +2 -0
  138. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
  139. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +9 -0
  140. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
  141. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +19 -0
  142. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  143. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +237 -61
  144. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  145. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +16 -0
  146. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
  147. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +150 -26
  148. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  149. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +30 -1
  150. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  151. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +346 -30
  152. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  153. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +32 -1
  154. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
  155. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +375 -43
  156. package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
  157. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  158. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +28 -3
  159. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  160. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
  161. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +33 -9
  162. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  163. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
  164. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
  165. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.d.ts.map +1 -1
  166. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js +4 -2
  167. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js.map +1 -1
  168. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +2 -0
  169. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  170. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +17 -4
  171. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  172. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts +2 -0
  173. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
  174. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +40 -20
  175. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
  176. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  177. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +14 -0
  178. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  179. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +6 -0
  180. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -1
  181. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +56 -9
  182. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -1
  183. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
  184. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +6 -3
  185. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
  186. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +4 -0
  187. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
  188. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +27 -9
  189. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  190. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts +8 -0
  191. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
  192. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +49 -5
  193. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
  194. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +1 -1
  195. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  196. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +90 -21
  197. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  198. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +3 -1
  199. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
  200. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +185 -38
  201. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  202. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  203. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +59 -6
  204. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  205. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts +2 -0
  206. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
  207. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +89 -39
  208. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  209. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +10 -0
  210. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  211. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +225 -24
  212. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  213. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +2 -1
  214. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  215. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +265 -96
  216. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  217. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +3 -0
  218. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
  219. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +225 -86
  220. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  221. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +3 -0
  222. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  223. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +121 -35
  224. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  225. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +2 -2
  226. package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
  227. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
  228. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  229. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
  230. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  231. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  232. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  233. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  234. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +1 -7
  235. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  236. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
  237. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +1 -7
  238. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
  239. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
  240. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +1 -7
  241. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  242. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +18 -0
  243. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -1
  244. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +204 -14
  245. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -1
  246. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +6 -1
  247. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  248. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +486 -82
  249. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  250. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
  251. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +17 -1
  252. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  253. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts.map +1 -1
  254. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js +12 -2
  255. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js.map +1 -1
  256. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  257. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +99 -30
  258. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  259. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +1 -0
  260. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  261. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +23 -15
  262. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  263. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +7 -0
  264. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
  265. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +90 -24
  266. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  267. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +2 -1
  268. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
  269. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +57 -11
  270. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
  271. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts +9 -0
  272. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts.map +1 -1
  273. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js +100 -14
  274. package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js.map +1 -1
  275. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  276. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  277. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts +2 -0
  278. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -1
  279. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +104 -8
  280. package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -1
  281. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts +1 -0
  282. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts.map +1 -1
  283. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js +79 -15
  284. package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js.map +1 -1
  285. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +3 -0
  286. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
  287. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +15 -0
  288. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  289. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +6 -1
  290. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  291. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +311 -93
  292. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  293. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts +4 -0
  294. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts.map +1 -0
  295. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js +33 -0
  296. package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js.map +1 -0
  297. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  298. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  299. package/out/src/services/classifyOutputUtxo.d.ts.map +1 -1
  300. package/out/src/services/classifyOutputUtxo.js +19 -10
  301. package/out/src/services/classifyOutputUtxo.js.map +1 -1
  302. package/out/src/services/fiatRateValidation.d.ts +12 -0
  303. package/out/src/services/fiatRateValidation.d.ts.map +1 -0
  304. package/out/src/services/fiatRateValidation.js +138 -0
  305. package/out/src/services/fiatRateValidation.js.map +1 -0
  306. package/out/src/services/getCanonicalMerklePath.d.ts +15 -0
  307. package/out/src/services/getCanonicalMerklePath.d.ts.map +1 -0
  308. package/out/src/services/getCanonicalMerklePath.js +90 -0
  309. package/out/src/services/getCanonicalMerklePath.js.map +1 -0
  310. package/out/src/services/providers/ARC.d.ts +3 -16
  311. package/out/src/services/providers/ARC.d.ts.map +1 -1
  312. package/out/src/services/providers/ARC.js +36 -37
  313. package/out/src/services/providers/ARC.js.map +1 -1
  314. package/out/src/services/providers/ArcSSEClient.d.ts +25 -19
  315. package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
  316. package/out/src/services/providers/ArcSSEClient.js +352 -85
  317. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  318. package/out/src/services/providers/Arcade.d.ts +1 -0
  319. package/out/src/services/providers/Arcade.d.ts.map +1 -1
  320. package/out/src/services/providers/Arcade.js +56 -41
  321. package/out/src/services/providers/Arcade.js.map +1 -1
  322. package/out/src/services/providers/Bitails.d.ts +3 -0
  323. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  324. package/out/src/services/providers/Bitails.js +79 -12
  325. package/out/src/services/providers/Bitails.js.map +1 -1
  326. package/out/src/services/providers/SdkWhatsOnChain.d.ts +8 -2
  327. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  328. package/out/src/services/providers/SdkWhatsOnChain.js +83 -10
  329. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  330. package/out/src/services/providers/WhatsOnChain.d.ts +3 -0
  331. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  332. package/out/src/services/providers/WhatsOnChain.js +221 -69
  333. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  334. package/out/src/services/providers/arcProviderConfig.d.ts +27 -0
  335. package/out/src/services/providers/arcProviderConfig.d.ts.map +1 -0
  336. package/out/src/services/providers/arcProviderConfig.js +83 -0
  337. package/out/src/services/providers/arcProviderConfig.js.map +1 -0
  338. package/out/src/services/providers/arcTxDataValidation.d.ts +4 -0
  339. package/out/src/services/providers/arcTxDataValidation.d.ts.map +1 -0
  340. package/out/src/services/providers/arcTxDataValidation.js +92 -0
  341. package/out/src/services/providers/arcTxDataValidation.js.map +1 -0
  342. package/out/src/services/providers/exchangeRates.d.ts +3 -3
  343. package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
  344. package/out/src/services/providers/exchangeRates.js +153 -226
  345. package/out/src/services/providers/exchangeRates.js.map +1 -1
  346. package/out/src/services/providers/getBeefForTxid.d.ts.map +1 -1
  347. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  348. package/out/src/services/providers/whatsOnChainHelpers.d.ts +2 -2
  349. package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +1 -1
  350. package/out/src/services/providers/whatsOnChainHelpers.js +11 -8
  351. package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -1
  352. package/out/src/services/validateMerklePathResult.d.ts +30 -0
  353. package/out/src/services/validateMerklePathResult.d.ts.map +1 -0
  354. package/out/src/services/validateMerklePathResult.js +272 -0
  355. package/out/src/services/validateMerklePathResult.js.map +1 -0
  356. package/out/src/services/validatePostBeefResult.d.ts +17 -0
  357. package/out/src/services/validatePostBeefResult.d.ts.map +1 -0
  358. package/out/src/services/validatePostBeefResult.js +334 -0
  359. package/out/src/services/validatePostBeefResult.js.map +1 -0
  360. package/out/src/services/validateRawTxResult.d.ts +6 -0
  361. package/out/src/services/validateRawTxResult.d.ts.map +1 -0
  362. package/out/src/services/validateRawTxResult.js +77 -0
  363. package/out/src/services/validateRawTxResult.js.map +1 -0
  364. package/out/src/services/validateScriptHashHistoryResult.d.ts +5 -0
  365. package/out/src/services/validateScriptHashHistoryResult.d.ts.map +1 -0
  366. package/out/src/services/validateScriptHashHistoryResult.js +99 -0
  367. package/out/src/services/validateScriptHashHistoryResult.js.map +1 -0
  368. package/out/src/services/validateStatusForTxidsResult.d.ts +8 -0
  369. package/out/src/services/validateStatusForTxidsResult.d.ts.map +1 -0
  370. package/out/src/services/validateStatusForTxidsResult.js +181 -0
  371. package/out/src/services/validateStatusForTxidsResult.js.map +1 -0
  372. package/out/src/services/validateUtxoStatusResult.d.ts +6 -0
  373. package/out/src/services/validateUtxoStatusResult.d.ts.map +1 -0
  374. package/out/src/services/validateUtxoStatusResult.js +126 -0
  375. package/out/src/services/validateUtxoStatusResult.js.map +1 -0
  376. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +3 -2
  377. package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -1
  378. package/out/src/signer/actionBatch/ActionBatchPlanner.js +4 -3
  379. package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -1
  380. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +6 -5
  381. package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -1
  382. package/out/src/signer/actionBatch/ActionBatchWorkspace.js +70 -76
  383. package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -1
  384. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +2 -2
  385. package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -1
  386. package/out/src/signer/actionBatch/actionBatchBootstrap.js +3 -3
  387. package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -1
  388. package/out/src/signer/methods/acquireDirectCertificate.d.ts +3 -2
  389. package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
  390. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  391. package/out/src/signer/methods/buildSignableTransaction.d.ts +6 -5
  392. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  393. package/out/src/signer/methods/buildSignableTransaction.js +6 -11
  394. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  395. package/out/src/signer/methods/createAction.d.ts +4 -3
  396. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  397. package/out/src/signer/methods/createAction.js +4 -2
  398. package/out/src/signer/methods/createAction.js.map +1 -1
  399. package/out/src/signer/methods/createNoSendExpiryAction.d.ts +3 -3
  400. package/out/src/signer/methods/createNoSendExpiryAction.d.ts.map +1 -1
  401. package/out/src/signer/methods/createNoSendExpiryAction.js +9 -4
  402. package/out/src/signer/methods/createNoSendExpiryAction.js.map +1 -1
  403. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  404. package/out/src/signer/methods/internalizeAction.js +2 -2
  405. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  406. package/out/src/signer/methods/proveCertificate.d.ts +3 -2
  407. package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
  408. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  409. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  410. package/out/src/signer/methods/signAction.js +3 -2
  411. package/out/src/signer/methods/signAction.js.map +1 -1
  412. package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -1
  413. package/out/src/signer/methods/verifyUnlockScripts.js +12 -17
  414. package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -1
  415. package/out/src/storage/StorageIdb.d.ts +5 -3
  416. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  417. package/out/src/storage/StorageIdb.js +15 -20
  418. package/out/src/storage/StorageIdb.js.map +1 -1
  419. package/out/src/storage/StorageKnex.d.ts +5 -3
  420. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  421. package/out/src/storage/StorageKnex.js +143 -93
  422. package/out/src/storage/StorageKnex.js.map +1 -1
  423. package/out/src/storage/StorageProvider.d.ts +19 -9
  424. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  425. package/out/src/storage/StorageProvider.js +229 -145
  426. package/out/src/storage/StorageProvider.js.map +1 -1
  427. package/out/src/storage/StorageReader.d.ts +1 -1
  428. package/out/src/storage/StorageReader.d.ts.map +1 -1
  429. package/out/src/storage/StorageReader.js +9 -42
  430. package/out/src/storage/StorageReader.js.map +1 -1
  431. package/out/src/storage/StorageReaderWriter.d.ts +1 -0
  432. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  433. package/out/src/storage/StorageReaderWriter.js +37 -36
  434. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  435. package/out/src/storage/StorageSyncReader.d.ts +1 -1
  436. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  437. package/out/src/storage/StorageSyncReader.js +3 -36
  438. package/out/src/storage/StorageSyncReader.js.map +1 -1
  439. package/out/src/storage/WalletStorageManager.d.ts +8 -7
  440. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  441. package/out/src/storage/WalletStorageManager.js +38 -65
  442. package/out/src/storage/WalletStorageManager.js.map +1 -1
  443. package/out/src/storage/adminServer/adminServer.d.ts +1 -1
  444. package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
  445. package/out/src/storage/adminServer/adminServer.js +16 -44
  446. package/out/src/storage/adminServer/adminServer.js.map +1 -1
  447. package/out/src/storage/methods/ListActionsSpecOp.d.ts +2 -2
  448. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  449. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  450. package/out/src/storage/methods/ListOutputsSpecOp.d.ts +7 -4
  451. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  452. package/out/src/storage/methods/ListOutputsSpecOp.js +1 -0
  453. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  454. package/out/src/storage/methods/actionBatch.d.ts.map +1 -1
  455. package/out/src/storage/methods/actionBatch.js +3 -2
  456. package/out/src/storage/methods/actionBatch.js.map +1 -1
  457. package/out/src/storage/methods/actionBatchBlobs.d.ts +2 -0
  458. package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -1
  459. package/out/src/storage/methods/actionBatchBlobs.js +40 -22
  460. package/out/src/storage/methods/actionBatchBlobs.js.map +1 -1
  461. package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -1
  462. package/out/src/storage/methods/actionBatchValidation.js +22 -30
  463. package/out/src/storage/methods/actionBatchValidation.js.map +1 -1
  464. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +7 -2
  465. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
  466. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +57 -44
  467. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  468. package/out/src/storage/methods/createAction.d.ts +7 -6
  469. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  470. package/out/src/storage/methods/createAction.js +7 -5
  471. package/out/src/storage/methods/createAction.js.map +1 -1
  472. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  473. package/out/src/storage/methods/generateChange.js +12 -11
  474. package/out/src/storage/methods/generateChange.js.map +1 -1
  475. package/out/src/storage/methods/getBeefForTransaction.js +5 -7
  476. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  477. package/out/src/storage/methods/internalizeAction.d.ts +3 -3
  478. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  479. package/out/src/storage/methods/internalizeAction.js +134 -129
  480. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  481. package/out/src/storage/methods/listActionsIdb.d.ts +3 -2
  482. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  483. package/out/src/storage/methods/listActionsIdb.js +2 -2
  484. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  485. package/out/src/storage/methods/listActionsKnex.d.ts +3 -2
  486. package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
  487. package/out/src/storage/methods/listActionsKnex.js +10 -9
  488. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  489. package/out/src/storage/methods/listCertificates.d.ts +3 -2
  490. package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
  491. package/out/src/storage/methods/listCertificates.js.map +1 -1
  492. package/out/src/storage/methods/listOutputsIdb.d.ts +3 -2
  493. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  494. package/out/src/storage/methods/listOutputsIdb.js +11 -11
  495. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  496. package/out/src/storage/methods/listOutputsKnex.d.ts +3 -2
  497. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
  498. package/out/src/storage/methods/listOutputsKnex.js +15 -23
  499. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  500. package/out/src/storage/methods/noSendExpiry.d.ts +3 -3
  501. package/out/src/storage/methods/noSendExpiry.d.ts.map +1 -1
  502. package/out/src/storage/methods/noSendExpiry.js +10 -8
  503. package/out/src/storage/methods/noSendExpiry.js.map +1 -1
  504. package/out/src/storage/methods/preparedBeef.d.ts.map +1 -1
  505. package/out/src/storage/methods/preparedBeef.js +13 -14
  506. package/out/src/storage/methods/preparedBeef.js.map +1 -1
  507. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  508. package/out/src/storage/methods/processAction.js +37 -6
  509. package/out/src/storage/methods/processAction.js.map +1 -1
  510. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts +1 -1
  511. package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts.map +1 -1
  512. package/out/src/storage/methods/reconcileFailedTransactionInputs.js.map +1 -1
  513. package/out/src/storage/methods/reviewStatusIdb.d.ts +1 -1
  514. package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
  515. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  516. package/out/src/storage/methods/reviewUtxoOutputs.d.ts +1 -0
  517. package/out/src/storage/methods/reviewUtxoOutputs.d.ts.map +1 -1
  518. package/out/src/storage/methods/reviewUtxoOutputs.js +51 -4
  519. package/out/src/storage/methods/reviewUtxoOutputs.js.map +1 -1
  520. package/out/src/storage/methods/validateSyncProof.d.ts.map +1 -1
  521. package/out/src/storage/methods/validateSyncProof.js +3 -3
  522. package/out/src/storage/methods/validateSyncProof.js.map +1 -1
  523. package/out/src/storage/portable/index.d.ts.map +1 -1
  524. package/out/src/storage/portable/index.js +21 -13
  525. package/out/src/storage/portable/index.js.map +1 -1
  526. package/out/src/storage/remoting/BinaryJson.d.ts +11 -0
  527. package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -1
  528. package/out/src/storage/remoting/BinaryJson.js +37 -0
  529. package/out/src/storage/remoting/BinaryJson.js.map +1 -1
  530. package/out/src/storage/remoting/KnexSessionManager.d.ts +26 -2
  531. package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -1
  532. package/out/src/storage/remoting/KnexSessionManager.js +222 -30
  533. package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
  534. package/out/src/storage/remoting/KnexSyncTransferStore.d.ts.map +1 -1
  535. package/out/src/storage/remoting/KnexSyncTransferStore.js +3 -4
  536. package/out/src/storage/remoting/KnexSyncTransferStore.js.map +1 -1
  537. package/out/src/storage/remoting/StorageClient.d.ts +6 -1
  538. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  539. package/out/src/storage/remoting/StorageClient.js +63 -6
  540. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  541. package/out/src/storage/remoting/StorageClientBase.d.ts +23 -6
  542. package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
  543. package/out/src/storage/remoting/StorageClientBase.js +148 -19
  544. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  545. package/out/src/storage/remoting/StorageMobile.d.ts +5 -0
  546. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  547. package/out/src/storage/remoting/StorageMobile.js +11 -9
  548. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  549. package/out/src/storage/remoting/StorageServer.d.ts +5 -1
  550. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  551. package/out/src/storage/remoting/StorageServer.js +95 -19
  552. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  553. package/out/src/storage/remoting/SyncTransfer.d.ts.map +1 -1
  554. package/out/src/storage/remoting/SyncTransfer.js +3 -2
  555. package/out/src/storage/remoting/SyncTransfer.js.map +1 -1
  556. package/out/src/storage/schema/KnexMigrations.d.ts +1 -0
  557. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  558. package/out/src/storage/schema/KnexMigrations.js +28 -6
  559. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  560. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
  561. package/out/src/storage/schema/entities/EntityOutput.js +11 -4
  562. package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
  563. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +2 -1
  564. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
  565. package/out/src/storage/schema/entities/EntityProvenTx.js +93 -39
  566. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  567. package/out/src/storage/schema/entities/EntityProvenTxReq.js +1 -1
  568. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  569. package/out/src/storage/schema/entities/EntitySyncState.js +1 -1
  570. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  571. package/out/src/storage/schema/tables/TableCertificate.d.ts +1 -1
  572. package/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -1
  573. package/out/src/storage/schema/tables/TableCertificateField.d.ts +1 -1
  574. package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -1
  575. package/out/src/storage/schema/tables/TableCommission.d.ts +1 -1
  576. package/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -1
  577. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +1 -1
  578. package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -1
  579. package/out/src/storage/schema/tables/TableOutput.d.ts +1 -1
  580. package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
  581. package/out/src/storage/schema/tables/TableOutputBasket.d.ts +1 -1
  582. package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -1
  583. package/out/src/storage/schema/tables/TableOutputTag.d.ts +1 -1
  584. package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -1
  585. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +1 -1
  586. package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -1
  587. package/out/src/storage/schema/tables/TableProvenTx.d.ts +1 -1
  588. package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -1
  589. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +1 -1
  590. package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -1
  591. package/out/src/storage/schema/tables/TableSettings.d.ts +1 -1
  592. package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
  593. package/out/src/storage/schema/tables/TableSyncState.d.ts +1 -1
  594. package/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -1
  595. package/out/src/storage/schema/tables/TableTransaction.d.ts +1 -1
  596. package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
  597. package/out/src/storage/schema/tables/TableTransaction.js.map +1 -1
  598. package/out/src/storage/schema/tables/TableTxLabel.d.ts +1 -1
  599. package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -1
  600. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +1 -1
  601. package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -1
  602. package/out/src/storage/schema/tables/TableUser.d.ts +1 -1
  603. package/out/src/storage/schema/tables/TableUser.d.ts.map +1 -1
  604. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  605. package/out/src/storage/sync/StorageMySQLDojoReader.js +8 -7
  606. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  607. package/out/src/utility/actionBatchDigest.d.ts.map +1 -1
  608. package/out/src/utility/actionBatchDigest.js +9 -7
  609. package/out/src/utility/actionBatchDigest.js.map +1 -1
  610. package/out/src/utility/actionBatchPack.d.ts.map +1 -1
  611. package/out/src/utility/actionBatchPack.js +7 -12
  612. package/out/src/utility/actionBatchPack.js.map +1 -1
  613. package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -1
  614. package/out/src/utility/brc153ReferenceLabels.js +4 -4
  615. package/out/src/utility/brc153ReferenceLabels.js.map +1 -1
  616. package/out/src/utility/brc177NoSendExpiry.d.ts +2 -2
  617. package/out/src/utility/brc177NoSendExpiry.d.ts.map +1 -1
  618. package/out/src/utility/canonicalizeAtomicBeef.js +2 -2
  619. package/out/src/utility/canonicalizeAtomicBeef.js.map +1 -1
  620. package/out/src/utility/exactActionSpend.d.ts +11 -0
  621. package/out/src/utility/exactActionSpend.d.ts.map +1 -0
  622. package/out/src/utility/exactActionSpend.js +11 -0
  623. package/out/src/utility/exactActionSpend.js.map +1 -0
  624. package/out/src/utility/identityUtils.d.ts +44 -4
  625. package/out/src/utility/identityUtils.d.ts.map +1 -1
  626. package/out/src/utility/identityUtils.js +376 -61
  627. package/out/src/utility/identityUtils.js.map +1 -1
  628. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
  629. package/out/src/utility/parseTxScriptOffsets.js +1 -19
  630. package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
  631. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
  632. package/out/src/utility/tscProofToMerklePath.js +35 -4
  633. package/out/src/utility/tscProofToMerklePath.js.map +1 -1
  634. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  635. package/out/src/utility/utilityHelpers.js +8 -6
  636. package/out/src/utility/utilityHelpers.js.map +1 -1
  637. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  638. package/out/src/utility/utilityHelpers.noBuffer.js +6 -6
  639. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  640. package/out/src/utility/verifyOverlayOutput.d.ts +12 -0
  641. package/out/src/utility/verifyOverlayOutput.d.ts.map +1 -0
  642. package/out/src/utility/verifyOverlayOutput.js +22 -0
  643. package/out/src/utility/verifyOverlayOutput.js.map +1 -0
  644. package/out/src/utility/walletResultGuards.d.ts +14 -0
  645. package/out/src/utility/walletResultGuards.d.ts.map +1 -0
  646. package/out/src/utility/walletResultGuards.js +28 -0
  647. package/out/src/utility/walletResultGuards.js.map +1 -0
  648. package/out/src/wab-client/WABClient.d.ts +3 -17
  649. package/out/src/wab-client/WABClient.d.ts.map +1 -1
  650. package/out/src/wab-client/WABClient.js +30 -14
  651. package/out/src/wab-client/WABClient.js.map +1 -1
  652. package/out/src/wab-client/WABResponseValidation.d.ts +48 -0
  653. package/out/src/wab-client/WABResponseValidation.d.ts.map +1 -0
  654. package/out/src/wab-client/WABResponseValidation.js +321 -0
  655. package/out/src/wab-client/WABResponseValidation.js.map +1 -0
  656. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
  657. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +3 -2
  658. package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
  659. package/package.json +5 -5
package/out/src/Wallet.js CHANGED
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Wallet = void 0;
4
4
  exports.throwDummyReviewActions = throwDummyReviewActions;
5
+ const validationHelpers_1 = require("@bsv/sdk/wallet/validationHelpers");
5
6
  const sdk_1 = require("@bsv/sdk");
7
+ const utils_1 = require("@bsv/sdk/primitives/utils");
6
8
  const acquireDirectCertificate_1 = require("./signer/methods/acquireDirectCertificate");
7
9
  const proveCertificate_1 = require("./signer/methods/proveCertificate");
8
10
  const createAction_1 = require("./signer/methods/createAction");
@@ -21,6 +23,7 @@ const WalletError_1 = require("./sdk/WalletError");
21
23
  const utilityHelpers_noBuffer_1 = require("./utility/utilityHelpers.noBuffer");
22
24
  const resultBeef_1 = require("./signer/methods/resultBeef");
23
25
  const ActionBatchWorkspace_1 = require("./signer/actionBatch/ActionBatchWorkspace");
26
+ const walletResultGuards_1 = require("./utility/walletResultGuards");
24
27
  function prepareKnownTxidsForCreateAction(wallet, args) {
25
28
  if (!wallet.autoKnownTxids || args.options?.knownTxids != null)
26
29
  return;
@@ -41,8 +44,9 @@ function prepareKnownTxidsForCreateAction(wallet, args) {
41
44
  /**
42
45
  * Build a {@link DiscoverCertificatesResult} from contact records so {@link Wallet.discoverByIdentityKey}
43
46
  * and {@link Wallet.discoverByAttributes} can short-circuit on a local contacts hit. The synthetic
44
- * certificate has `trust: Infinity` by default so downstream `transformVerifiableCertificatesWithTrust`
45
- * style filtering treats contacts as authoritative.
47
+ * result has `trust: Infinity` by default so downstream trust filtering honors the user's local
48
+ * assertion as authoritative. Its empty serial, signature, and revocation outpoint deliberately
49
+ * distinguish it from an independently certified third-party attestation.
46
50
  */
47
51
  function synthesizeContactResult(contacts) {
48
52
  const certificates = contacts.map(c => ({
@@ -163,6 +167,10 @@ class Wallet {
163
167
  }
164
168
  }
165
169
  async destroy() {
170
+ this._identityEvidenceClosed = true;
171
+ this._identityEvidenceVerifier?.dispose();
172
+ this._overlayEvidenceCache.clear();
173
+ clearTimeout(this._overlayEvidenceExpiryTimer);
166
174
  await this.actionBatch.abort();
167
175
  await this.storage.destroy();
168
176
  if (this.privilegedKeyManager != null)
@@ -318,8 +326,8 @@ class Wallet {
318
326
  // List Methods
319
327
  /// ///////////////
320
328
  async listActions(args, originator) {
321
- sdk_1.Validation.validateOriginator(originator);
322
- const { vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateListActionsArgs);
329
+ (0, validationHelpers_1.validateOriginator)(originator);
330
+ const { vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateListActionsArgs);
323
331
  const storageArgs = this.actionBatch.hasWorkspace ? { ...vargs, limit: 10000, offset: 0 } : vargs;
324
332
  const r = this.actionBatch.overlayListActions(await this.storage.listActions(storageArgs), vargs);
325
333
  // Implement security policy to block customInstructions from output results.
@@ -336,7 +344,7 @@ class Wallet {
336
344
  return `storage ${this.getStorageIdentity().storageIdentityKey}`;
337
345
  }
338
346
  async listOutputs(args, originator) {
339
- sdk_1.Validation.validateOriginator(originator);
347
+ (0, validationHelpers_1.validateOriginator)(originator);
340
348
  const { vargs } = this.validateAuthAndArgs(args, validateListOutputsArgs);
341
349
  if (this.autoKnownTxids && !vargs.knownTxids) {
342
350
  vargs.knownTxids = this.getKnownTxids();
@@ -352,8 +360,8 @@ class Wallet {
352
360
  return r;
353
361
  }
354
362
  async listCertificates(args, originator) {
355
- sdk_1.Validation.validateOriginator(originator);
356
- const { vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateListCertificatesArgs);
363
+ (0, validationHelpers_1.validateOriginator)(originator);
364
+ const { vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateListCertificatesArgs);
357
365
  const r = await this.storage.listCertificates(vargs);
358
366
  return r;
359
367
  }
@@ -361,7 +369,7 @@ class Wallet {
361
369
  // Certificates
362
370
  /// ///////////////
363
371
  async acquireDirectCertificateProtocol(args) {
364
- const { auth, vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateAcquireDirectCertificateArgs);
372
+ const { auth, vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateAcquireDirectCertificateArgs);
365
373
  vargs.subject = (await this.getPublicKey({
366
374
  identityKey: true,
367
375
  privileged: args.privileged,
@@ -408,11 +416,12 @@ class Wallet {
408
416
  this.validateIssuedCertificateFields(certificate, expectedFields);
409
417
  }
410
418
  async acquireIssuedCertificateProtocol(args) {
411
- const { auth, vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateAcquireIssuanceCertificateArgs);
419
+ const { auth, vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateAcquireIssuanceCertificateArgs);
412
420
  const clientNonce = await (0, sdk_1.createNonce)(this, vargs.certifier);
413
- const authClient = new sdk_1.AuthFetch(this);
421
+ const endpoint = new URL('signCertificate', `${vargs.certifierUrl}/`);
422
+ const authClient = new sdk_1.AuthFetch(this, undefined, undefined, undefined, {}, (0, sdk_1.createPublicHTTPSFetch)(endpoint.origin));
414
423
  const { certificateFields, masterKeyring } = await sdk_1.MasterCertificate.createCertificateFields(this, vargs.certifier, vargs.fields);
415
- const response = await authClient.fetch(`${vargs.certifierUrl}/signCertificate`, {
424
+ const response = await authClient.fetch(endpoint.toString(), {
416
425
  method: 'POST',
417
426
  headers: { 'Content-Type': 'application/json' },
418
427
  body: JSON.stringify({
@@ -434,13 +443,13 @@ class Wallet {
434
443
  const signedCertificate = new sdk_1.Certificate(certificate.type, certificate.serialNumber, certificate.subject, certificate.certifier, certificate.revocationOutpoint, certificate.fields, certificate.signature);
435
444
  await (0, sdk_1.verifyNonce)(serverNonce, this, vargs.certifier);
436
445
  const { valid } = await this.verifyHmac({
437
- hmac: sdk_1.Utils.toArray(signedCertificate.serialNumber, 'base64'),
438
- data: sdk_1.Utils.toArray(clientNonce + serverNonce, 'base64'),
446
+ hmac: (0, utils_1.toArray)(signedCertificate.serialNumber, 'base64'),
447
+ data: (0, utils_1.toArray)(clientNonce + serverNonce, 'base64'),
439
448
  protocolID: [2, 'certificate issuance'],
440
449
  keyID: serverNonce + clientNonce,
441
450
  counterparty: vargs.certifier
442
451
  });
443
- if (!valid)
452
+ if (valid !== true)
444
453
  throw new Error('Invalid serialNumber');
445
454
  this.validateIssuedCertificate(signedCertificate, vargs, certificateFields);
446
455
  if (!(await signedCertificate.verify()))
@@ -454,7 +463,7 @@ class Wallet {
454
463
  });
455
464
  }
456
465
  async acquireCertificate(args, originator) {
457
- sdk_1.Validation.validateOriginator(originator);
466
+ (0, validationHelpers_1.validateOriginator)(originator);
458
467
  if (args.acquisitionProtocol === 'direct') {
459
468
  return await this.acquireDirectCertificateProtocol(args);
460
469
  }
@@ -464,32 +473,117 @@ class Wallet {
464
473
  throw new WERR_errors_1.WERR_INVALID_PARAMETER('acquisitionProtocol', `valid.${args.acquisitionProtocol} is unrecognized.`);
465
474
  }
466
475
  async relinquishCertificate(args, originator) {
467
- sdk_1.Validation.validateOriginator(originator);
468
- this.validateAuthAndArgs(args, sdk_1.Validation.validateRelinquishCertificateArgs);
469
- await this.storage.relinquishCertificate(args);
476
+ (0, validationHelpers_1.validateOriginator)(originator);
477
+ this.validateAuthAndArgs(args, validationHelpers_1.validateRelinquishCertificateArgs);
478
+ const updated = await this.storage.relinquishCertificate(args);
479
+ (0, walletResultGuards_1.assertStorageMutationSucceeded)(updated, 'certificate relinquishment');
470
480
  return { relinquished: true };
471
481
  }
472
482
  async proveCertificate(args, originator) {
473
- sdk_1.Validation.validateOriginator(originator);
474
- const { auth, vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateProveCertificateArgs);
483
+ (0, validationHelpers_1.validateOriginator)(originator);
484
+ const { auth, vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateProveCertificateArgs);
475
485
  const r = await (0, proveCertificate_1.proveCertificate)(this, auth, vargs);
476
486
  return r;
477
487
  }
478
488
  /** 2-minute cache of trust settings for identity resolution paths */
479
489
  _trustSettingsCache;
480
- /** 2-minute cache of queryOverlay() results keyed by normalized query */
481
- _overlayCache = new Map();
490
+ /** Bounded two-minute untrusted receipts. Every use rechecks canonical evidence. */
491
+ _overlayEvidenceCache = new Map();
492
+ _overlayEvidenceExpiryTimer;
493
+ _identityEvidenceVerifier;
494
+ _identityEvidenceClosed = false;
495
+ pruneOverlayEvidence() {
496
+ for (const [key, value] of this._overlayEvidenceCache) {
497
+ if (value.expiresAt <= Date.now())
498
+ this._overlayEvidenceCache.delete(key);
499
+ }
500
+ }
501
+ scheduleOverlayEvidenceExpiry() {
502
+ clearTimeout(this._overlayEvidenceExpiryTimer);
503
+ const expiresAt = Math.min(...[...this._overlayEvidenceCache.values()].map(value => value.expiresAt));
504
+ if (!Number.isFinite(expiresAt))
505
+ return;
506
+ this._overlayEvidenceExpiryTimer = setTimeout(() => {
507
+ this.pruneOverlayEvidence();
508
+ this.scheduleOverlayEvidenceExpiry();
509
+ }, Math.max(1, expiresAt - Date.now()));
510
+ this._overlayEvidenceExpiryTimer.unref?.();
511
+ }
512
+ async requireOverlayChainTracker(forceRefresh) {
513
+ if (this.services == null) {
514
+ if (forceRefresh) {
515
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('services', 'valid in constructor arguments to be retreived here.');
516
+ }
517
+ return undefined;
518
+ }
519
+ return await this.services.getChainTracker();
520
+ }
521
+ async discoverOverlayCertificates(query, cacheKey, forceRefresh, now) {
522
+ const chainTracker = await this.requireOverlayChainTracker(forceRefresh);
523
+ if (chainTracker == null)
524
+ return [];
525
+ if (this._identityEvidenceClosed)
526
+ return [];
527
+ const chainNamespace = `wallet:${this.chain}`;
528
+ if (this._identityEvidenceVerifier?.chainTracker !== chainTracker ||
529
+ this._identityEvidenceVerifier.chainNamespace !== chainNamespace) {
530
+ this._identityEvidenceVerifier?.dispose();
531
+ this._identityEvidenceVerifier = new identityUtils_1.IdentityEvidenceVerifier(chainTracker, chainNamespace);
532
+ }
533
+ const verifier = this._identityEvidenceVerifier;
534
+ this.pruneOverlayEvidence();
535
+ let cached = forceRefresh ? undefined : this._overlayEvidenceCache.get(cacheKey);
536
+ if (cached == null || cached.expiresAt <= now) {
537
+ const value = await (0, identityUtils_1.queryOverlayEvidence)(query, this.lookupResolver);
538
+ if (this._identityEvidenceClosed)
539
+ return [];
540
+ const bytes = value.type === 'output-list'
541
+ ? value.outputs.reduce((total, output) => total + output.beef.length + (output.context?.length ?? 0), 0)
542
+ : 0;
543
+ cached = { value, bytes, expiresAt: now + 2 * 60 * 1000 };
544
+ this._overlayEvidenceCache.delete(cacheKey);
545
+ let retained = [...this._overlayEvidenceCache.values()].reduce((total, entry) => total + entry.bytes, 0);
546
+ while (this._overlayEvidenceCache.size > 0 &&
547
+ (this._overlayEvidenceCache.size >= 32 || retained + bytes > 16 * 1024 * 1024)) {
548
+ const oldest = this._overlayEvidenceCache.keys().next().value;
549
+ retained -= this._overlayEvidenceCache.get(oldest).bytes;
550
+ this._overlayEvidenceCache.delete(oldest);
551
+ }
552
+ this._overlayEvidenceCache.set(cacheKey, cached);
553
+ this.scheduleOverlayEvidenceExpiry();
554
+ }
555
+ if (cached.value.type !== 'output-list') {
556
+ this._overlayEvidenceCache.delete(cacheKey);
557
+ return [];
558
+ }
559
+ let certificates;
560
+ try {
561
+ certificates = await (0, identityUtils_1.parseResults)(cached.value, chainTracker, verifier);
562
+ }
563
+ catch (error) {
564
+ this._overlayEvidenceCache.delete(cacheKey);
565
+ throw error;
566
+ }
567
+ // Failed evidence must allow another fetch, including after temporary chain unavailability.
568
+ if (certificates.length !== cached.value.outputs.length)
569
+ this._overlayEvidenceCache.delete(cacheKey);
570
+ return certificates;
571
+ }
572
+ /**
573
+ * Resolves an identity from a caller-installed local contact source first, then the certificate
574
+ * overlay. A local hit expresses the user's own authoritative trust decision and carries empty
575
+ * third-party certificate proof fields; use `forceRefresh` to bypass it and query the overlay.
576
+ */
482
577
  async discoverByIdentityKey(args, originator) {
483
- sdk_1.Validation.validateOriginator(originator);
484
- this.validateAuthAndArgs(args, sdk_1.Validation.validateDiscoverByIdentityKeyArgs);
485
- const TTL_MS = 2 * 60 * 1000;
578
+ (0, validationHelpers_1.validateOriginator)(originator);
579
+ const { vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateDiscoverByIdentityKeyArgs);
486
580
  const now = Date.now();
487
581
  const forceRefresh = args.forceRefresh === true;
488
- // --- Contacts short-circuit (sub-10 ms typical, no network) ---
582
+ // Local contacts are explicit user trust anchors, not third-party certifier attestations.
489
583
  if (!forceRefresh && this.contactSource != null) {
490
584
  try {
491
- const contact = await this.contactSource.findByIdentityKey(args.identityKey);
492
- if (contact != null) {
585
+ const contact = await this.contactSource.findByIdentityKey(vargs.identityKey);
586
+ if (contact != null && contact.identityKey === vargs.identityKey && vargs.offset === 0) {
493
587
  return synthesizeContactResult([contact]);
494
588
  }
495
589
  }
@@ -497,84 +591,64 @@ class Wallet {
497
591
  // Contact source failures must never block the network path.
498
592
  }
499
593
  }
500
- // --- trustSettings cache (2 minutes) ---
501
- let trustSettings = this._trustSettingsCache != null && this._trustSettingsCache.expiresAt > now
502
- ? this._trustSettingsCache.trustSettings
503
- : undefined;
504
- if (trustSettings == null) {
505
- const settings = await this.settingsManager.get();
506
- trustSettings = settings.trustSettings;
507
- this._trustSettingsCache = { trustSettings, expiresAt: now + TTL_MS };
508
- }
594
+ // Authorization policy is read fresh on every call. A removed certifier or
595
+ // raised threshold must take effect immediately rather than after a cache TTL.
596
+ const trustSettings = (await this.settingsManager.get()).trustSettings;
509
597
  const certifiers = trustSettings.trustedCertifiers.map(c => c.identityKey).sort((a, b) => a.localeCompare(b));
510
- // --- queryOverlay cache (2 minutes, client-side, bounded staleness) ---
598
+ // --- Untrusted overlay response cache; verify again before use. ---
511
599
  const cacheKey = JSON.stringify({
512
600
  fn: 'discoverByIdentityKey',
513
- identityKey: args.identityKey,
514
- certifiers
601
+ identityKey: vargs.identityKey,
602
+ certifiers,
603
+ limit: vargs.limit,
604
+ offset: vargs.offset
515
605
  });
516
- let cached = forceRefresh ? undefined : this._overlayCache.get(cacheKey);
517
- if (cached == null || cached.expiresAt <= now) {
518
- const value = await (0, identityUtils_1.queryOverlay)({ identityKey: args.identityKey, certifiers }, this.lookupResolver);
519
- cached = { value, expiresAt: now + TTL_MS };
520
- this._overlayCache.set(cacheKey, cached);
521
- }
522
- if (!cached.value) {
523
- return { totalCertificates: 0, certificates: [] };
524
- }
525
- return (0, identityUtils_1.transformVerifiableCertificatesWithTrust)(trustSettings, cached.value);
606
+ const certificates = await this.discoverOverlayCertificates({ identityKey: args.identityKey, certifiers }, cacheKey, forceRefresh, now);
607
+ return (0, identityUtils_1.transformVerifiableCertificatesWithTrust)(trustSettings, (0, identityUtils_1.filterCertificatesByIdentityKey)(certificates, vargs.identityKey));
526
608
  }
609
+ /**
610
+ * Resolves matching identities from a caller-installed local contact source first, then the
611
+ * certificate overlay. Local hits are authoritative personal assertions with empty third-party
612
+ * certificate proof fields; use `forceRefresh` to bypass them and query the overlay.
613
+ */
527
614
  async discoverByAttributes(args, originator) {
528
- sdk_1.Validation.validateOriginator(originator);
529
- this.validateAuthAndArgs(args, sdk_1.Validation.validateDiscoverByAttributesArgs);
530
- const TTL_MS = 2 * 60 * 1000;
615
+ (0, validationHelpers_1.validateOriginator)(originator);
616
+ const { vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateDiscoverByAttributesArgs);
531
617
  const now = Date.now();
532
618
  const forceRefresh = args.forceRefresh === true;
533
- // --- Contacts short-circuit (optional, only when source supports attribute search) ---
534
- if (!forceRefresh && this.contactSource?.findByAttributes != null && args.attributes != null) {
619
+ // Local contacts are explicit user trust anchors, not third-party certifier attestations.
620
+ if (!forceRefresh && this.contactSource?.findByAttributes != null && vargs.attributes != null) {
535
621
  try {
536
- const matches = await this.contactSource.findByAttributes(args.attributes);
622
+ const matches = await this.contactSource.findByAttributes(vargs.attributes);
537
623
  if (Array.isArray(matches) && matches.length > 0) {
538
- return synthesizeContactResult(matches);
624
+ return synthesizeContactResult(matches.slice(vargs.offset, vargs.offset + vargs.limit));
539
625
  }
540
626
  }
541
627
  catch {
542
628
  // Fall through to network path on contact-source failure.
543
629
  }
544
630
  }
545
- // --- trustSettings cache (2 minutes) ---
546
- let trustSettings = this._trustSettingsCache != null && this._trustSettingsCache.expiresAt > now
547
- ? this._trustSettingsCache.trustSettings
548
- : undefined;
549
- if (trustSettings == null) {
550
- const settings = await this.settingsManager.get();
551
- trustSettings = settings.trustSettings;
552
- this._trustSettingsCache = { trustSettings, expiresAt: now + TTL_MS };
553
- }
631
+ // Authorization policy is read fresh on every call. A removed certifier or
632
+ // raised threshold must take effect immediately rather than after a cache TTL.
633
+ const trustSettings = (await this.settingsManager.get()).trustSettings;
554
634
  const certifiers = trustSettings.trustedCertifiers.map(c => c.identityKey).sort((a, b) => a.localeCompare(b));
555
635
  // Normalize attributes for a stable cache key.
556
636
  // If attributes is an object, sort its top-level keys; if it's an array, sort a shallow copy.
557
- let attributesKey = args.attributes;
558
- if (args.attributes && typeof args.attributes === 'object') {
559
- const keys = Object.keys(args.attributes).sort((a, b) => a.localeCompare(b));
560
- attributesKey = JSON.stringify(args.attributes, keys);
637
+ let attributesKey = vargs.attributes;
638
+ if (vargs.attributes != null && typeof vargs.attributes === 'object') {
639
+ const keys = Object.keys(vargs.attributes).sort((a, b) => a.localeCompare(b));
640
+ attributesKey = JSON.stringify(vargs.attributes, keys);
561
641
  }
562
- // --- queryOverlay cache (2 minutes, client-side, bounded staleness) ---
642
+ // --- Untrusted overlay response cache; verify again before use. ---
563
643
  const cacheKey = JSON.stringify({
564
644
  fn: 'discoverByAttributes',
565
645
  attributes: attributesKey,
566
- certifiers
646
+ certifiers,
647
+ limit: vargs.limit,
648
+ offset: vargs.offset
567
649
  });
568
- let cached = forceRefresh ? undefined : this._overlayCache.get(cacheKey);
569
- if (cached == null || cached.expiresAt <= now) {
570
- const value = await (0, identityUtils_1.queryOverlay)({ attributes: args.attributes, certifiers }, this.lookupResolver);
571
- cached = { value, expiresAt: now + TTL_MS };
572
- this._overlayCache.set(cacheKey, cached);
573
- }
574
- if (!cached.value) {
575
- return { totalCertificates: 0, certificates: [] };
576
- }
577
- return (0, identityUtils_1.transformVerifiableCertificatesWithTrust)(trustSettings, cached.value);
650
+ const certificates = await this.discoverOverlayCertificates({ attributes: args.attributes, certifiers }, cacheKey, forceRefresh, now);
651
+ return (0, identityUtils_1.transformVerifiableCertificatesWithTrust)(trustSettings, (0, identityUtils_1.filterCertificatesByAttributes)(certificates, vargs.attributes));
578
652
  }
579
653
  verifyReturnedTxidOnly(beef, knownTxids) {
580
654
  if (this.returnTxidOnly)
@@ -599,7 +673,7 @@ class Wallet {
599
673
  verifyReturnedTxidOnlyAtomicBEEF(beef, knownTxids, parsedBeef) {
600
674
  if (this.returnTxidOnly)
601
675
  return beef;
602
- const b = parsedBeef ?? sdk_1.Beef.fromBinary(beef);
676
+ const b = parsedBeef ?? sdk_1.Beef.fromBinaryStrict(beef);
603
677
  if (!b.atomicTxid)
604
678
  throw new WERR_errors_1.WERR_INTERNAL();
605
679
  const hasUnknownTxidOnly = b.txs.some(btx => btx.isTxidOnly && !knownTxids?.includes(btx.txid));
@@ -610,7 +684,7 @@ class Wallet {
610
684
  verifyReturnedTxidOnlyBEEF(beef) {
611
685
  if (this.returnTxidOnly)
612
686
  return beef;
613
- const b = sdk_1.Beef.fromBinary(beef);
687
+ const b = sdk_1.Beef.fromBinaryStrict(beef);
614
688
  return this.verifyReturnedTxidOnly(b).toBinary();
615
689
  }
616
690
  logMakeLogger(method, args) {
@@ -639,11 +713,11 @@ class Wallet {
639
713
  async createAction(args, originator) {
640
714
  const logger = this.logMakeLogger('createAction', args);
641
715
  try {
642
- sdk_1.Validation.validateOriginator(originator);
716
+ (0, validationHelpers_1.validateOriginator)(originator);
643
717
  args.options ??= {};
644
718
  args.options.trustSelf ||= this.trustSelf;
645
719
  prepareKnownTxidsForCreateAction(this, args);
646
- const { auth, vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateCreateActionArgs, logger);
720
+ const { auth, vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateCreateActionArgs, logger);
647
721
  logger?.log('validated args');
648
722
  vargs.includeAllSourceTransactions = this.includeAllSourceTransactions;
649
723
  if (this.randomVals != null && this.randomVals.length > 1) {
@@ -695,8 +769,8 @@ class Wallet {
695
769
  }
696
770
  }
697
771
  async signAction(args, originator) {
698
- sdk_1.Validation.validateOriginator(originator);
699
- const { auth, vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateSignActionArgs);
772
+ (0, validationHelpers_1.validateOriginator)(originator);
773
+ const { auth, vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateSignActionArgs);
700
774
  const prior = this.pendingSignActions[args.reference];
701
775
  if (!prior) {
702
776
  throw new WERR_errors_1.WERR_NOT_IMPLEMENTED('recovery of out-of-session signAction reference data is not yet implemented.');
@@ -711,8 +785,8 @@ class Wallet {
711
785
  return r;
712
786
  }
713
787
  async internalizeAction(args, originator) {
714
- sdk_1.Validation.validateOriginator(originator);
715
- const { auth, vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateInternalizeActionArgs);
788
+ (0, validationHelpers_1.validateOriginator)(originator);
789
+ const { auth, vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateInternalizeActionArgs);
716
790
  if (vargs.labels.includes(types_1.specOpThrowReviewActions))
717
791
  throwDummyReviewActions();
718
792
  if ((0, brc177NoSendExpiry_1.hasBrc177NoSendExpiryLabel)(vargs.labels)) {
@@ -723,47 +797,49 @@ class Wallet {
723
797
  return r;
724
798
  }
725
799
  async abortAction(args, originator) {
726
- sdk_1.Validation.validateOriginator(originator);
727
- this.validateAuthAndArgs(args, sdk_1.Validation.validateAbortActionArgs);
800
+ (0, validationHelpers_1.validateOriginator)(originator);
801
+ this.validateAuthAndArgs(args, validationHelpers_1.validateAbortActionArgs);
728
802
  if (this.actionBatch.ownsReference(args.reference)) {
729
803
  return { aborted: await this.actionBatch.abortAction(args.reference) };
730
804
  }
731
805
  const r = await this.storage.abortAction(args);
806
+ (0, walletResultGuards_1.assertAbortResult)(r);
732
807
  return r;
733
808
  }
734
809
  async relinquishOutput(args, originator) {
735
- sdk_1.Validation.validateOriginator(originator);
736
- this.validateAuthAndArgs(args, sdk_1.Validation.validateRelinquishOutputArgs);
737
- await this.storage.relinquishOutput(args);
810
+ (0, validationHelpers_1.validateOriginator)(originator);
811
+ this.validateAuthAndArgs(args, validationHelpers_1.validateRelinquishOutputArgs);
812
+ const updated = await this.storage.relinquishOutput(args);
813
+ (0, walletResultGuards_1.assertStorageMutationSucceeded)(updated, 'output relinquishment');
738
814
  return { relinquished: true };
739
815
  }
740
816
  async isAuthenticated(args, originator) {
741
- sdk_1.Validation.validateOriginator(originator);
817
+ (0, validationHelpers_1.validateOriginator)(originator);
742
818
  const r = {
743
819
  authenticated: true
744
820
  };
745
821
  return r;
746
822
  }
747
823
  async waitForAuthentication(args, originator) {
748
- sdk_1.Validation.validateOriginator(originator);
824
+ (0, validationHelpers_1.validateOriginator)(originator);
749
825
  return { authenticated: true };
750
826
  }
751
827
  async getHeight(args, originator) {
752
- sdk_1.Validation.validateOriginator(originator);
828
+ (0, validationHelpers_1.validateOriginator)(originator);
753
829
  const height = await this.getServices().getHeight();
754
830
  return { height };
755
831
  }
756
832
  async getHeaderForHeight(args, originator) {
757
- sdk_1.Validation.validateOriginator(originator);
833
+ (0, validationHelpers_1.validateOriginator)(originator);
758
834
  const serializedHeader = await this.getServices().getHeaderForHeight(args.height);
759
- return { header: sdk_1.Utils.toHex(serializedHeader) };
835
+ return { header: (0, utils_1.toHex)(serializedHeader) };
760
836
  }
761
837
  async getNetwork(args, originator) {
762
- sdk_1.Validation.validateOriginator(originator);
838
+ (0, validationHelpers_1.validateOriginator)(originator);
763
839
  return { network: (0, utilityHelpers_1.toWalletNetwork)(this.chain) };
764
840
  }
765
841
  async getVersion(args, originator) {
766
- sdk_1.Validation.validateOriginator(originator);
842
+ (0, validationHelpers_1.validateOriginator)(originator);
767
843
  return { version: 'wallet-brc100-1.0.0' };
768
844
  }
769
845
  /**
@@ -913,7 +989,7 @@ class Wallet {
913
989
  * @returns {ListActionsResult} start `listActions` result restricted to 'nosend' (or 'failed' if aborted) actions.
914
990
  */
915
991
  async listNoSendActions(args, abort = false) {
916
- const { vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateListActionsArgs);
992
+ const { vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateListActionsArgs);
917
993
  vargs.labels.push(types_1.specOpNoSendActions);
918
994
  if (abort) {
919
995
  await this.actionBatch.abort();
@@ -928,7 +1004,7 @@ class Wallet {
928
1004
  * @returns {ListActionsResult} start `listActions` result restricted to 'failed' status actions.
929
1005
  */
930
1006
  async listFailedActions(args, unfail = false) {
931
- const { vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateListActionsArgs);
1007
+ const { vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateListActionsArgs);
932
1008
  vargs.labels.push(types_1.specOpFailedActions);
933
1009
  if (unfail)
934
1010
  vargs.labels.push('unfail');
@@ -952,6 +1028,7 @@ function throwIfAnyUnsuccessfulSignActions(r) {
952
1028
  throw new WERR_errors_1.WERR_REVIEW_ACTIONS(ndrs, swrs, r.txid, r.tx);
953
1029
  }
954
1030
  function throwIfUnsuccessfulInternalizeAction(r) {
1031
+ (0, walletResultGuards_1.assertInternalizeAccepted)(r);
955
1032
  const ndrs = r.notDelayedResults;
956
1033
  const swrs = r.sendWithResults;
957
1034
  if (ndrs == null || swrs == null || swrs.every(r => r.status === 'unproven'))
@@ -963,10 +1040,9 @@ function throwIfUnsuccessfulInternalizeAction(r) {
963
1040
  */
964
1041
  function throwDummyReviewActions() {
965
1042
  const b58Beef = 'gno9MC7VXii1KoCkc2nsVyYJpqzN3dhBzYATETJcys62emMKfpBof4R7GozwYEaSapUtnNvqQ57aaYYjm3U2dv9eUJ1sV46boHkQgppYmAz9YH8FdZduV8aJayPViaKcyPmbDhEw6UW8TM5iFZLXNs7HBnJHUKCeTdNK4FUEL7vAugxAV9WUUZ43BZjJk2SmSeps9TCXjt1Ci9fKWp3d9QSoYvTpxwzyUFHjRKtbUgwq55ZfkBp5bV2Bpz9qSuKywKewW7Hh4S1nCUScwwzpKDozb3zic1V9p2k8rQxoPsRxjUJ8bjhNDdsN8d7KukFuc3n47fXzdWttvnxwsujLJRGnQbgJuknQqx3KLf5kJXHzwjG6TzigZk2t24qeB6d3hbYiaDr2fFkUJBL3tukTHhfNkQYRXuz3kucVDzvejHyqJaF51mXG8BjMN5aQj91ZJXCaPVqkMWCzmvyaqmXMdRiJdSAynhXbQK91xf6RwdNhz1tg5f9B6oJJMhsi9UYSVymmax8VLKD9AKzBCBDcfyD83m3jyS1VgKGZn3SkQmr6bsoWq88L3GsMnnmYUGogvdAYarTqg3pzkjCMxHzmJBMN6ofnUk8c1sRTXQue7BbyUaN5uZu3KW6CmFsEfpuqVvnqFW93TU1jrPP2S8yz8AexAnARPCKE8Yz7RfVaT6RCavwQKL3u5iookwRWEZXW1QWmM37yJWHD87SjVynyg327a1CLwcBxmE2CB48QeNVGyQki4CTQMqw2o8TMhDPJej1g68oniAjBcxBLSCs7KGvK3k7AfrHbCMULX9CTibYhCjdFjbsbBoocqJpxxcvkMo1fEEiAzZuiBVZQDYktDdTVbhKHvYkW25HcYX75NJrpNAhm7AjFeKLzEVxqAQkMfvTufpESNRZF4kQqg2Rg8h2ajcKTd5cpEPwXCrZLHm4EaZEmZVbg3QNfGhn7BJu1bHMtLqPD4y8eJxm2uGrW6saf6qKYmmu64F8A667NbD4yskPRQ1S863VzwGpxxmgLc1Ta3R46jEqsAoRDoZVUaCgBBZG3Yg1CTgi1EVBMXU7qvY4n3h8o2FLCEMWY4KadnV3iD4FbcdCmg4yxBosNAZgbPjhgGjCimjh4YsLd9zymGLmivmz2ZBg5m3xaiXT9NN81X9C1JUujd';
966
- const beef = sdk_1.Beef.fromBinary(sdk_1.Utils.fromBase58(b58Beef));
1043
+ const beef = sdk_1.Beef.fromBinaryStrict((0, utils_1.fromBase58)(b58Beef));
967
1044
  const btx = beef.txs.at(-1);
968
1045
  const txid = btx.txid;
969
- console.log('Throwing dummy WERR_REVIEW_ACTIONS');
970
1046
  throw new WERR_errors_1.WERR_REVIEW_ACTIONS([
971
1047
  {
972
1048
  txid, // only care that it is syntactically a txid
@@ -987,7 +1063,7 @@ function throwDummyReviewActions() {
987
1063
  * @returns
988
1064
  */
989
1065
  function validateListOutputsArgs(args) {
990
- const vargs = sdk_1.Validation.validateListOutputsArgs(args);
1066
+ const vargs = (0, validationHelpers_1.validateListOutputsArgs)(args);
991
1067
  const balancePrefix = 'balance ';
992
1068
  if (vargs.basket.startsWith(balancePrefix)) {
993
1069
  vargs.basket = vargs.basket.slice(balancePrefix.length);