@bsv/wallet-toolbox 2.1.28 → 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 (610) hide show
  1. package/docs/client.md +327 -152
  2. package/docs/storage.md +340 -58
  3. package/docs/wallet.md +699 -27
  4. package/out/src/CWIStyleWalletManager.js +107 -41
  5. package/out/src/CWIStyleWalletManager.js.map +1 -1
  6. package/out/src/Setup.js +3 -3
  7. package/out/src/Setup.js.map +1 -1
  8. package/out/src/SetupClient.js +1 -1
  9. package/out/src/SetupClient.js.map +1 -1
  10. package/out/src/ShamirWalletManager.d.ts +2 -2
  11. package/out/src/ShamirWalletManager.js +10 -3
  12. package/out/src/ShamirWalletManager.js.map +1 -1
  13. package/out/src/SimpleWalletManager.js +29 -0
  14. package/out/src/SimpleWalletManager.js.map +1 -1
  15. package/out/src/Wallet.js +84 -66
  16. package/out/src/Wallet.js.map +1 -1
  17. package/out/src/WalletAuthenticationManager.js +6 -3
  18. package/out/src/WalletAuthenticationManager.js.map +1 -1
  19. package/out/src/WalletLogger.js +6 -4
  20. package/out/src/WalletLogger.js.map +1 -1
  21. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  22. package/out/src/WalletPermissionsManager.js +158 -167
  23. package/out/src/WalletPermissionsManager.js.map +1 -1
  24. package/out/src/WalletSettingsManager.js +3 -0
  25. package/out/src/WalletSettingsManager.js.map +1 -1
  26. package/out/src/entropy/EntropyCollector.js +9 -9
  27. package/out/src/entropy/EntropyCollector.js.map +1 -1
  28. package/out/src/fundWalletP2PKH.js +5 -6
  29. package/out/src/fundWalletP2PKH.js.map +1 -1
  30. package/out/src/mockchain/MockChainMigrations.js +1 -1
  31. package/out/src/mockchain/MockChainMigrations.js.map +1 -1
  32. package/out/src/mockchain/MockChainStorage.js +1 -0
  33. package/out/src/mockchain/MockChainStorage.js.map +1 -1
  34. package/out/src/mockchain/MockChainTracker.js +2 -0
  35. package/out/src/mockchain/MockChainTracker.js.map +1 -1
  36. package/out/src/mockchain/MockMiner.js +2 -2
  37. package/out/src/mockchain/MockMiner.js.map +1 -1
  38. package/out/src/mockchain/MockServices.js +21 -25
  39. package/out/src/mockchain/MockServices.js.map +1 -1
  40. package/out/src/monitor/Monitor.js +45 -33
  41. package/out/src/monitor/Monitor.js.map +1 -1
  42. package/out/src/monitor/MonitorDaemon.js +12 -10
  43. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  44. package/out/src/monitor/tasks/TaskArcSSE.js +10 -13
  45. package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
  46. package/out/src/monitor/tasks/TaskCheckForProofs.js +10 -11
  47. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  48. package/out/src/monitor/tasks/TaskCheckNoSends.js +22 -22
  49. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  50. package/out/src/monitor/tasks/TaskClock.js +3 -1
  51. package/out/src/monitor/tasks/TaskClock.js.map +1 -1
  52. package/out/src/monitor/tasks/TaskFailAbandoned.js +2 -1
  53. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
  54. package/out/src/monitor/tasks/TaskMineBlock.js +3 -2
  55. package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -1
  56. package/out/src/monitor/tasks/TaskMonitorCallHistory.js +2 -1
  57. package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
  58. package/out/src/monitor/tasks/TaskNewHeader.js +12 -1
  59. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  60. package/out/src/monitor/tasks/TaskPurge.js +7 -5
  61. package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
  62. package/out/src/monitor/tasks/TaskReorg.js +4 -2
  63. package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
  64. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +12 -9
  65. package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
  66. package/out/src/monitor/tasks/TaskReviewProvenTxs.js +8 -3
  67. package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
  68. package/out/src/monitor/tasks/TaskReviewStatus.js +7 -5
  69. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
  70. package/out/src/monitor/tasks/TaskReviewUtxos.js +6 -2
  71. package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
  72. package/out/src/monitor/tasks/TaskSendWaiting.js +9 -2
  73. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  74. package/out/src/monitor/tasks/TaskSyncWhenIdle.js +2 -1
  75. package/out/src/monitor/tasks/TaskSyncWhenIdle.js.map +1 -1
  76. package/out/src/monitor/tasks/TaskUnFail.js +6 -5
  77. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  78. package/out/src/monitor/tasks/WalletMonitorTask.js +7 -4
  79. package/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -1
  80. package/out/src/sdk/PrivilegedKeyManager.js +44 -27
  81. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
  82. package/out/src/sdk/WERR_errors.js +23 -8
  83. package/out/src/sdk/WERR_errors.js.map +1 -1
  84. package/out/src/sdk/WalletError.js +7 -7
  85. package/out/src/sdk/WalletError.js.map +1 -1
  86. package/out/src/services/ServiceCollection.js +9 -2
  87. package/out/src/services/ServiceCollection.js.map +1 -1
  88. package/out/src/services/Services.js +58 -54
  89. package/out/src/services/Services.js.map +1 -1
  90. package/out/src/services/chaintracker/BHServiceClient.js +8 -2
  91. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  92. package/out/src/services/chaintracker/ChaintracksChainTracker.js +5 -2
  93. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  94. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +27 -21
  95. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  96. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +10 -5
  97. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  98. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +4 -1
  99. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  100. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +8 -1
  101. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  102. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +7 -0
  103. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  104. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +5 -3
  105. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  106. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +3 -1
  107. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
  108. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +3 -1
  109. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  110. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +3 -1
  111. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  112. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +4 -3
  113. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
  114. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +1 -2
  115. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  116. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +8 -5
  117. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
  118. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +3 -1
  119. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  120. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +2 -1
  121. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  122. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +12 -6
  123. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  124. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +8 -7
  125. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  126. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +8 -8
  127. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  128. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +15 -16
  129. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  130. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +1 -1
  131. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
  132. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js +3 -3
  133. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  134. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +1 -1
  135. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  136. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +1 -1
  137. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  138. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +1 -1
  139. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
  140. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +1 -1
  141. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
  142. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +19 -16
  143. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  144. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +4 -0
  145. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
  146. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +17 -4
  147. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  148. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +21 -0
  149. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  150. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +1 -3
  151. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
  152. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +9 -3
  153. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
  154. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +7 -5
  155. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  156. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +4 -6
  157. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
  158. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +1 -1
  159. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  160. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +8 -8
  161. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  162. package/out/src/services/createDefaultWalletServicesOptions.js +8 -8
  163. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  164. package/out/src/services/providers/ARC.js +13 -5
  165. package/out/src/services/providers/ARC.js.map +1 -1
  166. package/out/src/services/providers/ArcSSEClient.js +9 -8
  167. package/out/src/services/providers/ArcSSEClient.js.map +1 -1
  168. package/out/src/services/providers/Bitails.js +6 -2
  169. package/out/src/services/providers/Bitails.js.map +1 -1
  170. package/out/src/services/providers/SdkWhatsOnChain.js +6 -2
  171. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  172. package/out/src/services/providers/WhatsOnChain.js +2 -1
  173. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  174. package/out/src/services/providers/getBeefForTxid.js +2 -1
  175. package/out/src/services/providers/getBeefForTxid.js.map +1 -1
  176. package/out/src/signer/WalletSigner.js +4 -1
  177. package/out/src/signer/WalletSigner.js.map +1 -1
  178. package/out/src/signer/methods/acquireDirectCertificate.js +1 -2
  179. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  180. package/out/src/signer/methods/buildSignableTransaction.js +1 -2
  181. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  182. package/out/src/signer/methods/completeSignedTransaction.js +4 -5
  183. package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
  184. package/out/src/signer/methods/createAction.js +9 -11
  185. package/out/src/signer/methods/createAction.js.map +1 -1
  186. package/out/src/signer/methods/signAction.js +5 -6
  187. package/out/src/signer/methods/signAction.js.map +1 -1
  188. package/out/src/storage/StorageIdb.js +84 -99
  189. package/out/src/storage/StorageIdb.js.map +1 -1
  190. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  191. package/out/src/storage/StorageKnex.js +22 -29
  192. package/out/src/storage/StorageKnex.js.map +1 -1
  193. package/out/src/storage/StorageProvider.d.ts +4 -1
  194. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  195. package/out/src/storage/StorageProvider.js +45 -33
  196. package/out/src/storage/StorageProvider.js.map +1 -1
  197. package/out/src/storage/StorageReader.js +4 -2
  198. package/out/src/storage/StorageReader.js.map +1 -1
  199. package/out/src/storage/StorageSyncReader.js +2 -0
  200. package/out/src/storage/StorageSyncReader.js.map +1 -1
  201. package/out/src/storage/WalletStorageManager.js +47 -25
  202. package/out/src/storage/WalletStorageManager.js.map +1 -1
  203. package/out/src/storage/adminServer/adminServer.js +35 -48
  204. package/out/src/storage/adminServer/adminServer.js.map +1 -1
  205. package/out/src/storage/idbHelpers.js +1 -2
  206. package/out/src/storage/idbHelpers.js.map +1 -1
  207. package/out/src/storage/methods/ListActionsSpecOp.js +2 -2
  208. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  209. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  210. package/out/src/storage/methods/ListOutputsSpecOp.js +5 -2
  211. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  212. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +10 -12
  213. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  214. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  215. package/out/src/storage/methods/createAction.js +87 -59
  216. package/out/src/storage/methods/createAction.js.map +1 -1
  217. package/out/src/storage/methods/generateChange.js +2 -3
  218. package/out/src/storage/methods/generateChange.js.map +1 -1
  219. package/out/src/storage/methods/getBeefForTransaction.js +2 -4
  220. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  221. package/out/src/storage/methods/internalizeAction.js +27 -2
  222. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  223. package/out/src/storage/methods/listActionsIdb.js +7 -9
  224. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  225. package/out/src/storage/methods/listActionsKnex.js +7 -9
  226. package/out/src/storage/methods/listActionsKnex.js.map +1 -1
  227. package/out/src/storage/methods/listOutputsIdb.js +5 -7
  228. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  229. package/out/src/storage/methods/listOutputsKnex.js +9 -10
  230. package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
  231. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  232. package/out/src/storage/methods/processAction.js +12 -11
  233. package/out/src/storage/methods/processAction.js.map +1 -1
  234. package/out/src/storage/methods/reviewStatus.d.ts +3 -2
  235. package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
  236. package/out/src/storage/methods/reviewStatus.js +34 -2
  237. package/out/src/storage/methods/reviewStatus.js.map +1 -1
  238. package/out/src/storage/methods/reviewStatusIdb.d.ts +2 -2
  239. package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
  240. package/out/src/storage/methods/reviewStatusIdb.js +54 -13
  241. package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
  242. package/out/src/storage/portable/index.js +11 -15
  243. package/out/src/storage/portable/index.js.map +1 -1
  244. package/out/src/storage/remoting/StorageClient.js +2 -3
  245. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  246. package/out/src/storage/remoting/StorageClientBase.js +6 -3
  247. package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
  248. package/out/src/storage/remoting/StorageServer.js +17 -11
  249. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  250. package/out/src/storage/schema/KnexMigrations.js +5 -1
  251. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  252. package/out/src/storage/schema/entities/EntityBase.js +1 -0
  253. package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
  254. package/out/src/storage/schema/entities/EntityOutputBasket.js +1 -1
  255. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
  256. package/out/src/storage/schema/entities/EntityProvenTx.js +12 -13
  257. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  258. package/out/src/storage/schema/entities/EntityProvenTxReq.js +7 -9
  259. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  260. package/out/src/storage/schema/entities/EntitySyncState.js +6 -3
  261. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  262. package/out/src/storage/schema/entities/MergeEntity.js +4 -0
  263. package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
  264. package/out/src/storage/storageProviderHelpers.js +2 -3
  265. package/out/src/storage/storageProviderHelpers.js.map +1 -1
  266. package/out/src/storage/sync/StorageMySQLDojoReader.js +2 -2
  267. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  268. package/out/src/utility/Format.js +4 -5
  269. package/out/src/utility/Format.js.map +1 -1
  270. package/out/src/utility/ScriptTemplateBRC29.js +7 -6
  271. package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
  272. package/out/src/utility/brc114ActionTimeLabels.js +1 -1
  273. package/out/src/utility/brc114ActionTimeLabels.js.map +1 -1
  274. package/out/src/utility/identityUtils.js +2 -4
  275. package/out/src/utility/identityUtils.js.map +1 -1
  276. package/out/src/utility/utilityHelpers.buffer.js +3 -3
  277. package/out/src/utility/utilityHelpers.buffer.js.map +1 -1
  278. package/out/src/utility/utilityHelpers.js +2 -2
  279. package/out/src/utility/utilityHelpers.js.map +1 -1
  280. package/out/src/utility/utilityHelpers.noBuffer.js +4 -4
  281. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  282. package/out/src/wab-client/WABClient.js +1 -0
  283. package/out/src/wab-client/WABClient.js.map +1 -1
  284. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js +1 -4
  285. package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +1 -1
  286. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +1 -4
  287. package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -1
  288. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +1 -4
  289. package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -1
  290. package/package.json +18 -18
  291. package/out/src/__tests/CWIStyleWalletManager.test.d.ts +0 -2
  292. package/out/src/__tests/CWIStyleWalletManager.test.d.ts.map +0 -1
  293. package/out/src/__tests/CWIStyleWalletManager.test.js +0 -810
  294. package/out/src/__tests/CWIStyleWalletManager.test.js.map +0 -1
  295. package/out/src/__tests/ShamirWalletManager.test.d.ts +0 -2
  296. package/out/src/__tests/ShamirWalletManager.test.d.ts.map +0 -1
  297. package/out/src/__tests/ShamirWalletManager.test.js +0 -303
  298. package/out/src/__tests/ShamirWalletManager.test.js.map +0 -1
  299. package/out/src/__tests/WalletPermissionsManager.callbacks.test.d.ts +0 -2
  300. package/out/src/__tests/WalletPermissionsManager.callbacks.test.d.ts.map +0 -1
  301. package/out/src/__tests/WalletPermissionsManager.callbacks.test.js +0 -365
  302. package/out/src/__tests/WalletPermissionsManager.callbacks.test.js.map +0 -1
  303. package/out/src/__tests/WalletPermissionsManager.checks.test.d.ts +0 -2
  304. package/out/src/__tests/WalletPermissionsManager.checks.test.d.ts.map +0 -1
  305. package/out/src/__tests/WalletPermissionsManager.checks.test.js +0 -642
  306. package/out/src/__tests/WalletPermissionsManager.checks.test.js.map +0 -1
  307. package/out/src/__tests/WalletPermissionsManager.encryption.test.d.ts +0 -2
  308. package/out/src/__tests/WalletPermissionsManager.encryption.test.d.ts.map +0 -1
  309. package/out/src/__tests/WalletPermissionsManager.encryption.test.js +0 -335
  310. package/out/src/__tests/WalletPermissionsManager.encryption.test.js.map +0 -1
  311. package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts +0 -86
  312. package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts.map +0 -1
  313. package/out/src/__tests/WalletPermissionsManager.fixtures.js +0 -280
  314. package/out/src/__tests/WalletPermissionsManager.fixtures.js.map +0 -1
  315. package/out/src/__tests/WalletPermissionsManager.flows.test.d.ts +0 -2
  316. package/out/src/__tests/WalletPermissionsManager.flows.test.d.ts.map +0 -1
  317. package/out/src/__tests/WalletPermissionsManager.flows.test.js +0 -613
  318. package/out/src/__tests/WalletPermissionsManager.flows.test.js.map +0 -1
  319. package/out/src/__tests/WalletPermissionsManager.initialization.test.d.ts +0 -2
  320. package/out/src/__tests/WalletPermissionsManager.initialization.test.d.ts.map +0 -1
  321. package/out/src/__tests/WalletPermissionsManager.initialization.test.js +0 -227
  322. package/out/src/__tests/WalletPermissionsManager.initialization.test.js.map +0 -1
  323. package/out/src/__tests/WalletPermissionsManager.pmodules.test.d.ts +0 -2
  324. package/out/src/__tests/WalletPermissionsManager.pmodules.test.d.ts.map +0 -1
  325. package/out/src/__tests/WalletPermissionsManager.pmodules.test.js +0 -735
  326. package/out/src/__tests/WalletPermissionsManager.pmodules.test.js.map +0 -1
  327. package/out/src/__tests/WalletPermissionsManager.proxying.test.d.ts +0 -2
  328. package/out/src/__tests/WalletPermissionsManager.proxying.test.d.ts.map +0 -1
  329. package/out/src/__tests/WalletPermissionsManager.proxying.test.js +0 -585
  330. package/out/src/__tests/WalletPermissionsManager.proxying.test.js.map +0 -1
  331. package/out/src/__tests/WalletPermissionsManager.tokens.test.d.ts +0 -2
  332. package/out/src/__tests/WalletPermissionsManager.tokens.test.d.ts.map +0 -1
  333. package/out/src/__tests/WalletPermissionsManager.tokens.test.js +0 -416
  334. package/out/src/__tests/WalletPermissionsManager.tokens.test.js.map +0 -1
  335. package/out/src/entropy/__tests/EntropyCollector.test.d.ts +0 -2
  336. package/out/src/entropy/__tests/EntropyCollector.test.d.ts.map +0 -1
  337. package/out/src/entropy/__tests/EntropyCollector.test.js +0 -137
  338. package/out/src/entropy/__tests/EntropyCollector.test.js.map +0 -1
  339. package/out/src/monitor/__test/MonitorDaemon.man.test.d.ts +0 -2
  340. package/out/src/monitor/__test/MonitorDaemon.man.test.d.ts.map +0 -1
  341. package/out/src/monitor/__test/MonitorDaemon.man.test.js +0 -41
  342. package/out/src/monitor/__test/MonitorDaemon.man.test.js.map +0 -1
  343. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.d.ts +0 -2
  344. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.d.ts.map +0 -1
  345. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.js +0 -257
  346. package/out/src/monitor/tasks/__tests/TaskArcSSE.test.js.map +0 -1
  347. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.d.ts +0 -2
  348. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.d.ts.map +0 -1
  349. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.js +0 -161
  350. package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.js.map +0 -1
  351. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.d.ts +0 -2
  352. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.d.ts.map +0 -1
  353. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.js +0 -214
  354. package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.js.map +0 -1
  355. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.d.ts +0 -2
  356. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.d.ts.map +0 -1
  357. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.js +0 -92
  358. package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.js.map +0 -1
  359. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.d.ts +0 -2
  360. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.d.ts.map +0 -1
  361. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.js +0 -139
  362. package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.js.map +0 -1
  363. package/out/src/sdk/__test/CertificateLifeCycle.test.d.ts +0 -2
  364. package/out/src/sdk/__test/CertificateLifeCycle.test.d.ts.map +0 -1
  365. package/out/src/sdk/__test/CertificateLifeCycle.test.js +0 -62
  366. package/out/src/sdk/__test/CertificateLifeCycle.test.js.map +0 -1
  367. package/out/src/sdk/__test/PrivilegedKeyManager.test.d.ts +0 -2
  368. package/out/src/sdk/__test/PrivilegedKeyManager.test.d.ts.map +0 -1
  369. package/out/src/sdk/__test/PrivilegedKeyManager.test.js +0 -647
  370. package/out/src/sdk/__test/PrivilegedKeyManager.test.js.map +0 -1
  371. package/out/src/sdk/__test/WalletError.test.d.ts +0 -2
  372. package/out/src/sdk/__test/WalletError.test.d.ts.map +0 -1
  373. package/out/src/sdk/__test/WalletError.test.js +0 -255
  374. package/out/src/sdk/__test/WalletError.test.js.map +0 -1
  375. package/out/src/sdk/__test/validationHelpers.test.d.ts +0 -2
  376. package/out/src/sdk/__test/validationHelpers.test.d.ts.map +0 -1
  377. package/out/src/sdk/__test/validationHelpers.test.js +0 -20
  378. package/out/src/sdk/__test/validationHelpers.test.js.map +0 -1
  379. package/out/src/services/__tests/ARC.man.test.d.ts +0 -2
  380. package/out/src/services/__tests/ARC.man.test.d.ts.map +0 -1
  381. package/out/src/services/__tests/ARC.man.test.js +0 -104
  382. package/out/src/services/__tests/ARC.man.test.js.map +0 -1
  383. package/out/src/services/__tests/ARC.timeout.man.test.d.ts +0 -2
  384. package/out/src/services/__tests/ARC.timeout.man.test.d.ts.map +0 -1
  385. package/out/src/services/__tests/ARC.timeout.man.test.js +0 -74
  386. package/out/src/services/__tests/ARC.timeout.man.test.js.map +0 -1
  387. package/out/src/services/__tests/ArcGorillaPool.man.test.d.ts +0 -2
  388. package/out/src/services/__tests/ArcGorillaPool.man.test.d.ts.map +0 -1
  389. package/out/src/services/__tests/ArcGorillaPool.man.test.js +0 -93
  390. package/out/src/services/__tests/ArcGorillaPool.man.test.js.map +0 -1
  391. package/out/src/services/__tests/arcServices.test.d.ts +0 -2
  392. package/out/src/services/__tests/arcServices.test.d.ts.map +0 -1
  393. package/out/src/services/__tests/arcServices.test.js +0 -7
  394. package/out/src/services/__tests/arcServices.test.js.map +0 -1
  395. package/out/src/services/__tests/bitrails.test.d.ts +0 -2
  396. package/out/src/services/__tests/bitrails.test.d.ts.map +0 -1
  397. package/out/src/services/__tests/bitrails.test.js +0 -60
  398. package/out/src/services/__tests/bitrails.test.js.map +0 -1
  399. package/out/src/services/__tests/getFiatExchangeRate.test.d.ts +0 -2
  400. package/out/src/services/__tests/getFiatExchangeRate.test.d.ts.map +0 -1
  401. package/out/src/services/__tests/getFiatExchangeRate.test.js +0 -181
  402. package/out/src/services/__tests/getFiatExchangeRate.test.js.map +0 -1
  403. package/out/src/services/__tests/getMerklePath.test.d.ts +0 -2
  404. package/out/src/services/__tests/getMerklePath.test.d.ts.map +0 -1
  405. package/out/src/services/__tests/getMerklePath.test.js +0 -24
  406. package/out/src/services/__tests/getMerklePath.test.js.map +0 -1
  407. package/out/src/services/__tests/getRawTx.test.d.ts +0 -2
  408. package/out/src/services/__tests/getRawTx.test.d.ts.map +0 -1
  409. package/out/src/services/__tests/getRawTx.test.js +0 -16
  410. package/out/src/services/__tests/getRawTx.test.js.map +0 -1
  411. package/out/src/services/__tests/postBeef.test.d.ts +0 -2
  412. package/out/src/services/__tests/postBeef.test.d.ts.map +0 -1
  413. package/out/src/services/__tests/postBeef.test.js +0 -101
  414. package/out/src/services/__tests/postBeef.test.js.map +0 -1
  415. package/out/src/services/__tests/verifyBeef.test.d.ts +0 -2
  416. package/out/src/services/__tests/verifyBeef.test.d.ts.map +0 -1
  417. package/out/src/services/__tests/verifyBeef.test.js +0 -80
  418. package/out/src/services/__tests/verifyBeef.test.js.map +0 -1
  419. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.d.ts +0 -2
  420. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.d.ts.map +0 -1
  421. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.js +0 -61
  422. package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.js.map +0 -1
  423. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.d.ts +0 -2
  424. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.d.ts.map +0 -1
  425. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.js +0 -61
  426. package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.js.map +0 -1
  427. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.d.ts +0 -2
  428. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.d.ts.map +0 -1
  429. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.js +0 -57
  430. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.js.map +0 -1
  431. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.d.ts +0 -2
  432. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.d.ts.map +0 -1
  433. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.js +0 -41
  434. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.js.map +0 -1
  435. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.d.ts +0 -2
  436. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.d.ts.map +0 -1
  437. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.js +0 -109
  438. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.js.map +0 -1
  439. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.d.ts +0 -2
  440. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.d.ts.map +0 -1
  441. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.js +0 -88
  442. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.js.map +0 -1
  443. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.d.ts +0 -2
  444. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.d.ts.map +0 -1
  445. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.js +0 -39
  446. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.js.map +0 -1
  447. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.d.ts +0 -2
  448. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.d.ts.map +0 -1
  449. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js +0 -76
  450. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js.map +0 -1
  451. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.d.ts +0 -2
  452. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.d.ts.map +0 -1
  453. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.js +0 -44
  454. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.js.map +0 -1
  455. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.d.ts +0 -2
  456. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.d.ts.map +0 -1
  457. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.js +0 -165
  458. package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.js.map +0 -1
  459. package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.d.ts +0 -12
  460. package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.d.ts.map +0 -1
  461. package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.js +0 -66
  462. package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.js.map +0 -1
  463. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.d.ts +0 -2
  464. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.d.ts.map +0 -1
  465. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.js +0 -109
  466. package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.js.map +0 -1
  467. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.d.ts +0 -2
  468. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.d.ts.map +0 -1
  469. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js +0 -55
  470. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js.map +0 -1
  471. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.d.ts +0 -2
  472. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.d.ts.map +0 -1
  473. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.js +0 -255
  474. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.js.map +0 -1
  475. package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.d.ts +0 -2
  476. package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.d.ts.map +0 -1
  477. package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.js +0 -56
  478. package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.js.map +0 -1
  479. package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.d.ts +0 -2
  480. package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.d.ts.map +0 -1
  481. package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.js +0 -69
  482. package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.js.map +0 -1
  483. package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.d.ts +0 -2
  484. package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.d.ts.map +0 -1
  485. package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.js +0 -51
  486. package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.js.map +0 -1
  487. package/out/src/services/providers/__tests/ArcSSEClient.test.d.ts +0 -2
  488. package/out/src/services/providers/__tests/ArcSSEClient.test.d.ts.map +0 -1
  489. package/out/src/services/providers/__tests/ArcSSEClient.test.js +0 -256
  490. package/out/src/services/providers/__tests/ArcSSEClient.test.js.map +0 -1
  491. package/out/src/services/providers/__tests/WhatsOnChain.test.d.ts +0 -2
  492. package/out/src/services/providers/__tests/WhatsOnChain.test.d.ts.map +0 -1
  493. package/out/src/services/providers/__tests/WhatsOnChain.test.js +0 -191
  494. package/out/src/services/providers/__tests/WhatsOnChain.test.js.map +0 -1
  495. package/out/src/services/providers/__tests/exchangeRates.test.d.ts +0 -2
  496. package/out/src/services/providers/__tests/exchangeRates.test.d.ts.map +0 -1
  497. package/out/src/services/providers/__tests/exchangeRates.test.js +0 -23
  498. package/out/src/services/providers/__tests/exchangeRates.test.js.map +0 -1
  499. package/out/src/storage/__test/StorageIdb.test.d.ts +0 -2
  500. package/out/src/storage/__test/StorageIdb.test.d.ts.map +0 -1
  501. package/out/src/storage/__test/StorageIdb.test.js +0 -44
  502. package/out/src/storage/__test/StorageIdb.test.js.map +0 -1
  503. package/out/src/storage/__test/WalletStorageManager.test.d.ts +0 -2
  504. package/out/src/storage/__test/WalletStorageManager.test.d.ts.map +0 -1
  505. package/out/src/storage/__test/WalletStorageManager.test.js +0 -254
  506. package/out/src/storage/__test/WalletStorageManager.test.js.map +0 -1
  507. package/out/src/storage/__test/adminStats.man.test.d.ts +0 -2
  508. package/out/src/storage/__test/adminStats.man.test.d.ts.map +0 -1
  509. package/out/src/storage/__test/adminStats.man.test.js +0 -78
  510. package/out/src/storage/__test/adminStats.man.test.js.map +0 -1
  511. package/out/src/storage/__test/findStaleMerkleRoots.test.d.ts +0 -2
  512. package/out/src/storage/__test/findStaleMerkleRoots.test.d.ts.map +0 -1
  513. package/out/src/storage/__test/findStaleMerkleRoots.test.js +0 -41
  514. package/out/src/storage/__test/findStaleMerkleRoots.test.js.map +0 -1
  515. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.d.ts +0 -2
  516. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.d.ts.map +0 -1
  517. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.js +0 -73
  518. package/out/src/storage/__test/findStaleMerkleRootsKnex.test.js.map +0 -1
  519. package/out/src/storage/__test/getBeefForTransaction.test.d.ts +0 -2
  520. package/out/src/storage/__test/getBeefForTransaction.test.d.ts.map +0 -1
  521. package/out/src/storage/__test/getBeefForTransaction.test.js +0 -347
  522. package/out/src/storage/__test/getBeefForTransaction.test.js.map +0 -1
  523. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.d.ts +0 -2
  524. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.d.ts.map +0 -1
  525. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js +0 -1111
  526. package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js.map +0 -1
  527. package/out/src/storage/methods/__test/offsetKey.test.d.ts +0 -2
  528. package/out/src/storage/methods/__test/offsetKey.test.d.ts.map +0 -1
  529. package/out/src/storage/methods/__test/offsetKey.test.js +0 -229
  530. package/out/src/storage/methods/__test/offsetKey.test.js.map +0 -1
  531. package/out/src/storage/remoting/__test/StorageClient.man.test.d.ts +0 -2
  532. package/out/src/storage/remoting/__test/StorageClient.man.test.d.ts.map +0 -1
  533. package/out/src/storage/remoting/__test/StorageClient.man.test.js +0 -487
  534. package/out/src/storage/remoting/__test/StorageClient.man.test.js.map +0 -1
  535. package/out/src/storage/remoting/__test/StorageClient.test.d.ts +0 -2
  536. package/out/src/storage/remoting/__test/StorageClient.test.d.ts.map +0 -1
  537. package/out/src/storage/remoting/__test/StorageClient.test.js +0 -119
  538. package/out/src/storage/remoting/__test/StorageClient.test.js.map +0 -1
  539. package/out/src/storage/remoting/__tests__/entityValidationHelpers.test.d.ts +0 -2
  540. package/out/src/storage/remoting/__tests__/entityValidationHelpers.test.d.ts.map +0 -1
  541. package/out/src/storage/remoting/__tests__/entityValidationHelpers.test.js +0 -268
  542. package/out/src/storage/remoting/__tests__/entityValidationHelpers.test.js.map +0 -1
  543. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.d.ts +0 -2
  544. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.d.ts.map +0 -1
  545. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.js +0 -301
  546. package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.js.map +0 -1
  547. package/out/src/storage/schema/entities/__tests/CertificateTests.test.d.ts +0 -2
  548. package/out/src/storage/schema/entities/__tests/CertificateTests.test.d.ts.map +0 -1
  549. package/out/src/storage/schema/entities/__tests/CertificateTests.test.js +0 -308
  550. package/out/src/storage/schema/entities/__tests/CertificateTests.test.js.map +0 -1
  551. package/out/src/storage/schema/entities/__tests/CommissionTests.test.d.ts +0 -2
  552. package/out/src/storage/schema/entities/__tests/CommissionTests.test.d.ts.map +0 -1
  553. package/out/src/storage/schema/entities/__tests/CommissionTests.test.js +0 -316
  554. package/out/src/storage/schema/entities/__tests/CommissionTests.test.js.map +0 -1
  555. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.d.ts +0 -2
  556. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.d.ts.map +0 -1
  557. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.js +0 -228
  558. package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.js.map +0 -1
  559. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.d.ts +0 -2
  560. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.d.ts.map +0 -1
  561. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.js +0 -191
  562. package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.js.map +0 -1
  563. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.d.ts +0 -2
  564. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.d.ts.map +0 -1
  565. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.js +0 -226
  566. package/out/src/storage/schema/entities/__tests/OutputTagTests.test.js.map +0 -1
  567. package/out/src/storage/schema/entities/__tests/OutputTests.test.d.ts +0 -2
  568. package/out/src/storage/schema/entities/__tests/OutputTests.test.d.ts.map +0 -1
  569. package/out/src/storage/schema/entities/__tests/OutputTests.test.js +0 -413
  570. package/out/src/storage/schema/entities/__tests/OutputTests.test.js.map +0 -1
  571. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.d.ts +0 -2
  572. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.d.ts.map +0 -1
  573. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.js +0 -331
  574. package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.js.map +0 -1
  575. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.d.ts +0 -2
  576. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.d.ts.map +0 -1
  577. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js +0 -474
  578. package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js.map +0 -1
  579. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.d.ts +0 -2
  580. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.d.ts.map +0 -1
  581. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js +0 -234
  582. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js.map +0 -1
  583. package/out/src/storage/schema/entities/__tests/TransactionTests.test.d.ts +0 -2
  584. package/out/src/storage/schema/entities/__tests/TransactionTests.test.d.ts.map +0 -1
  585. package/out/src/storage/schema/entities/__tests/TransactionTests.test.js +0 -539
  586. package/out/src/storage/schema/entities/__tests/TransactionTests.test.js.map +0 -1
  587. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.d.ts +0 -2
  588. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.d.ts.map +0 -1
  589. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.js +0 -304
  590. package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.js.map +0 -1
  591. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.d.ts +0 -2
  592. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.d.ts.map +0 -1
  593. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.js +0 -170
  594. package/out/src/storage/schema/entities/__tests/TxLabelTests.test.js.map +0 -1
  595. package/out/src/storage/schema/entities/__tests/stampLogTests.test.d.ts +0 -2
  596. package/out/src/storage/schema/entities/__tests/stampLogTests.test.d.ts.map +0 -1
  597. package/out/src/storage/schema/entities/__tests/stampLogTests.test.js +0 -81
  598. package/out/src/storage/schema/entities/__tests/stampLogTests.test.js.map +0 -1
  599. package/out/src/storage/schema/entities/__tests/usersTests.test.d.ts +0 -2
  600. package/out/src/storage/schema/entities/__tests/usersTests.test.d.ts.map +0 -1
  601. package/out/src/storage/schema/entities/__tests/usersTests.test.js +0 -277
  602. package/out/src/storage/schema/entities/__tests/usersTests.test.js.map +0 -1
  603. package/out/src/utility/__tests/utilityHelpers.noBuffer.test.d.ts +0 -2
  604. package/out/src/utility/__tests/utilityHelpers.noBuffer.test.d.ts.map +0 -1
  605. package/out/src/utility/__tests/utilityHelpers.noBuffer.test.js +0 -107
  606. package/out/src/utility/__tests/utilityHelpers.noBuffer.test.js.map +0 -1
  607. package/out/src/wab-client/__tests/WABClient.man.test.d.ts +0 -2
  608. package/out/src/wab-client/__tests/WABClient.man.test.d.ts.map +0 -1
  609. package/out/src/wab-client/__tests/WABClient.man.test.js +0 -52
  610. package/out/src/wab-client/__tests/WABClient.man.test.js.map +0 -1
