@brightchain/brightchain-lib 0.30.1 → 0.31.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 (344) hide show
  1. package/README.md +34 -5
  2. package/package.json +4 -4
  3. package/src/browser.d.ts +7 -0
  4. package/src/browser.d.ts.map +1 -1
  5. package/src/browser.js +21 -1
  6. package/src/browser.js.map +1 -1
  7. package/src/lib/asset/assetAccount.d.ts +66 -0
  8. package/src/lib/asset/assetAccount.d.ts.map +1 -0
  9. package/src/lib/asset/assetAccount.js +192 -0
  10. package/src/lib/asset/assetAccount.js.map +1 -0
  11. package/src/lib/asset/formatAssetAmount.d.ts +30 -0
  12. package/src/lib/asset/formatAssetAmount.d.ts.map +1 -0
  13. package/src/lib/asset/formatAssetAmount.js +54 -0
  14. package/src/lib/asset/formatAssetAmount.js.map +1 -0
  15. package/src/lib/asset/index.d.ts +11 -0
  16. package/src/lib/asset/index.d.ts.map +1 -0
  17. package/src/lib/asset/index.js +14 -0
  18. package/src/lib/asset/index.js.map +1 -0
  19. package/src/lib/asset/jouleConstants.d.ts +21 -0
  20. package/src/lib/asset/jouleConstants.d.ts.map +1 -0
  21. package/src/lib/asset/jouleConstants.js +24 -0
  22. package/src/lib/asset/jouleConstants.js.map +1 -0
  23. package/src/lib/asset/microunits.d.ts +19 -0
  24. package/src/lib/asset/microunits.d.ts.map +1 -0
  25. package/src/lib/asset/microunits.js +36 -0
  26. package/src/lib/asset/microunits.js.map +1 -0
  27. package/src/lib/constants.d.ts +3 -1
  28. package/src/lib/constants.d.ts.map +1 -1
  29. package/src/lib/constants.js +23 -1
  30. package/src/lib/constants.js.map +1 -1
  31. package/src/lib/db/driverBackedHeadRegistry.d.ts +42 -0
  32. package/src/lib/db/driverBackedHeadRegistry.d.ts.map +1 -0
  33. package/src/lib/db/driverBackedHeadRegistry.js +146 -0
  34. package/src/lib/db/driverBackedHeadRegistry.js.map +1 -0
  35. package/src/lib/db/headRegistryGossipTransport.d.ts +74 -0
  36. package/src/lib/db/headRegistryGossipTransport.d.ts.map +1 -0
  37. package/src/lib/db/headRegistryGossipTransport.js +153 -0
  38. package/src/lib/db/headRegistryGossipTransport.js.map +1 -0
  39. package/src/lib/db/inMemoryHeadRegistry.d.ts +9 -0
  40. package/src/lib/db/inMemoryHeadRegistry.d.ts.map +1 -1
  41. package/src/lib/db/inMemoryHeadRegistry.js +48 -0
  42. package/src/lib/db/inMemoryHeadRegistry.js.map +1 -1
  43. package/src/lib/db/inMemoryHeadRegistryDriver.d.ts +13 -0
  44. package/src/lib/db/inMemoryHeadRegistryDriver.d.ts.map +1 -0
  45. package/src/lib/db/inMemoryHeadRegistryDriver.js +24 -0
  46. package/src/lib/db/inMemoryHeadRegistryDriver.js.map +1 -0
  47. package/src/lib/db/index.d.ts +3 -0
  48. package/src/lib/db/index.d.ts.map +1 -1
  49. package/src/lib/db/index.js +3 -0
  50. package/src/lib/db/index.js.map +1 -1
  51. package/src/lib/energyAccount.d.ts +15 -62
  52. package/src/lib/energyAccount.d.ts.map +1 -1
  53. package/src/lib/energyAccount.js +20 -118
  54. package/src/lib/energyAccount.js.map +1 -1
  55. package/src/lib/enumerations/brightChainStrings.d.ts +123 -0
  56. package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -1
  57. package/src/lib/enumerations/brightChainStrings.js +130 -0
  58. package/src/lib/enumerations/brightChainStrings.js.map +1 -1
  59. package/src/lib/enumerations/difficultyTier.d.ts +20 -0
  60. package/src/lib/enumerations/difficultyTier.d.ts.map +1 -0
  61. package/src/lib/enumerations/difficultyTier.js +25 -0
  62. package/src/lib/enumerations/difficultyTier.js.map +1 -0
  63. package/src/lib/enumerations/index.d.ts +2 -1
  64. package/src/lib/enumerations/index.d.ts.map +1 -1
  65. package/src/lib/enumerations/index.js +3 -1
  66. package/src/lib/enumerations/index.js.map +1 -1
  67. package/src/lib/errors/asset/assetUnknownError.d.ts +12 -0
  68. package/src/lib/errors/asset/assetUnknownError.d.ts.map +1 -0
  69. package/src/lib/errors/asset/assetUnknownError.js +21 -0
  70. package/src/lib/errors/asset/assetUnknownError.js.map +1 -0
  71. package/src/lib/errors/asset/index.d.ts +13 -0
  72. package/src/lib/errors/asset/index.d.ts.map +1 -0
  73. package/src/lib/errors/asset/index.js +16 -0
  74. package/src/lib/errors/asset/index.js.map +1 -0
  75. package/src/lib/errors/asset/insufficientAvailableBalanceError.d.ts +13 -0
  76. package/src/lib/errors/asset/insufficientAvailableBalanceError.d.ts.map +1 -0
  77. package/src/lib/errors/asset/insufficientAvailableBalanceError.js +25 -0
  78. package/src/lib/errors/asset/insufficientAvailableBalanceError.js.map +1 -0
  79. package/src/lib/errors/asset/invalidAmountError.d.ts +11 -0
  80. package/src/lib/errors/asset/invalidAmountError.d.ts.map +1 -0
  81. package/src/lib/errors/asset/invalidAmountError.js +20 -0
  82. package/src/lib/errors/asset/invalidAmountError.js.map +1 -0
  83. package/src/lib/errors/asset/ledgerAlreadyAttachedError.d.ts +11 -0
  84. package/src/lib/errors/asset/ledgerAlreadyAttachedError.d.ts.map +1 -0
  85. package/src/lib/errors/asset/ledgerAlreadyAttachedError.js +19 -0
  86. package/src/lib/errors/asset/ledgerAlreadyAttachedError.js.map +1 -0
  87. package/src/lib/errors/asset/mixedAssetError.d.ts +12 -0
  88. package/src/lib/errors/asset/mixedAssetError.d.ts.map +1 -0
  89. package/src/lib/errors/asset/mixedAssetError.js +22 -0
  90. package/src/lib/errors/asset/mixedAssetError.js.map +1 -0
  91. package/src/lib/errors/asset/reservationExpiredError.d.ts +13 -0
  92. package/src/lib/errors/asset/reservationExpiredError.d.ts.map +1 -0
  93. package/src/lib/errors/asset/reservationExpiredError.js +24 -0
  94. package/src/lib/errors/asset/reservationExpiredError.js.map +1 -0
  95. package/src/lib/errors/asset/reservationNotFoundError.d.ts +11 -0
  96. package/src/lib/errors/asset/reservationNotFoundError.d.ts.map +1 -0
  97. package/src/lib/errors/asset/reservationNotFoundError.js +20 -0
  98. package/src/lib/errors/asset/reservationNotFoundError.js.map +1 -0
  99. package/src/lib/errors/encryptionErrors.d.ts.map +1 -1
  100. package/src/lib/errors/encryptionErrors.js.map +1 -1
  101. package/src/lib/errors/friendsServiceError.d.ts.map +1 -1
  102. package/src/lib/errors/friendsServiceError.js.map +1 -1
  103. package/src/lib/errors/index.d.ts +18 -0
  104. package/src/lib/errors/index.d.ts.map +1 -1
  105. package/src/lib/errors/index.js +21 -0
  106. package/src/lib/errors/index.js.map +1 -1
  107. package/src/lib/i18n/strings/englishUs.d.ts.map +1 -1
  108. package/src/lib/i18n/strings/englishUs.js +131 -1
  109. package/src/lib/i18n/strings/englishUs.js.map +1 -1
  110. package/src/lib/i18n/strings/french.d.ts.map +1 -1
  111. package/src/lib/i18n/strings/french.js +133 -3
  112. package/src/lib/i18n/strings/french.js.map +1 -1
  113. package/src/lib/i18n/strings/german.d.ts.map +1 -1
  114. package/src/lib/i18n/strings/german.js +131 -1
  115. package/src/lib/i18n/strings/german.js.map +1 -1
  116. package/src/lib/i18n/strings/japanese.d.ts.map +1 -1
  117. package/src/lib/i18n/strings/japanese.js +131 -1
  118. package/src/lib/i18n/strings/japanese.js.map +1 -1
  119. package/src/lib/i18n/strings/mandarin.d.ts.map +1 -1
  120. package/src/lib/i18n/strings/mandarin.js +131 -1
  121. package/src/lib/i18n/strings/mandarin.js.map +1 -1
  122. package/src/lib/i18n/strings/spanish.d.ts.map +1 -1
  123. package/src/lib/i18n/strings/spanish.js +131 -1
  124. package/src/lib/i18n/strings/spanish.js.map +1 -1
  125. package/src/lib/i18n/strings/ukrainian.d.ts.map +1 -1
  126. package/src/lib/i18n/strings/ukrainian.js +131 -1
  127. package/src/lib/i18n/strings/ukrainian.js.map +1 -1
  128. package/src/lib/index.d.ts +36 -1
  129. package/src/lib/index.d.ts.map +1 -1
  130. package/src/lib/index.js +48 -1
  131. package/src/lib/index.js.map +1 -1
  132. package/src/lib/interfaces/appSubsystemPlugin.d.ts +6 -1
  133. package/src/lib/interfaces/appSubsystemPlugin.d.ts.map +1 -1
  134. package/src/lib/interfaces/assetAccount.d.ts +91 -0
  135. package/src/lib/interfaces/assetAccount.d.ts.map +1 -0
  136. package/src/lib/interfaces/assetAccount.js +3 -0
  137. package/src/lib/interfaces/assetAccount.js.map +1 -0
  138. package/src/lib/interfaces/brightpass/vaultEntry.d.ts +38 -0
  139. package/src/lib/interfaces/brightpass/vaultEntry.d.ts.map +1 -1
  140. package/src/lib/interfaces/brightpass/vaultMetadata.d.ts +11 -0
  141. package/src/lib/interfaces/brightpass/vaultMetadata.d.ts.map +1 -1
  142. package/src/lib/interfaces/communication/chatStorageProvider.d.ts +1 -1
  143. package/src/lib/interfaces/communication/chatStorageProvider.d.ts.map +1 -1
  144. package/src/lib/interfaces/communication/index.d.ts +2 -0
  145. package/src/lib/interfaces/communication/index.d.ts.map +1 -1
  146. package/src/lib/interfaces/communication/index.js +2 -0
  147. package/src/lib/interfaces/communication/index.js.map +1 -1
  148. package/src/lib/interfaces/communication/server.d.ts +8 -0
  149. package/src/lib/interfaces/communication/server.d.ts.map +1 -1
  150. package/src/lib/interfaces/communication/serverIconConfig.d.ts +32 -0
  151. package/src/lib/interfaces/communication/serverIconConfig.d.ts.map +1 -0
  152. package/src/lib/interfaces/communication/serverIconConfig.js +35 -0
  153. package/src/lib/interfaces/communication/serverIconConfig.js.map +1 -0
  154. package/src/lib/interfaces/communication/serverIconRequest.d.ts +12 -0
  155. package/src/lib/interfaces/communication/serverIconRequest.d.ts.map +1 -0
  156. package/src/lib/interfaces/communication/serverIconRequest.js +3 -0
  157. package/src/lib/interfaces/communication/serverIconRequest.js.map +1 -0
  158. package/src/lib/interfaces/constants.d.ts +14 -0
  159. package/src/lib/interfaces/constants.d.ts.map +1 -1
  160. package/src/lib/interfaces/energyAccount.d.ts +13 -34
  161. package/src/lib/interfaces/energyAccount.d.ts.map +1 -1
  162. package/src/lib/interfaces/energyTransaction.d.ts +25 -6
  163. package/src/lib/interfaces/energyTransaction.d.ts.map +1 -1
  164. package/src/lib/interfaces/identity/brightChainIdentity.d.ts +29 -0
  165. package/src/lib/interfaces/identity/brightChainIdentity.d.ts.map +1 -0
  166. package/src/lib/interfaces/identity/brightChainIdentity.js +3 -0
  167. package/src/lib/interfaces/identity/brightChainIdentity.js.map +1 -0
  168. package/src/lib/interfaces/identity/index.d.ts +1 -0
  169. package/src/lib/interfaces/identity/index.d.ts.map +1 -1
  170. package/src/lib/interfaces/index.d.ts +5 -0
  171. package/src/lib/interfaces/index.d.ts.map +1 -1
  172. package/src/lib/interfaces/index.js +8 -0
  173. package/src/lib/interfaces/index.js.map +1 -1
  174. package/src/lib/interfaces/messaging/attachmentMetadata.d.ts +12 -0
  175. package/src/lib/interfaces/messaging/attachmentMetadata.d.ts.map +1 -1
  176. package/src/lib/interfaces/messaging/emailMetadata.d.ts +55 -0
  177. package/src/lib/interfaces/messaging/emailMetadata.d.ts.map +1 -1
  178. package/src/lib/interfaces/messaging/emailMetadata.js.map +1 -1
  179. package/src/lib/interfaces/pouw/challengeToken.d.ts +20 -0
  180. package/src/lib/interfaces/pouw/challengeToken.d.ts.map +1 -0
  181. package/src/lib/interfaces/pouw/challengeToken.js +3 -0
  182. package/src/lib/interfaces/pouw/challengeToken.js.map +1 -0
  183. package/src/lib/interfaces/pouw/index.d.ts +8 -0
  184. package/src/lib/interfaces/pouw/index.d.ts.map +1 -0
  185. package/src/lib/interfaces/pouw/index.js +12 -0
  186. package/src/lib/interfaces/pouw/index.js.map +1 -0
  187. package/src/lib/interfaces/pouw/pouwConfig.d.ts +91 -0
  188. package/src/lib/interfaces/pouw/pouwConfig.d.ts.map +1 -0
  189. package/src/lib/interfaces/pouw/pouwConfig.js +24 -0
  190. package/src/lib/interfaces/pouw/pouwConfig.js.map +1 -0
  191. package/src/lib/interfaces/pouw/pouwMetrics.d.ts +23 -0
  192. package/src/lib/interfaces/pouw/pouwMetrics.d.ts.map +1 -0
  193. package/src/lib/interfaces/pouw/pouwMetrics.js +3 -0
  194. package/src/lib/interfaces/pouw/pouwMetrics.js.map +1 -0
  195. package/src/lib/interfaces/pouw/workResult.d.ts +19 -0
  196. package/src/lib/interfaces/pouw/workResult.d.ts.map +1 -0
  197. package/src/lib/interfaces/pouw/workResult.js +3 -0
  198. package/src/lib/interfaces/pouw/workResult.js.map +1 -0
  199. package/src/lib/interfaces/pouw/workUnit.d.ts +48 -0
  200. package/src/lib/interfaces/pouw/workUnit.d.ts.map +1 -0
  201. package/src/lib/interfaces/pouw/workUnit.js +14 -0
  202. package/src/lib/interfaces/pouw/workUnit.js.map +1 -0
  203. package/src/lib/interfaces/responses/adminDashboardResponse.d.ts +7 -0
  204. package/src/lib/interfaces/responses/adminDashboardResponse.d.ts.map +1 -1
  205. package/src/lib/interfaces/responses/communicationResponses.d.ts +2 -0
  206. package/src/lib/interfaces/responses/communicationResponses.d.ts.map +1 -1
  207. package/src/lib/interfaces/responses/identityResponseData.d.ts +10 -0
  208. package/src/lib/interfaces/responses/identityResponseData.d.ts.map +1 -0
  209. package/src/lib/interfaces/responses/identityResponseData.js +3 -0
  210. package/src/lib/interfaces/responses/identityResponseData.js.map +1 -0
  211. package/src/lib/interfaces/responses/index.d.ts +1 -0
  212. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  213. package/src/lib/interfaces/staging/commitRequest.d.ts +28 -0
  214. package/src/lib/interfaces/staging/commitRequest.d.ts.map +1 -0
  215. package/src/lib/interfaces/staging/commitRequest.js +3 -0
  216. package/src/lib/interfaces/staging/commitRequest.js.map +1 -0
  217. package/src/lib/interfaces/staging/commitResponse.d.ts +17 -0
  218. package/src/lib/interfaces/staging/commitResponse.d.ts.map +1 -0
  219. package/src/lib/interfaces/staging/commitResponse.js +3 -0
  220. package/src/lib/interfaces/staging/commitResponse.js.map +1 -0
  221. package/src/lib/interfaces/staging/index.d.ts +7 -0
  222. package/src/lib/interfaces/staging/index.d.ts.map +1 -0
  223. package/src/lib/interfaces/staging/index.js +6 -0
  224. package/src/lib/interfaces/staging/index.js.map +1 -0
  225. package/src/lib/interfaces/staging/processingParams.d.ts +16 -0
  226. package/src/lib/interfaces/staging/processingParams.d.ts.map +1 -0
  227. package/src/lib/interfaces/staging/processingParams.js +3 -0
  228. package/src/lib/interfaces/staging/processingParams.js.map +1 -0
  229. package/src/lib/interfaces/staging/stagedFileRecord.d.ts +23 -0
  230. package/src/lib/interfaces/staging/stagedFileRecord.d.ts.map +1 -0
  231. package/src/lib/interfaces/staging/stagedFileRecord.js +3 -0
  232. package/src/lib/interfaces/staging/stagedFileRecord.js.map +1 -0
  233. package/src/lib/interfaces/staging/stagingConfig.d.ts +19 -0
  234. package/src/lib/interfaces/staging/stagingConfig.d.ts.map +1 -0
  235. package/src/lib/interfaces/staging/stagingConfig.js +11 -0
  236. package/src/lib/interfaces/staging/stagingConfig.js.map +1 -0
  237. package/src/lib/interfaces/staging/tempUploadResponse.d.ts +19 -0
  238. package/src/lib/interfaces/staging/tempUploadResponse.d.ts.map +1 -0
  239. package/src/lib/interfaces/staging/tempUploadResponse.js +3 -0
  240. package/src/lib/interfaces/staging/tempUploadResponse.js.map +1 -0
  241. package/src/lib/interfaces/storage/blockStore.d.ts +22 -4
  242. package/src/lib/interfaces/storage/blockStore.d.ts.map +1 -1
  243. package/src/lib/interfaces/storage/headRegistry.d.ts +38 -0
  244. package/src/lib/interfaces/storage/headRegistry.d.ts.map +1 -1
  245. package/src/lib/interfaces/storage/headRegistryDriver.d.ts +47 -0
  246. package/src/lib/interfaces/storage/headRegistryDriver.d.ts.map +1 -0
  247. package/src/lib/interfaces/storage/headRegistryDriver.js +15 -0
  248. package/src/lib/interfaces/storage/headRegistryDriver.js.map +1 -0
  249. package/src/lib/interfaces/storage/index.d.ts +1 -0
  250. package/src/lib/interfaces/storage/index.d.ts.map +1 -1
  251. package/src/lib/interfaces/storage/index.js.map +1 -1
  252. package/src/lib/joule/formatJoule.d.ts +44 -0
  253. package/src/lib/joule/formatJoule.d.ts.map +1 -0
  254. package/src/lib/joule/formatJoule.js +121 -0
  255. package/src/lib/joule/formatJoule.js.map +1 -0
  256. package/src/lib/joule/index.d.ts +10 -0
  257. package/src/lib/joule/index.d.ts.map +1 -0
  258. package/src/lib/joule/index.js +13 -0
  259. package/src/lib/joule/index.js.map +1 -0
  260. package/src/lib/joule/jouleConstants.d.ts +13 -0
  261. package/src/lib/joule/jouleConstants.d.ts.map +1 -0
  262. package/src/lib/joule/jouleConstants.js +18 -0
  263. package/src/lib/joule/jouleConstants.js.map +1 -0
  264. package/src/lib/joule/rateTable.d.ts +55 -0
  265. package/src/lib/joule/rateTable.d.ts.map +1 -0
  266. package/src/lib/joule/rateTable.js +58 -0
  267. package/src/lib/joule/rateTable.js.map +1 -0
  268. package/src/lib/joule/resourceClass.d.ts +18 -0
  269. package/src/lib/joule/resourceClass.d.ts.map +1 -0
  270. package/src/lib/joule/resourceClass.js +28 -0
  271. package/src/lib/joule/resourceClass.js.map +1 -0
  272. package/src/lib/operationCost.d.ts +12 -7
  273. package/src/lib/operationCost.d.ts.map +1 -1
  274. package/src/lib/operationCost.js +11 -4
  275. package/src/lib/operationCost.js.map +1 -1
  276. package/src/lib/pouw/computeWorkUnit.d.ts +41 -0
  277. package/src/lib/pouw/computeWorkUnit.d.ts.map +1 -0
  278. package/src/lib/pouw/computeWorkUnit.js +92 -0
  279. package/src/lib/pouw/computeWorkUnit.js.map +1 -0
  280. package/src/lib/pouw/index.d.ts +8 -0
  281. package/src/lib/pouw/index.d.ts.map +1 -0
  282. package/src/lib/pouw/index.js +12 -0
  283. package/src/lib/pouw/index.js.map +1 -0
  284. package/src/lib/serializers/index.d.ts +2 -0
  285. package/src/lib/serializers/index.d.ts.map +1 -0
  286. package/src/lib/serializers/index.js +10 -0
  287. package/src/lib/serializers/index.js.map +1 -0
  288. package/src/lib/serializers/workUnitSerializer.d.ts +39 -0
  289. package/src/lib/serializers/workUnitSerializer.d.ts.map +1 -0
  290. package/src/lib/serializers/workUnitSerializer.js +150 -0
  291. package/src/lib/serializers/workUnitSerializer.js.map +1 -0
  292. package/src/lib/services/communication/__tests__/mockChatStorageProvider.d.ts +1 -1
  293. package/src/lib/services/communication/__tests__/mockChatStorageProvider.d.ts.map +1 -1
  294. package/src/lib/services/communication/__tests__/mockChatStorageProvider.js +5 -3
  295. package/src/lib/services/communication/__tests__/mockChatStorageProvider.js.map +1 -1
  296. package/src/lib/services/communication/__tests__/mockStorageProvider.d.ts +6 -0
  297. package/src/lib/services/communication/__tests__/mockStorageProvider.d.ts.map +1 -0
  298. package/src/lib/services/communication/__tests__/mockStorageProvider.js +41 -0
  299. package/src/lib/services/communication/__tests__/mockStorageProvider.js.map +1 -0
  300. package/src/lib/services/communication/channelService.d.ts +1 -1
  301. package/src/lib/services/communication/channelService.d.ts.map +1 -1
  302. package/src/lib/services/communication/channelService.js +2 -2
  303. package/src/lib/services/communication/channelService.js.map +1 -1
  304. package/src/lib/services/communication/conversationService.d.ts +1 -1
  305. package/src/lib/services/communication/conversationService.d.ts.map +1 -1
  306. package/src/lib/services/communication/conversationService.js +2 -2
  307. package/src/lib/services/communication/conversationService.js.map +1 -1
  308. package/src/lib/services/communication/groupService.d.ts +1 -1
  309. package/src/lib/services/communication/groupService.d.ts.map +1 -1
  310. package/src/lib/services/communication/groupService.js +2 -2
  311. package/src/lib/services/communication/groupService.js.map +1 -1
  312. package/src/lib/services/communication/rehydrationHelpers.d.ts.map +1 -1
  313. package/src/lib/services/communication/rehydrationHelpers.js +1 -2
  314. package/src/lib/services/communication/rehydrationHelpers.js.map +1 -1
  315. package/src/lib/services/communication/serverService.d.ts +13 -115
  316. package/src/lib/services/communication/serverService.d.ts.map +1 -1
  317. package/src/lib/services/communication/serverService.js +91 -235
  318. package/src/lib/services/communication/serverService.js.map +1 -1
  319. package/src/lib/services/copyOnWrite.service.d.ts.map +1 -1
  320. package/src/lib/services/copyOnWrite.service.js +1 -2
  321. package/src/lib/services/copyOnWrite.service.js.map +1 -1
  322. package/src/lib/services/messaging/emailMessageService.d.ts +89 -0
  323. package/src/lib/services/messaging/emailMessageService.d.ts.map +1 -1
  324. package/src/lib/services/messaging/emailMessageService.js +207 -28
  325. package/src/lib/services/messaging/emailMessageService.js.map +1 -1
  326. package/src/lib/services/messaging/emailParser.d.ts.map +1 -1
  327. package/src/lib/services/messaging/emailParser.js +1 -0
  328. package/src/lib/services/messaging/emailParser.js.map +1 -1
  329. package/src/lib/stores/assetAccountStore.d.ts +102 -0
  330. package/src/lib/stores/assetAccountStore.d.ts.map +1 -0
  331. package/src/lib/stores/assetAccountStore.js +276 -0
  332. package/src/lib/stores/assetAccountStore.js.map +1 -0
  333. package/src/lib/stores/blockStoreAdapter.d.ts +2 -0
  334. package/src/lib/stores/blockStoreAdapter.d.ts.map +1 -1
  335. package/src/lib/stores/blockStoreAdapter.js +3 -0
  336. package/src/lib/stores/blockStoreAdapter.js.map +1 -1
  337. package/src/lib/stores/energyAccountStore.d.ts +22 -36
  338. package/src/lib/stores/energyAccountStore.d.ts.map +1 -1
  339. package/src/lib/stores/energyAccountStore.js +33 -63
  340. package/src/lib/stores/energyAccountStore.js.map +1 -1
  341. package/src/lib/stores/memoryBlockStore.d.ts +16 -1
  342. package/src/lib/stores/memoryBlockStore.d.ts.map +1 -1
  343. package/src/lib/stores/memoryBlockStore.js +42 -6
  344. package/src/lib/stores/memoryBlockStore.js.map +1 -1
