@bsv/wallet-toolbox-client 1.1.0

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 (390) hide show
  1. package/out/src/Wallet.d.ts +83 -0
  2. package/out/src/Wallet.d.ts.map +1 -0
  3. package/out/src/Wallet.js +415 -0
  4. package/out/src/Wallet.js.map +1 -0
  5. package/out/src/index.client.d.ts +8 -0
  6. package/out/src/index.client.d.ts.map +1 -0
  7. package/out/src/index.client.js +47 -0
  8. package/out/src/index.client.js.map +1 -0
  9. package/out/src/monitor/Monitor.d.ts +89 -0
  10. package/out/src/monitor/Monitor.d.ts.map +1 -0
  11. package/out/src/monitor/Monitor.js +253 -0
  12. package/out/src/monitor/Monitor.js.map +1 -0
  13. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +53 -0
  14. package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -0
  15. package/out/src/monitor/tasks/TaskCheckForProofs.js +197 -0
  16. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -0
  17. package/out/src/monitor/tasks/TaskClock.d.ts +14 -0
  18. package/out/src/monitor/tasks/TaskClock.d.ts.map +1 -0
  19. package/out/src/monitor/tasks/TaskClock.js +27 -0
  20. package/out/src/monitor/tasks/TaskClock.js.map +1 -0
  21. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts +20 -0
  22. package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -0
  23. package/out/src/monitor/tasks/TaskFailAbandoned.js +52 -0
  24. package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -0
  25. package/out/src/monitor/tasks/TaskNewHeader.d.ts +15 -0
  26. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -0
  27. package/out/src/monitor/tasks/TaskNewHeader.js +45 -0
  28. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -0
  29. package/out/src/monitor/tasks/TaskPurge.d.ts +45 -0
  30. package/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -0
  31. package/out/src/monitor/tasks/TaskPurge.js +35 -0
  32. package/out/src/monitor/tasks/TaskPurge.js.map +1 -0
  33. package/out/src/monitor/tasks/TaskReviewStatus.d.ts +26 -0
  34. package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -0
  35. package/out/src/monitor/tasks/TaskReviewStatus.js +44 -0
  36. package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -0
  37. package/out/src/monitor/tasks/TaskSendWaiting.d.ts +32 -0
  38. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -0
  39. package/out/src/monitor/tasks/TaskSendWaiting.js +99 -0
  40. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -0
  41. package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts +12 -0
  42. package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts.map +1 -0
  43. package/out/src/monitor/tasks/TaskSyncWhenIdle.js +22 -0
  44. package/out/src/monitor/tasks/TaskSyncWhenIdle.js.map +1 -0
  45. package/out/src/monitor/tasks/WalletMonitorTask.d.ts +40 -0
  46. package/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +1 -0
  47. package/out/src/monitor/tasks/WalletMonitorTask.js +37 -0
  48. package/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -0
  49. package/out/src/sdk/CertOps.d.ts +66 -0
  50. package/out/src/sdk/CertOps.d.ts.map +1 -0
  51. package/out/src/sdk/CertOps.js +198 -0
  52. package/out/src/sdk/CertOps.js.map +1 -0
  53. package/out/src/sdk/PrivilegedKeyManager.d.ts +125 -0
  54. package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -0
  55. package/out/src/sdk/PrivilegedKeyManager.js +293 -0
  56. package/out/src/sdk/PrivilegedKeyManager.js.map +1 -0
  57. package/out/src/sdk/StorageSyncReader.d.ts +121 -0
  58. package/out/src/sdk/StorageSyncReader.d.ts.map +1 -0
  59. package/out/src/sdk/StorageSyncReader.js +3 -0
  60. package/out/src/sdk/StorageSyncReader.js.map +1 -0
  61. package/out/src/sdk/StorageSyncReaderWriter.d.ts +89 -0
  62. package/out/src/sdk/StorageSyncReaderWriter.d.ts.map +1 -0
  63. package/out/src/sdk/StorageSyncReaderWriter.js +3 -0
  64. package/out/src/sdk/StorageSyncReaderWriter.js.map +1 -0
  65. package/out/src/sdk/WERR_errors.d.ts +90 -0
  66. package/out/src/sdk/WERR_errors.d.ts.map +1 -0
  67. package/out/src/sdk/WERR_errors.js +128 -0
  68. package/out/src/sdk/WERR_errors.js.map +1 -0
  69. package/out/src/sdk/WalletError.d.ts +45 -0
  70. package/out/src/sdk/WalletError.d.ts.map +1 -0
  71. package/out/src/sdk/WalletError.js +122 -0
  72. package/out/src/sdk/WalletError.js.map +1 -0
  73. package/out/src/sdk/WalletServices.interfaces.d.ts +325 -0
  74. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -0
  75. package/out/src/sdk/WalletServices.interfaces.js +3 -0
  76. package/out/src/sdk/WalletServices.interfaces.js.map +1 -0
  77. package/out/src/sdk/WalletSigner.interfaces.d.ts +10 -0
  78. package/out/src/sdk/WalletSigner.interfaces.d.ts.map +1 -0
  79. package/out/src/sdk/WalletSigner.interfaces.js +3 -0
  80. package/out/src/sdk/WalletSigner.interfaces.js.map +1 -0
  81. package/out/src/sdk/WalletStorage.interfaces.d.ts +299 -0
  82. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -0
  83. package/out/src/sdk/WalletStorage.interfaces.js +3 -0
  84. package/out/src/sdk/WalletStorage.interfaces.js.map +1 -0
  85. package/out/src/sdk/index.d.ts +12 -0
  86. package/out/src/sdk/index.d.ts.map +1 -0
  87. package/out/src/sdk/index.js +28 -0
  88. package/out/src/sdk/index.js.map +1 -0
  89. package/out/src/sdk/types.d.ts +74 -0
  90. package/out/src/sdk/types.d.ts.map +1 -0
  91. package/out/src/sdk/types.js +20 -0
  92. package/out/src/sdk/types.js.map +1 -0
  93. package/out/src/sdk/validationHelpers.d.ts +288 -0
  94. package/out/src/sdk/validationHelpers.d.ts.map +1 -0
  95. package/out/src/sdk/validationHelpers.js +630 -0
  96. package/out/src/sdk/validationHelpers.js.map +1 -0
  97. package/out/src/services/ServiceCollection.d.ts +25 -0
  98. package/out/src/services/ServiceCollection.d.ts.map +1 -0
  99. package/out/src/services/ServiceCollection.js +43 -0
  100. package/out/src/services/ServiceCollection.js.map +1 -0
  101. package/out/src/services/Services.d.ts +60 -0
  102. package/out/src/services/Services.d.ts.map +1 -0
  103. package/out/src/services/Services.js +342 -0
  104. package/out/src/services/Services.js.map +1 -0
  105. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +15 -0
  106. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -0
  107. package/out/src/services/chaintracker/ChaintracksChainTracker.js +51 -0
  108. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -0
  109. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts +98 -0
  110. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +1 -0
  111. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js +38 -0
  112. package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +1 -0
  113. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +36 -0
  114. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -0
  115. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +130 -0
  116. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -0
  117. package/out/src/services/chaintracker/chaintracks/index.d.ts +3 -0
  118. package/out/src/services/chaintracker/chaintracks/index.d.ts.map +1 -0
  119. package/out/src/services/chaintracker/chaintracks/index.js +19 -0
  120. package/out/src/services/chaintracker/chaintracks/index.js.map +1 -0
  121. package/out/src/services/chaintracker/index.d.ts +3 -0
  122. package/out/src/services/chaintracker/index.d.ts.map +1 -0
  123. package/out/src/services/chaintracker/index.js +19 -0
  124. package/out/src/services/chaintracker/index.js.map +1 -0
  125. package/out/src/services/createDefaultWalletServicesOptions.d.ts +3 -0
  126. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -0
  127. package/out/src/services/createDefaultWalletServicesOptions.js +34 -0
  128. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -0
  129. package/out/src/services/providers/arcServices.d.ts +62 -0
  130. package/out/src/services/providers/arcServices.d.ts.map +1 -0
  131. package/out/src/services/providers/arcServices.js +368 -0
  132. package/out/src/services/providers/arcServices.js.map +1 -0
  133. package/out/src/services/providers/echangeRates.d.ts +12 -0
  134. package/out/src/services/providers/echangeRates.d.ts.map +1 -0
  135. package/out/src/services/providers/echangeRates.js +237 -0
  136. package/out/src/services/providers/echangeRates.js.map +1 -0
  137. package/out/src/services/providers/whatsonchain.d.ts +17 -0
  138. package/out/src/services/providers/whatsonchain.d.ts.map +1 -0
  139. package/out/src/services/providers/whatsonchain.js +130 -0
  140. package/out/src/services/providers/whatsonchain.js.map +1 -0
  141. package/out/src/signer/WalletSigner.d.ts +11 -0
  142. package/out/src/signer/WalletSigner.d.ts.map +1 -0
  143. package/out/src/signer/WalletSigner.js +13 -0
  144. package/out/src/signer/WalletSigner.js.map +1 -0
  145. package/out/src/signer/methods/acquireDirectCertificate.d.ts +4 -0
  146. package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -0
  147. package/out/src/signer/methods/acquireDirectCertificate.js +47 -0
  148. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -0
  149. package/out/src/signer/methods/createAction.d.ts +7 -0
  150. package/out/src/signer/methods/createAction.d.ts.map +1 -0
  151. package/out/src/signer/methods/createAction.js +250 -0
  152. package/out/src/signer/methods/createAction.js.map +1 -0
  153. package/out/src/signer/methods/internalizeAction.d.ts +31 -0
  154. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -0
  155. package/out/src/signer/methods/internalizeAction.js +95 -0
  156. package/out/src/signer/methods/internalizeAction.js.map +1 -0
  157. package/out/src/signer/methods/proveCertificate.d.ts +4 -0
  158. package/out/src/signer/methods/proveCertificate.d.ts.map +1 -0
  159. package/out/src/signer/methods/proveCertificate.js +45 -0
  160. package/out/src/signer/methods/proveCertificate.js.map +1 -0
  161. package/out/src/signer/methods/signAction.d.ts +6 -0
  162. package/out/src/signer/methods/signAction.d.ts.map +1 -0
  163. package/out/src/signer/methods/signAction.js +79 -0
  164. package/out/src/signer/methods/signAction.js.map +1 -0
  165. package/out/src/storage/StorageProvider.d.ts +140 -0
  166. package/out/src/storage/StorageProvider.d.ts.map +1 -0
  167. package/out/src/storage/StorageProvider.js +539 -0
  168. package/out/src/storage/StorageProvider.js.map +1 -0
  169. package/out/src/storage/StorageReader.d.ts +76 -0
  170. package/out/src/storage/StorageReader.d.ts.map +1 -0
  171. package/out/src/storage/StorageReader.js +124 -0
  172. package/out/src/storage/StorageReader.js.map +1 -0
  173. package/out/src/storage/StorageReaderWriter.d.ts +87 -0
  174. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -0
  175. package/out/src/storage/StorageReaderWriter.js +337 -0
  176. package/out/src/storage/StorageReaderWriter.js.map +1 -0
  177. package/out/src/storage/StorageSyncReader.d.ts +33 -0
  178. package/out/src/storage/StorageSyncReader.d.ts.map +1 -0
  179. package/out/src/storage/StorageSyncReader.js +142 -0
  180. package/out/src/storage/StorageSyncReader.js.map +1 -0
  181. package/out/src/storage/WalletStorageManager.d.ts +103 -0
  182. package/out/src/storage/WalletStorageManager.d.ts.map +1 -0
  183. package/out/src/storage/WalletStorageManager.js +408 -0
  184. package/out/src/storage/WalletStorageManager.js.map +1 -0
  185. package/out/src/storage/index.client.d.ts +7 -0
  186. package/out/src/storage/index.client.d.ts.map +1 -0
  187. package/out/src/storage/index.client.js +46 -0
  188. package/out/src/storage/index.client.js.map +1 -0
  189. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +27 -0
  190. package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -0
  191. package/out/src/storage/methods/attemptToPostReqsToNetwork.js +148 -0
  192. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -0
  193. package/out/src/storage/methods/createAction.d.ts +23 -0
  194. package/out/src/storage/methods/createAction.d.ts.map +1 -0
  195. package/out/src/storage/methods/createAction.js +663 -0
  196. package/out/src/storage/methods/createAction.js.map +1 -0
  197. package/out/src/storage/methods/generateChange.d.ts +108 -0
  198. package/out/src/storage/methods/generateChange.d.ts.map +1 -0
  199. package/out/src/storage/methods/generateChange.js +422 -0
  200. package/out/src/storage/methods/generateChange.js.map +1 -0
  201. package/out/src/storage/methods/getBeefForTransaction.d.ts +22 -0
  202. package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -0
  203. package/out/src/storage/methods/getBeefForTransaction.js +94 -0
  204. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -0
  205. package/out/src/storage/methods/getSyncChunk.d.ts +10 -0
  206. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -0
  207. package/out/src/storage/methods/getSyncChunk.js +271 -0
  208. package/out/src/storage/methods/getSyncChunk.js.map +1 -0
  209. package/out/src/storage/methods/internalizeAction.d.ts +38 -0
  210. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -0
  211. package/out/src/storage/methods/internalizeAction.js +378 -0
  212. package/out/src/storage/methods/internalizeAction.js.map +1 -0
  213. package/out/src/storage/methods/listCertificates.d.ts +5 -0
  214. package/out/src/storage/methods/listCertificates.d.ts.map +1 -0
  215. package/out/src/storage/methods/listCertificates.js +68 -0
  216. package/out/src/storage/methods/listCertificates.js.map +1 -0
  217. package/out/src/storage/methods/processAction.d.ts +35 -0
  218. package/out/src/storage/methods/processAction.d.ts.map +1 -0
  219. package/out/src/storage/methods/processAction.js +271 -0
  220. package/out/src/storage/methods/processAction.js.map +1 -0
  221. package/out/src/storage/remoting/StorageClient.d.ts +56 -0
  222. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -0
  223. package/out/src/storage/remoting/StorageClient.js +181 -0
  224. package/out/src/storage/remoting/StorageClient.js.map +1 -0
  225. package/out/src/storage/schema/entities/Certificate.d.ts +43 -0
  226. package/out/src/storage/schema/entities/Certificate.d.ts.map +1 -0
  227. package/out/src/storage/schema/entities/Certificate.js +162 -0
  228. package/out/src/storage/schema/entities/Certificate.js.map +1 -0
  229. package/out/src/storage/schema/entities/CertificateField.d.ts +32 -0
  230. package/out/src/storage/schema/entities/CertificateField.d.ts.map +1 -0
  231. package/out/src/storage/schema/entities/CertificateField.js +114 -0
  232. package/out/src/storage/schema/entities/CertificateField.js.map +1 -0
  233. package/out/src/storage/schema/entities/Commission.d.ts +37 -0
  234. package/out/src/storage/schema/entities/Commission.d.ts.map +1 -0
  235. package/out/src/storage/schema/entities/Commission.js +130 -0
  236. package/out/src/storage/schema/entities/Commission.js.map +1 -0
  237. package/out/src/storage/schema/entities/EntityBase.d.ts +105 -0
  238. package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -0
  239. package/out/src/storage/schema/entities/EntityBase.js +100 -0
  240. package/out/src/storage/schema/entities/EntityBase.js.map +1 -0
  241. package/out/src/storage/schema/entities/MergeEntity.d.ts +34 -0
  242. package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -0
  243. package/out/src/storage/schema/entities/MergeEntity.js +57 -0
  244. package/out/src/storage/schema/entities/MergeEntity.js.map +1 -0
  245. package/out/src/storage/schema/entities/Output.d.ts +67 -0
  246. package/out/src/storage/schema/entities/Output.d.ts.map +1 -0
  247. package/out/src/storage/schema/entities/Output.js +281 -0
  248. package/out/src/storage/schema/entities/Output.js.map +1 -0
  249. package/out/src/storage/schema/entities/OutputBasket.d.ts +35 -0
  250. package/out/src/storage/schema/entities/OutputBasket.d.ts.map +1 -0
  251. package/out/src/storage/schema/entities/OutputBasket.js +133 -0
  252. package/out/src/storage/schema/entities/OutputBasket.js.map +1 -0
  253. package/out/src/storage/schema/entities/OutputTag.d.ts +31 -0
  254. package/out/src/storage/schema/entities/OutputTag.d.ts.map +1 -0
  255. package/out/src/storage/schema/entities/OutputTag.js +104 -0
  256. package/out/src/storage/schema/entities/OutputTag.js.map +1 -0
  257. package/out/src/storage/schema/entities/OutputTagMap.d.ts +28 -0
  258. package/out/src/storage/schema/entities/OutputTagMap.d.ts.map +1 -0
  259. package/out/src/storage/schema/entities/OutputTagMap.js +101 -0
  260. package/out/src/storage/schema/entities/OutputTagMap.js.map +1 -0
  261. package/out/src/storage/schema/entities/ProvenTx.d.ts +84 -0
  262. package/out/src/storage/schema/entities/ProvenTx.d.ts.map +1 -0
  263. package/out/src/storage/schema/entities/ProvenTx.js +283 -0
  264. package/out/src/storage/schema/entities/ProvenTx.js.map +1 -0
  265. package/out/src/storage/schema/entities/ProvenTxReq.d.ts +130 -0
  266. package/out/src/storage/schema/entities/ProvenTxReq.d.ts.map +1 -0
  267. package/out/src/storage/schema/entities/ProvenTxReq.js +521 -0
  268. package/out/src/storage/schema/entities/ProvenTxReq.js.map +1 -0
  269. package/out/src/storage/schema/entities/SyncState.d.ts +66 -0
  270. package/out/src/storage/schema/entities/SyncState.d.ts.map +1 -0
  271. package/out/src/storage/schema/entities/SyncState.js +284 -0
  272. package/out/src/storage/schema/entities/SyncState.js.map +1 -0
  273. package/out/src/storage/schema/entities/Transaction.d.ts +67 -0
  274. package/out/src/storage/schema/entities/Transaction.d.ts.map +1 -0
  275. package/out/src/storage/schema/entities/Transaction.js +264 -0
  276. package/out/src/storage/schema/entities/Transaction.js.map +1 -0
  277. package/out/src/storage/schema/entities/TxLabel.d.ts +31 -0
  278. package/out/src/storage/schema/entities/TxLabel.d.ts.map +1 -0
  279. package/out/src/storage/schema/entities/TxLabel.js +104 -0
  280. package/out/src/storage/schema/entities/TxLabel.js.map +1 -0
  281. package/out/src/storage/schema/entities/TxLabelMap.d.ts +28 -0
  282. package/out/src/storage/schema/entities/TxLabelMap.d.ts.map +1 -0
  283. package/out/src/storage/schema/entities/TxLabelMap.js +103 -0
  284. package/out/src/storage/schema/entities/TxLabelMap.js.map +1 -0
  285. package/out/src/storage/schema/entities/User.d.ts +29 -0
  286. package/out/src/storage/schema/entities/User.d.ts.map +1 -0
  287. package/out/src/storage/schema/entities/User.js +100 -0
  288. package/out/src/storage/schema/entities/User.js.map +1 -0
  289. package/out/src/storage/schema/entities/index.d.ts +17 -0
  290. package/out/src/storage/schema/entities/index.d.ts.map +1 -0
  291. package/out/src/storage/schema/entities/index.js +33 -0
  292. package/out/src/storage/schema/entities/index.js.map +1 -0
  293. package/out/src/storage/schema/tables/Certificate.d.ts +20 -0
  294. package/out/src/storage/schema/tables/Certificate.d.ts.map +1 -0
  295. package/out/src/storage/schema/tables/Certificate.js +3 -0
  296. package/out/src/storage/schema/tables/Certificate.js.map +1 -0
  297. package/out/src/storage/schema/tables/CertificateField.d.ts +12 -0
  298. package/out/src/storage/schema/tables/CertificateField.d.ts.map +1 -0
  299. package/out/src/storage/schema/tables/CertificateField.js +3 -0
  300. package/out/src/storage/schema/tables/CertificateField.js.map +1 -0
  301. package/out/src/storage/schema/tables/Commission.d.ts +13 -0
  302. package/out/src/storage/schema/tables/Commission.d.ts.map +1 -0
  303. package/out/src/storage/schema/tables/Commission.js +3 -0
  304. package/out/src/storage/schema/tables/Commission.js.map +1 -0
  305. package/out/src/storage/schema/tables/MonitorEvent.d.ts +9 -0
  306. package/out/src/storage/schema/tables/MonitorEvent.d.ts.map +1 -0
  307. package/out/src/storage/schema/tables/MonitorEvent.js +3 -0
  308. package/out/src/storage/schema/tables/MonitorEvent.js.map +1 -0
  309. package/out/src/storage/schema/tables/Output.d.ts +36 -0
  310. package/out/src/storage/schema/tables/Output.d.ts.map +1 -0
  311. package/out/src/storage/schema/tables/Output.js +31 -0
  312. package/out/src/storage/schema/tables/Output.js.map +1 -0
  313. package/out/src/storage/schema/tables/OutputBasket.d.ts +12 -0
  314. package/out/src/storage/schema/tables/OutputBasket.d.ts.map +1 -0
  315. package/out/src/storage/schema/tables/OutputBasket.js +3 -0
  316. package/out/src/storage/schema/tables/OutputBasket.js.map +1 -0
  317. package/out/src/storage/schema/tables/OutputTag.d.ts +10 -0
  318. package/out/src/storage/schema/tables/OutputTag.d.ts.map +1 -0
  319. package/out/src/storage/schema/tables/OutputTag.js +3 -0
  320. package/out/src/storage/schema/tables/OutputTag.js.map +1 -0
  321. package/out/src/storage/schema/tables/OutputTagMap.d.ts +9 -0
  322. package/out/src/storage/schema/tables/OutputTagMap.d.ts.map +1 -0
  323. package/out/src/storage/schema/tables/OutputTagMap.js +3 -0
  324. package/out/src/storage/schema/tables/OutputTagMap.js.map +1 -0
  325. package/out/src/storage/schema/tables/ProvenTx.d.ts +14 -0
  326. package/out/src/storage/schema/tables/ProvenTx.d.ts.map +1 -0
  327. package/out/src/storage/schema/tables/ProvenTx.js +3 -0
  328. package/out/src/storage/schema/tables/ProvenTx.js.map +1 -0
  329. package/out/src/storage/schema/tables/ProvenTxReq.d.ts +64 -0
  330. package/out/src/storage/schema/tables/ProvenTxReq.d.ts.map +1 -0
  331. package/out/src/storage/schema/tables/ProvenTxReq.js +3 -0
  332. package/out/src/storage/schema/tables/ProvenTxReq.js.map +1 -0
  333. package/out/src/storage/schema/tables/Settings.d.ts +17 -0
  334. package/out/src/storage/schema/tables/Settings.d.ts.map +1 -0
  335. package/out/src/storage/schema/tables/Settings.js +3 -0
  336. package/out/src/storage/schema/tables/Settings.js.map +1 -0
  337. package/out/src/storage/schema/tables/SyncState.d.ts +18 -0
  338. package/out/src/storage/schema/tables/SyncState.d.ts.map +1 -0
  339. package/out/src/storage/schema/tables/SyncState.js +3 -0
  340. package/out/src/storage/schema/tables/SyncState.js.map +1 -0
  341. package/out/src/storage/schema/tables/Transaction.d.ts +37 -0
  342. package/out/src/storage/schema/tables/Transaction.d.ts.map +1 -0
  343. package/out/src/storage/schema/tables/Transaction.js +21 -0
  344. package/out/src/storage/schema/tables/Transaction.js.map +1 -0
  345. package/out/src/storage/schema/tables/TxLabel.d.ts +10 -0
  346. package/out/src/storage/schema/tables/TxLabel.d.ts.map +1 -0
  347. package/out/src/storage/schema/tables/TxLabel.js +3 -0
  348. package/out/src/storage/schema/tables/TxLabel.js.map +1 -0
  349. package/out/src/storage/schema/tables/TxLabelMap.d.ts +9 -0
  350. package/out/src/storage/schema/tables/TxLabelMap.d.ts.map +1 -0
  351. package/out/src/storage/schema/tables/TxLabelMap.js +3 -0
  352. package/out/src/storage/schema/tables/TxLabelMap.js.map +1 -0
  353. package/out/src/storage/schema/tables/User.d.ts +16 -0
  354. package/out/src/storage/schema/tables/User.d.ts.map +1 -0
  355. package/out/src/storage/schema/tables/User.js +3 -0
  356. package/out/src/storage/schema/tables/User.js.map +1 -0
  357. package/out/src/storage/schema/tables/index.d.ts +17 -0
  358. package/out/src/storage/schema/tables/index.d.ts.map +1 -0
  359. package/out/src/storage/schema/tables/index.js +33 -0
  360. package/out/src/storage/schema/tables/index.js.map +1 -0
  361. package/out/src/utility/ScriptTemplateSABPPP.d.ts +25 -0
  362. package/out/src/utility/ScriptTemplateSABPPP.d.ts.map +1 -0
  363. package/out/src/utility/ScriptTemplateSABPPP.js +46 -0
  364. package/out/src/utility/ScriptTemplateSABPPP.js.map +1 -0
  365. package/out/src/utility/index.client.d.ts +7 -0
  366. package/out/src/utility/index.client.d.ts.map +1 -0
  367. package/out/src/utility/index.client.js +23 -0
  368. package/out/src/utility/index.client.js.map +1 -0
  369. package/out/src/utility/parseTxScriptOffsets.d.ts +14 -0
  370. package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -0
  371. package/out/src/utility/parseTxScriptOffsets.js +26 -0
  372. package/out/src/utility/parseTxScriptOffsets.js.map +1 -0
  373. package/out/src/utility/stampLog.d.ts +18 -0
  374. package/out/src/utility/stampLog.d.ts.map +1 -0
  375. package/out/src/utility/stampLog.js +72 -0
  376. package/out/src/utility/stampLog.js.map +1 -0
  377. package/out/src/utility/tscProofToMerklePath.d.ts +8 -0
  378. package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -0
  379. package/out/src/utility/tscProofToMerklePath.js +41 -0
  380. package/out/src/utility/tscProofToMerklePath.js.map +1 -0
  381. package/out/src/utility/utilityHelpers.d.ts +129 -0
  382. package/out/src/utility/utilityHelpers.d.ts.map +1 -0
  383. package/out/src/utility/utilityHelpers.js +268 -0
  384. package/out/src/utility/utilityHelpers.js.map +1 -0
  385. package/out/src/utility/utilityHelpers.noBuffer.d.ts +9 -0
  386. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -0
  387. package/out/src/utility/utilityHelpers.noBuffer.js +23 -0
  388. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -0
  389. package/out/tsconfig.client.tsbuildinfo +1 -0
  390. package/package.json +27 -0
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StorageSyncReader = void 0;
4
+ const index_client_1 = require("../index.client");
5
+ /**
6
+ * The `StorageSyncReader` non-abstract class must be used when authentication checking access to the methods of a `StorageBaseReader` is required.
7
+ *
8
+ * Constructed from an `auth` object that must minimally include the authenticated user's identityKey,
9
+ * and the `StorageBaseReader` to be protected.
10
+ */
11
+ class StorageSyncReader {
12
+ constructor(auth, storage) {
13
+ this.auth = auth;
14
+ this.storage = storage;
15
+ }
16
+ isAvailable() {
17
+ return this.storage.isAvailable();
18
+ }
19
+ async makeAvailable() {
20
+ await this.storage.makeAvailable();
21
+ if (this.auth.userId === undefined) {
22
+ const user = await this.storage.findUserByIdentityKey(this.auth.identityKey);
23
+ if (!user)
24
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
25
+ this.auth.userId = user.userId;
26
+ }
27
+ return this.getSettings();
28
+ }
29
+ destroy() {
30
+ return this.storage.destroy();
31
+ }
32
+ getSettings() {
33
+ return this.storage.getSettings();
34
+ }
35
+ async getSyncChunk(args) {
36
+ if (!this.auth.userId)
37
+ await this.makeAvailable();
38
+ if (args.identityKey !== this.auth.identityKey)
39
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
40
+ return await this.storage.getSyncChunk(args);
41
+ }
42
+ async findUserByIdentityKey(key) {
43
+ if (!this.auth.userId)
44
+ await this.makeAvailable();
45
+ if (key !== this.auth.identityKey)
46
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
47
+ return await this.storage.findUserByIdentityKey(key);
48
+ }
49
+ async findSyncStates(args) {
50
+ if (!this.auth.userId)
51
+ await this.makeAvailable();
52
+ if (args.partial.userId !== this.auth.userId)
53
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
54
+ return await this.storage.findSyncStates(args);
55
+ }
56
+ async findCertificateFields(args) {
57
+ if (!this.auth.userId)
58
+ await this.makeAvailable();
59
+ if (args.partial.userId !== this.auth.userId)
60
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
61
+ return await this.storage.findCertificateFields(args);
62
+ }
63
+ async findCertificates(args) {
64
+ if (!this.auth.userId)
65
+ await this.makeAvailable();
66
+ if (args.partial.userId !== this.auth.userId)
67
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
68
+ return await this.storage.findCertificates(args);
69
+ }
70
+ async findCommissions(args) {
71
+ if (!this.auth.userId)
72
+ await this.makeAvailable();
73
+ if (args.partial.userId !== this.auth.userId)
74
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
75
+ return await this.storage.findCommissions(args);
76
+ }
77
+ async findOutputBaskets(args) {
78
+ if (!this.auth.userId)
79
+ await this.makeAvailable();
80
+ if (args.partial.userId !== this.auth.userId)
81
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
82
+ return await this.storage.findOutputBaskets(args);
83
+ }
84
+ async findOutputs(args) {
85
+ if (!this.auth.userId)
86
+ await this.makeAvailable();
87
+ if (args.partial.userId !== this.auth.userId)
88
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
89
+ return await this.storage.findOutputs(args);
90
+ }
91
+ async findOutputTags(args) {
92
+ if (!this.auth.userId)
93
+ await this.makeAvailable();
94
+ if (args.partial.userId !== this.auth.userId)
95
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
96
+ return await this.storage.findOutputTags(args);
97
+ }
98
+ async findTransactions(args) {
99
+ if (!this.auth.userId)
100
+ await this.makeAvailable();
101
+ if (args.partial.userId !== this.auth.userId)
102
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
103
+ return await this.storage.findTransactions(args);
104
+ }
105
+ async findTxLabels(args) {
106
+ if (!this.auth.userId)
107
+ await this.makeAvailable();
108
+ if (args.partial.userId !== this.auth.userId)
109
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
110
+ return await this.storage.findTxLabels(args);
111
+ }
112
+ async getProvenTxsForUser(args) {
113
+ if (!this.auth.userId)
114
+ await this.makeAvailable();
115
+ if (args.userId !== this.auth.userId)
116
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
117
+ return await this.storage.getProvenTxsForUser(args);
118
+ }
119
+ async getProvenTxReqsForUser(args) {
120
+ if (!this.auth.userId)
121
+ await this.makeAvailable();
122
+ if (args.userId !== this.auth.userId)
123
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
124
+ return await this.storage.getProvenTxReqsForUser(args);
125
+ }
126
+ async getTxLabelMapsForUser(args) {
127
+ if (!this.auth.userId)
128
+ await this.makeAvailable();
129
+ if (args.userId !== this.auth.userId)
130
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
131
+ return await this.storage.getTxLabelMapsForUser(args);
132
+ }
133
+ async getOutputTagMapsForUser(args) {
134
+ if (!this.auth.userId)
135
+ await this.makeAvailable();
136
+ if (args.userId !== this.auth.userId)
137
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
138
+ return await this.storage.getOutputTagMapsForUser(args);
139
+ }
140
+ }
141
+ exports.StorageSyncReader = StorageSyncReader;
142
+ //# sourceMappingURL=StorageSyncReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageSyncReader.js","sourceRoot":"","sources":["../../../../src/storage/StorageSyncReader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import { AbortActionArgs, AbortActionResult, InternalizeActionArgs, InternalizeActionResult, ListActionsResult, ListCertificatesResult, ListOutputsResult, RelinquishCertificateArgs, RelinquishOutputArgs } from '@bsv/sdk';
2
+ import { sdk, StorageProvider, StorageSyncReader, table } from '../index.client';
3
+ /**
4
+ * The `SignerStorage` class delivers authentication checking storage access to the wallet.
5
+ *
6
+ * If manages multiple `StorageBase` derived storage services: one actice, the rest as backups.
7
+ *
8
+ * Of the storage services, one is 'active' at any one time.
9
+ * On startup, and whenever triggered by the wallet, `SignerStorage` runs a syncrhonization sequence:
10
+ *
11
+ * 1. While synchronizing, all other access to storage is blocked waiting.
12
+ * 2. The active service is confirmed, potentially triggering a resolution process if there is disagreement.
13
+ * 3. Changes are pushed from the active storage service to each inactive, backup service.
14
+ *
15
+ * Some storage services do not support multiple writers. `SignerStorage` manages wait-blocking write requests
16
+ * for these services.
17
+ */
18
+ export declare class WalletStorageManager implements sdk.WalletStorage {
19
+ stores: sdk.WalletStorageProvider[];
20
+ _authId: sdk.AuthId;
21
+ _services?: sdk.WalletServices;
22
+ _userIdentityKeyToId: Record<string, number>;
23
+ _readerCount: number;
24
+ _writerCount: number;
25
+ /**
26
+ * if true, allow only a single writer to proceed at a time.
27
+ * queue the blocked requests so they get executed in order when released.
28
+ */
29
+ _isSingleWriter: boolean;
30
+ /**
31
+ * if true, allow no new reader or writers to proceed.
32
+ * queue the blocked requests so they get executed in order when released.
33
+ */
34
+ _syncLocked: boolean;
35
+ /**
36
+ * if true, allow no new reader or writers or sync to proceed.
37
+ * queue the blocked requests so they get executed in order when released.
38
+ */
39
+ _storageProviderLocked: boolean;
40
+ constructor(identityKey: string, active?: sdk.WalletStorageProvider, backups?: sdk.WalletStorageProvider[]);
41
+ isStorageProvider(): boolean;
42
+ getUserId(): Promise<number>;
43
+ getAuth(mustBeActive?: boolean): Promise<sdk.AuthId>;
44
+ getActive(): sdk.WalletStorageProvider;
45
+ getActiveForWriter(): Promise<sdk.WalletStorageWriter>;
46
+ getActiveForReader(): Promise<sdk.WalletStorageReader>;
47
+ getActiveForSync(): Promise<sdk.WalletStorageSync>;
48
+ getActiveForStorageProvider(): Promise<StorageProvider>;
49
+ runAsWriter<R>(writer: (active: sdk.WalletStorageWriter) => Promise<R>): Promise<R>;
50
+ runAsReader<R>(reader: (active: sdk.WalletStorageReader) => Promise<R>): Promise<R>;
51
+ /**
52
+ *
53
+ * @param sync the function to run with sync access lock
54
+ * @param activeSync from chained sync functions, active storage already held under sync access lock.
55
+ * @returns
56
+ */
57
+ runAsSync<R>(sync: (active: sdk.WalletStorageSync) => Promise<R>, activeSync?: sdk.WalletStorageSync): Promise<R>;
58
+ runAsStorageProvider<R>(sync: (active: StorageProvider) => Promise<R>): Promise<R>;
59
+ /**
60
+ *
61
+ * @returns true if the active `WalletStorageProvider` also implements `StorageProvider`
62
+ */
63
+ isActiveStorageProvider(): boolean;
64
+ isAvailable(): boolean;
65
+ addWalletStorageProvider(provider: sdk.WalletStorageProvider): Promise<void>;
66
+ setServices(v: sdk.WalletServices): void;
67
+ getServices(): sdk.WalletServices;
68
+ getSettings(): table.Settings;
69
+ makeAvailable(): Promise<table.Settings>;
70
+ migrate(storageName: string, storageIdentityKey: string): Promise<string>;
71
+ destroy(): Promise<void>;
72
+ findOrInsertUser(identityKey: string): Promise<{
73
+ user: table.User;
74
+ isNew: boolean;
75
+ }>;
76
+ abortAction(args: AbortActionArgs): Promise<AbortActionResult>;
77
+ createAction(vargs: sdk.ValidCreateActionArgs): Promise<sdk.StorageCreateActionResult>;
78
+ internalizeAction(args: InternalizeActionArgs): Promise<InternalizeActionResult>;
79
+ relinquishCertificate(args: RelinquishCertificateArgs): Promise<number>;
80
+ relinquishOutput(args: RelinquishOutputArgs): Promise<number>;
81
+ processAction(args: sdk.StorageProcessActionArgs): Promise<sdk.StorageProcessActionResults>;
82
+ insertCertificate(certificate: table.Certificate): Promise<number>;
83
+ listActions(vargs: sdk.ValidListActionsArgs): Promise<ListActionsResult>;
84
+ listCertificates(args: sdk.ValidListCertificatesArgs): Promise<ListCertificatesResult>;
85
+ listOutputs(vargs: sdk.ValidListOutputsArgs): Promise<ListOutputsResult>;
86
+ findCertificates(args: sdk.FindCertificatesArgs): Promise<table.Certificate[]>;
87
+ findOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<table.OutputBasket[]>;
88
+ findOutputs(args: sdk.FindOutputsArgs): Promise<table.Output[]>;
89
+ findProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<table.ProvenTxReq[]>;
90
+ syncFromReader(identityKey: string, reader: StorageSyncReader): Promise<void>;
91
+ updateBackups(activeSync?: sdk.WalletStorageSync): Promise<void>;
92
+ syncToWriter(auth: sdk.AuthId, writer: sdk.WalletStorageProvider, activeSync?: sdk.WalletStorageSync): Promise<{
93
+ inserts: number;
94
+ updates: number;
95
+ }>;
96
+ /**
97
+ * Updates backups and switches to new active storage provider from among current backup providers.
98
+ *
99
+ * @param storageIdentityKey of current backup storage provider that is to become the new active provider.
100
+ */
101
+ setActive(storageIdentityKey: string): Promise<void>;
102
+ }
103
+ //# sourceMappingURL=WalletStorageManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletStorageManager.d.ts","sourceRoot":"","sources":["../../../../src/storage/WalletStorageManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,408 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletStorageManager = void 0;
4
+ const index_client_1 = require("../index.client");
5
+ /**
6
+ * The `SignerStorage` class delivers authentication checking storage access to the wallet.
7
+ *
8
+ * If manages multiple `StorageBase` derived storage services: one actice, the rest as backups.
9
+ *
10
+ * Of the storage services, one is 'active' at any one time.
11
+ * On startup, and whenever triggered by the wallet, `SignerStorage` runs a syncrhonization sequence:
12
+ *
13
+ * 1. While synchronizing, all other access to storage is blocked waiting.
14
+ * 2. The active service is confirmed, potentially triggering a resolution process if there is disagreement.
15
+ * 3. Changes are pushed from the active storage service to each inactive, backup service.
16
+ *
17
+ * Some storage services do not support multiple writers. `SignerStorage` manages wait-blocking write requests
18
+ * for these services.
19
+ */
20
+ class WalletStorageManager {
21
+ constructor(identityKey, active, backups) {
22
+ this.stores = [];
23
+ this._userIdentityKeyToId = {};
24
+ this._readerCount = 0;
25
+ this._writerCount = 0;
26
+ /**
27
+ * if true, allow only a single writer to proceed at a time.
28
+ * queue the blocked requests so they get executed in order when released.
29
+ */
30
+ this._isSingleWriter = true;
31
+ /**
32
+ * if true, allow no new reader or writers to proceed.
33
+ * queue the blocked requests so they get executed in order when released.
34
+ */
35
+ this._syncLocked = false;
36
+ /**
37
+ * if true, allow no new reader or writers or sync to proceed.
38
+ * queue the blocked requests so they get executed in order when released.
39
+ */
40
+ this._storageProviderLocked = false;
41
+ this.stores = [];
42
+ if (active)
43
+ this.stores.push(active);
44
+ if (backups)
45
+ this.stores = this.stores.concat(backups);
46
+ this._authId = { identityKey };
47
+ }
48
+ isStorageProvider() {
49
+ return false;
50
+ }
51
+ async getUserId() {
52
+ if (!this._authId.userId)
53
+ await this.getAuth();
54
+ return this._authId.userId;
55
+ }
56
+ async getAuth(mustBeActive) {
57
+ if (!this.isAvailable())
58
+ await this.makeAvailable();
59
+ const { user, isNew } = await this.getActive().findOrInsertUser(this._authId.identityKey);
60
+ if (!user)
61
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('identityKey', 'exist on storage.');
62
+ this._authId.userId = user.userId;
63
+ this._authId.isActive =
64
+ user.activeStorage === undefined ||
65
+ user.activeStorage === this.getSettings().storageIdentityKey;
66
+ if (mustBeActive && !this._authId.isActive)
67
+ throw new index_client_1.sdk.WERR_NOT_ACTIVE();
68
+ return this._authId;
69
+ }
70
+ getActive() {
71
+ if (this.stores.length < 1)
72
+ throw new index_client_1.sdk.WERR_INVALID_OPERATION('An active WalletStorageProvider must be added to this WalletStorageManager');
73
+ return this.stores[0];
74
+ }
75
+ async getActiveForWriter() {
76
+ while (this._storageProviderLocked ||
77
+ this._syncLocked ||
78
+ (this._isSingleWriter && this._writerCount > 0) ||
79
+ this._readerCount > 0) {
80
+ await (0, index_client_1.wait)(100);
81
+ }
82
+ this._writerCount++;
83
+ return this.getActive();
84
+ }
85
+ async getActiveForReader() {
86
+ while (this._storageProviderLocked ||
87
+ this._syncLocked ||
88
+ (this._isSingleWriter && this._writerCount > 0)) {
89
+ await (0, index_client_1.wait)(100);
90
+ }
91
+ this._readerCount++;
92
+ return this.getActive();
93
+ }
94
+ async getActiveForSync() {
95
+ // Wait for a current sync task to complete...
96
+ while (this._syncLocked) {
97
+ await (0, index_client_1.wait)(100);
98
+ }
99
+ // Set syncLocked which prevents any new storageProvider, readers or writers...
100
+ this._syncLocked = true;
101
+ // Wait for any current storageProvider, readers and writers to complete
102
+ while (this._storageProviderLocked ||
103
+ this._readerCount > 0 ||
104
+ this._writerCount > 0) {
105
+ await (0, index_client_1.wait)(100);
106
+ }
107
+ // Allow the sync to proceed on the active store.
108
+ return this.getActive();
109
+ }
110
+ async getActiveForStorageProvider() {
111
+ // Wait for a current storageProvider call to complete...
112
+ while (this._storageProviderLocked) {
113
+ await (0, index_client_1.wait)(100);
114
+ }
115
+ // Set storageProviderLocked which prevents any new sync, readers or writers...
116
+ this._storageProviderLocked = true;
117
+ // Wait for any current sync, readers and writers to complete
118
+ while (this._syncLocked || this._readerCount > 0 || this._writerCount > 0) {
119
+ await (0, index_client_1.wait)(100);
120
+ }
121
+ // We can finally confirm that active storage is still able to support `StorageProvider`
122
+ if (!this.getActive().isStorageProvider())
123
+ throw new index_client_1.sdk.WERR_INVALID_OPERATION('Active "WalletStorageProvider" does not support "StorageProvider" interface.');
124
+ // Allow the sync to proceed on the active store.
125
+ return this.getActive();
126
+ }
127
+ async runAsWriter(writer) {
128
+ try {
129
+ const active = await this.getActiveForWriter();
130
+ const r = await writer(active);
131
+ return r;
132
+ }
133
+ finally {
134
+ this._writerCount--;
135
+ }
136
+ }
137
+ async runAsReader(reader) {
138
+ try {
139
+ const active = await this.getActiveForReader();
140
+ const r = await reader(active);
141
+ return r;
142
+ }
143
+ finally {
144
+ this._readerCount--;
145
+ }
146
+ }
147
+ /**
148
+ *
149
+ * @param sync the function to run with sync access lock
150
+ * @param activeSync from chained sync functions, active storage already held under sync access lock.
151
+ * @returns
152
+ */
153
+ async runAsSync(sync, activeSync) {
154
+ try {
155
+ const active = activeSync || (await this.getActiveForSync());
156
+ const r = await sync(active);
157
+ return r;
158
+ }
159
+ finally {
160
+ if (!activeSync)
161
+ this._syncLocked = false;
162
+ }
163
+ }
164
+ async runAsStorageProvider(sync) {
165
+ try {
166
+ const active = await this.getActiveForStorageProvider();
167
+ const r = await sync(active);
168
+ return r;
169
+ }
170
+ finally {
171
+ this._storageProviderLocked = false;
172
+ }
173
+ }
174
+ /**
175
+ *
176
+ * @returns true if the active `WalletStorageProvider` also implements `StorageProvider`
177
+ */
178
+ isActiveStorageProvider() {
179
+ return this.getActive().isStorageProvider();
180
+ }
181
+ isAvailable() {
182
+ return this.getActive().isAvailable();
183
+ }
184
+ async addWalletStorageProvider(provider) {
185
+ await provider.makeAvailable();
186
+ if (this._services)
187
+ provider.setServices(this._services);
188
+ this.stores.push(provider);
189
+ }
190
+ setServices(v) {
191
+ this._services = v;
192
+ for (const store of this.stores)
193
+ store.setServices(v);
194
+ }
195
+ getServices() {
196
+ if (!this._services)
197
+ throw new index_client_1.sdk.WERR_INVALID_OPERATION('Must setServices first.');
198
+ return this._services;
199
+ }
200
+ getSettings() {
201
+ return this.getActive().getSettings();
202
+ }
203
+ async makeAvailable() {
204
+ return await this.runAsWriter(async (writer) => {
205
+ writer.makeAvailable();
206
+ return writer.getSettings();
207
+ });
208
+ }
209
+ async migrate(storageName, storageIdentityKey) {
210
+ return await this.runAsWriter(async (writer) => {
211
+ return writer.migrate(storageName, storageIdentityKey);
212
+ });
213
+ }
214
+ async destroy() {
215
+ return await this.runAsWriter(async (writer) => {
216
+ for (const store of this.stores)
217
+ await store.destroy();
218
+ });
219
+ }
220
+ async findOrInsertUser(identityKey) {
221
+ const auth = await this.getAuth();
222
+ if (identityKey != auth.identityKey)
223
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
224
+ return await this.runAsWriter(async (writer) => {
225
+ const r = await writer.findOrInsertUser(identityKey);
226
+ if (auth.userId && auth.userId !== r.user.userId)
227
+ throw new index_client_1.sdk.WERR_INTERNAL('userId may not change for given identityKey');
228
+ this._authId.userId = r.user.userId;
229
+ return r;
230
+ });
231
+ }
232
+ async abortAction(args) {
233
+ index_client_1.sdk.validateAbortActionArgs(args);
234
+ return await this.runAsWriter(async (writer) => {
235
+ const auth = await this.getAuth(true);
236
+ return await writer.abortAction(auth, args);
237
+ });
238
+ }
239
+ async createAction(vargs) {
240
+ return await this.runAsWriter(async (writer) => {
241
+ const auth = await this.getAuth(true);
242
+ return await writer.createAction(auth, vargs);
243
+ });
244
+ }
245
+ async internalizeAction(args) {
246
+ index_client_1.sdk.validateInternalizeActionArgs(args);
247
+ return await this.runAsWriter(async (writer) => {
248
+ const auth = await this.getAuth(true);
249
+ return await writer.internalizeAction(auth, args);
250
+ });
251
+ }
252
+ async relinquishCertificate(args) {
253
+ index_client_1.sdk.validateRelinquishCertificateArgs(args);
254
+ return await this.runAsWriter(async (writer) => {
255
+ const auth = await this.getAuth(true);
256
+ return await writer.relinquishCertificate(auth, args);
257
+ });
258
+ }
259
+ async relinquishOutput(args) {
260
+ index_client_1.sdk.validateRelinquishOutputArgs(args);
261
+ return await this.runAsWriter(async (writer) => {
262
+ const auth = await this.getAuth(true);
263
+ return await writer.relinquishOutput(auth, args);
264
+ });
265
+ }
266
+ async processAction(args) {
267
+ return await this.runAsWriter(async (writer) => {
268
+ const auth = await this.getAuth(true);
269
+ return await writer.processAction(auth, args);
270
+ });
271
+ }
272
+ async insertCertificate(certificate) {
273
+ return await this.runAsWriter(async (writer) => {
274
+ const auth = await this.getAuth(true);
275
+ return await writer.insertCertificateAuth(auth, certificate);
276
+ });
277
+ }
278
+ async listActions(vargs) {
279
+ const auth = await this.getAuth();
280
+ return await this.runAsReader(async (reader) => {
281
+ return await reader.listActions(auth, vargs);
282
+ });
283
+ }
284
+ async listCertificates(args) {
285
+ const auth = await this.getAuth();
286
+ return await this.runAsReader(async (reader) => {
287
+ return await reader.listCertificates(auth, args);
288
+ });
289
+ }
290
+ async listOutputs(vargs) {
291
+ const auth = await this.getAuth();
292
+ return await this.runAsReader(async (reader) => {
293
+ return await reader.listOutputs(auth, vargs);
294
+ });
295
+ }
296
+ async findCertificates(args) {
297
+ const auth = await this.getAuth();
298
+ return await this.runAsReader(async (reader) => {
299
+ return await reader.findCertificatesAuth(auth, args);
300
+ });
301
+ }
302
+ async findOutputBaskets(args) {
303
+ const auth = await this.getAuth();
304
+ return await this.runAsReader(async (reader) => {
305
+ return await reader.findOutputBasketsAuth(auth, args);
306
+ });
307
+ }
308
+ async findOutputs(args) {
309
+ const auth = await this.getAuth();
310
+ return await this.runAsReader(async (reader) => {
311
+ return await reader.findOutputsAuth(auth, args);
312
+ });
313
+ }
314
+ async findProvenTxReqs(args) {
315
+ return await this.runAsReader(async (reader) => {
316
+ return await reader.findProvenTxReqs(args);
317
+ });
318
+ }
319
+ async syncFromReader(identityKey, reader) {
320
+ const auth = await this.getAuth();
321
+ if (identityKey !== auth.identityKey)
322
+ throw new index_client_1.sdk.WERR_UNAUTHORIZED();
323
+ const readerSettings = await reader.makeAvailable();
324
+ return await this.runAsSync(async (sync) => {
325
+ const writer = sync;
326
+ const writerSettings = this.getSettings();
327
+ let log = '';
328
+ let inserts = 0, updates = 0;
329
+ for (;;) {
330
+ const ss = await index_client_1.entity.SyncState.fromStorage(writer, identityKey, readerSettings);
331
+ const args = ss.makeRequestSyncChunkArgs(identityKey, writerSettings.storageIdentityKey);
332
+ const chunk = await reader.getSyncChunk(args);
333
+ const r = await writer.processSyncChunk(args, chunk);
334
+ inserts += r.inserts;
335
+ updates += r.updates;
336
+ //log += `${r.maxUpdated_at} inserted ${r.inserts} updated ${r.updates}\n`
337
+ if (r.done)
338
+ break;
339
+ }
340
+ //console.log(log)
341
+ console.log(`sync complete: ${inserts} inserts, ${updates} updates`);
342
+ });
343
+ }
344
+ async updateBackups(activeSync) {
345
+ const auth = await this.getAuth();
346
+ return await this.runAsSync(async (sync) => {
347
+ for (const backup of this.stores.slice(1)) {
348
+ await this.syncToWriter(auth, backup, sync);
349
+ }
350
+ }, activeSync);
351
+ }
352
+ async syncToWriter(auth, writer, activeSync) {
353
+ const identityKey = auth.identityKey;
354
+ const writerSettings = await writer.makeAvailable();
355
+ return await this.runAsSync(async (sync) => {
356
+ const reader = sync;
357
+ const readerSettings = this.getSettings();
358
+ let log = '';
359
+ let inserts = 0, updates = 0;
360
+ for (;;) {
361
+ const ss = await index_client_1.entity.SyncState.fromStorage(writer, identityKey, readerSettings);
362
+ const args = ss.makeRequestSyncChunkArgs(identityKey, writerSettings.storageIdentityKey);
363
+ const chunk = await reader.getSyncChunk(args);
364
+ const r = await writer.processSyncChunk(args, chunk);
365
+ inserts += r.inserts;
366
+ updates += r.updates;
367
+ log += `${r.maxUpdated_at} inserted ${r.inserts} updated ${r.updates}\n`;
368
+ if (r.done)
369
+ break;
370
+ }
371
+ //console.log(log)
372
+ //console.log(`sync complete: ${inserts} inserts, ${updates} updates`)
373
+ return { inserts, updates };
374
+ }, activeSync);
375
+ }
376
+ /**
377
+ * Updates backups and switches to new active storage provider from among current backup providers.
378
+ *
379
+ * @param storageIdentityKey of current backup storage provider that is to become the new active provider.
380
+ */
381
+ async setActive(storageIdentityKey) {
382
+ const newActiveIndex = this.stores.findIndex(s => s.getSettings().storageIdentityKey === storageIdentityKey);
383
+ if (newActiveIndex < 0)
384
+ throw new index_client_1.sdk.WERR_INVALID_PARAMETER('storageIdentityKey', `registered with this "WalletStorageManager" as a backup data store.`);
385
+ if (newActiveIndex === 0)
386
+ /** Setting the current active as the new active is a permitted no-op. */
387
+ return;
388
+ const auth = await this.getAuth();
389
+ const newActive = this.stores[newActiveIndex];
390
+ const newActiveStorageIdentityKey = (await newActive.makeAvailable())
391
+ .storageIdentityKey;
392
+ return await this.runAsSync(async (sync) => {
393
+ await sync.setActive(auth, newActiveStorageIdentityKey);
394
+ await this.updateBackups(sync);
395
+ // swap stores...
396
+ const oldActive = this.stores[0];
397
+ this.stores[0] = this.stores[newActiveIndex];
398
+ this.stores[newActiveIndex] = oldActive;
399
+ this._authId = {
400
+ ...this._authId,
401
+ userId: undefined,
402
+ isActive: undefined
403
+ };
404
+ });
405
+ }
406
+ }
407
+ exports.WalletStorageManager = WalletStorageManager;
408
+ //# sourceMappingURL=WalletStorageManager.js.map