@bsv/wallet-toolbox 2.1.27 → 2.1.30

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 (623) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/docs/client.md +485 -160
  3. package/docs/monitor.md +69 -1
  4. package/docs/storage.md +421 -63
  5. package/docs/wallet.md +945 -145
  6. package/out/src/CWIStyleWalletManager.js +107 -41
  7. package/out/src/CWIStyleWalletManager.js.map +1 -1
  8. package/out/src/Setup.js +3 -3
  9. package/out/src/Setup.js.map +1 -1
  10. package/out/src/SetupClient.js +1 -1
  11. package/out/src/SetupClient.js.map +1 -1
  12. package/out/src/ShamirWalletManager.d.ts +2 -2
  13. package/out/src/ShamirWalletManager.js +10 -3
  14. package/out/src/ShamirWalletManager.js.map +1 -1
  15. package/out/src/SimpleWalletManager.js +29 -0
  16. package/out/src/SimpleWalletManager.js.map +1 -1
  17. package/out/src/Wallet.js +84 -66
  18. package/out/src/Wallet.js.map +1 -1
  19. package/out/src/WalletAuthenticationManager.js +6 -3
  20. package/out/src/WalletAuthenticationManager.js.map +1 -1
  21. package/out/src/WalletLogger.js +6 -4
  22. package/out/src/WalletLogger.js.map +1 -1
  23. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  24. package/out/src/WalletPermissionsManager.js +158 -167
  25. package/out/src/WalletPermissionsManager.js.map +1 -1
  26. package/out/src/WalletSettingsManager.js +3 -0
  27. package/out/src/WalletSettingsManager.js.map +1 -1
  28. package/out/src/entropy/EntropyCollector.js +9 -9
  29. package/out/src/entropy/EntropyCollector.js.map +1 -1
  30. package/out/src/fundWalletP2PKH.js +5 -6
  31. package/out/src/fundWalletP2PKH.js.map +1 -1
  32. package/out/src/mockchain/MockChainMigrations.js +1 -1
  33. package/out/src/mockchain/MockChainMigrations.js.map +1 -1
  34. package/out/src/mockchain/MockChainStorage.js +1 -0
  35. package/out/src/mockchain/MockChainStorage.js.map +1 -1
  36. package/out/src/mockchain/MockChainTracker.js +2 -0
  37. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  38. package/out/src/mockchain/MockMiner.js +2 -2
  39. package/out/src/mockchain/MockMiner.js.map +1 -1
  40. package/out/src/mockchain/MockServices.js +21 -25
  41. package/out/src/mockchain/MockServices.js.map +1 -1
  42. package/out/src/monitor/Monitor.d.ts.map +1 -1
  43. package/out/src/monitor/Monitor.js +57 -33
  44. package/out/src/monitor/Monitor.js.map +1 -1
  45. package/out/src/monitor/MonitorDaemon.js +12 -10
  46. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  47. package/out/src/monitor/tasks/TaskArcSSE.js +10 -13
  48. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  49. package/out/src/monitor/tasks/TaskCheckForProofs.js +10 -11
  50. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  51. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +59 -1
  52. package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
  53. package/out/src/monitor/tasks/TaskCheckNoSends.js +101 -12
  54. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  55. package/out/src/monitor/tasks/TaskClock.js +3 -1
  56. package/out/src/monitor/tasks/TaskClock.js.map +1 -1
  57. package/out/src/monitor/tasks/TaskFailAbandoned.js +2 -1
  58. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  59. package/out/src/monitor/tasks/TaskMineBlock.js +3 -2
  60. package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -1
  61. package/out/src/monitor/tasks/TaskMonitorCallHistory.js +2 -1
  62. package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
  63. package/out/src/monitor/tasks/TaskNewHeader.js +12 -1
  64. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  65. package/out/src/monitor/tasks/TaskPurge.js +7 -5
  66. package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
  67. package/out/src/monitor/tasks/TaskReorg.js +4 -2
  68. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  69. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +12 -9
  70. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  71. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +8 -3
  72. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  73. package/out/src/monitor/tasks/TaskReviewStatus.js +7 -5
  74. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
  75. package/out/src/monitor/tasks/TaskReviewUtxos.js +6 -2
  76. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  77. package/out/src/monitor/tasks/TaskSendWaiting.js +9 -2
  78. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  79. package/out/src/monitor/tasks/TaskSyncWhenIdle.js +2 -1
  80. package/out/src/monitor/tasks/TaskSyncWhenIdle.js.map +1 -1
  81. package/out/src/monitor/tasks/TaskUnFail.js +6 -5
  82. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  83. package/out/src/monitor/tasks/WalletMonitorTask.js +7 -4
  84. package/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -1
  85. package/out/src/sdk/PrivilegedKeyManager.js +44 -27
  86. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  87. package/out/src/sdk/WERR_errors.js +23 -8
  88. package/out/src/sdk/WERR_errors.js.map +1 -1
  89. package/out/src/sdk/WalletError.js +7 -7
  90. package/out/src/sdk/WalletError.js.map +1 -1
  91. package/out/src/services/ServiceCollection.js +9 -2
  92. package/out/src/services/ServiceCollection.js.map +1 -1
  93. package/out/src/services/Services.js +58 -54
  94. package/out/src/services/Services.js.map +1 -1
  95. package/out/src/services/chaintracker/BHServiceClient.js +8 -2
  96. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  97. package/out/src/services/chaintracker/ChaintracksChainTracker.js +5 -2
  98. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  99. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +27 -21
  100. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  101. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +10 -5
  102. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  103. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +4 -1
  104. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  105. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +8 -1
  106. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  107. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +7 -0
  108. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  109. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +5 -3
  110. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  111. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +3 -1
  112. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
  113. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +3 -1
  114. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  115. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +3 -1
  116. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  117. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +4 -3
  118. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
  119. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +1 -2
  120. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  121. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +8 -5
  122. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  123. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +3 -1
  124. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  125. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +2 -1
  126. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  127. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +12 -6
  128. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  129. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +8 -7
  130. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  131. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +8 -8
  132. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  133. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +15 -16
  134. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  135. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +1 -1
  136. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  137. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js +3 -3
  138. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  139. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +1 -1
  140. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  141. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +1 -1
  142. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  143. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +1 -1
  144. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
  145. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +1 -1
  146. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  147. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +19 -16
  148. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  149. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +4 -0
  150. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  151. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +17 -4
  152. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  153. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +21 -0
  154. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  155. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +1 -3
  156. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  157. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +9 -3
  158. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
  159. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +7 -5
  160. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  161. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +4 -6
  162. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  163. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +1 -1
  164. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  165. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +8 -8
  166. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  167. package/out/src/services/createDefaultWalletServicesOptions.js +8 -8
  168. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  169. package/out/src/services/providers/ARC.js +13 -5
  170. package/out/src/services/providers/ARC.js.map +1 -1
  171. package/out/src/services/providers/ArcSSEClient.js +9 -8
  172. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  173. package/out/src/services/providers/Bitails.js +6 -2
  174. package/out/src/services/providers/Bitails.js.map +1 -1
  175. package/out/src/services/providers/SdkWhatsOnChain.js +6 -2
  176. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  177. package/out/src/services/providers/WhatsOnChain.js +2 -1
  178. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  179. package/out/src/services/providers/getBeefForTxid.js +2 -1
  180. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  181. package/out/src/signer/WalletSigner.js +4 -1
  182. package/out/src/signer/WalletSigner.js.map +1 -1
  183. package/out/src/signer/methods/acquireDirectCertificate.js +1 -2
  184. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  185. package/out/src/signer/methods/buildSignableTransaction.js +1 -2
  186. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  187. package/out/src/signer/methods/completeSignedTransaction.js +4 -5
  188. package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
  189. package/out/src/signer/methods/createAction.js +9 -11
  190. package/out/src/signer/methods/createAction.js.map +1 -1
  191. package/out/src/signer/methods/internalizeAction.d.ts +8 -1
  192. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  193. package/out/src/signer/methods/internalizeAction.js +8 -1
  194. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  195. package/out/src/signer/methods/signAction.js +5 -6
  196. package/out/src/signer/methods/signAction.js.map +1 -1
  197. package/out/src/storage/StorageIdb.js +84 -99
  198. package/out/src/storage/StorageIdb.js.map +1 -1
  199. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  200. package/out/src/storage/StorageKnex.js +22 -29
  201. package/out/src/storage/StorageKnex.js.map +1 -1
  202. package/out/src/storage/StorageProvider.d.ts +4 -1
  203. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  204. package/out/src/storage/StorageProvider.js +122 -32
  205. package/out/src/storage/StorageProvider.js.map +1 -1
  206. package/out/src/storage/StorageReader.js +4 -2
  207. package/out/src/storage/StorageReader.js.map +1 -1
  208. package/out/src/storage/StorageSyncReader.js +2 -0
  209. package/out/src/storage/StorageSyncReader.js.map +1 -1
  210. package/out/src/storage/WalletStorageManager.js +47 -25
  211. package/out/src/storage/WalletStorageManager.js.map +1 -1
  212. package/out/src/storage/adminServer/adminServer.js +35 -48
  213. package/out/src/storage/adminServer/adminServer.js.map +1 -1
  214. package/out/src/storage/idbHelpers.js +1 -2
  215. package/out/src/storage/idbHelpers.js.map +1 -1
  216. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  217. package/out/src/storage/methods/ListActionsSpecOp.js +69 -6
  218. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  219. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  220. package/out/src/storage/methods/ListOutputsSpecOp.js +5 -2
  221. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  222. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +10 -12
  223. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  224. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  225. package/out/src/storage/methods/createAction.js +111 -69
  226. package/out/src/storage/methods/createAction.js.map +1 -1
  227. package/out/src/storage/methods/generateChange.js +2 -3
  228. package/out/src/storage/methods/generateChange.js.map +1 -1
  229. package/out/src/storage/methods/getBeefForTransaction.js +2 -4
  230. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  231. package/out/src/storage/methods/internalizeAction.d.ts +69 -2
  232. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  233. package/out/src/storage/methods/internalizeAction.js +232 -27
  234. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  235. package/out/src/storage/methods/listActionsIdb.js +7 -9
  236. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  237. package/out/src/storage/methods/listActionsKnex.js +7 -9
  238. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  239. package/out/src/storage/methods/listOutputsIdb.js +5 -7
  240. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  241. package/out/src/storage/methods/listOutputsKnex.js +9 -10
  242. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  243. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  244. package/out/src/storage/methods/processAction.js +12 -11
  245. package/out/src/storage/methods/processAction.js.map +1 -1
  246. package/out/src/storage/methods/reviewStatus.d.ts +3 -2
  247. package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
  248. package/out/src/storage/methods/reviewStatus.js +34 -2
  249. package/out/src/storage/methods/reviewStatus.js.map +1 -1
  250. package/out/src/storage/methods/reviewStatusIdb.d.ts +2 -2
  251. package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
  252. package/out/src/storage/methods/reviewStatusIdb.js +54 -13
  253. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  254. package/out/src/storage/portable/index.d.ts.map +1 -1
  255. package/out/src/storage/portable/index.js +171 -129
  256. package/out/src/storage/portable/index.js.map +1 -1
  257. package/out/src/storage/remoting/StorageClient.js +2 -3
  258. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  259. package/out/src/storage/remoting/StorageClientBase.js +6 -3
  260. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  261. package/out/src/storage/remoting/StorageServer.js +17 -11
  262. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  263. package/out/src/storage/schema/KnexMigrations.js +5 -1
  264. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  265. package/out/src/storage/schema/entities/EntityBase.js +1 -0
  266. package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
  267. package/out/src/storage/schema/entities/EntityOutputBasket.js +1 -1
  268. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
  269. package/out/src/storage/schema/entities/EntityProvenTx.js +12 -13
  270. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  271. package/out/src/storage/schema/entities/EntityProvenTxReq.js +7 -9
  272. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  273. package/out/src/storage/schema/entities/EntitySyncState.js +6 -3
  274. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  275. package/out/src/storage/schema/entities/MergeEntity.js +4 -0
  276. package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
  277. package/out/src/storage/storageProviderHelpers.js +2 -3
  278. package/out/src/storage/storageProviderHelpers.js.map +1 -1
  279. package/out/src/storage/sync/StorageMySQLDojoReader.js +2 -2
  280. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  281. package/out/src/utility/Format.js +4 -5
  282. package/out/src/utility/Format.js.map +1 -1
  283. package/out/src/utility/ScriptTemplateBRC29.js +7 -6
  284. package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
  285. package/out/src/utility/brc114ActionTimeLabels.js +1 -1
  286. package/out/src/utility/brc114ActionTimeLabels.js.map +1 -1
  287. package/out/src/utility/identityUtils.js +2 -4
  288. package/out/src/utility/identityUtils.js.map +1 -1
  289. package/out/src/utility/utilityHelpers.buffer.js +3 -3
  290. package/out/src/utility/utilityHelpers.buffer.js.map +1 -1
  291. package/out/src/utility/utilityHelpers.js +2 -2
  292. package/out/src/utility/utilityHelpers.js.map +1 -1
  293. package/out/src/utility/utilityHelpers.noBuffer.js +4 -4
  294. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  295. package/out/src/wab-client/WABClient.js +1 -0
  296. package/out/src/wab-client/WABClient.js.map +1 -1
  297. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js +1 -4
  298. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +1 -1
  299. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +1 -4
  300. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -1
  301. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +1 -4
  302. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -1
  303. package/package.json +19 -19
  304. package/out/src/__tests/CWIStyleWalletManager.test.d.ts +0 -2
  305. package/out/src/__tests/CWIStyleWalletManager.test.d.ts.map +0 -1
  306. package/out/src/__tests/CWIStyleWalletManager.test.js +0 -810
  307. package/out/src/__tests/CWIStyleWalletManager.test.js.map +0 -1
  308. package/out/src/__tests/ShamirWalletManager.test.d.ts +0 -2
  309. package/out/src/__tests/ShamirWalletManager.test.d.ts.map +0 -1
  310. package/out/src/__tests/ShamirWalletManager.test.js +0 -303
  311. package/out/src/__tests/ShamirWalletManager.test.js.map +0 -1
  312. package/out/src/__tests/WalletPermissionsManager.callbacks.test.d.ts +0 -2
  313. package/out/src/__tests/WalletPermissionsManager.callbacks.test.d.ts.map +0 -1
  314. package/out/src/__tests/WalletPermissionsManager.callbacks.test.js +0 -365
  315. package/out/src/__tests/WalletPermissionsManager.callbacks.test.js.map +0 -1
  316. package/out/src/__tests/WalletPermissionsManager.checks.test.d.ts +0 -2
  317. package/out/src/__tests/WalletPermissionsManager.checks.test.d.ts.map +0 -1
  318. package/out/src/__tests/WalletPermissionsManager.checks.test.js +0 -642
  319. package/out/src/__tests/WalletPermissionsManager.checks.test.js.map +0 -1
  320. package/out/src/__tests/WalletPermissionsManager.encryption.test.d.ts +0 -2
  321. package/out/src/__tests/WalletPermissionsManager.encryption.test.d.ts.map +0 -1
  322. package/out/src/__tests/WalletPermissionsManager.encryption.test.js +0 -335
  323. package/out/src/__tests/WalletPermissionsManager.encryption.test.js.map +0 -1
  324. package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts +0 -86
  325. package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts.map +0 -1
  326. package/out/src/__tests/WalletPermissionsManager.fixtures.js +0 -280
  327. package/out/src/__tests/WalletPermissionsManager.fixtures.js.map +0 -1
  328. package/out/src/__tests/WalletPermissionsManager.flows.test.d.ts +0 -2
  329. package/out/src/__tests/WalletPermissionsManager.flows.test.d.ts.map +0 -1
  330. package/out/src/__tests/WalletPermissionsManager.flows.test.js +0 -613
  331. package/out/src/__tests/WalletPermissionsManager.flows.test.js.map +0 -1
  332. package/out/src/__tests/WalletPermissionsManager.initialization.test.d.ts +0 -2
  333. package/out/src/__tests/WalletPermissionsManager.initialization.test.d.ts.map +0 -1
  334. package/out/src/__tests/WalletPermissionsManager.initialization.test.js +0 -227
  335. package/out/src/__tests/WalletPermissionsManager.initialization.test.js.map +0 -1
  336. package/out/src/__tests/WalletPermissionsManager.pmodules.test.d.ts +0 -2
  337. package/out/src/__tests/WalletPermissionsManager.pmodules.test.d.ts.map +0 -1
  338. package/out/src/__tests/WalletPermissionsManager.pmodules.test.js +0 -735
  339. package/out/src/__tests/WalletPermissionsManager.pmodules.test.js.map +0 -1
  340. package/out/src/__tests/WalletPermissionsManager.proxying.test.d.ts +0 -2
  341. package/out/src/__tests/WalletPermissionsManager.proxying.test.d.ts.map +0 -1
  342. package/out/src/__tests/WalletPermissionsManager.proxying.test.js +0 -585
  343. package/out/src/__tests/WalletPermissionsManager.proxying.test.js.map +0 -1
  344. package/out/src/__tests/WalletPermissionsManager.tokens.test.d.ts +0 -2
  345. package/out/src/__tests/WalletPermissionsManager.tokens.test.d.ts.map +0 -1
  346. package/out/src/__tests/WalletPermissionsManager.tokens.test.js +0 -416
  347. package/out/src/__tests/WalletPermissionsManager.tokens.test.js.map +0 -1
  348. package/out/src/entropy/__tests/EntropyCollector.test.d.ts +0 -2
  349. package/out/src/entropy/__tests/EntropyCollector.test.d.ts.map +0 -1
  350. package/out/src/entropy/__tests/EntropyCollector.test.js +0 -137
  351. package/out/src/entropy/__tests/EntropyCollector.test.js.map +0 -1
  352. package/out/src/monitor/__test/MonitorDaemon.man.test.d.ts +0 -2
  353. package/out/src/monitor/__test/MonitorDaemon.man.test.d.ts.map +0 -1
  354. package/out/src/monitor/__test/MonitorDaemon.man.test.js +0 -41
  355. package/out/src/monitor/__test/MonitorDaemon.man.test.js.map +0 -1
  356. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.d.ts +0 -2
  357. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.d.ts.map +0 -1
  358. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.js +0 -257
  359. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.js.map +0 -1
  360. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.d.ts +0 -2
  361. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.d.ts.map +0 -1
  362. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.js +0 -161
  363. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.js.map +0 -1
  364. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.d.ts +0 -2
  365. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.d.ts.map +0 -1
  366. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.js +0 -214
  367. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.js.map +0 -1
  368. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.d.ts +0 -2
  369. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.d.ts.map +0 -1
  370. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.js +0 -92
  371. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.js.map +0 -1
  372. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.d.ts +0 -2
  373. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.d.ts.map +0 -1
  374. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.js +0 -139
  375. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.js.map +0 -1
  376. package/out/src/sdk/__test/CertificateLifeCycle.test.d.ts +0 -2
  377. package/out/src/sdk/__test/CertificateLifeCycle.test.d.ts.map +0 -1
  378. package/out/src/sdk/__test/CertificateLifeCycle.test.js +0 -62
  379. package/out/src/sdk/__test/CertificateLifeCycle.test.js.map +0 -1
  380. package/out/src/sdk/__test/PrivilegedKeyManager.test.d.ts +0 -2
  381. package/out/src/sdk/__test/PrivilegedKeyManager.test.d.ts.map +0 -1
  382. package/out/src/sdk/__test/PrivilegedKeyManager.test.js +0 -647
  383. package/out/src/sdk/__test/PrivilegedKeyManager.test.js.map +0 -1
  384. package/out/src/sdk/__test/WalletError.test.d.ts +0 -2
  385. package/out/src/sdk/__test/WalletError.test.d.ts.map +0 -1
  386. package/out/src/sdk/__test/WalletError.test.js +0 -255
  387. package/out/src/sdk/__test/WalletError.test.js.map +0 -1
  388. package/out/src/sdk/__test/validationHelpers.test.d.ts +0 -2
  389. package/out/src/sdk/__test/validationHelpers.test.d.ts.map +0 -1
  390. package/out/src/sdk/__test/validationHelpers.test.js +0 -20
  391. package/out/src/sdk/__test/validationHelpers.test.js.map +0 -1
  392. package/out/src/services/__tests/ARC.man.test.d.ts +0 -2
  393. package/out/src/services/__tests/ARC.man.test.d.ts.map +0 -1
  394. package/out/src/services/__tests/ARC.man.test.js +0 -104
  395. package/out/src/services/__tests/ARC.man.test.js.map +0 -1
  396. package/out/src/services/__tests/ARC.timeout.man.test.d.ts +0 -2
  397. package/out/src/services/__tests/ARC.timeout.man.test.d.ts.map +0 -1
  398. package/out/src/services/__tests/ARC.timeout.man.test.js +0 -74
  399. package/out/src/services/__tests/ARC.timeout.man.test.js.map +0 -1
  400. package/out/src/services/__tests/ArcGorillaPool.man.test.d.ts +0 -2
  401. package/out/src/services/__tests/ArcGorillaPool.man.test.d.ts.map +0 -1
  402. package/out/src/services/__tests/ArcGorillaPool.man.test.js +0 -93
  403. package/out/src/services/__tests/ArcGorillaPool.man.test.js.map +0 -1
  404. package/out/src/services/__tests/arcServices.test.d.ts +0 -2
  405. package/out/src/services/__tests/arcServices.test.d.ts.map +0 -1
  406. package/out/src/services/__tests/arcServices.test.js +0 -7
  407. package/out/src/services/__tests/arcServices.test.js.map +0 -1
  408. package/out/src/services/__tests/bitrails.test.d.ts +0 -2
  409. package/out/src/services/__tests/bitrails.test.d.ts.map +0 -1
  410. package/out/src/services/__tests/bitrails.test.js +0 -60
  411. package/out/src/services/__tests/bitrails.test.js.map +0 -1
  412. package/out/src/services/__tests/getFiatExchangeRate.test.d.ts +0 -2
  413. package/out/src/services/__tests/getFiatExchangeRate.test.d.ts.map +0 -1
  414. package/out/src/services/__tests/getFiatExchangeRate.test.js +0 -156
  415. package/out/src/services/__tests/getFiatExchangeRate.test.js.map +0 -1
  416. package/out/src/services/__tests/getMerklePath.test.d.ts +0 -2
  417. package/out/src/services/__tests/getMerklePath.test.d.ts.map +0 -1
  418. package/out/src/services/__tests/getMerklePath.test.js +0 -16
  419. package/out/src/services/__tests/getMerklePath.test.js.map +0 -1
  420. package/out/src/services/__tests/getRawTx.test.d.ts +0 -2
  421. package/out/src/services/__tests/getRawTx.test.d.ts.map +0 -1
  422. package/out/src/services/__tests/getRawTx.test.js +0 -16
  423. package/out/src/services/__tests/getRawTx.test.js.map +0 -1
  424. package/out/src/services/__tests/postBeef.test.d.ts +0 -2
  425. package/out/src/services/__tests/postBeef.test.d.ts.map +0 -1
  426. package/out/src/services/__tests/postBeef.test.js +0 -101
  427. package/out/src/services/__tests/postBeef.test.js.map +0 -1
  428. package/out/src/services/__tests/verifyBeef.test.d.ts +0 -2
  429. package/out/src/services/__tests/verifyBeef.test.d.ts.map +0 -1
  430. package/out/src/services/__tests/verifyBeef.test.js +0 -43
  431. package/out/src/services/__tests/verifyBeef.test.js.map +0 -1
  432. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.d.ts +0 -2
  433. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.d.ts.map +0 -1
  434. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.js +0 -25
  435. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.js.map +0 -1
  436. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.d.ts +0 -2
  437. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.d.ts.map +0 -1
  438. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.js +0 -27
  439. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.js.map +0 -1
  440. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.d.ts +0 -2
  441. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.d.ts.map +0 -1
  442. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.js +0 -57
  443. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.js.map +0 -1
  444. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.d.ts +0 -2
  445. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.d.ts.map +0 -1
  446. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.js +0 -41
  447. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.js.map +0 -1
  448. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.d.ts +0 -2
  449. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.d.ts.map +0 -1
  450. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.js +0 -109
  451. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.js.map +0 -1
  452. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.d.ts +0 -2
  453. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.d.ts.map +0 -1
  454. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.js +0 -88
  455. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.js.map +0 -1
  456. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.d.ts +0 -2
  457. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.d.ts.map +0 -1
  458. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.js +0 -39
  459. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.js.map +0 -1
  460. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.d.ts +0 -2
  461. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.d.ts.map +0 -1
  462. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js +0 -76
  463. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js.map +0 -1
  464. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.d.ts +0 -2
  465. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.d.ts.map +0 -1
  466. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.js +0 -44
  467. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.js.map +0 -1
  468. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.d.ts +0 -2
  469. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.d.ts.map +0 -1
  470. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.js +0 -165
  471. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.js.map +0 -1
  472. package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.d.ts +0 -12
  473. package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.d.ts.map +0 -1
  474. package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.js +0 -66
  475. package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.js.map +0 -1
  476. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.d.ts +0 -2
  477. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.d.ts.map +0 -1
  478. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.js +0 -109
  479. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.js.map +0 -1
  480. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.d.ts +0 -2
  481. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.d.ts.map +0 -1
  482. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js +0 -55
  483. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js.map +0 -1
  484. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.d.ts +0 -2
  485. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.d.ts.map +0 -1
  486. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.js +0 -255
  487. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.js.map +0 -1
  488. package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.d.ts +0 -2
  489. package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.d.ts.map +0 -1
  490. package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.js +0 -56
  491. package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.js.map +0 -1
  492. package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.d.ts +0 -2
  493. package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.d.ts.map +0 -1
  494. package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.js +0 -69
  495. package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.js.map +0 -1
  496. package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.d.ts +0 -2
  497. package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.d.ts.map +0 -1
  498. package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.js +0 -51
  499. package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.js.map +0 -1
  500. package/out/src/services/providers/__tests/ArcSSEClient.test.d.ts +0 -2
  501. package/out/src/services/providers/__tests/ArcSSEClient.test.d.ts.map +0 -1
  502. package/out/src/services/providers/__tests/ArcSSEClient.test.js +0 -256
  503. package/out/src/services/providers/__tests/ArcSSEClient.test.js.map +0 -1
  504. package/out/src/services/providers/__tests/WhatsOnChain.test.d.ts +0 -2
  505. package/out/src/services/providers/__tests/WhatsOnChain.test.d.ts.map +0 -1
  506. package/out/src/services/providers/__tests/WhatsOnChain.test.js +0 -191
  507. package/out/src/services/providers/__tests/WhatsOnChain.test.js.map +0 -1
  508. package/out/src/services/providers/__tests/exchangeRates.test.d.ts +0 -2
  509. package/out/src/services/providers/__tests/exchangeRates.test.d.ts.map +0 -1
  510. package/out/src/services/providers/__tests/exchangeRates.test.js +0 -23
  511. package/out/src/services/providers/__tests/exchangeRates.test.js.map +0 -1
  512. package/out/src/storage/__test/StorageIdb.test.d.ts +0 -2
  513. package/out/src/storage/__test/StorageIdb.test.d.ts.map +0 -1
  514. package/out/src/storage/__test/StorageIdb.test.js +0 -44
  515. package/out/src/storage/__test/StorageIdb.test.js.map +0 -1
  516. package/out/src/storage/__test/WalletStorageManager.test.d.ts +0 -2
  517. package/out/src/storage/__test/WalletStorageManager.test.d.ts.map +0 -1
  518. package/out/src/storage/__test/WalletStorageManager.test.js +0 -254
  519. package/out/src/storage/__test/WalletStorageManager.test.js.map +0 -1
  520. package/out/src/storage/__test/adminStats.man.test.d.ts +0 -2
  521. package/out/src/storage/__test/adminStats.man.test.d.ts.map +0 -1
  522. package/out/src/storage/__test/adminStats.man.test.js +0 -78
  523. package/out/src/storage/__test/adminStats.man.test.js.map +0 -1
  524. package/out/src/storage/__test/findStaleMerkleRoots.test.d.ts +0 -2
  525. package/out/src/storage/__test/findStaleMerkleRoots.test.d.ts.map +0 -1
  526. package/out/src/storage/__test/findStaleMerkleRoots.test.js +0 -41
  527. package/out/src/storage/__test/findStaleMerkleRoots.test.js.map +0 -1
  528. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.d.ts +0 -2
  529. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.d.ts.map +0 -1
  530. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.js +0 -73
  531. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.js.map +0 -1
  532. package/out/src/storage/__test/getBeefForTransaction.test.d.ts +0 -2
  533. package/out/src/storage/__test/getBeefForTransaction.test.d.ts.map +0 -1
  534. package/out/src/storage/__test/getBeefForTransaction.test.js +0 -347
  535. package/out/src/storage/__test/getBeefForTransaction.test.js.map +0 -1
  536. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.d.ts +0 -2
  537. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.d.ts.map +0 -1
  538. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js +0 -1111
  539. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js.map +0 -1
  540. package/out/src/storage/methods/__test/offsetKey.test.d.ts +0 -2
  541. package/out/src/storage/methods/__test/offsetKey.test.d.ts.map +0 -1
  542. package/out/src/storage/methods/__test/offsetKey.test.js +0 -229
  543. package/out/src/storage/methods/__test/offsetKey.test.js.map +0 -1
  544. package/out/src/storage/remoting/__test/StorageClient.man.test.d.ts +0 -2
  545. package/out/src/storage/remoting/__test/StorageClient.man.test.d.ts.map +0 -1
  546. package/out/src/storage/remoting/__test/StorageClient.man.test.js +0 -487
  547. package/out/src/storage/remoting/__test/StorageClient.man.test.js.map +0 -1
  548. package/out/src/storage/remoting/__test/StorageClient.test.d.ts +0 -2
  549. package/out/src/storage/remoting/__test/StorageClient.test.d.ts.map +0 -1
  550. package/out/src/storage/remoting/__test/StorageClient.test.js +0 -119
  551. package/out/src/storage/remoting/__test/StorageClient.test.js.map +0 -1
  552. package/out/src/storage/remoting/__tests__/entityValidationHelpers.test.d.ts +0 -2
  553. package/out/src/storage/remoting/__tests__/entityValidationHelpers.test.d.ts.map +0 -1
  554. package/out/src/storage/remoting/__tests__/entityValidationHelpers.test.js +0 -268
  555. package/out/src/storage/remoting/__tests__/entityValidationHelpers.test.js.map +0 -1
  556. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.d.ts +0 -2
  557. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.d.ts.map +0 -1
  558. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.js +0 -301
  559. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.js.map +0 -1
  560. package/out/src/storage/schema/entities/__tests/CertificateTests.test.d.ts +0 -2
  561. package/out/src/storage/schema/entities/__tests/CertificateTests.test.d.ts.map +0 -1
  562. package/out/src/storage/schema/entities/__tests/CertificateTests.test.js +0 -308
  563. package/out/src/storage/schema/entities/__tests/CertificateTests.test.js.map +0 -1
  564. package/out/src/storage/schema/entities/__tests/CommissionTests.test.d.ts +0 -2
  565. package/out/src/storage/schema/entities/__tests/CommissionTests.test.d.ts.map +0 -1
  566. package/out/src/storage/schema/entities/__tests/CommissionTests.test.js +0 -316
  567. package/out/src/storage/schema/entities/__tests/CommissionTests.test.js.map +0 -1
  568. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.d.ts +0 -2
  569. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.d.ts.map +0 -1
  570. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.js +0 -228
  571. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.js.map +0 -1
  572. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.d.ts +0 -2
  573. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.d.ts.map +0 -1
  574. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.js +0 -191
  575. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.js.map +0 -1
  576. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.d.ts +0 -2
  577. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.d.ts.map +0 -1
  578. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.js +0 -226
  579. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.js.map +0 -1
  580. package/out/src/storage/schema/entities/__tests/OutputTests.test.d.ts +0 -2
  581. package/out/src/storage/schema/entities/__tests/OutputTests.test.d.ts.map +0 -1
  582. package/out/src/storage/schema/entities/__tests/OutputTests.test.js +0 -413
  583. package/out/src/storage/schema/entities/__tests/OutputTests.test.js.map +0 -1
  584. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.d.ts +0 -2
  585. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.d.ts.map +0 -1
  586. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.js +0 -331
  587. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.js.map +0 -1
  588. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.d.ts +0 -2
  589. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.d.ts.map +0 -1
  590. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js +0 -474
  591. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js.map +0 -1
  592. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.d.ts +0 -2
  593. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.d.ts.map +0 -1
  594. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js +0 -234
  595. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js.map +0 -1
  596. package/out/src/storage/schema/entities/__tests/TransactionTests.test.d.ts +0 -2
  597. package/out/src/storage/schema/entities/__tests/TransactionTests.test.d.ts.map +0 -1
  598. package/out/src/storage/schema/entities/__tests/TransactionTests.test.js +0 -539
  599. package/out/src/storage/schema/entities/__tests/TransactionTests.test.js.map +0 -1
  600. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.d.ts +0 -2
  601. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.d.ts.map +0 -1
  602. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.js +0 -304
  603. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.js.map +0 -1
  604. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.d.ts +0 -2
  605. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.d.ts.map +0 -1
  606. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.js +0 -170
  607. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.js.map +0 -1
  608. package/out/src/storage/schema/entities/__tests/stampLogTests.test.d.ts +0 -2
  609. package/out/src/storage/schema/entities/__tests/stampLogTests.test.d.ts.map +0 -1
  610. package/out/src/storage/schema/entities/__tests/stampLogTests.test.js +0 -81
  611. package/out/src/storage/schema/entities/__tests/stampLogTests.test.js.map +0 -1
  612. package/out/src/storage/schema/entities/__tests/usersTests.test.d.ts +0 -2
  613. package/out/src/storage/schema/entities/__tests/usersTests.test.d.ts.map +0 -1
  614. package/out/src/storage/schema/entities/__tests/usersTests.test.js +0 -277
  615. package/out/src/storage/schema/entities/__tests/usersTests.test.js.map +0 -1
  616. package/out/src/utility/__tests/utilityHelpers.noBuffer.test.d.ts +0 -2
  617. package/out/src/utility/__tests/utilityHelpers.noBuffer.test.d.ts.map +0 -1
  618. package/out/src/utility/__tests/utilityHelpers.noBuffer.test.js +0 -107
  619. package/out/src/utility/__tests/utilityHelpers.noBuffer.test.js.map +0 -1
  620. package/out/src/wab-client/__tests/WABClient.man.test.d.ts +0 -2
  621. package/out/src/wab-client/__tests/WABClient.man.test.d.ts.map +0 -1
  622. package/out/src/wab-client/__tests/WABClient.man.test.js +0 -52
  623. package/out/src/wab-client/__tests/WABClient.man.test.js.map +0 -1
