@levrbet/shared 0.0.1

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 (488) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +92 -0
  3. package/bin/setup-prisma.js +44 -0
  4. package/dist/core/config/dotenv.d.ts +16 -0
  5. package/dist/core/config/dotenv.js +77 -0
  6. package/dist/core/config/dotenv.js.map +1 -0
  7. package/dist/core/config/index.d.ts +2 -0
  8. package/dist/core/config/index.js +19 -0
  9. package/dist/core/config/index.js.map +1 -0
  10. package/dist/core/config/urls.d.ts +55 -0
  11. package/dist/core/config/urls.js +61 -0
  12. package/dist/core/config/urls.js.map +1 -0
  13. package/dist/core/contracts/abis/LevrBaseMarket.d.ts +1009 -0
  14. package/dist/core/contracts/abis/LevrBaseMarket.js +976 -0
  15. package/dist/core/contracts/abis/LevrBaseMarket.js.map +1 -0
  16. package/dist/core/contracts/abis/LevrConfigProvider.d.ts +2671 -0
  17. package/dist/core/contracts/abis/LevrConfigProvider.js +2551 -0
  18. package/dist/core/contracts/abis/LevrConfigProvider.js.map +1 -0
  19. package/dist/core/contracts/abis/LevrFeeCollector.d.ts +259 -0
  20. package/dist/core/contracts/abis/LevrFeeCollector.js +143 -0
  21. package/dist/core/contracts/abis/LevrFeeCollector.js.map +1 -0
  22. package/dist/core/contracts/abis/LevrFulltimeMarket.d.ts +1050 -0
  23. package/dist/core/contracts/abis/LevrFulltimeMarket.js +462 -0
  24. package/dist/core/contracts/abis/LevrFulltimeMarket.js.map +1 -0
  25. package/dist/core/contracts/abis/LevrFundManager.d.ts +51 -0
  26. package/dist/core/contracts/abis/LevrFundManager.js +4 -0
  27. package/dist/core/contracts/abis/LevrFundManager.js.map +1 -0
  28. package/dist/core/contracts/abis/LevrLiquidationEngine.d.ts +244 -0
  29. package/dist/core/contracts/abis/LevrLiquidationEngine.js +231 -0
  30. package/dist/core/contracts/abis/LevrLiquidationEngine.js.map +1 -0
  31. package/dist/core/contracts/abis/LevrManager.d.ts +1281 -0
  32. package/dist/core/contracts/abis/LevrManager.js +1090 -0
  33. package/dist/core/contracts/abis/LevrManager.js.map +1 -0
  34. package/dist/core/contracts/abis/LevrMarketFeed.d.ts +902 -0
  35. package/dist/core/contracts/abis/LevrMarketFeed.js +775 -0
  36. package/dist/core/contracts/abis/LevrMarketFeed.js.map +1 -0
  37. package/dist/core/contracts/abis/LevrMarketMaker.d.ts +175 -0
  38. package/dist/core/contracts/abis/LevrMarketMaker.js +108 -0
  39. package/dist/core/contracts/abis/LevrMarketMaker.js.map +1 -0
  40. package/dist/core/contracts/abis/LevrMarketRiskSentinel.d.ts +682 -0
  41. package/dist/core/contracts/abis/LevrMarketRiskSentinel.js +323 -0
  42. package/dist/core/contracts/abis/LevrMarketRiskSentinel.js.map +1 -0
  43. package/dist/core/contracts/abis/LevrMarketRouter.d.ts +281 -0
  44. package/dist/core/contracts/abis/LevrMarketRouter.js +262 -0
  45. package/dist/core/contracts/abis/LevrMarketRouter.js.map +1 -0
  46. package/dist/core/contracts/abis/LevrMvpDepository.d.ts +766 -0
  47. package/dist/core/contracts/abis/LevrMvpDepository.js +396 -0
  48. package/dist/core/contracts/abis/LevrMvpDepository.js.map +1 -0
  49. package/dist/core/contracts/abis/LevrMvpRouter.d.ts +305 -0
  50. package/dist/core/contracts/abis/LevrMvpRouter.js +291 -0
  51. package/dist/core/contracts/abis/LevrMvpRouter.js.map +1 -0
  52. package/dist/core/contracts/abis/LevrMvpStaker.d.ts +746 -0
  53. package/dist/core/contracts/abis/LevrMvpStaker.js +386 -0
  54. package/dist/core/contracts/abis/LevrMvpStaker.js.map +1 -0
  55. package/dist/core/contracts/abis/LevrMvpToken.d.ts +341 -0
  56. package/dist/core/contracts/abis/LevrMvpToken.js +183 -0
  57. package/dist/core/contracts/abis/LevrMvpToken.js.map +1 -0
  58. package/dist/core/contracts/abis/LevrOrderbook.d.ts +471 -0
  59. package/dist/core/contracts/abis/LevrOrderbook.js +486 -0
  60. package/dist/core/contracts/abis/LevrOrderbook.js.map +1 -0
  61. package/dist/core/contracts/abis/LevrOrderbookLens.d.ts +167 -0
  62. package/dist/core/contracts/abis/LevrOrderbookLens.js +103 -0
  63. package/dist/core/contracts/abis/LevrOrderbookLens.js.map +1 -0
  64. package/dist/core/contracts/abis/LevrOverUnderMarket.d.ts +1054 -0
  65. package/dist/core/contracts/abis/LevrOverUnderMarket.js +463 -0
  66. package/dist/core/contracts/abis/LevrOverUnderMarket.js.map +1 -0
  67. package/dist/core/contracts/abis/LevrPythFeed.d.ts +225 -0
  68. package/dist/core/contracts/abis/LevrPythFeed.js +131 -0
  69. package/dist/core/contracts/abis/LevrPythFeed.js.map +1 -0
  70. package/dist/core/contracts/abis/LevrUtil.d.ts +485 -0
  71. package/dist/core/contracts/abis/LevrUtil.js +226 -0
  72. package/dist/core/contracts/abis/LevrUtil.js.map +1 -0
  73. package/dist/core/contracts/abis/Storage.d.ts +34 -0
  74. package/dist/core/contracts/abis/Storage.js +47 -0
  75. package/dist/core/contracts/abis/Storage.js.map +1 -0
  76. package/dist/core/contracts/abis/index.d.ts +12174 -0
  77. package/dist/core/contracts/abis/index.js +51 -0
  78. package/dist/core/contracts/abis/index.js.map +1 -0
  79. package/dist/core/contracts/addresses.d.ts +154 -0
  80. package/dist/core/contracts/addresses.js +160 -0
  81. package/dist/core/contracts/addresses.js.map +1 -0
  82. package/dist/core/contracts/chains.d.ts +4 -0
  83. package/dist/core/contracts/chains.js +14 -0
  84. package/dist/core/contracts/chains.js.map +1 -0
  85. package/dist/core/contracts/clients/index.d.ts +1 -0
  86. package/dist/core/contracts/clients/index.js +18 -0
  87. package/dist/core/contracts/clients/index.js.map +1 -0
  88. package/dist/core/contracts/clients/publicClients.d.ts +24 -0
  89. package/dist/core/contracts/clients/publicClients.js +123 -0
  90. package/dist/core/contracts/clients/publicClients.js.map +1 -0
  91. package/dist/core/contracts/constants.d.ts +15 -0
  92. package/dist/core/contracts/constants.js +30 -0
  93. package/dist/core/contracts/constants.js.map +1 -0
  94. package/dist/core/contracts/index.d.ts +6 -0
  95. package/dist/core/contracts/index.js +23 -0
  96. package/dist/core/contracts/index.js.map +1 -0
  97. package/dist/core/contracts/instances.d.ts +48 -0
  98. package/dist/core/contracts/instances.js +101 -0
  99. package/dist/core/contracts/instances.js.map +1 -0
  100. package/dist/core/index.d.ts +9 -0
  101. package/dist/core/index.js +26 -0
  102. package/dist/core/index.js.map +1 -0
  103. package/dist/core/indexers/envio.test.query.d.ts +5 -0
  104. package/dist/core/indexers/envio.test.query.js +32 -0
  105. package/dist/core/indexers/envio.test.query.js.map +1 -0
  106. package/dist/core/indexers/index.d.ts +1 -0
  107. package/dist/core/indexers/index.js +18 -0
  108. package/dist/core/indexers/index.js.map +1 -0
  109. package/dist/core/indexers/indexers.service.d.ts +19 -0
  110. package/dist/core/indexers/indexers.service.js +104 -0
  111. package/dist/core/indexers/indexers.service.js.map +1 -0
  112. package/dist/core/indexers/subsquid.test.query.d.ts +4 -0
  113. package/dist/core/indexers/subsquid.test.query.js +42 -0
  114. package/dist/core/indexers/subsquid.test.query.js.map +1 -0
  115. package/dist/core/prisma/index.d.ts +1 -0
  116. package/dist/core/prisma/index.js +21 -0
  117. package/dist/core/prisma/index.js.map +1 -0
  118. package/dist/core/prisma/schema.prisma +360 -0
  119. package/dist/core/privy/constants.d.ts +19 -0
  120. package/dist/core/privy/constants.js +28 -0
  121. package/dist/core/privy/constants.js.map +1 -0
  122. package/dist/core/privy/index.d.ts +1 -0
  123. package/dist/core/privy/index.js +18 -0
  124. package/dist/core/privy/index.js.map +1 -0
  125. package/dist/core/socket.io/events.d.ts +20 -0
  126. package/dist/core/socket.io/events.js +20 -0
  127. package/dist/core/socket.io/events.js.map +1 -0
  128. package/dist/core/socket.io/index.d.ts +2 -0
  129. package/dist/core/socket.io/index.js +19 -0
  130. package/dist/core/socket.io/index.js.map +1 -0
  131. package/dist/core/socket.io/rooms.d.ts +6 -0
  132. package/dist/core/socket.io/rooms.js +10 -0
  133. package/dist/core/socket.io/rooms.js.map +1 -0
  134. package/dist/core/types/auth/auth.types.d.ts +31 -0
  135. package/dist/core/types/auth/auth.types.js +15 -0
  136. package/dist/core/types/auth/auth.types.js.map +1 -0
  137. package/dist/core/types/auth/index.d.ts +2 -0
  138. package/dist/core/types/auth/index.js +19 -0
  139. package/dist/core/types/auth/index.js.map +1 -0
  140. package/dist/core/types/auth/request.types.d.ts +19 -0
  141. package/dist/core/types/auth/request.types.js +15 -0
  142. package/dist/core/types/auth/request.types.js.map +1 -0
  143. package/dist/core/types/blockchain/chains.types.d.ts +3 -0
  144. package/dist/core/types/blockchain/chains.types.js +8 -0
  145. package/dist/core/types/blockchain/chains.types.js.map +1 -0
  146. package/dist/core/types/blockchain/contract.types.d.ts +8 -0
  147. package/dist/core/types/blockchain/contract.types.js +13 -0
  148. package/dist/core/types/blockchain/contract.types.js.map +1 -0
  149. package/dist/core/types/blockchain/index.d.ts +3 -0
  150. package/dist/core/types/blockchain/index.js +20 -0
  151. package/dist/core/types/blockchain/index.js.map +1 -0
  152. package/dist/core/types/blockchain/oz.relayer.types.d.ts +7 -0
  153. package/dist/core/types/blockchain/oz.relayer.types.js +13 -0
  154. package/dist/core/types/blockchain/oz.relayer.types.js.map +1 -0
  155. package/dist/core/types/index.d.ts +6 -0
  156. package/dist/core/types/index.js +23 -0
  157. package/dist/core/types/index.js.map +1 -0
  158. package/dist/core/types/indexers.types.d.ts +4 -0
  159. package/dist/core/types/indexers.types.js +9 -0
  160. package/dist/core/types/indexers.types.js.map +1 -0
  161. package/dist/core/types/misc.types.d.ts +6 -0
  162. package/dist/core/types/misc.types.js +11 -0
  163. package/dist/core/types/misc.types.js.map +1 -0
  164. package/dist/core/types/oracle/fixture.types.d.ts +75 -0
  165. package/dist/core/types/oracle/fixture.types.js +4 -0
  166. package/dist/core/types/oracle/fixture.types.js.map +1 -0
  167. package/dist/core/types/oracle/game/game.types.d.ts +108 -0
  168. package/dist/core/types/oracle/game/game.types.js +64 -0
  169. package/dist/core/types/oracle/game/game.types.js.map +1 -0
  170. package/dist/core/types/oracle/game/index.d.ts +2 -0
  171. package/dist/core/types/oracle/game/index.js +19 -0
  172. package/dist/core/types/oracle/game/index.js.map +1 -0
  173. package/dist/core/types/oracle/game/zod.game.types.d.ts +31 -0
  174. package/dist/core/types/oracle/game/zod.game.types.js +22 -0
  175. package/dist/core/types/oracle/game/zod.game.types.js.map +1 -0
  176. package/dist/core/types/oracle/index.d.ts +4 -0
  177. package/dist/core/types/oracle/index.js +21 -0
  178. package/dist/core/types/oracle/index.js.map +1 -0
  179. package/dist/core/types/oracle/market/index.d.ts +3 -0
  180. package/dist/core/types/oracle/market/index.js +20 -0
  181. package/dist/core/types/oracle/market/index.js.map +1 -0
  182. package/dist/core/types/oracle/market/markets.types.d.ts +95 -0
  183. package/dist/core/types/oracle/market/markets.types.js +35 -0
  184. package/dist/core/types/oracle/market/markets.types.js.map +1 -0
  185. package/dist/core/types/oracle/market/odds.types.d.ts +14 -0
  186. package/dist/core/types/oracle/market/odds.types.js +3 -0
  187. package/dist/core/types/oracle/market/odds.types.js.map +1 -0
  188. package/dist/core/types/oracle/market/positions.types.d.ts +57 -0
  189. package/dist/core/types/oracle/market/positions.types.js +3 -0
  190. package/dist/core/types/oracle/market/positions.types.js.map +1 -0
  191. package/dist/core/types/oracle/requests/game.request.types.d.ts +170 -0
  192. package/dist/core/types/oracle/requests/game.request.types.js +126 -0
  193. package/dist/core/types/oracle/requests/game.request.types.js.map +1 -0
  194. package/dist/core/types/oracle/requests/game.response.types.d.ts +8 -0
  195. package/dist/core/types/oracle/requests/game.response.types.js +3 -0
  196. package/dist/core/types/oracle/requests/game.response.types.js.map +1 -0
  197. package/dist/core/types/oracle/requests/index.d.ts +5 -0
  198. package/dist/core/types/oracle/requests/index.js +22 -0
  199. package/dist/core/types/oracle/requests/index.js.map +1 -0
  200. package/dist/core/types/oracle/requests/market.request.types.d.ts +63 -0
  201. package/dist/core/types/oracle/requests/market.request.types.js +41 -0
  202. package/dist/core/types/oracle/requests/market.request.types.js.map +1 -0
  203. package/dist/core/types/oracle/requests/odds.response.types.d.ts +2 -0
  204. package/dist/core/types/oracle/requests/odds.response.types.js +3 -0
  205. package/dist/core/types/oracle/requests/odds.response.types.js.map +1 -0
  206. package/dist/core/types/oracle/requests/user.request.type.d.ts +4 -0
  207. package/dist/core/types/oracle/requests/user.request.type.js +3 -0
  208. package/dist/core/types/oracle/requests/user.request.type.js.map +1 -0
  209. package/dist/core/types/privy.types.d.ts +4 -0
  210. package/dist/core/types/privy.types.js +9 -0
  211. package/dist/core/types/privy.types.js.map +1 -0
  212. package/dist/core/utils/converters.utils.d.ts +29 -0
  213. package/dist/core/utils/converters.utils.js +97 -0
  214. package/dist/core/utils/converters.utils.js.map +1 -0
  215. package/dist/core/utils/game.utils.d.ts +4 -0
  216. package/dist/core/utils/game.utils.js +79 -0
  217. package/dist/core/utils/game.utils.js.map +1 -0
  218. package/dist/core/utils/index.d.ts +4 -0
  219. package/dist/core/utils/index.js +21 -0
  220. package/dist/core/utils/index.js.map +1 -0
  221. package/dist/core/utils/misc.utils.d.ts +14 -0
  222. package/dist/core/utils/misc.utils.js +33 -0
  223. package/dist/core/utils/misc.utils.js.map +1 -0
  224. package/dist/core/utils/position.utils.d.ts +18 -0
  225. package/dist/core/utils/position.utils.js +68 -0
  226. package/dist/core/utils/position.utils.js.map +1 -0
  227. package/dist/core/validators/bytes.validators.d.ts +32 -0
  228. package/dist/core/validators/bytes.validators.js +47 -0
  229. package/dist/core/validators/bytes.validators.js.map +1 -0
  230. package/dist/core/validators/index.d.ts +2 -0
  231. package/dist/core/validators/index.js +19 -0
  232. package/dist/core/validators/index.js.map +1 -0
  233. package/dist/core/validators/mongo.validators.d.ts +2 -0
  234. package/dist/core/validators/mongo.validators.js +10 -0
  235. package/dist/core/validators/mongo.validators.js.map +1 -0
  236. package/dist/index.d.ts +1 -0
  237. package/dist/index.js +23 -0
  238. package/dist/index.js.map +1 -0
  239. package/dist/react/hooks/auth/index.d.ts +1 -0
  240. package/dist/react/hooks/auth/index.js +18 -0
  241. package/dist/react/hooks/auth/index.js.map +1 -0
  242. package/dist/react/hooks/auth/useAuthHeaders.d.ts +45 -0
  243. package/dist/react/hooks/auth/useAuthHeaders.js +58 -0
  244. package/dist/react/hooks/auth/useAuthHeaders.js.map +1 -0
  245. package/dist/react/hooks/contracts/erc20/index.d.ts +6 -0
  246. package/dist/react/hooks/contracts/erc20/index.js +23 -0
  247. package/dist/react/hooks/contracts/erc20/index.js.map +1 -0
  248. package/dist/react/hooks/contracts/erc20/useApproveErc20.d.ts +13 -0
  249. package/dist/react/hooks/contracts/erc20/useApproveErc20.js +28 -0
  250. package/dist/react/hooks/contracts/erc20/useApproveErc20.js.map +1 -0
  251. package/dist/react/hooks/contracts/erc20/useErc20Allowance.d.ts +10 -0
  252. package/dist/react/hooks/contracts/erc20/useErc20Allowance.js +34 -0
  253. package/dist/react/hooks/contracts/erc20/useErc20Allowance.js.map +1 -0
  254. package/dist/react/hooks/contracts/erc20/useErc20Balance.d.ts +22 -0
  255. package/dist/react/hooks/contracts/erc20/useErc20Balance.js +95 -0
  256. package/dist/react/hooks/contracts/erc20/useErc20Balance.js.map +1 -0
  257. package/dist/react/hooks/contracts/erc20/useErc20Decimals.d.ts +8 -0
  258. package/dist/react/hooks/contracts/erc20/useErc20Decimals.js +28 -0
  259. package/dist/react/hooks/contracts/erc20/useErc20Decimals.js.map +1 -0
  260. package/dist/react/hooks/contracts/erc20/useErc20Symbol.d.ts +8 -0
  261. package/dist/react/hooks/contracts/erc20/useErc20Symbol.js +28 -0
  262. package/dist/react/hooks/contracts/erc20/useErc20Symbol.js.map +1 -0
  263. package/dist/react/hooks/contracts/erc20/useTransferErc20.d.ts +13 -0
  264. package/dist/react/hooks/contracts/erc20/useTransferErc20.js +31 -0
  265. package/dist/react/hooks/contracts/erc20/useTransferErc20.js.map +1 -0
  266. package/dist/react/hooks/contracts/index.d.ts +3 -0
  267. package/dist/react/hooks/contracts/index.js +20 -0
  268. package/dist/react/hooks/contracts/index.js.map +1 -0
  269. package/dist/react/hooks/contracts/useContracts.d.ts +120 -0
  270. package/dist/react/hooks/contracts/useContracts.js +81 -0
  271. package/dist/react/hooks/contracts/useContracts.js.map +1 -0
  272. package/dist/react/hooks/contracts/useLevrMarketContractAddresses.d.ts +3 -0
  273. package/dist/react/hooks/contracts/useLevrMarketContractAddresses.js +27 -0
  274. package/dist/react/hooks/contracts/useLevrMarketContractAddresses.js.map +1 -0
  275. package/dist/react/hooks/index.d.ts +2 -0
  276. package/dist/react/hooks/index.js +19 -0
  277. package/dist/react/hooks/index.js.map +1 -0
  278. package/dist/react/index.d.ts +6 -0
  279. package/dist/react/index.js +23 -0
  280. package/dist/react/index.js.map +1 -0
  281. package/dist/react/injectedDependencies.d.ts +78 -0
  282. package/dist/react/injectedDependencies.js +94 -0
  283. package/dist/react/injectedDependencies.js.map +1 -0
  284. package/dist/react/queryClient.d.ts +9 -0
  285. package/dist/react/queryClient.js +13 -0
  286. package/dist/react/queryClient.js.map +1 -0
  287. package/dist/react/queryKeys.d.ts +17 -0
  288. package/dist/react/queryKeys.js +23 -0
  289. package/dist/react/queryKeys.js.map +1 -0
  290. package/dist/react/types/contracts.types.d.ts +4 -0
  291. package/dist/react/types/contracts.types.js +3 -0
  292. package/dist/react/types/contracts.types.js.map +1 -0
  293. package/dist/react/types/index.d.ts +1 -0
  294. package/dist/react/types/index.js +18 -0
  295. package/dist/react/types/index.js.map +1 -0
  296. package/dist/server/config/cloudflare.d.ts +30 -0
  297. package/dist/server/config/cloudflare.js +45 -0
  298. package/dist/server/config/cloudflare.js.map +1 -0
  299. package/dist/server/config/constants.d.ts +1 -0
  300. package/dist/server/config/constants.js +7 -0
  301. package/dist/server/config/constants.js.map +1 -0
  302. package/dist/server/config/dotenv.d.ts +35 -0
  303. package/dist/server/config/dotenv.js +42 -0
  304. package/dist/server/config/dotenv.js.map +1 -0
  305. package/dist/server/config/index.d.ts +9 -0
  306. package/dist/server/config/index.js +31 -0
  307. package/dist/server/config/index.js.map +1 -0
  308. package/dist/server/config/kms.d.ts +22 -0
  309. package/dist/server/config/kms.js +54 -0
  310. package/dist/server/config/kms.js.map +1 -0
  311. package/dist/server/config/prisma.d.ts +20 -0
  312. package/dist/server/config/prisma.js +40 -0
  313. package/dist/server/config/prisma.js.map +1 -0
  314. package/dist/server/config/redis.d.ts +57 -0
  315. package/dist/server/config/redis.js +121 -0
  316. package/dist/server/config/redis.js.map +1 -0
  317. package/dist/server/config/urls.d.ts +49 -0
  318. package/dist/server/config/urls.js +7 -0
  319. package/dist/server/config/urls.js.map +1 -0
  320. package/dist/server/config/winston.d.ts +3 -0
  321. package/dist/server/config/winston.js +14 -0
  322. package/dist/server/config/winston.js.map +1 -0
  323. package/dist/server/contracts/clients/index.d.ts +1 -0
  324. package/dist/server/contracts/clients/index.js +18 -0
  325. package/dist/server/contracts/clients/index.js.map +1 -0
  326. package/dist/server/contracts/clients/ozRelayerService.d.ts +18 -0
  327. package/dist/server/contracts/clients/ozRelayerService.js +167 -0
  328. package/dist/server/contracts/clients/ozRelayerService.js.map +1 -0
  329. package/dist/server/contracts/index.d.ts +2 -0
  330. package/dist/server/contracts/index.js +19 -0
  331. package/dist/server/contracts/index.js.map +1 -0
  332. package/dist/server/contracts/instances.d.ts +20 -0
  333. package/dist/server/contracts/instances.js +28 -0
  334. package/dist/server/contracts/instances.js.map +1 -0
  335. package/dist/server/index.d.ts +11 -0
  336. package/dist/server/index.js +36 -0
  337. package/dist/server/index.js.map +1 -0
  338. package/dist/server/instrumentation.d.ts +9 -0
  339. package/dist/server/instrumentation.js +37 -0
  340. package/dist/server/instrumentation.js.map +1 -0
  341. package/dist/server/liquidation-engine/index.d.ts +3 -0
  342. package/dist/server/liquidation-engine/index.js +20 -0
  343. package/dist/server/liquidation-engine/index.js.map +1 -0
  344. package/dist/server/liquidation-engine/redis.cache.manager/cache.keys.util.d.ts +10 -0
  345. package/dist/server/liquidation-engine/redis.cache.manager/cache.keys.util.js +15 -0
  346. package/dist/server/liquidation-engine/redis.cache.manager/cache.keys.util.js.map +1 -0
  347. package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.d.ts +124 -0
  348. package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.js +242 -0
  349. package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.js.map +1 -0
  350. package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.test.d.ts +1 -0
  351. package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.test.js +115 -0
  352. package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.test.js.map +1 -0
  353. package/dist/server/liquidation-engine/types/index.d.ts +1 -0
  354. package/dist/server/liquidation-engine/types/index.js +3 -0
  355. package/dist/server/liquidation-engine/types/index.js.map +1 -0
  356. package/dist/server/middleware/auth/cloudflare.handler.d.ts +6 -0
  357. package/dist/server/middleware/auth/cloudflare.handler.js +37 -0
  358. package/dist/server/middleware/auth/cloudflare.handler.js.map +1 -0
  359. package/dist/server/middleware/auth/hmac.handler.d.ts +11 -0
  360. package/dist/server/middleware/auth/hmac.handler.js +157 -0
  361. package/dist/server/middleware/auth/hmac.handler.js.map +1 -0
  362. package/dist/server/middleware/auth/index.d.ts +3 -0
  363. package/dist/server/middleware/auth/index.js +20 -0
  364. package/dist/server/middleware/auth/index.js.map +1 -0
  365. package/dist/server/middleware/auth/privy.handler.d.ts +7 -0
  366. package/dist/server/middleware/auth/privy.handler.js +31 -0
  367. package/dist/server/middleware/auth/privy.handler.js.map +1 -0
  368. package/dist/server/middleware/index.d.ts +2 -0
  369. package/dist/server/middleware/index.js +19 -0
  370. package/dist/server/middleware/index.js.map +1 -0
  371. package/dist/server/middleware/multiAuth.examples.d.ts +46 -0
  372. package/dist/server/middleware/multiAuth.examples.js +123 -0
  373. package/dist/server/middleware/multiAuth.examples.js.map +1 -0
  374. package/dist/server/middleware/multiAuth.middleware.d.ts +30 -0
  375. package/dist/server/middleware/multiAuth.middleware.js +90 -0
  376. package/dist/server/middleware/multiAuth.middleware.js.map +1 -0
  377. package/dist/server/middleware/rateLimit.middleware.d.ts +1 -0
  378. package/dist/server/middleware/rateLimit.middleware.js +19 -0
  379. package/dist/server/middleware/rateLimit.middleware.js.map +1 -0
  380. package/dist/server/oracle/index.d.ts +3 -0
  381. package/dist/server/oracle/index.js +20 -0
  382. package/dist/server/oracle/index.js.map +1 -0
  383. package/dist/server/oracle/redis-cache-manager/cache.keys.utils.d.ts +90 -0
  384. package/dist/server/oracle/redis-cache-manager/cache.keys.utils.js +147 -0
  385. package/dist/server/oracle/redis-cache-manager/cache.keys.utils.js.map +1 -0
  386. package/dist/server/oracle/redis-cache-manager/channels.d.ts +2 -0
  387. package/dist/server/oracle/redis-cache-manager/channels.js +11 -0
  388. package/dist/server/oracle/redis-cache-manager/channels.js.map +1 -0
  389. package/dist/server/oracle/redis-cache-manager/game.cache.service.d.ts +184 -0
  390. package/dist/server/oracle/redis-cache-manager/game.cache.service.js +698 -0
  391. package/dist/server/oracle/redis-cache-manager/game.cache.service.js.map +1 -0
  392. package/dist/server/oracle/redis-cache-manager/index.d.ts +4 -0
  393. package/dist/server/oracle/redis-cache-manager/index.js +21 -0
  394. package/dist/server/oracle/redis-cache-manager/index.js.map +1 -0
  395. package/dist/server/oracle/redis-cache-manager/market.cache.service.d.ts +115 -0
  396. package/dist/server/oracle/redis-cache-manager/market.cache.service.js +279 -0
  397. package/dist/server/oracle/redis-cache-manager/market.cache.service.js.map +1 -0
  398. package/dist/server/oracle/rmq-manager/base.queue.manager.d.ts +21 -0
  399. package/dist/server/oracle/rmq-manager/base.queue.manager.js +128 -0
  400. package/dist/server/oracle/rmq-manager/base.queue.manager.js.map +1 -0
  401. package/dist/server/oracle/rmq-manager/index.d.ts +2 -0
  402. package/dist/server/oracle/rmq-manager/index.js +19 -0
  403. package/dist/server/oracle/rmq-manager/index.js.map +1 -0
  404. package/dist/server/oracle/rmq-manager/queue.configs.d.ts +5 -0
  405. package/dist/server/oracle/rmq-manager/queue.configs.js +38 -0
  406. package/dist/server/oracle/rmq-manager/queue.configs.js.map +1 -0
  407. package/dist/server/oracle/types/index.d.ts +2 -0
  408. package/dist/server/oracle/types/index.js +19 -0
  409. package/dist/server/oracle/types/index.js.map +1 -0
  410. package/dist/server/oracle/types/providers/index.d.ts +4 -0
  411. package/dist/server/oracle/types/providers/index.js +21 -0
  412. package/dist/server/oracle/types/providers/index.js.map +1 -0
  413. package/dist/server/oracle/types/providers/lsports.types.d.ts +148 -0
  414. package/dist/server/oracle/types/providers/lsports.types.js +13 -0
  415. package/dist/server/oracle/types/providers/lsports.types.js.map +1 -0
  416. package/dist/server/oracle/types/providers/optic.odds.types.d.ts +293 -0
  417. package/dist/server/oracle/types/providers/optic.odds.types.js +140 -0
  418. package/dist/server/oracle/types/providers/optic.odds.types.js.map +1 -0
  419. package/dist/server/oracle/types/providers/providers.types.d.ts +5 -0
  420. package/dist/server/oracle/types/providers/providers.types.js +10 -0
  421. package/dist/server/oracle/types/providers/providers.types.js.map +1 -0
  422. package/dist/server/oracle/types/providers/rundown.types.d.ts +194 -0
  423. package/dist/server/oracle/types/providers/rundown.types.js +22 -0
  424. package/dist/server/oracle/types/providers/rundown.types.js.map +1 -0
  425. package/dist/server/oracle/types/queue/index.d.ts +2 -0
  426. package/dist/server/oracle/types/queue/index.js +19 -0
  427. package/dist/server/oracle/types/queue/index.js.map +1 -0
  428. package/dist/server/oracle/types/queue/queue.constant.d.ts +10 -0
  429. package/dist/server/oracle/types/queue/queue.constant.js +14 -0
  430. package/dist/server/oracle/types/queue/queue.constant.js.map +1 -0
  431. package/dist/server/oracle/types/queue/queue.types.d.ts +5 -0
  432. package/dist/server/oracle/types/queue/queue.types.js +3 -0
  433. package/dist/server/oracle/types/queue/queue.types.js.map +1 -0
  434. package/dist/server/prisma/index.d.ts +2 -0
  435. package/dist/server/prisma/index.js +24 -0
  436. package/dist/server/prisma/index.js.map +1 -0
  437. package/dist/server/repositories/apiKey.repository.d.ts +7 -0
  438. package/dist/server/repositories/apiKey.repository.js +19 -0
  439. package/dist/server/repositories/apiKey.repository.js.map +1 -0
  440. package/dist/server/repositories/index.d.ts +1 -0
  441. package/dist/server/repositories/index.js +18 -0
  442. package/dist/server/repositories/index.js.map +1 -0
  443. package/dist/server/services/cloudflare.service.d.ts +12 -0
  444. package/dist/server/services/cloudflare.service.js +24 -0
  445. package/dist/server/services/cloudflare.service.js.map +1 -0
  446. package/dist/server/services/crypto.service.d.ts +17 -0
  447. package/dist/server/services/crypto.service.js +50 -0
  448. package/dist/server/services/crypto.service.js.map +1 -0
  449. package/dist/server/services/hmac.service.d.ts +52 -0
  450. package/dist/server/services/hmac.service.js +115 -0
  451. package/dist/server/services/hmac.service.js.map +1 -0
  452. package/dist/server/services/index.d.ts +5 -0
  453. package/dist/server/services/index.js +22 -0
  454. package/dist/server/services/index.js.map +1 -0
  455. package/dist/server/services/presigned.urls.d.ts +11 -0
  456. package/dist/server/services/presigned.urls.js +41 -0
  457. package/dist/server/services/presigned.urls.js.map +1 -0
  458. package/dist/server/services/privy.service.d.ts +30 -0
  459. package/dist/server/services/privy.service.js +122 -0
  460. package/dist/server/services/privy.service.js.map +1 -0
  461. package/dist/server/test-relayers.d.ts +1 -0
  462. package/dist/server/test-relayers.js +17 -0
  463. package/dist/server/test-relayers.js.map +1 -0
  464. package/dist/server/types/auth.types.d.ts +8 -0
  465. package/dist/server/types/auth.types.js +3 -0
  466. package/dist/server/types/auth.types.js.map +1 -0
  467. package/dist/server/types/global.types.d.ts +35 -0
  468. package/dist/server/types/global.types.js +4 -0
  469. package/dist/server/types/global.types.js.map +1 -0
  470. package/dist/server/types/index.d.ts +2 -0
  471. package/dist/server/types/index.js +19 -0
  472. package/dist/server/types/index.js.map +1 -0
  473. package/dist/server/utils/express.utils.d.ts +24 -0
  474. package/dist/server/utils/express.utils.js +36 -0
  475. package/dist/server/utils/express.utils.js.map +1 -0
  476. package/dist/server/utils/index.d.ts +2 -0
  477. package/dist/server/utils/index.js +19 -0
  478. package/dist/server/utils/index.js.map +1 -0
  479. package/dist/server/utils/tracing/index.d.ts +2 -0
  480. package/dist/server/utils/tracing/index.js +19 -0
  481. package/dist/server/utils/tracing/index.js.map +1 -0
  482. package/dist/server/utils/tracing/trace.d.ts +12 -0
  483. package/dist/server/utils/tracing/trace.js +50 -0
  484. package/dist/server/utils/tracing/trace.js.map +1 -0
  485. package/dist/server/utils/tracing/wrap.module.with.tracing.d.ts +126 -0
  486. package/dist/server/utils/tracing/wrap.module.with.tracing.js +202 -0
  487. package/dist/server/utils/tracing/wrap.module.with.tracing.js.map +1 -0
  488. package/package.json +126 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game.cache.service.js","sourceRoot":"","sources":["../../../../src/server/oracle/redis-cache-manager/game.cache.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from "./cache.keys.utils";