@@ -0,0 +1,276 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssetAccountStore = void 0;
4
+ const assetAccount_1 = require("../asset/assetAccount");
5
+ const jouleConstants_1 = require("../asset/jouleConstants");
6
+ const insufficientAvailableBalanceError_1 = require("../errors/asset/insufficientAvailableBalanceError");
7
+ const ledgerAlreadyAttachedError_1 = require("../errors/asset/ledgerAlreadyAttachedError");
8
+ const mixedAssetError_1 = require("../errors/asset/mixedAssetError");
9
+ const reservationExpiredError_1 = require("../errors/asset/reservationExpiredError");
10
+ const reservationNotFoundError_1 = require("../errors/asset/reservationNotFoundError");
11
+ /**
12
+ * Asset-agnostic, in-memory account store keyed by `(memberId, assetId)`.
13
+ *
14
+ * The legacy {@link EnergyAccountStore} is preserved untouched during the
15
+ * additive refactor. A future phase will fold it onto this base via
16
+ * subclassing with `defaultAssetId = 'joule'`.
17
+ *
18
+ * @see asset-account-store-generalization spec, Phase 4.
19
+ */
20
+ class AssetAccountStore {
21
+ defaultAssetId;
22
+ /**
23
+ * Eventual-consistency contract for this tier. Surfaced as a runtime
24
+ * value so call sites can assert / log it.
25
+ */
26
+ operationalSemantics = 'operational projection cache; may lag the asset ledger by up to one batch window once Layer 3 is enabled.';
27
+ accounts = new Map();
28
+ reservations = new Map();
29
+ ledger = null;
30
+ constructor(defaultAssetId = jouleConstants_1.JOULE_ASSET_ID) {
31
+ this.defaultAssetId = defaultAssetId;
32
+ if (typeof defaultAssetId !== 'string' || defaultAssetId.length === 0) {
33
+ throw new Error('defaultAssetId must be a non-empty string');
34
+ }
35
+ }
36
+ // ---------------------------------------------------------------------
37
+ // Keying
38
+ // ---------------------------------------------------------------------
39
+ static key(memberId, assetId) {
40
+ return `${memberId.toHex()}::${assetId}`;
41
+ }
42
+ // ---------------------------------------------------------------------
43
+ // Single-arity convenience methods (use defaultAssetId)
44
+ // ---------------------------------------------------------------------
45
+ get(memberId) {
46
+ return this.getForAsset(memberId, this.defaultAssetId);
47
+ }
48
+ set(memberId, account) {
49
+ this.setForAsset(memberId, account.assetId, account);
50
+ }
51
+ has(memberId) {
52
+ return this.hasForAsset(memberId, this.defaultAssetId);
53
+ }
54
+ delete(memberId) {
55
+ return this.deleteForAsset(memberId, this.defaultAssetId);
56
+ }
57
+ // ---------------------------------------------------------------------
58
+ // Two-arity composite-key methods
59
+ // ---------------------------------------------------------------------
60
+ getForAsset(memberId, assetId) {
61
+ return this.accounts.get(AssetAccountStore.key(memberId, assetId));
62
+ }
63
+ setForAsset(memberId, assetId, account) {
64
+ if (account.assetId !== assetId) {
65
+ throw new mixedAssetError_1.MixedAssetError([account.assetId, assetId], `Account assetId '${account.assetId}' does not match key assetId '${assetId}'.`);
66
+ }
67
+ if (memberId.toHex() !== account.memberId.toHex()) {
68
+ throw new Error('Account memberId does not match key memberId.');
69
+ }
70
+ this.accounts.set(AssetAccountStore.key(memberId, assetId), account);
71
+ }
72
+ hasForAsset(memberId, assetId) {
73
+ return this.accounts.has(AssetAccountStore.key(memberId, assetId));
74
+ }
75
+ deleteForAsset(memberId, assetId) {
76
+ return this.accounts.delete(AssetAccountStore.key(memberId, assetId));
77
+ }
78
+ getAllForAsset(assetId) {
79
+ const out = [];
80
+ for (const account of this.accounts.values()) {
81
+ if (account.assetId === assetId)
82
+ out.push(account);
83
+ }
84
+ return out;
85
+ }
86
+ getAllAccounts() {
87
+ return Array.from(this.accounts.values());
88
+ }
89
+ get size() {
90
+ return this.accounts.size;
91
+ }
92
+ clear() {
93
+ this.accounts.clear();
94
+ this.reservations.clear();
95
+ }
96
+ // ---------------------------------------------------------------------
97
+ // Reservations
98
+ // ---------------------------------------------------------------------
99
+ /**
100
+ * Reserve `amount` microunits against the available balance of
101
+ * `(memberId, assetId)`. The reservation expires after `ttlMs` ms; an
102
+ * expired reservation is reaped lazily on next read or settlement
103
+ * attempt.
104
+ */
105
+ reserve(memberId, assetId, amount, ttlMs) {
106
+ this.reapExpiredFor(memberId, assetId);
107
+ const account = this.getForAsset(memberId, assetId);
108
+ if (!account) {
109
+ throw new reservationNotFoundError_1.ReservationNotFoundError(AssetAccountStore.key(memberId, assetId), `No account exists for member '${memberId.toHex()}' under asset '${assetId}'.`);
110
+ }
111
+ if (account instanceof assetAccount_1.AssetAccount) {
112
+ account.reserve(amount); // throws InsufficientAvailableBalanceError on overdraw
113
+ }
114
+ else {
115
+ // Plain IAssetAccount — replicate the bigint logic inline.
116
+ const available = account.balance - account.reserved > 0n
117
+ ? account.balance - account.reserved
118
+ : 0n;
119
+ if (typeof amount !== 'bigint' || amount < 0n) {
120
+ throw new Error('amount must be a non-negative bigint');
121
+ }
122
+ if (amount > available) {
123
+ throw new insufficientAvailableBalanceError_1.InsufficientAvailableBalanceError(assetId, amount, available);
124
+ }
125
+ account.reserved += amount;
126
+ account.lastUpdated = new Date();
127
+ }
128
+ const now = Date.now();
129
+ const handle = {
130
+ reservationId: globalThis.crypto.randomUUID(),
131
+ memberId,
132
+ assetId,
133
+ amount,
134
+ createdAt: new Date(now),
135
+ expiresAt: new Date(now + ttlMs),
136
+ };
137
+ this.reservations.set(handle.reservationId, handle);
138
+ return handle;
139
+ }
140
+ /**
141
+ * Settle `actualAmount` of a reservation: deduct from `balance`,
142
+ * increment `spent`, and return any remainder to the available balance.
143
+ * No ledger entry is emitted here — that is a Layer-2 concern.
144
+ */
145
+ settle(handle, actualAmount) {
146
+ const live = this.reservations.get(handle.reservationId);
147
+ if (!live) {
148
+ throw new reservationNotFoundError_1.ReservationNotFoundError(handle.reservationId);
149
+ }
150
+ if (live.expiresAt.getTime() <= Date.now()) {
151
+ this.reservations.delete(live.reservationId);
152
+ this.releaseHold(live);
153
+ throw new reservationExpiredError_1.ReservationExpiredError(live.reservationId, live.expiresAt);
154
+ }
155
+ if (typeof actualAmount !== 'bigint' || actualAmount < 0n) {
156
+ throw new Error('actualAmount must be a non-negative bigint');
157
+ }
158
+ if (actualAmount > live.amount) {
159
+ throw new Error(`Settlement amount ${actualAmount} exceeds reserved ${live.amount}.`);
160
+ }
161
+ const account = this.getForAsset(live.memberId, live.assetId);
162
+ if (!account) {
163
+ this.reservations.delete(live.reservationId);
164
+ throw new reservationNotFoundError_1.ReservationNotFoundError(live.reservationId, 'Account vanished between reserve and settle.');
165
+ }
166
+ // Move actualAmount from reserved → spent (deducted from balance).
167
+ account.reserved -= live.amount; // release the full hold
168
+ account.balance -= actualAmount;
169
+ account.spent += actualAmount;
170
+ account.lastUpdated = new Date();
171
+ this.reservations.delete(live.reservationId);
172
+ }
173
+ /**
174
+ * Release the full reservation back to the available balance with no
175
+ * spend recorded.
176
+ */
177
+ release(handle) {
178
+ const live = this.reservations.get(handle.reservationId);
179
+ if (!live) {
180
+ throw new reservationNotFoundError_1.ReservationNotFoundError(handle.reservationId);
181
+ }
182
+ this.releaseHold(live);
183
+ this.reservations.delete(live.reservationId);
184
+ }
185
+ releaseHold(handle) {
186
+ const account = this.getForAsset(handle.memberId, handle.assetId);
187
+ if (!account)
188
+ return;
189
+ account.reserved =
190
+ account.reserved > handle.amount ? account.reserved - handle.amount : 0n;
191
+ account.lastUpdated = new Date();
192
+ }
193
+ /**
194
+ * Reap any expired reservations belonging to `(memberId, assetId)`.
195
+ * Idempotent — re-running produces identical state.
196
+ */
197
+ reapExpiredFor(memberId, assetId) {
198
+ const now = Date.now();
199
+ for (const [id, h] of this.reservations) {
200
+ if (h.memberId.toHex() === memberId.toHex() &&
201
+ h.assetId === assetId &&
202
+ h.expiresAt.getTime() <= now) {
203
+ this.releaseHold(h);
204
+ this.reservations.delete(id);
205
+ }
206
+ }
207
+ }
208
+ /** Reap every expired reservation in the store. */
209
+ reapAllExpired() {
210
+ const now = Date.now();
211
+ let count = 0;
212
+ for (const [id, h] of this.reservations) {
213
+ if (h.expiresAt.getTime() <= now) {
214
+ this.releaseHold(h);
215
+ this.reservations.delete(id);
216
+ count++;
217
+ }
218
+ }
219
+ return count;
220
+ }
221
+ // ---------------------------------------------------------------------
222
+ // Aggregate helpers
223
+ // ---------------------------------------------------------------------
224
+ /**
225
+ * Sum the `balance` field across `accounts`. Throws
226
+ * {@link MixedAssetError} if the input contains more than one
227
+ * `assetId`.
228
+ */
229
+ static sumBalances(accounts) {
230
+ if (accounts.length === 0)
231
+ return 0n;
232
+ const ids = new Set();
233
+ let total = 0n;
234
+ for (const a of accounts) {
235
+ ids.add(a.assetId);
236
+ if (ids.size > 1) {
237
+ throw new mixedAssetError_1.MixedAssetError(Array.from(ids));
238
+ }
239
+ total += a.balance;
240
+ }
241
+ return total;
242
+ }
243
+ sumBalances(accounts) {
244
+ return AssetAccountStore.sumBalances(accounts);
245
+ }
246
+ // ---------------------------------------------------------------------
247
+ // Ledger attachment (Layer 3 hook)
248
+ // ---------------------------------------------------------------------
249
+ /**
250
+ * One-shot setter wiring this operational store to a Layer-3 ledger
251
+ * writer. Throws {@link LedgerAlreadyAttachedError} on second call so
252
+ * the system-of-record never silently switches mid-lifetime.
253
+ */
254
+ attachLedger(writer) {
255
+ if (this.ledger !== null) {
256
+ throw new ledgerAlreadyAttachedError_1.LedgerAlreadyAttachedError();
257
+ }
258
+ this.ledger = writer;
259
+ }
260
+ /**
261
+ * Returns the timestamp of the most recently settled batch for the
262
+ * supplied asset, or `null` if no ledger is attached. Never throws.
263
+ */
264
+ getLastSettledAt(assetId) {
265
+ if (this.ledger === null)
266
+ return null;
267
+ try {
268
+ return this.ledger.getLastSettledAt(assetId);
269
+ }
270
+ catch {
271
+ return null;
272
+ }
273
+ }
274
+ }
275
+ exports.AssetAccountStore = AssetAccountStore;
276
+ //# sourceMappingURL=assetAccountStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetAccountStore.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/stores/assetAccountStore.ts"],"names":[],"mappings":";;;AAAA,wDAAqD;AACrD,4DAAyD;AACzD,yGAAsG;AACtG,2FAAwF;AACxF,qEAAkE;AAClE,qFAAkF;AAClF,uFAAoF;AA4BpF;;;;;;;;GAQG;AACH,MAAa,iBAAiB;IAYA;IAX5B;;;OAGG;IACa,oBAAoB,GAClC,2GAA2G,CAAC;IAE3F,QAAQ,GAA+B,IAAI,GAAG,EAAE,CAAC;IACjD,YAAY,GAAoC,IAAI,GAAG,EAAE,CAAC;IACnE,MAAM,GAAyB,IAAI,CAAC;IAE9C,YAA4B,iBAAyB,+BAAc;QAAvC,mBAAc,GAAd,cAAc,CAAyB;QACjE,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,SAAS;IACT,wEAAwE;IAE9D,MAAM,CAAC,GAAG,CAAC,QAAkB,EAAE,OAAe;QACtD,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,OAAO,EAAE,CAAC;IAC3C,CAAC;IAED,wEAAwE;IACxE,wDAAwD;IACxD,wEAAwE;IAExE,GAAG,CAAC,QAAkB;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,QAAkB,EAAE,OAAsB;QAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,QAAkB;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,QAAkB;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC;IAED,wEAAwE;IACxE,kCAAkC;IAClC,wEAAwE;IAExE,WAAW,CAAC,QAAkB,EAAE,OAAe;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,WAAW,CACT,QAAkB,EAClB,OAAe,EACf,OAAsB;QAEtB,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,iCAAe,CACvB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAC1B,oBAAoB,OAAO,CAAC,OAAO,iCAAiC,OAAO,IAAI,CAChF,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,WAAW,CAAC,QAAkB,EAAE,OAAe;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,cAAc,CAAC,QAAkB,EAAE,OAAe;QAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,MAAM,GAAG,GAAoB,EAAE,CAAC;QAChC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,wEAAwE;IACxE,eAAe;IACf,wEAAwE;IAExE;;;;;OAKG;IACH,OAAO,CACL,QAAkB,EAClB,OAAe,EACf,MAAc,EACd,KAAa;QAEb,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,mDAAwB,CAChC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,EACxC,iCAAiC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,OAAO,IAAI,CAC/E,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,YAAY,2BAAY,EAAE,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,uDAAuD;QAClF,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,MAAM,SAAS,GACb,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,EAAE;gBACrC,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ;gBACpC,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,qEAAiC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC;YAC3B,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QACnC,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAuB;YACjC,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE;YAC7C,QAAQ;YACR,OAAO;YACP,MAAM;YACN,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC;YACxB,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;SACjC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAA0B,EAAE,YAAoB;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,mDAAwB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,IAAI,iDAAuB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,GAAG,EAAE,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,qBAAqB,YAAY,qBAAqB,IAAI,CAAC,MAAM,GAAG,CACrE,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,IAAI,mDAAwB,CAChC,IAAI,CAAC,aAAa,EAClB,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QAED,mEAAmE;QACnE,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,wBAAwB;QACzD,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC;QAChC,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC;QAC9B,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAEjC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,MAA0B;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,mDAAwB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAES,WAAW,CAAC,MAA0B;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,CAAC,QAAQ;YACd,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IACnC,CAAC;IAED;;;OAGG;IACO,cAAc,CAAC,QAAkB,EAAE,OAAe;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,IACE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,QAAQ,CAAC,KAAK,EAAE;gBACvC,CAAC,CAAC,OAAO,KAAK,OAAO;gBACrB,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,EAC5B,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,cAAc;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7B,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wEAAwE;IACxE,oBAAoB;IACpB,wEAAwE;IAExE;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,QAAkC;QACnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACnB,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,IAAI,iCAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC;QACrB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW,CAAC,QAAkC;QAC5C,OAAO,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,wEAAwE;IACxE,mCAAmC;IACnC,wEAAwE;IAExE;;;;OAIG;IACH,YAAY,CAAC,MAAqB;QAChC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,uDAA0B,EAAE,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,OAAe;QAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAnTD,8CAmTC"}
@@ -5,6 +5,7 @@ import { BlockSize } from '../enumerations/blockSize';
5
5
  import { BlockStoreOptions, BrightenResult, IBlockMetadata, RecoveryResult } from '../interfaces/storage/blockMetadata';