@@ -1,642 +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
- jest.mock('@bsv/sdk', () => WalletPermissionsManager_fixtures_1.MockedBSV_SDK);
6
- describe('WalletPermissionsManager - Permission Checks', () => {
7
- let underlying;
8
- let manager;
9
- beforeEach(() => {
10
- // Fresh mock wallet before each test
11
- underlying = (0, WalletPermissionsManager_fixtures_1.mockUnderlyingWallet)();
12
- });
13
- afterEach(() => {
14
- jest.clearAllMocks();
15
- });
16
- /* ------------------------------------------------------
17
- * 5) PROTOCOL USAGE (DPACP) TESTS
18
- * ------------------------------------------------------ */
19
- describe('Protocol Usage (DPACP)', () => {
20
- it('should skip permission prompt if secLevel=0 (open usage)', async () => {
21
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
22
- seekProtocolPermissionsForSigning: true // Typically enforced
23
- });
24
- // Attempt createSignature with protocolID=[0, "someProtocol"]
25
- // Because securityLevel=0, the manager should skip checks
26
- await expect(manager.createSignature({
27
- protocolID: [0, 'open-protocol'],
28
- data: [0x01, 0x02],
29
- keyID: '1'
30
- }, 'some-user.com')).resolves.not.toThrow();
31
- // No permission request
32
- const activeRequests = manager.activeRequests;
33
- expect(activeRequests.size).toBe(0);
34
- // Underlying createSignature called once
35
- expect(underlying.createSignature).toHaveBeenCalledTimes(1);
36
- });
37
- it('should prompt for protocol usage if securityLevel=1 and no existing token', async () => {
38
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
39
- seekProtocolPermissionsForSigning: true
40
- });
41
- // We'll bind a callback that grants ephemeral permission automatically
42
- manager.bindCallback('onProtocolPermissionRequested', async (request) => {
43
- // For tests, automatically grant ephemeral permission
44
- await manager.grantPermission({
45
- requestID: request.requestID,
46
- ephemeral: true
47
- });
48
- });
49
- // Because secLevel=1, we need a valid DPACP token
50
- // We have no token => manager triggers a request => callback grants ephemeral => passes
51
- await expect(manager.createSignature({
52
- protocolID: [1, 'test-protocol'],
53
- data: [0x99, 0xaa],
54
- keyID: '1'
55
- }, 'some-nonadmin.com')).resolves.not.toThrow();
56
- // The underlying signature should succeed
57
- expect(underlying.createSignature).toHaveBeenCalledTimes(1);
58
- });
59
- it('should deny protocol usage if user denies permission', async () => {
60
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {});
61
- // The callback denies the request
62
- manager.bindCallback('onProtocolPermissionRequested', request => {
63
- void manager.denyPermission(request.requestID);
64
- });
65
- // Attempt an operation that requires protocol permission
66
- await expect(manager.encrypt({
67
- protocolID: [1, 'needs-perm'],
68
- plaintext: [1, 2, 3],
69
- keyID: 'xyz'
70
- }, 'external-app.com')).rejects.toThrow(/Permission denied/);
71
- // Underlying encrypt was never called
72
- expect(underlying.encrypt).toHaveBeenCalledTimes(0);
73
- });
74
- it('should enforce privileged token if differentiatePrivilegedOperations=true', async () => {
75
- // By default, differentiatePrivilegedOperations is true.
76
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
77
- seekProtocolPermissionsForSigning: true
78
- });
79
- manager.bindCallback('onProtocolPermissionRequested', async (req) => {
80
- // The request has `privileged=true`, so the resulting token must also be privileged.
81
- // We'll grant ephemeral to simulate success quickly.
82
- await manager.grantPermission({
83
- requestID: req.requestID,
84
- ephemeral: true
85
- });
86
- });
87
- // Attempt a privileged signature
88
- await expect(manager.createSignature({
89
- protocolID: [1, 'high-level-crypto'],
90
- privileged: true,
91
- data: [0xc0, 0xff, 0xee],
92
- keyID: '1'
93
- }, 'nonadmin.app')).resolves.not.toThrow();
94
- // Confirm underlying was ultimately called
95
- expect(underlying.createSignature).toHaveBeenCalledTimes(1);
96
- });
97
- it('should ignore `privileged=true` if differentiatePrivilegedOperations=false', async () => {
98
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
99
- differentiatePrivilegedOperations: false, // Forces privileged usage to be treated as non-privileged
100
- seekProtocolPermissionsForSigning: true
101
- });
102
- // Because we treat privileged as false, the permission request does not need privileged credentials.
103
- manager.bindCallback('onProtocolPermissionRequested', async (req) => {
104
- await manager.grantPermission({
105
- requestID: req.requestID,
106
- ephemeral: true
107
- });
108
- });
109
- await expect(manager.createSignature({
110
- protocolID: [1, 'some-protocol'],
111
- privileged: true, // This flag will be ignored
112
- data: [0x99],
113
- keyID: 'keyXYZ'
114
- }, 'nonadmin.com')).resolves.not.toThrow();
115
- });
116
- it('should fail if protocol name is admin-reserved and caller is not admin', async () => {
117
- // admin-reserved means protocol name starts with "admin" or "p ".
118
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'secure.admin.com');
119
- // Non-admin tries to do e.g. `createHmac` with protocol name "admin super-secret"
120
- await expect(manager.createHmac({
121
- protocolID: [1, 'admin super-secret'],
122
- data: [0x01, 0x02],
123
- keyID: '1'
124
- }, 'not-an-admin.com')).rejects.toThrow(/admin-only/i);
125
- // Underlying call never invoked
126
- expect(underlying.createHmac).toHaveBeenCalledTimes(0);
127
- });
128
- it('should prompt for renewal if token is found but expired', async () => {
129
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {});
130
- // Suppose the user already had a token but it’s expired. We mock `findProtocolToken` so that
131
- // it returns an expired token, forcing a renewal request.
132
- const expiredToken = {
133
- tx: [],
134
- txid: 'oldtxid123',
135
- outputIndex: 0,
136
- outputScript: 'deadbeef',
137
- satoshis: 1,
138
- originator: 'some-nonadmin.com',
139
- expiry: 1, // definitely in the past
140
- privileged: false,
141
- securityLevel: 1,
142
- protocol: 'test-protocol',
143
- counterparty: 'self'
144
- };
145
- jest.spyOn(manager, 'findProtocolToken').mockResolvedValue(expiredToken);
146
- // We'll bind a callback that grants a renewal ephemeral
147
- manager.bindCallback('onProtocolPermissionRequested', async (req) => {
148
- expect(req.renewal).toBe(true);
149
- expect(req.previousToken).toEqual(expiredToken);
150
- await manager.grantPermission({
151
- requestID: req.requestID,
152
- ephemeral: true
153
- });
154
- });
155
- // Now call an operation that requires protocol usage
156
- await manager.createSignature({
157
- protocolID: [1, 'test-protocol'],
158
- data: [0xfe],
159
- keyID: '1'
160
- }, 'some-nonadmin.com');
161
- // Should succeed after renewal
162
- expect(underlying.createSignature).toHaveBeenCalledTimes(1);
163
- });
164
- });
165
- /* ------------------------------------------------------
166
- * 6) BASKET USAGE (DBAP) TESTS
167
- * ------------------------------------------------------ */
168
- describe('Basket Usage (DBAP)', () => {
169
- it('should fail immediately if using an admin-only basket as non-admin', async () => {
170
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com');
171
- // Attempt to createAction to insert into "admin secret-basket" from a non-admin origin
172
- await expect(manager.createAction({
173
- description: 'Insert into admin basket',
174
- outputs: [
175
- {
176
- lockingScript: 'abcd',
177
- satoshis: 100,
178
- basket: 'admin secret-basket',
179
- outputDescription: 'Nothing to see here'
180
- }
181
- ]
182
- }, 'non-admin.com')).rejects.toThrow(/admin-only/i);
183
- // Underlying createAction never called
184
- expect(underlying.createAction).toHaveBeenCalledTimes(0);
185
- });
186
- it('should fail immediately if using the reserved basket "default" as non-admin', async () => {
187
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com');
188
- await expect(manager.createAction({
189
- description: 'Insert to default basket',
190
- outputs: [
191
- {
192
- lockingScript: '0x1234',
193
- satoshis: 1,
194
- basket: 'default',
195
- outputDescription: 'Nothing to see here'
196
- }
197
- ]
198
- }, 'some-nonadmin.com')).rejects.toThrow(/admin-only/i);
199
- });
200
- it('should prompt for insertion permission if seekBasketInsertionPermissions=true', async () => {
201
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
202
- seekBasketInsertionPermissions: true
203
- });
204
- // auto-grant ephemeral
205
- manager.bindCallback('onBasketAccessRequested', async (req) => {
206
- await manager.grantPermission({
207
- requestID: req.requestID,
208
- ephemeral: true
209
- });
210
- });
211
- // Also auto-grant unrelated spending authorization (since this is createAction)
212
- manager.bindCallback('onSpendingAuthorizationRequested', async (req) => {
213
- await manager.grantPermission({
214
- requestID: req.requestID,
215
- ephemeral: true
216
- });
217
- });
218
- await expect(manager.createAction({
219
- description: 'Insert to user-basket',
220
- outputs: [
221
- {
222
- lockingScript: '7812',
223
- satoshis: 1,
224
- basket: 'user-basket',
225
- outputDescription: 'Nothing to see here'
226
- }
227
- ]
228
- }, 'some-nonadmin.com')).resolves.not.toThrow();
229
- // Confirm underlying createAction was eventually invoked
230
- expect(underlying.createAction).toHaveBeenCalledTimes(1);
231
- });
232
- it('should skip insertion permission if seekBasketInsertionPermissions=false', async () => {
233
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
234
- seekBasketInsertionPermissions: false
235
- });
236
- // Auto-grant unrelated spending authorization (since this is createAction)
237
- manager.bindCallback('onSpendingAuthorizationRequested', async (req) => {
238
- await manager.grantPermission({
239
- requestID: req.requestID,
240
- ephemeral: true
241
- });
242
- });
243
- await manager.createAction({
244
- description: 'Insert to user-basket',
245
- outputs: [
246
- {
247
- lockingScript: '1234',
248
- satoshis: 1,
249
- basket: 'some-basket',
250
- outputDescription: 'Nothing to see here'
251
- }
252
- ]
253
- }, 'nonadmin.com');
254
- // No requests queued, underlying is called
255
- const activeRequests = manager.activeRequests;
256
- expect(activeRequests.size).toBe(0);
257
- expect(underlying.createAction).toHaveBeenCalledTimes(1);
258
- });
259
- it('should require listing permission if seekBasketListingPermissions=true and no token', async () => {
260
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
261
- seekBasketListingPermissions: true
262
- });
263
- manager.bindCallback('onBasketAccessRequested', async (req) => {
264
- // Deny for test
265
- void manager.denyPermission(req.requestID);
266
- });
267
- // Attempt to list a user basket
268
- await expect(manager.listOutputs({ basket: 'user-basket' }, 'some-user.com')).rejects.toThrow(/Permission denied/);
269
- // There is one underlying call: internally, we called listOutputs to check if we had permission
270
- // (we did not, we sought it, and the user denied). So we see this call here, but we DO NOT see
271
- // the actual proxied call (for listing outputs in user-basket), since it was denied.
272
- expect(underlying.listOutputs).toHaveBeenCalledTimes(1);
273
- expect(underlying.listOutputs).toHaveBeenLastCalledWith({
274
- basket: 'admin basket-access',
275
- include: 'entire transactions',
276
- tagQueryMode: 'all',
277
- tags: ['originator some-user.com', 'basket user-basket']
278
- }, 'admin.com');
279
- });
280
- it('should prompt for removal permission if seekBasketRemovalPermissions=true', async () => {
281
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
282
- seekBasketRemovalPermissions: true
283
- });
284
- manager.bindCallback('onBasketAccessRequested', async (req) => {
285
- // auto-grant ephemeral
286
- await manager.grantPermission({
287
- requestID: req.requestID,
288
- ephemeral: true
289
- });
290
- });
291
- await expect(manager.relinquishOutput({
292
- output: 'someTxid.1',
293
- basket: 'user-basket'
294
- }, 'some-user.com')).resolves.not.toThrow();
295
- expect(underlying.relinquishOutput).toHaveBeenCalledTimes(1);
296
- });
297
- });
298
- /* ------------------------------------------------------
299
- * 7) CERTIFICATE USAGE (DCAP) TESTS
300
- * ------------------------------------------------------ */
301
- describe('Certificate Usage (DCAP)', () => {
302
- it('should skip certificate disclosure permission if config.seekCertificateDisclosurePermissions=false', async () => {
303
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
304
- seekCertificateDisclosurePermissions: false
305
- });
306
- // Directly call proveCertificate with no token => no prompt => immediate success
307
- await expect(manager.proveCertificate({
308
- certificate: {
309
- type: 'KYC',
310
- subject: '02abcdef...',
311
- serialNumber: '123',
312
- certifier: '02ccc...',
313
- fields: { name: 'Alice', dob: '2000-01-01' }
314
- },
315
- fieldsToReveal: ['name'],
316
- verifier: '02xyz...',
317
- privileged: false
318
- }, 'nonadmin.com')).resolves.not.toThrow();
319
- expect(underlying.proveCertificate).toHaveBeenCalledTimes(1);
320
- });
321
- it('should require permission if seekCertificateDisclosurePermissions=true, no valid token', async () => {
322
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
323
- seekCertificateDisclosurePermissions: true
324
- });
325
- // Auto-grant ephemeral for test
326
- manager.bindCallback('onCertificateAccessRequested', async (req) => {
327
- await manager.grantPermission({
328
- requestID: req.requestID,
329
- ephemeral: true
330
- });
331
- });
332
- // Because we don't have a stored token, it triggers request -> ephemeral granted -> success
333
- await manager.proveCertificate({
334
- certificate: {
335
- type: 'KYC',
336
- subject: '02abc..',
337
- serialNumber: 'xyz',
338
- certifier: '02dddd...',
339
- fields: { name: 'Bob', nationality: 'Mars' }
340
- },
341
- fieldsToReveal: ['name'],
342
- verifier: '02xxxx..',
343
- privileged: false
344
- }, 'some-user.com');
345
- expect(underlying.proveCertificate).toHaveBeenCalledTimes(1);
346
- });
347
- it('should check that requested fields are a subset of the token’s fields', async () => {
348
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
349
- seekCertificateDisclosurePermissions: true
350
- });
351
- // Suppose we find an existing token that covers fields: ['name', 'dob', 'nationality']
352
- const existingToken = {
353
- tx: [],
354
- txid: 'aabbcc',
355
- outputIndex: 0,
356
- outputScript: 'scriptHex',
357
- satoshis: 1,
358
- originator: 'some-user.com',
359
- expiry: 9999999999, // not expired
360
- privileged: false,
361
- certType: 'KYC',
362
- certFields: ['name', 'dob', 'nationality'],
363
- verifier: '02eeee...'
364
- };
365
- jest
366
- .spyOn(manager, 'findCertificateToken')
367
- .mockImplementation(async (orig, priv, verif, ct, requestedFields) => {
368
- // if requestedFields includes "someMissingField", return undefined
369
- // else return the existingToken
370
- if (requestedFields.includes('someMissingField')) {
371
- return undefined; // forces a request
372
- }
373
- return existingToken; // forces immediate success
374
- });
375
- // Attempt to prove certificate revealing only 'name' -> Should pass without prompt
376
- await manager.proveCertificate({
377
- certificate: {
378
- type: 'KYC',
379
- certifier: '02eeee...',
380
- subject: '02some...',
381
- serialNumber: '',
382
- fields: { name: 'Charlie', dob: '1999-01-01', nationality: 'EU' }
383
- },
384
- fieldsToReveal: ['name'],
385
- verifier: '02eeee...',
386
- privileged: false
387
- }, 'some-user.com');
388
- expect(underlying.proveCertificate).toHaveBeenCalledTimes(1);
389
- // Attempt to reveal a field the token does NOT cover -> triggers request
390
- // Since the existing token does not cover 'someMissingField', we expect a prompt. Let’s deny it:
391
- manager.bindCallback('onCertificateAccessRequested', async (req) => {
392
- void manager.denyPermission(req.requestID);
393
- });
394
- const secondAttempt = manager.proveCertificate({
395
- certificate: {
396
- type: 'KYC',
397
- certifier: '02eeee...',
398
- fields: { name: 'Charlie', dob: '1999-01-01', nationality: 'EU' }
399
- },
400
- fieldsToReveal: ['dob', 'someMissingField'],
401
- verifier: '02eeee...',
402
- privileged: false
403
- }, 'some-user.com');
404
- await expect(secondAttempt).rejects.toThrow(/Permission denied/);
405
- // Underlying proveCertificate not called for second attempt
406
- expect(underlying.proveCertificate).toHaveBeenCalledTimes(1);
407
- });
408
- it('should prompt for renewal if token is expired', async () => {
409
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
410
- seekCertificateDisclosurePermissions: true
411
- });
412
- // Mock an expired token
413
- const expiredCertToken = {
414
- tx: [],
415
- txid: 'old-expired',
416
- outputIndex: 0,
417
- outputScript: 'deadbeef',
418
- satoshis: 1,
419
- originator: 'app.com',
420
- expiry: 1,
421
- privileged: false,
422
- certType: 'KYC',
423
- certFields: ['name', 'dob'],
424
- verifier: '02verifier'
425
- };
426
- jest.spyOn(manager, 'findCertificateToken').mockResolvedValue(expiredCertToken);
427
- // Callback that grants renewal ephemeral
428
- manager.bindCallback('onCertificateAccessRequested', async (req) => {
429
- expect(req.renewal).toBe(true);
430
- await manager.grantPermission({
431
- requestID: req.requestID,
432
- ephemeral: true
433
- });
434
- });
435
- await manager.proveCertificate({
436
- certificate: {
437
- type: 'KYC',
438
- fields: { name: 'Bob', dob: '1970' },
439
- certifier: '02verifier'
440
- },
441
- fieldsToReveal: ['name'],
442
- verifier: '02verifier',
443
- privileged: false
444
- }, 'app.com');
445
- // Succeeds after ephemeral renewal
446
- expect(underlying.proveCertificate).toHaveBeenCalledTimes(1);
447
- });
448
- });
449
- /* ------------------------------------------------------
450
- * 8) SPENDING AUTHORIZATION (DSAP) TESTS
451
- * ------------------------------------------------------ */
452
- describe('Spending Authorization (DSAP)', () => {
453
- it('should skip if seekSpendingPermissions=false', async () => {
454
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
455
- seekSpendingPermissions: false
456
- });
457
- // createAction that tries to net spend 200 sats
458
- const result = await manager.createAction({
459
- description: 'Some spend transaction',
460
- outputs: [
461
- {
462
- lockingScript: '1321',
463
- satoshis: 200,
464
- outputDescription: 'Nothing to see here'
465
- }
466
- ]
467
- }, 'user.com');
468
- // No prompt triggered
469
- const activeRequests = manager.activeRequests;
470
- expect(activeRequests.size).toBe(0);
471
- // Underlying createAction definitely called
472
- expect(underlying.createAction).toHaveBeenCalledTimes(1);
473
- // If seekSpendingPermissions=false, the result should NOT? contain the signableTransaction
474
- expect(result.signableTransaction).not.toBeDefined();
475
- });
476
- it('should require spending token if netSpent > 0 and seekSpendingPermissions=true', async () => {
477
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
478
- seekSpendingPermissions: true
479
- });
480
- // We’ll also mock the signableTransaction return to help manager compute netSpent
481
- underlying.createAction.mockResolvedValueOnce({
482
- signableTransaction: {
483
- tx: [0x00], // minimal
484
- reference: 'ref1'
485
- }
486
- });
487
- // The manager tries to parse the transaction to find netSpent.
488
- // By default, netSpent = totalOutput + fee - totalExplicitInputs
489
- // We haven't provided any explicit inputs in the createAction call, so netSpent = 200 + fee
490
- // Auto-grant ephemeral for test
491
- manager.bindCallback('onSpendingAuthorizationRequested', async (req) => {
492
- await manager.grantPermission({
493
- requestID: req.requestID,
494
- ephemeral: true,
495
- amount: 1000
496
- });
497
- });
498
- await expect(manager.createAction({
499
- description: 'Spend 200 sats with no input from user',
500
- outputs: [
501
- {
502
- outputDescription: 'Nothing to see here',
503
- lockingScript: '1abc',
504
- satoshis: 200
505
- }
506
- ]
507
- }, 'some-user.com')).resolves.not.toThrow();
508
- // underlying createAction called
509
- expect(underlying.createAction).toHaveBeenCalledTimes(1);
510
- });
511
- it('should check monthly limit usage and prompt renewal if insufficient', async () => {
512
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com');
513
- // Suppose we find an existing DSAP token with authorizedAmount=500
514
- // manager.findSpendingToken() is used internally, so let's mock it
515
- const existingSpendingToken = {
516
- tx: [],
517
- txid: 'dsap-old',
518
- outputIndex: 0,
519
- outputScript: 'scriptHex',
520
- satoshis: 1,
521
- originator: 'shopper.com',
522
- authorizedAmount: 500,
523
- expiry: 0 // indefinite
524
- };
525
- jest.spyOn(manager, 'findSpendingToken').mockResolvedValue(existingSpendingToken);
526
- // Next, manager.querySpentSince(token) sums the user’s monthly spending from labeled actions
527
- // Let’s stub that to say they've already spent 400.
528
- jest.spyOn(manager, 'querySpentSince').mockResolvedValue(400);
529
- // Attempt spending 200 => total usage would be 600 which exceeds 500 => prompt renewal
530
- // We'll auto-deny for test
531
- manager.bindCallback('onSpendingAuthorizationRequested', req => {
532
- void manager.denyPermission(req.requestID);
533
- });
534
- await expect(manager.createAction({
535
- description: 'Buy something for 200 sats',
536
- outputs: [
537
- {
538
- outputDescription: 'Nothing to see here',
539
- lockingScript: 'op_return',
540
- satoshis: 200
541
- }
542
- ]
543
- }, 'shopper.com')).rejects.toThrow(/Permission denied/);
544
- // The underlying createAction call was started but the manager calls abortAction upon denial
545
- expect(underlying.abortAction).toHaveBeenCalledTimes(1);
546
- });
547
- it('should pass if usage plus new spend is within the monthly limit', async () => {
548
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {});
549
- // existing DSAP token with authorizedAmount=1000
550
- const dsapToken = {
551
- tx: [],
552
- txid: 'dsap123',
553
- outputIndex: 0,
554
- outputScript: '9218',
555
- satoshis: 1,
556
- originator: 'shopper.com',
557
- authorizedAmount: 1000,
558
- expiry: 0
559
- };
560
- jest.spyOn(manager, 'findSpendingToken').mockResolvedValue(dsapToken);
561
- // Suppose they've spent 200 so far
562
- jest.spyOn(manager, 'querySpentSince').mockResolvedValue(200);
563
- // Attempt new spending of 500 => total=700 which is <= 1000 => no prompt
564
- await manager.createAction({
565
- description: 'Spend 500 sats',
566
- outputs: [
567
- {
568
- outputDescription: 'Nothing to see here',
569
- lockingScript: '0abc',
570
- satoshis: 500
571
- }
572
- ]
573
- }, 'shopper.com');
574
- // Success, no new permission requested
575
- const activeRequests = manager.activeRequests;
576
- expect(activeRequests.size).toBe(0);
577
- expect(underlying.createAction).toHaveBeenCalledTimes(1);
578
- });
579
- });
580
- /* ------------------------------------------------------
581
- * 9) LABEL USAGE PERMISSION TESTS
582
- * ------------------------------------------------------ */
583
- describe('Label Usage Permission', () => {
584
- it('should fail if label starts with "admin" and caller is not admin', async () => {
585
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com');
586
- // Attempt to createAction with a label "admin secret-stuff"
587
- await expect(manager.createAction({
588
- description: 'Applying admin label?',
589
- labels: ['admin secret-stuff']
590
- }, 'nonadmin.com')).rejects.toThrow(/admin-only/);
591
- // Underlying createAction never called
592
- expect(underlying.createAction).toHaveBeenCalledTimes(0);
593
- });
594
- it('should skip label permission if seekPermissionWhenApplyingActionLabels=false', async () => {
595
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
596
- seekPermissionWhenApplyingActionLabels: false
597
- });
598
- // Non-admin applies label "my-app-label"
599
- await expect(manager.createAction({ description: 'Add label', labels: ['my-app-label'] }, 'some-app.com')).resolves.not.toThrow();
600
- // No prompt
601
- const activeRequests = manager.activeRequests;
602
- expect(activeRequests.size).toBe(0);
603
- // Called underlying
604
- expect(underlying.createAction).toHaveBeenCalledTimes(1);
605
- });
606
- it('should prompt for label usage if seekPermissionWhenApplyingActionLabels=true', async () => {
607
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
608
- seekPermissionWhenApplyingActionLabels: true
609
- });
610
- manager.bindCallback('onProtocolPermissionRequested', async (req) => {
611
- // This request will have protocolID=[1, "action label <label>"], etc.
612
- await manager.grantPermission({
613
- requestID: req.requestID,
614
- ephemeral: true
615
- });
616
- });
617
- await manager.createAction({
618
- description: 'Add label "user-label-123"',
619
- labels: ['user-label-123']
620
- }, 'nonadmin.com');
621
- // Underlying is called
622
- expect(underlying.createAction).toHaveBeenCalledTimes(1);
623
- });
624
- it('should also prompt for listing actions by label if seekPermissionWhenListingActionsByLabel=true', async () => {
625
- manager = new WalletPermissionsManager_1.WalletPermissionsManager(underlying, 'admin.com', {
626
- seekPermissionWhenListingActionsByLabel: true
627
- });
628
- manager.bindCallback('onProtocolPermissionRequested', async (req) => {
629
- // auto-grant ephemeral
630
- await manager.grantPermission({
631
- requestID: req.requestID,
632
- ephemeral: true
633
- });
634
- });
635
- await expect(manager.listActions({
636
- labels: ['search-this-label']
637
- }, 'external-app.com')).resolves.not.toThrow();
638
- expect(underlying.listActions).toHaveBeenCalledTimes(1);
639
- });
640
- });
641
- });
642
- //# sourceMappingURL=WalletPermissionsManager.checks.test.js.map