2
+ export * from "./channels";
3
+ export * from "./game.cache.service";
4
+ export * from "./market.cache.service";
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./cache.keys.utils"), exports);
18
+ __exportStar(require("./channels"), exports);
19
+ __exportStar(require("./game.cache.service"), exports);
20
+ __exportStar(require("./market.cache.service"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/oracle/redis-cache-manager/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC;AAClC,6CAA0B;AAC1B,uDAAoC;AACpC,yDAAsC"}
@@ -0,0 +1,115 @@
1
+ import { Redis } from "ioredis";
2
+ import { type Market, MarketType, MarketWithRelations, type Odds } from "../../../core";
3
+ /**
4
+ * A collection of functions to manage market and odds data in Redis cache
5
+ * These functions handle operations like setting, getting, and invalidating market data and odds
6
+ */
7
+ /**
8
+ * Sets market data in Redis cache using hash structure
9
+ * @param redis - Redis client instance
10
+ * @param market - Market object to be cached
11
+ * @dev This function stores market data in a hash where the key is derived from the game unique identifier (gameUniqueIdentifier)
12
+ * and the field is the market type (e.g., Fulltime, Halftime).
13
+ * The market data is serialized to JSON format before being stored.
14
+ * This allows for efficient retrieval of market data by game and market type.
15
+ * @returns {Promise<void>} - Resolves when the operation is complete
16
+ */
17
+ export declare const setMarketDataCache: (redis: Redis, market: Market) => Promise<void>;
18
+ /**
19
+ * @dev this function sets only a map of game unique identifiers to their completed markets game unique identifiers
20
+ * FullTime:Completed => {"gameUniqueIdentifier1:Fulltime": gameUniqueIdentifier1, "gameUniqueIdentifier2:Fulltime", "gameUniqueIdentifier2"}
21
+ * by market type in Redis cache.
22
+ * It allows for efficient retrieval of completed markets by their game unique identifier and market type.
23
+ * Sets the completed markets keys and fields in Redis cache
24
+ * This enables efficient retrieval of completed markets by their game unique identifier and market type
25
+ * @param redis - Redis client instance
26
+ * @param gameUniqueIdentifier - Unique identifier for the game
27
+ * @param marketType - Type of market (e.g., Fulltime)
28
+ * @audit @dev might look into the field, seems this operations could be simpler
29
+ */
30
+ export declare const setCompletedMarketsKeysAndFields: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType) => Promise<void>;
31
+ /**
32
+ * Retrieves all completed markets for a specific market type
33
+ * @param redis - Redis client instance
34
+ * @param marketType - Type of market to retrieve
35
+ * @returns Array of game unique identifiers for completed markets
36
+ * @dev This function fetches all completed markets keys for a given market type
37
+ */
38
+ export declare const getCompletedMarketsKeys: (redis: Redis, marketType: MarketType) => Promise<string[]>;
39
+ /**
40
+ * Retrieves completed markets data for multiple games
41
+ * @param redis - Redis client instance
42
+ * @param gameUniqueIdentifiers - Array of game unique identifiers
43
+ * @param marketType - Type of market to retrieve
44
+ * @returns Array of Market objects or null if none found
45
+ */
46
+ export declare const getCompletedMarkets: (redis: Redis, marketType: MarketType) => Promise<Market[] | null>;
47
+ /**
48
+ * Removes completed markets keys and fields from Redis cache
49
+ * @param redis - Redis client instance
50
+ * @param gameUniqueIdentifier - Unique identifier for the game
51
+ * @param marketType - Type of market to remove
52
+ */
53
+ export declare const removeCompletedMarketsKeysAndFields: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType) => Promise<void>;
54
+ /**
55
+ * Retrieves market data from cache for a specific game and market type
56
+ * @param redis - Redis client instance
57
+ * @param gameUniqueIdentifier - Unique identifier for the game
58
+ * @param marketType - Type of market to retrieve
59
+ * @returns Market object or null if not found
60
+ */
61
+ export declare const getMarketDataCache: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType) => Promise<Market | null>;
62
+ /**
63
+ * Retrieves market data with associated odds for multiple games and market types
64
+ * @param redis - Redis client instance
65
+ * @param gameUniqueIdentifiers - Array of game unique identifiers
66
+ * @param marketTypes - Array of market types to retrieve
67
+ * @returns Map of game IDs to their markets with odds
68
+ */
69
+ export declare const getMarketDataCacheWithOdds: (redis: Redis, gameUniqueIdentifiers: string[], marketTypes: MarketType[]) => Promise<Map<string, MarketWithRelations[]> | null>;
70
+ /**
71
+ * Invalidates market data in cache for a specific game and market type
72
+ * @param redis - Redis client instance
73
+ * @param gameUniqueIdentifier - Unique identifier for the game
74
+ * @param marketType - Type of market to invalidate
75
+ */
76
+ export declare const invalidateMarketDataCache: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType) => Promise<void>;
77
+ /**
78
+ * Retrieves all odds from cache for a specific game and market type
79
+ * @param redis - Redis client instance
80
+ * @param gameUniqueIdentifier - Unique identifier for the game
81
+ * @param marketType - Type of market
82
+ * @returns Array of Odds objects
83
+ */
84
+ export declare const getOddsCache: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType) => Promise<Odds[]>;
85
+ /**
86
+ * Retrieves the latest odds from cache for a specific game and market type
87
+ * @param redis - Redis client instance
88
+ * @param gameUniqueIdentifier - Unique identifier for the game
89
+ * @param marketType - Type of market
90
+ * @returns Latest Odds object or null if not found
91
+ */
92
+ export declare const getLatestOddsCache: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType) => Promise<Odds | null>;
93
+ /**
94
+ * Synchronizes the market odds cache with the database
95
+ * @param redis - Redis client instance
96
+ * @param gameUniqueIdentifier - Unique identifier for the game
97
+ * @param marketType - Type of market
98
+ * @returns Boolean indicating success of synchronization
99
+ */
100
+ export declare const syncMarketOddsCache: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType) => Promise<boolean>;
101
+ /**
102
+ * Invalidates the market odds cache for a specific game and market
103
+ * @param redis - Redis client instance
104
+ * @param gameUniqueIdentifier - Unique identifier for the game
105
+ * @param marketType - Type of market
106
+ */
107
+ export declare const invalidateMarketOddsCache: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType) => Promise<void>;
108
+ /**
109
+ * Adds new odds to the cache for a specific game and market type
110
+ * @param redis - Redis client instance
111
+ * @param gameUniqueIdentifier - Unique identifier for the game
112
+ * @param marketType - Type of market
113
+ * @param odds - Array of new odds to add
114
+ */
115
+ export declare const addOddsCache: (redis: Redis, gameUniqueIdentifier: string, marketType: MarketType, odds: Odds[]) => Promise<void>;
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.addOddsCache = exports.invalidateMarketOddsCache = exports.syncMarketOddsCache = exports.getLatestOddsCache = exports.getOddsCache = exports.invalidateMarketDataCache = exports.getMarketDataCacheWithOdds = exports.getMarketDataCache = exports.removeCompletedMarketsKeysAndFields = exports.getCompletedMarkets = exports.getCompletedMarketsKeys = exports.setCompletedMarketsKeysAndFields = exports.setMarketDataCache = void 0;
7
+ const core_1 = require("../../../core");
8
+ const winston_1 = __importDefault(require("../../config/winston"));
9
+ const cache_keys_utils_1 = require("./cache.keys.utils");
10
+ /**
11
+ * A collection of functions to manage market and odds data in Redis cache
12
+ * These functions handle operations like setting, getting, and invalidating market data and odds
13
+ */
14
+ /**
15
+ * Sets market data in Redis cache using hash structure
16
+ * @param redis - Redis client instance
17
+ * @param market - Market object to be cached
18
+ * @dev This function stores market data in a hash where the key is derived from the game unique identifier (gameUniqueIdentifier)
19
+ * and the field is the market type (e.g., Fulltime, Halftime).
20
+ * The market data is serialized to JSON format before being stored.
21
+ * This allows for efficient retrieval of market data by game and market type.
22
+ * @returns {Promise<void>} - Resolves when the operation is complete
23
+ */
24
+ const setMarketDataCache = async (redis, market) => {
25
+ const key = (0, cache_keys_utils_1.getMarketOddsByGameUniqueIdKeyAndMarketType)(market.levrGameObjectId);
26
+ const field = market.marketType;
27
+ const success = (await redis.hset(key, field, JSON.stringify(market)));
28
+ if (success <= cache_keys_utils_1.RedisNumStates.failure) {
29
+ winston_1.default.error(`Failed to set market data cache for game ${market.objectId} and market type ${field}`);
30
+ }
31
+ };
32
+ exports.setMarketDataCache = setMarketDataCache;
33
+ /**
34
+ * @dev this function sets only a map of game unique identifiers to their completed markets game unique identifiers
35
+ * FullTime:Completed => {"gameUniqueIdentifier1:Fulltime": gameUniqueIdentifier1, "gameUniqueIdentifier2:Fulltime", "gameUniqueIdentifier2"}
36
+ * by market type in Redis cache.
37
+ * It allows for efficient retrieval of completed markets by their game unique identifier and market type.
38
+ * Sets the completed markets keys and fields in Redis cache
39
+ * This enables efficient retrieval of completed markets by their game unique identifier and market type
40
+ * @param redis - Redis client instance
41
+ * @param gameUniqueIdentifier - Unique identifier for the game
42
+ * @param marketType - Type of market (e.g., Fulltime)
43
+ * @audit @dev might look into the field, seems this operations could be simpler
44
+ */
45
+ const setCompletedMarketsKeysAndFields = async (redis, gameUniqueIdentifier, marketType) => {
46
+ const key = (0, cache_keys_utils_1.getCompletedMarketsKey)(marketType);
47
+ const field = (0, cache_keys_utils_1.getCompletedMarketsField)(gameUniqueIdentifier, marketType);
48
+ const success = (await redis.hset(key, field, gameUniqueIdentifier));
49
+ if (success > cache_keys_utils_1.RedisNumStates.failure) {
50
+ winston_1.default.error(`Failed to set completed markets key for game ${gameUniqueIdentifier} and market type ${marketType}`);
51
+ }
52
+ };
53
+ exports.setCompletedMarketsKeysAndFields = setCompletedMarketsKeysAndFields;
54
+ /**
55
+ * Retrieves all completed markets for a specific market type
56
+ * @param redis - Redis client instance
57
+ * @param marketType - Type of market to retrieve
58
+ * @returns Array of game unique identifiers for completed markets
59
+ * @dev This function fetches all completed markets keys for a given market type
60
+ */
61
+ const getCompletedMarketsKeys = async (redis, marketType) => {
62
+ const key = (0, cache_keys_utils_1.getCompletedMarketsKey)(marketType);
63
+ const completedMarketsFields = await redis.hgetall(key);
64
+ return Object.values(completedMarketsFields).filter((value) => value !== "null" && value !== "undefined");
65
+ };
66
+ exports.getCompletedMarketsKeys = getCompletedMarketsKeys;
67
+ /**
68
+ * Retrieves completed markets data for multiple games
69
+ * @param redis - Redis client instance
70
+ * @param gameUniqueIdentifiers - Array of game unique identifiers
71
+ * @param marketType - Type of market to retrieve
72
+ * @returns Array of Market objects or null if none found
73
+ */
74
+ const getCompletedMarkets = async (redis, marketType) => {
75
+ const pipeline = redis.pipeline();
76
+ const completedMarketFields = await (0, exports.getCompletedMarketsKeys)(redis, marketType);
77
+ completedMarketFields.forEach((identifier) => {
78
+ const key = (0, cache_keys_utils_1.getMarketOddsByGameUniqueIdKeyAndMarketType)(identifier);
79
+ pipeline.hget(key, marketType);
80
+ });
81
+ const values = await pipeline.exec();
82
+ if (!values || values.length === 0)
83
+ return null;
84
+ const completedMarkets = [];
85
+ values.forEach((data) => {
86
+ const [error, value] = data;
87
+ if (!error && value) {
88
+ const market = JSON.parse(value);
89
+ completedMarkets.push(market);
90
+ }
91
+ });
92
+ return completedMarkets;
93
+ };
94
+ exports.getCompletedMarkets = getCompletedMarkets;
95
+ /**
96
+ * Removes completed markets keys and fields from Redis cache
97
+ * @param redis - Redis client instance
98
+ * @param gameUniqueIdentifier - Unique identifier for the game
99
+ * @param marketType - Type of market to remove
100
+ */
101
+ const removeCompletedMarketsKeysAndFields = async (redis, gameUniqueIdentifier, marketType) => {
102
+ const key = (0, cache_keys_utils_1.getCompletedMarketsKey)(marketType);
103
+ const field = (0, cache_keys_utils_1.getCompletedMarketsField)(gameUniqueIdentifier, marketType);
104
+ const success = (await redis.hdel(key, field));
105
+ if (success > cache_keys_utils_1.RedisNumStates.success) {
106
+ winston_1.default.error(`Failed to remove completed markets key for game ${gameUniqueIdentifier} and market type ${marketType}`);
107
+ }
108
+ };
109
+ exports.removeCompletedMarketsKeysAndFields = removeCompletedMarketsKeysAndFields;
110
+ /**
111
+ * Retrieves market data from cache for a specific game and market type
112
+ * @param redis - Redis client instance
113
+ * @param gameUniqueIdentifier - Unique identifier for the game
114
+ * @param marketType - Type of market to retrieve
115
+ * @returns Market object or null if not found
116
+ */
117
+ const getMarketDataCache = async (redis, gameUniqueIdentifier, marketType) => {
118
+ const key = (0, cache_keys_utils_1.getMarketOddsByGameUniqueIdKeyAndMarketType)(gameUniqueIdentifier);
119
+ const value = await redis.hget(key, marketType);
120
+ if (!value)
121
+ return null;
122
+ return JSON.parse(value);
123
+ };
124
+ exports.getMarketDataCache = getMarketDataCache;
125
+ /**
126
+ * Retrieves market data with associated odds for multiple games and market types
127
+ * @param redis - Redis client instance
128
+ * @param gameUniqueIdentifiers - Array of game unique identifiers
129
+ * @param marketTypes - Array of market types to retrieve
130
+ * @returns Map of game IDs to their markets with odds
131
+ */
132
+ const getMarketDataCacheWithOdds = async (redis, gameUniqueIdentifiers, marketTypes) => {
133
+ const pipeline = redis.pipeline();
134
+ gameUniqueIdentifiers.forEach((gameUniqueIdentifier) => {
135
+ const key = (0, cache_keys_utils_1.getMarketOddsByGameUniqueIdKeyAndMarketType)(gameUniqueIdentifier);
136
+ marketTypes.forEach((marketType) => {
137
+ pipeline.hget(key, marketType);
138
+ });
139
+ });
140
+ const oddsKey = cache_keys_utils_1.gameToMarketOfOddsInCache;
141
+ const oddsFields = gameUniqueIdentifiers.flatMap((gameUniqueIdentifier) => marketTypes.map((marketType) => (0, cache_keys_utils_1.getMarketOddsField)(gameUniqueIdentifier, marketType)));
142
+ const marketOdds = await redis.hmget(oddsKey, ...oddsFields);
143
+ const values = await pipeline.exec();
144
+ if (!values || values.length === 0)
145
+ return null;
146
+ const marketsMap = new Map();
147
+ values.forEach((data, index) => {
148
+ const [error, value] = data;
149
+ if (!error && value) {
150
+ const market = JSON.parse(value);
151
+ const odds = marketOdds[index] ? JSON.parse(marketOdds[index]) : [];
152
+ const gameId = market.levrGameObjectId;
153
+ if (!marketsMap.has(gameId)) {
154
+ marketsMap.set(gameId, []);
155
+ }
156
+ marketsMap.get(gameId)?.push({ ...market, odds });
157
+ }
158
+ });
159
+ return marketsMap;
160
+ };
161
+ exports.getMarketDataCacheWithOdds = getMarketDataCacheWithOdds;
162
+ /**
163
+ * Invalidates market data in cache for a specific game and market type
164
+ * @param redis - Redis client instance
165
+ * @param gameUniqueIdentifier - Unique identifier for the game
166
+ * @param marketType - Type of market to invalidate
167
+ */
168
+ const invalidateMarketDataCache = async (redis, gameUniqueIdentifier, marketType) => {
169
+ const key = (0, cache_keys_utils_1.getMarketOddsByGameUniqueIdKeyAndMarketType)(gameUniqueIdentifier);
170
+ const success = (await redis.hdel(key, marketType));
171
+ if (success <= cache_keys_utils_1.RedisNumStates.failure) {
172
+ winston_1.default.error(`Failed to invalidate market data cache for game ${gameUniqueIdentifier} and market type ${marketType}`);
173
+ }
174
+ };
175
+ exports.invalidateMarketDataCache = invalidateMarketDataCache;
176
+ /**
177
+ * Retrieves all odds from cache for a specific game and market type
178
+ * @param redis - Redis client instance
179
+ * @param gameUniqueIdentifier - Unique identifier for the game
180
+ * @param marketType - Type of market
181
+ * @returns Array of Odds objects
182
+ */
183
+ const getOddsCache = async (redis, gameUniqueIdentifier, marketType) => {
184
+ const key = cache_keys_utils_1.gameToMarketOfOddsInCache;
185
+ const field = (0, cache_keys_utils_1.getMarketOddsField)(gameUniqueIdentifier, marketType);
186
+ const valueListJson = await redis.hget(key, field);
187
+ const odds = valueListJson ? JSON.parse(valueListJson) : [];
188
+ return odds;
189
+ };
190
+ exports.getOddsCache = getOddsCache;
191
+ /**
192
+ * Retrieves the latest odds from cache for a specific game and market type
193
+ * @param redis - Redis client instance
194
+ * @param gameUniqueIdentifier - Unique identifier for the game
195
+ * @param marketType - Type of market
196
+ * @returns Latest Odds object or null if not found
197
+ */
198
+ const getLatestOddsCache = async (redis, gameUniqueIdentifier, marketType) => {
199
+ try {
200
+ const key = cache_keys_utils_1.gameToMarketOfOddsInCache;
201
+ const field = (0, cache_keys_utils_1.getMarketOddsField)(gameUniqueIdentifier, marketType);
202
+ const valueList = await redis.hget(key, field);
203
+ const parsedList = valueList ? JSON.parse(valueList) : null;
204
+ const parseResult = parsedList ? core_1.OddsSchema.safeParse(parsedList[parsedList.length - 1]) : null;
205
+ return parseResult?.success ? parseResult.data : null;
206
+ }
207
+ catch (err) {
208
+ winston_1.default.error("error getting latest odds from cache", err);
209
+ return null;
210
+ }
211
+ };
212
+ exports.getLatestOddsCache = getLatestOddsCache;
213
+ /**
214
+ * Synchronizes the market odds cache with the database
215
+ * @param redis - Redis client instance
216
+ * @param gameUniqueIdentifier - Unique identifier for the game
217
+ * @param marketType - Type of market
218
+ * @returns Boolean indicating success of synchronization
219
+ */
220
+ const syncMarketOddsCache = async (redis, gameUniqueIdentifier, marketType) => {
221
+ const key = cache_keys_utils_1.marketOddsKey;
222
+ const field = (0, cache_keys_utils_1.getMarketOddsField)(gameUniqueIdentifier, marketType);
223
+ const marketOdds = await redis.hget(key, field);
224
+ if (!marketOdds)
225
+ return false;
226
+ try {
227
+ const data = JSON.parse(marketOdds);
228
+ winston_1.default.info(`${JSON.stringify(data)}, market odds data to be synced with database`);
229
+ return true;
230
+ }
231
+ catch (err) {
232
+ winston_1.default.error("error syncing market odds cache", err);
233
+ return false;
234
+ }
235
+ };
236
+ exports.syncMarketOddsCache = syncMarketOddsCache;
237
+ /**
238
+ * Invalidates the market odds cache for a specific game and market
239
+ * @param redis - Redis client instance
240
+ * @param gameUniqueIdentifier - Unique identifier for the game
241
+ * @param marketType - Type of market
242
+ */
243
+ const invalidateMarketOddsCache = async (redis, gameUniqueIdentifier, marketType) => {
244
+ const key = cache_keys_utils_1.marketOddsKey;
245
+ const field = (0, cache_keys_utils_1.getMarketOddsField)(gameUniqueIdentifier, marketType);
246
+ const success = (await redis.hdel(key, field));
247
+ if (success <= cache_keys_utils_1.RedisNumStates.failure) {
248
+ winston_1.default.error(`Failed to invalidate market odds cache for game ${gameUniqueIdentifier} and market type ${marketType}`);
249
+ }
250
+ };
251
+ exports.invalidateMarketOddsCache = invalidateMarketOddsCache;
252
+ /**
253
+ * Adds new odds to the cache for a specific game and market type
254
+ * @param redis - Redis client instance
255
+ * @param gameUniqueIdentifier - Unique identifier for the game
256
+ * @param marketType - Type of market
257
+ * @param odds - Array of new odds to add
258
+ */
259
+ const addOddsCache = async (redis, gameUniqueIdentifier, marketType, odds) => {
260
+ try {
261
+ const key = cache_keys_utils_1.gameToMarketOfOddsInCache;
262
+ const field = (0, cache_keys_utils_1.getMarketOddsField)(gameUniqueIdentifier, marketType);
263
+ const existingValue = await redis.hget(key, field);
264
+ //'{}'
265
+ const parsedOdds = existingValue ? JSON.parse(existingValue) : [];
266
+ for (const line of odds) {
267
+ parsedOdds.push(line);
268
+ }
269
+ const success = (await redis.hset(key, field, JSON.stringify(parsedOdds)));
270
+ if (success <= cache_keys_utils_1.RedisNumStates.failure) {
271
+ winston_1.default.error(`Failed to add odds to cache for game ${gameUniqueIdentifier} and market type ${marketType}`);
272
+ }
273
+ }
274
+ catch (err) {
275
+ winston_1.default.error("error adding odds to cache", err);
276
+ }
277
+ };
278
+ exports.addOddsCache = addOddsCache;
279
+ //# sourceMappingURL=market.cache.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.cache.service.js","sourceRoot":"","sources":["../../../../src/server/oracle/redis-cache-manager/market.cache.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Channel, ChannelModel } from "amqplib";
2
+ export interface QueueConfig {
3
+ queuePrefix: string;
4
+ exchange: string;
5
+ routingKeyPrefix: string;
6
+ deadLetterExchange: string;
7
+ className: string;
8
+ isLiquidationEngineQueue: boolean;
9
+ }
10
+ export declare class BaseQueueManager {
11
+ protected config: QueueConfig;
12
+ constructor(config: QueueConfig);
13
+ protected withChannel<T>(connection: ChannelModel, operation: (channel: Channel) => Promise<T>): Promise<T>;
14
+ protected handleError(functionName: string, error: unknown, message: string): void;
15
+ generateQueueName(identifier: string): string;
16
+ createQueue(connection: ChannelModel, identifier: string, exchangeIdentifier: string, isLiquidationEngineQueue?: boolean): Promise<void>;
17
+ addToQueue(connection: ChannelModel, identifier: string, exchangeIdentifier: string, data: unknown, priority?: number): Promise<boolean>;
18
+ deleteQueue(connection: ChannelModel, identifier: string): Promise<void>;
19
+ checkQueueExists(connection: ChannelModel, identifier: string): Promise<boolean>;
20
+ isQueueEmpty(connection: ChannelModel, identifier: string): Promise<boolean>;
21
+ }
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseQueueManager = void 0;
4
+ const config_1 = require("../../config");
5
+ class BaseQueueManager {
6
+ constructor(config) {
7
+ this.config = config;
8
+ }
9
+ async withChannel(connection, operation) {
10
+ const channel = await connection.createChannel();
11
+ const result = await operation(channel);
12
+ await channel.close();
13
+ return result;
14
+ }
15
+ handleError(functionName, error, message) {
16
+ if (error instanceof Error) {
17
+ config_1.logger.error(`${this.config.className} ${functionName} ${error}`);
18
+ }
19
+ else {
20
+ config_1.logger.error(`Unknown error: ${error}`);
21
+ config_1.logger.debug(`${message} ${this.config.className} ${functionName}`);
22
+ }
23
+ }
24
+ generateQueueName(identifier) {
25
+ // if (this.config.isLiquidationEngineQueue && !identifier.endsWith(this.liquidationEngineQueueSuffix)) {
26
+ // this.config.queuePrefix identifier += this.liquidationEngineQueueSuffix
27
+ // }
28
+ return this.config.queuePrefix + identifier;
29
+ }
30
+ async createQueue(connection, identifier, exchangeIdentifier, isLiquidationEngineQueue = false) {
31
+ try {
32
+ await this.withChannel(connection, async (channel) => {
33
+ const exchangeName = this.config.exchange;
34
+ await channel.assertExchange(exchangeName, "direct", { durable: true });
35
+ let queueArguments = {};
36
+ if (!isLiquidationEngineQueue) {
37
+ queueArguments = {
38
+ "x-group": exchangeIdentifier, // Enable queue grouping by setting the group ID
39
+ "x-single-active-consumer": true, // Ensure only one consumer is active at a time within the group
40
+ };
41
+ }
42
+ const queueName = this.generateQueueName(identifier);
43
+ config_1.logger.info({ queueName });
44
+ await channel.assertQueue(queueName, {
45
+ durable: true,
46
+ deadLetterExchange: this.config.deadLetterExchange,
47
+ maxPriority: 10,
48
+ arguments: queueArguments,
49
+ });
50
+ await channel.bindQueue(queueName, exchangeName, this.config.routingKeyPrefix + identifier);
51
+ config_1.logger.info(this.config.className, "createQueue", `Queue created: ${queueName}`);
52
+ });
53
+ }
54
+ catch (error) {
55
+ this.handleError("createQueue", error, "Failed to create queue");
56
+ }
57
+ }
58
+ async addToQueue(connection, identifier, exchangeIdentifier, data, priority = 5) {
59
+ try {
60
+ return await this.withChannel(connection, async (channel) => {
61
+ await this.createQueue(connection, identifier, exchangeIdentifier, this.config.isLiquidationEngineQueue);
62
+ config_1.logger.info("Message added to queue", this.config.queuePrefix + identifier, data);
63
+ const success = channel.publish(this.config.exchange, this.config.routingKeyPrefix + identifier, Buffer.from(JSON.stringify(data)), {
64
+ persistent: true,
65
+ priority,
66
+ timestamp: Date.now(),
67
+ contentType: "application/json",
68
+ });
69
+ if (success) {
70
+ config_1.logger.info(`Message published successfully: ${this.config.routingKeyPrefix + identifier}`, data);
71
+ }
72
+ return success;
73
+ });
74
+ }
75
+ catch (error) {
76
+ this.handleError("addToQueue", error, "Failed to add data to queue");
77
+ return false;
78
+ }
79
+ }
80
+ async deleteQueue(connection, identifier) {
81
+ if (!(await this.isQueueEmpty(connection, identifier)))
82
+ return;
83
+ try {
84
+ await this.withChannel(connection, async (channel) => {
85
+ const queueName = this.config.queuePrefix + identifier;
86
+ await channel.deleteQueue(queueName);
87
+ config_1.logger.info(this.config.className, "deleteQueue", `Queue deleted: ${queueName}`);
88
+ });
89
+ }
90
+ catch (error) {
91
+ this.handleError("deleteQueue", error, "Failed to delete queue");
92
+ }
93
+ }
94
+ async checkQueueExists(connection, identifier) {
95
+ try {
96
+ return await this.withChannel(connection, async (channel) => {
97
+ const queueInfo = await channel.checkQueue(this.config.queuePrefix + identifier);
98
+ return !!queueInfo;
99
+ });
100
+ }
101
+ catch (error) {
102
+ if (error instanceof Error && error.message.includes("NOT_FOUND")) {
103
+ config_1.logger.info(this.config.className, "checkQueueExists", `Queue does not exist: ${this.config.queuePrefix + identifier}`);
104
+ return false;
105
+ }
106
+ this.handleError("checkQueueExists", error, "Failed to check queue existence");
107
+ return false;
108
+ }
109
+ }
110
+ async isQueueEmpty(connection, identifier) {
111
+ try {
112
+ return await this.withChannel(connection, async (channel) => {
113
+ const queueInfo = await channel.checkQueue(this.config.queuePrefix + identifier);
114
+ return queueInfo.messageCount === 0;
115
+ });
116
+ }
117
+ catch (error) {
118
+ if (error instanceof Error && error.message.includes("NOT_FOUND")) {
119
+ config_1.logger.info(this.config.className, "isQueueEmpty", `Queue does not exist: ${this.config.queuePrefix + identifier}`);
120
+ return true;
121
+ }
122
+ this.handleError("isQueueEmpty", error, "Failed to check if queue is empty");
123
+ return false;
124
+ }
125
+ }
126
+ }
127
+ exports.BaseQueueManager = BaseQueueManager;
128
+ //# sourceMappingURL=base.queue.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.queue.manager.js","sourceRoot":"","sources":["../../../../src/server/oracle/rmq-manager/base.queue.manager.ts"],"names":[],"mappings":"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"}