@@ -1,613 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const WalletPermissionsManager_fixtures_1 = require("./WalletPermissionsManager.fixtures");
4
- const WalletPermissionsManager_1 = require("../WalletPermissionsManager");
5
- const globals_1 = require("@jest/globals");
6
- // We mock the underlying @bsv/sdk references with our test fixtures:
7
- globals_1.jest.mock('@bsv/sdk', () => WalletPermissionsManager_fixtures_1.MockedBSV_SDK);
8
- /**
9
- * A lightweight helper that forces the manager to never find any on-chain token.
10
- * We do this so we can reliably test the request flow (i.e., that it truly initiates
11
- * a new permission request if no token is found).
12
- */
13
- function mockNoTokensFound(manager) {
14
- globals_1.jest.spyOn(manager, 'findProtocolToken').mockResolvedValue(undefined);
15
- globals_1.jest.spyOn(manager, 'findBasketToken').mockResolvedValue(undefined);
16
- globals_1.jest.spyOn(manager, 'findCertificateToken').mockResolvedValue(undefined);
17
- globals_1.jest.spyOn(manager, 'findSpendingToken').mockResolvedValue(undefined);
18
- }
19
- describe('WalletPermissionsManager - Permission Request Flow & Active Requests', () => {
20
- let underlying;
21
- let manager;
22
- beforeEach(() => {
23
- underlying = (0, WalletPermissionsManager_fixtures_1.mockUnderlyingWallet)();
24
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.test.com');
25
- });
26
- afterEach(() => {
27
- globals_1.jest.clearAllMocks();
28
- });
29
- /**
30
- * UNIT TESTS
31
- */
32
- describe('Unit Tests: requestPermissionFlow & activeRequests map', () => {
33
- it('should coalesce level-2 protocol requests for the same counterparty into a single grouped permission prompt based on manifest.json', async () => {
34
- mockNoTokensFound(manager);
35
- globals_1.jest.spyOn(manager, 'fetchManifestGroupPermissions').mockResolvedValue({
36
- protocolPermissions: [
37
- {
38
- protocolID: [2, 'l2-proto-A'],
39
- description: 'A'
40
- },
41
- {
42
- protocolID: [2, 'l2-proto-B'],
43
- counterparty: 'peer-123',
44
- description: 'B'
45
- },
46
- {
47
- protocolID: [2, 'l2-proto-C'],
48
- counterparty: 'peer-999',
49
- description: 'C'
50
- },
51
- {
52
- protocolID: [1, 'l1-proto-D'],
53
- counterparty: 'peer-123',
54
- description: 'D'
55
- }
56
- ]
57
- });
58
- const groupRequestCallback = globals_1.jest.fn(() => { });
59
- manager.bindCallback('onGroupedPermissionRequested', groupRequestCallback);
60
- const callA = manager.ensureProtocolPermission({
61
- originator: 'example.com',
62
- privileged: false,
63
- protocolID: [2, 'l2-proto-A'],
64
- counterparty: 'peer-123',
65
- reason: 'UnitTest - L2 A',
66
- seekPermission: true,
67
- usageType: 'signing'
68
- });
69
- const callB = manager.ensureProtocolPermission({
70
- originator: 'example.com',
71
- privileged: false,
72
- protocolID: [2, 'l2-proto-B'],
73
- counterparty: 'peer-123',
74
- reason: 'UnitTest - L2 B',
75
- seekPermission: true,
76
- usageType: 'signing'
77
- });
78
- await new Promise(resolve => setTimeout(resolve, 5));
79
- expect(groupRequestCallback).toHaveBeenCalledTimes(1);
80
- const callbackArg = groupRequestCallback.mock.calls[0][0];
81
- const requestID = callbackArg.requestID;
82
- expect(typeof requestID).toBe('string');
83
- expect(requestID).toMatch(/^group-peer:/);
84
- const activeRequests = manager.activeRequests;
85
- const queued = activeRequests.get(requestID);
86
- expect(queued.request.permissions.protocolPermissions.length).toBe(2);
87
- expect(queued.request.permissions.protocolPermissions).toEqual(expect.arrayContaining([
88
- expect.objectContaining({ protocolID: [2, 'l2-proto-A'], counterparty: 'peer-123' }),
89
- expect.objectContaining({ protocolID: [2, 'l2-proto-B'], counterparty: 'peer-123' })
90
- ]));
91
- await manager.denyGroupedPermission(requestID);
92
- await expect(callA).rejects.toThrow(/denied/i);
93
- await expect(callB).rejects.toThrow(/denied/i);
94
- expect(activeRequests.size).toBe(0);
95
- });
96
- it('should trigger a PACT prompt when a level-2 protocol is declared under counterpartyPermissions', async () => {
97
- mockNoTokensFound(manager);
98
- globals_1.jest.spyOn(manager, 'fetchManifestPermissions').mockResolvedValue({
99
- groupPermissions: null,
100
- counterpartyPermissions: {
101
- description: 'Trust required to trade with a peer',
102
- protocols: [
103
- { protocolName: 'escrow-negotiation', description: 'Negotiate escrow terms' },
104
- { protocolName: 'trade-messaging', description: 'Exchange messages' }
105
- ]
106
- }
107
- });
108
- const pactRequestCallback = globals_1.jest.fn(() => { });
109
- manager.bindCallback('onCounterpartyPermissionRequested', pactRequestCallback);
110
- const call = manager.ensureProtocolPermission({
111
- originator: 'example.com',
112
- privileged: false,
113
- protocolID: [2, 'escrow-negotiation'],
114
- counterparty: '02'.padEnd(66, 'a'),
115
- reason: 'UnitTest - pact',
116
- seekPermission: true,
117
- usageType: 'signing'
118
- });
119
- await new Promise(resolve => setTimeout(resolve, 5));
120
- expect(pactRequestCallback).toHaveBeenCalledTimes(1);
121
- const callbackArg = pactRequestCallback.mock.calls[0][0];
122
- expect(callbackArg.requestID).toMatch(/^pact:/);
123
- expect(callbackArg.permissions.protocols).toHaveLength(2);
124
- await manager.denyCounterpartyPermission(callbackArg.requestID);
125
- await expect(call).rejects.toThrow(/denied/i);
126
- });
127
- it('should parse counterpartyPermissions protocols from protocolName (preferred) and protocolId/protocolID (fallback)', async () => {
128
- const fetchMock = globalThis.fetch;
129
- fetchMock.mockResolvedValueOnce({
130
- ok: true,
131
- json: async () => ({
132
- metanet: {
133
- groupPermissions: { protocolPermissions: [] },
134
- counterpartyPermissions: {
135
- description: 'desc',
136
- protocols: [
137
- { protocolName: 'p', protocolId: [2, 'ignored-by-preference'], description: 'd' },
138
- { protocolId: [2, 'p2'], description: 'd2' },
139
- { protocolId: [1, 'bad'], description: 'should be ignored' }
140
- ]
141
- }
142
- }
143
- })
144
- });
145
- const res = await manager.fetchManifestPermissions('example.com');
146
- expect(res.counterpartyPermissions.protocols).toEqual(expect.arrayContaining([
147
- expect.objectContaining({ protocolName: 'p' }),
148
- expect.objectContaining({ protocolName: 'p2' })
149
- ]));
150
- expect(res.counterpartyPermissions.protocols).toHaveLength(2);
151
- });
152
- it('should parse counterpartyPermissions from metanet namespace with babbage fallback', async () => {
153
- const fetchMock = globalThis.fetch;
154
- fetchMock.mockResolvedValueOnce({
155
- ok: true,
156
- json: async () => ({
157
- metanet: {
158
- groupPermissions: { protocolPermissions: [] },
159
- counterpartyPermissions: {
160
- description: 'desc',
161
- protocols: [{ protocolName: 'p', description: 'd' }]
162
- }
163
- }
164
- })
165
- });
166
- const res1 = await manager.fetchManifestPermissions('example.com');
167
- expect(res1.counterpartyPermissions.protocols).toEqual(expect.arrayContaining([expect.objectContaining({ protocolName: 'p' })]));
168
- manager.manifestCache = new Map();
169
- fetchMock.mockResolvedValueOnce({
170
- ok: true,
171
- json: async () => ({
172
- babbage: {
173
- groupPermissions: { protocolPermissions: [] },
174
- counterpartyPermissions: {
175
- description: 'desc',
176
- protocols: [{ protocolName: 'p2', description: 'd2' }]
177
- }
178
- }
179
- })
180
- });
181
- const res2 = await manager.fetchManifestPermissions('example.com');
182
- expect(res2.counterpartyPermissions.protocols).toEqual(expect.arrayContaining([expect.objectContaining({ protocolName: 'p2' })]));
183
- });
184
- it('should ignore counterparty for level-1 protocol permission prompts (counterparty passed as undefined to callback)', async () => {
185
- mockNoTokensFound(manager);
186
- globals_1.jest.spyOn(manager, 'fetchManifestPermissions').mockResolvedValue({
187
- groupPermissions: null,
188
- counterpartyPermissions: null
189
- });
190
- const protocolRequestCallback = globals_1.jest.fn(() => { });
191
- manager.bindCallback('onProtocolPermissionRequested', protocolRequestCallback);
192
- const call = manager.ensureProtocolPermission({
193
- originator: 'example.com',
194
- privileged: false,
195
- protocolID: [1, 'app-level-proto'],
196
- counterparty: '02'.padEnd(66, 'd'),
197
- reason: 'UnitTest - L1 ignores counterparty',
198
- seekPermission: true,
199
- usageType: 'signing'
200
- });
201
- await new Promise(resolve => setTimeout(resolve, 5));
202
- expect(protocolRequestCallback).toHaveBeenCalledTimes(1);
203
- const callbackArg = protocolRequestCallback.mock.calls[0][0];
204
- expect(callbackArg.protocolID).toEqual([1, 'app-level-proto']);
205
- expect(callbackArg.counterparty).toBeUndefined();
206
- await manager.denyPermission(callbackArg.requestID);
207
- await expect(call).rejects.toThrow(/denied/i);
208
- });
209
- it('should create separate grouped permission requests for different peers (no cross-peer grouping)', async () => {
210
- mockNoTokensFound(manager);
211
- globals_1.jest.spyOn(manager, 'fetchManifestGroupPermissions').mockResolvedValue({
212
- protocolPermissions: [
213
- {
214
- protocolID: [2, 'l2-proto-B'],
215
- counterparty: 'peer-123',
216
- description: 'B'
217
- },
218
- {
219
- protocolID: [2, 'l2-proto-C'],
220
- counterparty: 'peer-999',
221
- description: 'C'
222
- }
223
- ]
224
- });
225
- const groupRequestCallback = globals_1.jest.fn(() => { });
226
- manager.bindCallback('onGroupedPermissionRequested', groupRequestCallback);
227
- const callB = manager.ensureProtocolPermission({
228
- originator: 'example.com',
229
- privileged: false,
230
- protocolID: [2, 'l2-proto-B'],
231
- counterparty: 'peer-123',
232
- reason: 'UnitTest - L2 B peer-123',
233
- seekPermission: true,
234
- usageType: 'signing'
235
- });
236
- const callC = manager.ensureProtocolPermission({
237
- originator: 'example.com',
238
- privileged: false,
239
- protocolID: [2, 'l2-proto-C'],
240
- counterparty: 'peer-999',
241
- reason: 'UnitTest - L2 C peer-999',
242
- seekPermission: true,
243
- usageType: 'signing'
244
- });
245
- await new Promise(resolve => setTimeout(resolve, 5));
246
- expect(groupRequestCallback).toHaveBeenCalledTimes(2);
247
- const requestID1 = groupRequestCallback.mock.calls[0][0].requestID;
248
- const requestID2 = groupRequestCallback.mock.calls[1][0].requestID;
249
- expect(requestID1).not.toBe(requestID2);
250
- expect(requestID1).toMatch(/^group-peer:/);
251
- expect(requestID2).toMatch(/^group-peer:/);
252
- const activeRequests = manager.activeRequests;
253
- expect(activeRequests.size).toBe(2);
254
- const queued1 = activeRequests.get(requestID1);
255
- const queued2 = activeRequests.get(requestID2);
256
- expect(queued1.request.permissions.protocolPermissions).toEqual(expect.arrayContaining([expect.objectContaining({ protocolID: [2, 'l2-proto-B'], counterparty: 'peer-123' })]));
257
- expect(queued1.request.permissions.protocolPermissions).not.toEqual(expect.arrayContaining([expect.objectContaining({ protocolID: [2, 'l2-proto-C'], counterparty: 'peer-999' })]));
258
- expect(queued2.request.permissions.protocolPermissions).toEqual(expect.arrayContaining([expect.objectContaining({ protocolID: [2, 'l2-proto-C'], counterparty: 'peer-999' })]));
259
- expect(queued2.request.permissions.protocolPermissions).not.toEqual(expect.arrayContaining([expect.objectContaining({ protocolID: [2, 'l2-proto-B'], counterparty: 'peer-123' })]));
260
- await manager.denyGroupedPermission(requestID1);
261
- await manager.denyGroupedPermission(requestID2);
262
- await expect(callB).rejects.toThrow(/denied/i);
263
- await expect(callC).rejects.toThrow(/denied/i);
264
- expect(activeRequests.size).toBe(0);
265
- });
266
- it('should coalesce parallel requests for the same resource into a single user prompt', async () => {
267
- // We want to test the underlying private method "requestPermissionFlow" indirectly
268
- // or we can test it via a public method that calls it. We'll do so via ensureProtocolPermission.
269
- // Force no token found => triggers a request flow
270
- mockNoTokensFound(manager);
271
- // Spy on the manager's "onProtocolPermissionRequested" callbacks
272
- const requestCallback = globals_1.jest.fn(() => { });
273
- manager.bindCallback('onProtocolPermissionRequested', requestCallback);
274
- // Make two parallel calls for the same resource
275
- const callA = manager.ensureProtocolPermission({
276
- originator: 'example.com',
277
- privileged: false,
278
- protocolID: [1, 'someproto'],
279
- counterparty: 'self',
280
- reason: 'UnitTest - same resource A',
281
- seekPermission: true,
282
- usageType: 'signing'
283
- });
284
- const callB = manager.ensureProtocolPermission({
285
- originator: 'example.com',
286
- privileged: false,
287
- protocolID: [1, 'someproto'],
288
- counterparty: 'self',
289
- reason: 'UnitTest - same resource B',
290
- seekPermission: true,
291
- usageType: 'signing'
292
- });
293
- // Wait a short moment for the async request flow to trigger
294
- await new Promise(resolve => setTimeout(resolve, 5));
295
- // We expect only one "onProtocolPermissionRequested" event for both calls
296
- expect(requestCallback).toHaveBeenCalledTimes(1);
297
- // Now let's deny the request:
298
- // Grab the requestID that the manager gave us from the callback param
299
- const callbackArg = requestCallback.mock.calls[0][0];
300
- const requestID = callbackArg.requestID;
301
- expect(typeof requestID).toBe('string'); // manager-generated
302
- // Deny the request
303
- await manager.denyPermission(requestID);
304
- // Both calls should reject
305
- await expect(callA).rejects.toThrow(/Permission denied/);
306
- await expect(callB).rejects.toThrow(/Permission denied/);
307
- // Confirm activeRequests map is empty after denial
308
- const activeRequests = manager.activeRequests;
309
- expect(activeRequests.size).toBe(0);
310
- });
311
- it('should generate two distinct user prompts for two different permission requests', async () => {
312
- // Force no tokens
313
- mockNoTokensFound(manager);
314
- // Spy on basket & protocol request callbacks
315
- const protocolRequestCb = globals_1.jest.fn(() => { });
316
- const basketRequestCb = globals_1.jest.fn(() => { });
317
- manager.bindCallback('onProtocolPermissionRequested', protocolRequestCb);
318
- manager.bindCallback('onBasketAccessRequested', basketRequestCb);
319
- // Make one call for protocol usage
320
- const pCall = manager.ensureProtocolPermission({
321
- originator: 'example.com',
322
- privileged: false,
323
- protocolID: [1, 'proto-A'],
324
- counterparty: 'self',
325
- reason: 'Different request A',
326
- seekPermission: true,
327
- usageType: 'signing'
328
- });
329
- // Make a second call for basket usage
330
- const bCall = manager.ensureBasketAccess({
331
- originator: 'example.com',
332
- basket: 'some-basket',
333
- reason: 'Different request B',
334
- seekPermission: true,
335
- usageType: 'insertion'
336
- });
337
- // Wait a moment for them to trigger
338
- await new Promise(resolve => setTimeout(resolve, 5));
339
- // We expect one protocol request AND one basket request
340
- expect(protocolRequestCb).toHaveBeenCalledTimes(1);
341
- expect(basketRequestCb).toHaveBeenCalledTimes(1);
342
- // Deny protocol request
343
- const pReqID = protocolRequestCb.mock.calls[0][0].requestID;
344
- await manager.denyPermission(pReqID);
345
- // Deny basket request
346
- const bReqID = basketRequestCb.mock.calls[0][0].requestID;
347
- await manager.denyPermission(bReqID);
348
- // Both calls should have rejected
349
- await expect(pCall).rejects.toThrow(/Permission denied/);
350
- await expect(bCall).rejects.toThrow(/Permission denied/);
351
- // activeRequests is empty
352
- const activeRequests = manager.activeRequests;
353
- expect(activeRequests.size).toBe(0);
354
- });
355
- it('should resolve all parallel requests when permission is granted, referencing the same requestID', async () => {
356
- // No tokens => triggers request flow
357
- mockNoTokensFound(manager);
358
- const requestCb = globals_1.jest.fn(() => { });
359
- manager.bindCallback('onProtocolPermissionRequested', requestCb);
360
- // Parallel calls
361
- const promiseA = manager.ensureProtocolPermission({
362
- originator: 'example.com',
363
- privileged: false,
364
- protocolID: [1, 'proto-X'],
365
- counterparty: 'anyone',
366
- reason: 'Test parallel grant A',
367
- seekPermission: true,
368
- usageType: 'encrypting'
369
- });
370
- const promiseB = manager.ensureProtocolPermission({
371
- originator: 'example.com',
372
- privileged: false,
373
- protocolID: [1, 'proto-X'],
374
- counterparty: 'anyone',
375
- reason: 'Test parallel grant B',
376
- seekPermission: true,
377
- usageType: 'encrypting'
378
- });
379
- // Let the request event fire
380
- await new Promise(resolve => setTimeout(resolve, 5));
381
- expect(requestCb).toHaveBeenCalledTimes(1);
382
- // Extract the requestID from the callback
383
- const { requestID } = requestCb.mock.calls[0][0];
384
- // Now we grant permission for that same requestID
385
- // Because ephemeral is false by default, the manager will attempt to create on-chain tokens
386
- // We'll mock the internal createPermissionOnChain so it doesn't blow up
387
- const createOnChainSpy = globals_1.jest.spyOn(manager, 'createPermissionOnChain').mockResolvedValue(undefined);
388
- await manager.grantPermission({ requestID });
389
- // Both calls should resolve with `true` (the manager returns a boolean)
390
- await expect(promiseA).resolves.toBe(true);
391
- await expect(promiseB).resolves.toBe(true);
392
- // activeRequests map is empty
393
- const activeRequests = manager.activeRequests;
394
- expect(activeRequests.size).toBe(0);
395
- // The manager tried to create an on-chain permission token once
396
- expect(createOnChainSpy).toHaveBeenCalledTimes(1);
397
- });
398
- it('should reject only the matching request queue on deny if requestID is specified', async () => {
399
- // This scenario tests the manager's partial denial logic where we pass { requestID }
400
- // to only reject the queued requests with that ID, leaving others (with a different requestID)
401
- // in the queue.
402
- mockNoTokensFound(manager);
403
- // We do two separate calls for the same resource but at different times, resulting in separate queues.
404
- // Actually, the manager normally merges them into one queue if the resource is the same.
405
- // So let's do two different resources to ensure we get two separate keys.
406
- const protoCb = globals_1.jest.fn(() => { });
407
- manager.bindCallback('onProtocolPermissionRequested', protoCb);
408
- // Resource 1
409
- const p1Promise = manager.ensureProtocolPermission({
410
- originator: 'siteA.com',
411
- privileged: false,
412
- protocolID: [1, 'proto-siteA'],
413
- counterparty: 'self',
414
- usageType: 'encrypting'
415
- });
416
- await new Promise(resolve => setTimeout(resolve, 5));
417
- const p1ReqID = protoCb.mock.calls[0][0].requestID;
418
- // At this point, resource 1 is pending in activeRequests. We'll not resolve it yet.
419
- // Resource 2
420
- const p2Promise = manager.ensureProtocolPermission({
421
- originator: 'siteB.com',
422
- privileged: false,
423
- protocolID: [1, 'proto-siteB'],
424
- counterparty: 'self',
425
- usageType: 'encrypting'
426
- });
427
- await new Promise(resolve => setTimeout(resolve, 5));
428
- // the second call triggers a second onProtocolPermissionRequested callback
429
- expect(protoCb).toHaveBeenCalledTimes(2);
430
- const p2ReqID = protoCb.mock.calls[1][0].requestID;
431
- // Deny the second request only
432
- await manager.denyPermission(p2ReqID);
433
- await expect(p2Promise).rejects.toThrow(/Permission denied/);
434
- // But the first request is still waiting
435
- const activeRequests = manager.activeRequests;
436
- expect(activeRequests.size).toBe(1);
437
- // Now let's deny the first request too
438
- await manager.denyPermission(p1ReqID);
439
- await expect(p1Promise).rejects.toThrow(/Permission denied/);
440
- // The queue is empty now
441
- expect(activeRequests.size).toBe(0);
442
- });
443
- });
444
- /**
445
- * INTEGRATION TESTS
446
- */
447
- describe('Integration Tests: ephemeral vs. persistent tokens', () => {
448
- it('should not create a token if ephemeral=true, so subsequent calls re-trigger the request', async () => {
449
- // We'll do a "protocol" permission scenario:
450
- mockNoTokensFound(manager);
451
- // Bind the request callback
452
- const requestCb = globals_1.jest.fn(() => { });
453
- manager.bindCallback('onProtocolPermissionRequested', requestCb);
454
- // Force any on-chain creation attempt to be spied on
455
- const createTokenSpy = globals_1.jest.spyOn(manager, 'createPermissionOnChain');
456
- // 1) Call ensureProtocolPermission => triggers request
457
- const pCall1 = manager.ensureProtocolPermission({
458
- originator: 'appdomain.com',
459
- privileged: false,
460
- protocolID: [1, 'ephemeral-proto'],
461
- counterparty: 'self',
462
- reason: 'test ephemeral #1',
463
- usageType: 'signing'
464
- });
465
- // Wait for request callback
466
- await new Promise(resolve => setTimeout(resolve, 5));
467
- expect(requestCb).toHaveBeenCalledTimes(1);
468
- const reqID1 = requestCb.mock.calls[0][0].requestID;
469
- // Grant ephemeral
470
- await manager.grantPermission({
471
- requestID: reqID1,
472
- ephemeral: true
473
- });
474
- // pCall1 is resolved
475
- await expect(pCall1).resolves.toBe(true);
476
- // Because ephemeral=true, we do NOT create an on-chain token
477
- expect(createTokenSpy).not.toHaveBeenCalled();
478
- manager.permissionCache = new Map();
479
- // 2) Immediately call ensureProtocolPermission again for the same resource
480
- // Because ephemeral usage didn't store a token, it should re-prompt.
481
- const pCall2 = manager.ensureProtocolPermission({
482
- originator: 'appdomain.com',
483
- privileged: false,
484
- protocolID: [1, 'ephemeral-proto'],
485
- counterparty: 'self',
486
- reason: 'test ephemeral #2',
487
- usageType: 'signing'
488
- });
489
- await new Promise(resolve => setTimeout(resolve, 5));
490
- // We expect a new request callback
491
- expect(requestCb).toHaveBeenCalledTimes(2);
492
- // We'll deny the second request
493
- const reqID2 = requestCb.mock.calls[1][0].requestID;
494
- await manager.denyPermission(reqID2);
495
- await expect(pCall2).rejects.toThrow(/Permission denied/);
496
- });
497
- it('should create a token if ephemeral=false, so subsequent calls do not re-trigger if unexpired', async () => {
498
- // We want the manager to truly create a token. We'll confirm that
499
- // subsequent calls for the same resource skip user prompt.
500
- mockNoTokensFound(manager);
501
- // We'll also ensure no token is found "the first time."
502
- // But on subsequent calls, we can mock that the manager sees the newly created token.
503
- // Let's spy on "createPermissionOnChain" so we can intercept the new token
504
- const createTokenSpy = globals_1.jest.spyOn(manager, 'createPermissionOnChain').mockResolvedValue(undefined); // no real on-chain creation
505
- // Spy on "findProtocolToken" so we can simulate that the second time it's called,
506
- // there's a valid token. We'll do this by setting the mock to return undefined the first time,
507
- // and a valid token the second time (or we can just rely on the manager's logic).
508
- let firstFindCall = true;
509
- globals_1.jest.spyOn(manager, 'findProtocolToken').mockImplementation(async () => {
510
- if (firstFindCall) {
511
- firstFindCall = false;
512
- return undefined; // first time triggers request
513
- }
514
- // second time => pretend we found a valid token
515
- const mockToken = {
516
- tx: [],
517
- txid: 'abcdef',
518
- outputIndex: 0,
519
- outputScript: '00',
520
- satoshis: 1,
521
- originator: 'persistentdomain.com',
522
- expiry: Math.floor(Date.now() / 1000) + 3600, // unexpired
523
- privileged: false,
524
- protocol: 'persist-proto',
525
- securityLevel: 1,
526
- counterparty: 'self'
527
- };
528
- return mockToken;
529
- });
530
- // We'll observe the request callback
531
- const requestCb = globals_1.jest.fn(() => { });
532
- manager.bindCallback('onProtocolPermissionRequested', requestCb);
533
- // 1) First call => no token => triggers request
534
- const call1 = manager.ensureProtocolPermission({
535
- originator: 'persistentdomain.com',
536
- privileged: false,
537
- protocolID: [1, 'persist-proto'],
538
- counterparty: 'self',
539
- reason: 'test persistent #1',
540
- usageType: 'signing'
541
- });
542
- await new Promise(resolve => setTimeout(resolve, 5));
543
- expect(requestCb).toHaveBeenCalledTimes(1);
544
- // Grant ephemeral=false => triggers createPermissionOnChain
545
- const reqID = requestCb.mock.calls[0][0].requestID;
546
- await manager.grantPermission({ requestID: reqID, ephemeral: false });
547
- await expect(call1).resolves.toBe(true);
548
- expect(createTokenSpy).toHaveBeenCalledTimes(1);
549
- // 2) Second call => the manager should find the token we just "created" => no request prompt
550
- const call2 = manager.ensureProtocolPermission({
551
- originator: 'persistentdomain.com',
552
- privileged: false,
553
- protocolID: [1, 'persist-proto'],
554
- counterparty: 'self',
555
- reason: 'test persistent #2',
556
- usageType: 'signing'
557
- });
558
- // We do not expect a new user prompt => requestCb remains at 1
559
- await new Promise(resolve => setTimeout(resolve, 5));
560
- expect(requestCb).toHaveBeenCalledTimes(1);
561
- // The second call should resolve immediately, no prompt
562
- await expect(call2).resolves.toBe(true);
563
- });
564
- it('should handle renewal if the found token is expired, passing previousToken in the request', async () => {
565
- // We'll test the "renewal" flow:
566
- // If the manager finds a token but it's expired, it sets { renewal: true, previousToken } in the request.
567
- // We'll mock findProtocolToken to return an expired token
568
- const expiredToken = {
569
- tx: [],
570
- txid: 'expiredTxid123',
571
- outputIndex: 0,
572
- outputScript: '76a914xxxx...88ac',
573
- satoshis: 1,
574
- originator: 'renewme.com',
575
- expiry: Math.floor(Date.now() / 1000) - 100, // in the past
576
- privileged: false,
577
- protocol: 'renew-proto',
578
- securityLevel: 1,
579
- counterparty: 'self'
580
- };
581
- globals_1.jest.spyOn(manager, 'findProtocolToken').mockResolvedValue(expiredToken);
582
- // Spy on request callback
583
- const requestCb = globals_1.jest.fn(() => { });
584
- manager.bindCallback('onProtocolPermissionRequested', requestCb);
585
- // We'll also spy on "renewPermissionOnChain" to see if it's called
586
- const renewSpy = globals_1.jest.spyOn(manager, 'renewPermissionOnChain').mockResolvedValue(undefined);
587
- // Call ensureProtocolPermission => sees expired token => triggers request with renewal
588
- const promise = manager.ensureProtocolPermission({
589
- originator: 'renewme.com',
590
- privileged: false,
591
- protocolID: [1, 'renew-proto'],
592
- counterparty: 'self',
593
- reason: 'test renewal',
594
- usageType: 'encrypting'
595
- });
596
- // Wait for request callback
597
- await new Promise(resolve => setTimeout(resolve, 10));
598
- expect(requestCb).toHaveBeenCalledTimes(1);
599
- // Confirm the callback param includes `renewal=true` and `previousToken=expiredToken`
600
- const { renewal, previousToken } = requestCb.mock.calls[0][0];
601
- expect(renewal).toBe(true);
602
- expect(previousToken.txid).toBe('expiredTxid123');
603
- // Grant ephemeral=false => manager calls renewPermissionOnChain
604
- const { requestID } = requestCb.mock.calls[0][0];
605
- await manager.grantPermission({ requestID, ephemeral: false });
606
- await expect(promise).resolves.toBe(true);
607
- expect(renewSpy).toHaveBeenCalledTimes(1);
608
- // The first arg is the old token, second is request, etc.
609
- expect(renewSpy).toHaveBeenCalledWith(expiredToken, expect.objectContaining({ originator: 'renewme.com' }), expect.any(Number), undefined);
610
- });
611
- });
612
- });
613
- //# sourceMappingURL=WalletPermissionsManager.flows.test.js.map