6
6
  import { IBlockStore } from '../interfaces/storage/blockStore';
7
7
  import { CBLMagnetComponents, CBLStorageResult, CBLWhiteningOptions } from '../interfaces/storage/cblWhitening';
8
+ import type { IHeadRegistry } from '../interfaces/storage/headRegistry';
8
9
  import { Checksum } from '../types/checksum';
9
10
  type BlockId = string | Checksum;
10
11
  export declare class MemoryBlockStoreAdapter implements IBlockStore {
@@ -39,6 +40,7 @@ export declare class MemoryBlockStoreAdapter implements IBlockStore {
39
40
  retrieveCBL(blockId1: Checksum | string, blockId2: Checksum | string, block1ParityIds?: string[], block2ParityIds?: string[]): Promise<Uint8Array>;
40
41
  parseCBLMagnetUrl(magnetUrl: string): CBLMagnetComponents;
41
42
  generateCBLMagnetUrl(blockId1: Checksum | string, blockId2: Checksum | string, blockSize: number, block1ParityIds?: string[], block2ParityIds?: string[], isEncrypted?: boolean): string;
43
+ createHeadRegistry(): IHeadRegistry;
42
44
  }
43
45
  export {};
44
46
  //# sourceMappingURL=blockStoreAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blockStoreAdapter.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/stores/blockStoreAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,KAAK,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAmBjC,qBAAa,uBAAwB,YAAW,WAAW;IACzD,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,mBAAmB,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;gBAE7B,MAAM,EAAE;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE;IAM/B,GAAG,CACd,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAOH,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC;IAI7C,OAAO,CAClB,KAAK,EAAE,YAAY,EACnB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAIH,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7C,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,eAAe,CAC1B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIf,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;IAI/D,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAKjD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAO1B,WAAW,CACtB,GAAG,EAAE,QAAQ,GAAG,MAAM,GACrB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAIpB,cAAc,CACzB,GAAG,EAAE,QAAQ,GAAG,MAAM,EACtB,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC;IAMH,oBAAoB,CAC/B,GAAG,EAAE,QAAQ,GAAG,MAAM,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIT,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI5D,YAAY,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI7D,oBAAoB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM9D,2BAA2B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIlD,wBAAwB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI/C,iBAAiB,CAC5B,GAAG,EAAE,QAAQ,GAAG,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAIH,iBAAiB,CAC5B,GAAG,EAAE,QAAQ,GAAG,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAMH,aAAa,CACxB,GAAG,EAAE,QAAQ,GAAG,MAAM,EACtB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,cAAc,CAAC;IAMb,qBAAqB,CAChC,OAAO,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC;IAIf,WAAW,CACtB,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAC3B,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,UAAU,CAAC;IASf,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB;IAIzD,oBAAoB,CACzB,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAC3B,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAC3B,SAAS,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,WAAW,CAAC,EAAE,OAAO,GACpB,MAAM;CAUV"}
1
+ {"version":3,"file":"blockStoreAdapter.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/stores/blockStoreAdapter.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,9 @@ class MemoryBlockStoreAdapter {
113
113
  generateCBLMagnetUrl(blockId1, blockId2, blockSize, block1ParityIds, block2ParityIds, isEncrypted) {
114
114
  return this.store.generateCBLMagnetUrl(blockId1, blockId2, blockSize, block1ParityIds, block2ParityIds, isEncrypted);
115
115
  }
116
+ createHeadRegistry() {
117
+ return this.store.createHeadRegistry();
118
+ }
116
119
  }
117
120
  exports.MemoryBlockStoreAdapter = MemoryBlockStoreAdapter;
118
121
  //# sourceMappingURL=blockStoreAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blockStoreAdapter.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/stores/blockStoreAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blockStoreAdapter.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/stores/blockStoreAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,57 +1,43 @@
1
1
  import { EnergyAccount } from '../energyAccount';
2
+ import { IAssetAccount } from '../interfaces/assetAccount';
2
3
  import { IEnergyAccountDto } from '../interfaces/energyAccount';
3
4
  import { ITypedCollection } from '../interfaces/storage/documentStore';
4
5
  import { Checksum } from '../types/checksum';
6
+ import { AssetAccountStore } from './assetAccountStore';
5
7
  /**
6
- * Store for energy accounts with optional typed-collection persistence.
8
+ * Energy-specific account store.
7
9
  *
8
- * When constructed without an ITypedCollection the store is purely in-memory
9
- * (backward-compatible with existing callers). When a typed collection is
10
- * provided (e.g. a Model<IEnergyAccountDto, EnergyAccount> from brightchain-db),
11
- * every write is mirrored to the backing store and `loadFromStore()` can
12
- * hydrate the in-memory map on startup.
10
+ * Extends {@link AssetAccountStore} with `defaultAssetId = 'joule'` and
11
+ * optional typed-collection persistence for startup hydration.
12
+ *
13
+ * When constructed without an {@link ITypedCollection} the store is purely
14
+ * in-memory (backward-compatible with existing callers). When a typed
15
+ * collection is provided (e.g. a Model from brightchain-db), every write is
16
+ * mirrored to the backing store and `loadFromStore()` can hydrate the
17
+ * in-memory map on startup.
13
18
  */
14
- export declare class EnergyAccountStore {
15
- private accounts;
19
+ export declare class EnergyAccountStore extends AssetAccountStore {
16
20
  private readonly typedCollection;
17
21
  constructor(typedCollection?: ITypedCollection<IEnergyAccountDto, EnergyAccount>);
18
22
  /**
19
- * Hydrate the in-memory map from the backing typed collection.
20
- * No-op when no collection is configured.
23
+ * Store the account in memory and persist to the backing collection.
24
+ *
25
+ * Overrides the synchronous parent method with an async variant so that
26
+ * callers can `await` the full write-through.
21
27
  */
22
- loadFromStore(): Promise<void>;
28
+ set(memberId: Checksum, account: IAssetAccount): Promise<void>;
23
29
  /**
24
- * Get account by member ID
25
- */
26
- get(memberId: Checksum): EnergyAccount | undefined;
27
- /**
28
- * Get or create account with trial credits
30
+ * Get or create account with trial credits.
29
31
  */
30
32
  getOrCreate(memberId: Checksum): Promise<EnergyAccount>;
31
33
  /**
32
- * Set account — writes to in-memory map and persists to typed collection
33
- * (if configured).
34
- */
35
- set(memberId: Checksum, account: EnergyAccount): Promise<void>;
36
- /**
37
- * Check if account exists
38
- */
39
- has(memberId: Checksum): boolean;
40
- /**
41
- * Delete account
34
+ * Hydrate the in-memory map from the backing typed collection.
35
+ * No-op when no collection is configured.
42
36
  */
43
- delete(memberId: Checksum): boolean;
37
+ loadFromStore(): Promise<void>;
44
38
  /**
45
- * Get all accounts
39
+ * Get all joule accounts.
46
40
  */
47
41
  getAll(): EnergyAccount[];
48
- /**
49
- * Get account count
50
- */
51
- get size(): number;
52
- /**
53
- * Clear all accounts
54
- */
55
- clear(): void;
56
42
  }
57
43
  //# sourceMappingURL=energyAccountStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"energyAccountStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/stores/energyAccountStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAGvB;gBAGP,eAAe,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,aAAa,CAAC;IAMtE;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAYpC;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS;IAKlD;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC;IAS7D;;;OAGG;IACG,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAapE;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAKhC;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAKnC;;OAEG;IACH,MAAM,IAAI,aAAa,EAAE;IAIzB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"energyAccountStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/stores/energyAccountStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAGvB;gBAGP,eAAe,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,aAAa,CAAC;IAMtE;;;;;OAKG;IACY,GAAG,CAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC;IAS7D;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAQpC;;OAEG;IACH,MAAM,IAAI,aAAa,EAAE;CAG1B"}
@@ -1,47 +1,42 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EnergyAccountStore = void 0;
4
- const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
4
+ const jouleConstants_1 = require("../asset/jouleConstants");
5
5
  const energyAccount_1 = require("../energyAccount");
6
+ const assetAccountStore_1 = require("./assetAccountStore");
6
7
  /**
7
- * Store for energy accounts with optional typed-collection persistence.
8
+ * Energy-specific account store.
8
9
  *
9
- * When constructed without an ITypedCollection the store is purely in-memory
10
- * (backward-compatible with existing callers). When a typed collection is
11
- * provided (e.g. a Model<IEnergyAccountDto, EnergyAccount> from brightchain-db),
12
- * every write is mirrored to the backing store and `loadFromStore()` can
13
- * hydrate the in-memory map on startup.
10
+ * Extends {@link AssetAccountStore} with `defaultAssetId = 'joule'` and
11
+ * optional typed-collection persistence for startup hydration.
12
+ *
13
+ * When constructed without an {@link ITypedCollection} the store is purely
14
+ * in-memory (backward-compatible with existing callers). When a typed
15
+ * collection is provided (e.g. a Model from brightchain-db), every write is
16
+ * mirrored to the backing store and `loadFromStore()` can hydrate the
17
+ * in-memory map on startup.
14
18
  */
15
- class EnergyAccountStore {
16
- accounts;
19
+ class EnergyAccountStore extends assetAccountStore_1.AssetAccountStore {
17
20
  typedCollection;
18
21
  constructor(typedCollection) {
19
- this.accounts = new Map();
22
+ super(jouleConstants_1.JOULE_ASSET_ID);
20
23
  this.typedCollection = typedCollection ?? null;
21
24
  }
22
25
  /**
23
- * Hydrate the in-memory map from the backing typed collection.
24
- * No-op when no collection is configured.
26
+ * Store the account in memory and persist to the backing collection.
27
+ *
28
+ * Overrides the synchronous parent method with an async variant so that
29
+ * callers can `await` the full write-through.
25
30
  */
26
- async loadFromStore() {
27
- if (!this.typedCollection)
28
- return;
29
- const docs = await this.typedCollection.find({}).toArray();
30
- for (const account of docs) {
31
- // The collection already hydrates — account is an EnergyAccount
32
- const key = account.memberId.toHex();
33
- this.accounts.set(key, account);
31
+ async set(memberId, account) {
32
+ super.set(memberId, account);
33
+ if (this.typedCollection) {
34
+ const key = memberId.toHex();
35
+ await this.typedCollection.replaceOne({ memberId: key }, account, { upsert: true });
34
36
  }
35
37
  }
36
38
  /**
37
- * Get account by member ID
38
- */
39
- get(memberId) {
40
- const key = (0, ecies_lib_1.uint8ArrayToHex)(memberId.toUint8Array());
41
- return this.accounts.get(key);
42
- }
43
- /**
44
- * Get or create account with trial credits
39
+ * Get or create account with trial credits.
45
40
  */
46
41
  async getOrCreate(memberId) {
47
42
  let account = this.get(memberId);
@@ -52,47 +47,22 @@ class EnergyAccountStore {
52
47
  return account;
53
48
  }
54
49
  /**
55
- * Set account — writes to in-memory map and persists to typed collection
56
- * (if configured).
50
+ * Hydrate the in-memory map from the backing typed collection.
51
+ * No-op when no collection is configured.
57
52
  */
58
- async set(memberId, account) {
59
- const key = (0, ecies_lib_1.uint8ArrayToHex)(memberId.toUint8Array());
60
- this.accounts.set(key, account);
61
- if (this.typedCollection) {
62
- await this.typedCollection.replaceOne({ memberId: key }, account, { upsert: true });
53
+ async loadFromStore() {
54
+ if (!this.typedCollection)
55
+ return;
56
+ const docs = await this.typedCollection.find({}).toArray();
57
+ for (const account of docs) {
58
+ super.set(account.memberId, account);
63
59
  }
64
60
  }
65
61
  /**
66
- * Check if account exists
67
- */
68
- has(memberId) {
69
- const key = (0, ecies_lib_1.uint8ArrayToHex)(memberId.toUint8Array());
70
- return this.accounts.has(key);
71
- }
72
- /**
73
- * Delete account
74
- */
75
- delete(memberId) {
76
- const key = (0, ecies_lib_1.uint8ArrayToHex)(memberId.toUint8Array());
77
- return this.accounts.delete(key);
78
- }
79
- /**
80
- * Get all accounts
62
+ * Get all joule accounts.
81
63
  */
82
64
  getAll() {
83
- return Array.from(this.accounts.values());
84
- }
85
- /**
86
- * Get account count
87
- */
88
- get size() {
89
- return this.accounts.size;
90
- }
91
- /**
92
- * Clear all accounts
93
- */
94
- clear() {
95
- this.accounts.clear();
65
+ return this.getAllForAsset(jouleConstants_1.JOULE_ASSET_ID);
96
66
  }
97
67
  }
98
68
  exports.EnergyAccountStore = EnergyAccountStore;
@@ -1 +1 @@
1
- {"version":3,"file":"energyAccountStore.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/stores/energyAccountStore.ts"],"names":[],"mappings":";;;AAAA,0DAAwE;AACxE,oDAAiD;AAKjD;;;;;;;;GAQG;AACH,MAAa,kBAAkB;IACrB,QAAQ,CAAgC;IAC/B,eAAe,CAGvB;IAET,YACE,eAAoE;QAEpE,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI,IAAI,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAE3D,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC3B,gEAAgE;YAChE,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAe,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,QAAkB;QACpB,MAAM,GAAG,GAAG,IAAA,2BAAe,EAAC,QAAQ,CAAC,YAAY,EAAE,CAAc,CAAC;QAClE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,QAAkB;QAClC,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,6BAAa,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,QAAkB,EAAE,OAAsB;QAClD,MAAM,GAAG,GAAG,IAAA,2BAAe,EAAC,QAAQ,CAAC,YAAY,EAAE,CAAc,CAAC;QAClE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CACnC,EAAE,QAAQ,EAAE,GAAG,EAAgC,EAC/C,OAAO,EACP,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,QAAkB;QACpB,MAAM,GAAG,GAAG,IAAA,2BAAe,EAAC,QAAQ,CAAC,YAAY,EAAE,CAAc,CAAC;QAClE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAkB;QACvB,MAAM,GAAG,GAAG,IAAA,2BAAe,EAAC,QAAQ,CAAC,YAAY,EAAE,CAAc,CAAC;QAClE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AAvGD,gDAuGC"}
1
+ {"version":3,"file":"energyAccountStore.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/stores/energyAccountStore.ts"],"names":[],"mappings":";;;AAAA,4DAAyD;AACzD,oDAAiD;AAKjD,2DAAwD;AAExD;;;;;;;;;;;GAWG;AACH,MAAa,kBAAmB,SAAQ,qCAAiB;IACtC,eAAe,CAGvB;IAET,YACE,eAAoE;QAEpE,KAAK,CAAC,+BAAc,CAAC,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI,IAAI,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACM,KAAK,CAAC,GAAG,CAChB,QAAkB,EAClB,OAAsB;QAEtB,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CACnC,EAAE,QAAQ,EAAE,GAAG,EAAgC,EAC/C,OAAwB,EACxB,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,QAAkB;QAClC,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAA8B,CAAC;QAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,6BAAa,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAClC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3D,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,cAAc,CAAC,+BAAc,CAAoB,CAAC;IAChE,CAAC;CACF;AAhED,gDAgEC"}
@@ -6,6 +6,7 @@ import { IFecService } from '../interfaces/services/fecService';
6
6
  import { BlockStoreOptions, BrightenResult, IBlockMetadata, RecoveryResult } from '../interfaces/storage/blockMetadata';
7
7
  import { IBlockStore } from '../interfaces/storage/blockStore';
8
8
  import { CBLMagnetComponents, CBLStorageResult, CBLWhiteningOptions } from '../interfaces/storage/cblWhitening';
9
+ import type { IHeadRegistry } from '../interfaces/storage/headRegistry';
9
10
  import { Checksum } from '../types/checksum';
10
11
  import { MemoryBlockMetadataStore } from './memoryBlockMetadataStore';
11
12
  /**
@@ -115,7 +116,9 @@ export declare class MemoryBlockStore implements IBlockStore {
115
116
  getRandomBlocks(count: number, blockSize: BlockSize): Promise<Checksum[]>;
116
117
  /**
117
118
  * Store raw data with a key (convenience method).
118
- * Uses the first supported block size for block creation.
119
+ * Picks the smallest supported block size that fits the data. Throws
120
+ * `StoreError(BlockValidationFailed)` when no configured size can hold
121
+ * the data.
119
122
  */
120
123
  put(key: Checksum | string, data: Uint8Array, options?: BlockStoreOptions): Promise<void>;
121
124
  /**
@@ -276,5 +279,17 @@ export declare class MemoryBlockStore implements IBlockStore {
276
279
  * @returns The magnet URL string
277
280
  */
278
281
  generateCBLMagnetUrl(blockId1: Checksum | string, blockId2: Checksum | string, blockSize: number, block1ParityIds?: string[], block2ParityIds?: string[], isEncrypted?: boolean): string;
282
+ createHeadRegistry(): IHeadRegistry;
283
+ /**
284
+ * List all block IDs in the store with optional cursor-based pagination.
285
+ */
286
+ listBlockIds(options?: {
287
+ limit?: number;
288
+ cursor?: string;
289
+ }): AsyncIterable<string>;
290
+ /**
291
+ * Get the total number of blocks in the store.
292
+ */
293
+ getBlockCount(): Promise<number>;
279
294
  }
280
295
  //# sourceMappingURL=memoryBlockStore.d.ts.map