@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.
- package/LICENSE +201 -0
- package/README.md +92 -0
- package/bin/setup-prisma.js +44 -0
- package/dist/core/config/dotenv.d.ts +16 -0
- package/dist/core/config/dotenv.js +77 -0
- package/dist/core/config/dotenv.js.map +1 -0
- package/dist/core/config/index.d.ts +2 -0
- package/dist/core/config/index.js +19 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/config/urls.d.ts +55 -0
- package/dist/core/config/urls.js +61 -0
- package/dist/core/config/urls.js.map +1 -0
- package/dist/core/contracts/abis/LevrBaseMarket.d.ts +1009 -0
- package/dist/core/contracts/abis/LevrBaseMarket.js +976 -0
- package/dist/core/contracts/abis/LevrBaseMarket.js.map +1 -0
- package/dist/core/contracts/abis/LevrConfigProvider.d.ts +2671 -0
- package/dist/core/contracts/abis/LevrConfigProvider.js +2551 -0
- package/dist/core/contracts/abis/LevrConfigProvider.js.map +1 -0
- package/dist/core/contracts/abis/LevrFeeCollector.d.ts +259 -0
- package/dist/core/contracts/abis/LevrFeeCollector.js +143 -0
- package/dist/core/contracts/abis/LevrFeeCollector.js.map +1 -0
- package/dist/core/contracts/abis/LevrFulltimeMarket.d.ts +1050 -0
- package/dist/core/contracts/abis/LevrFulltimeMarket.js +462 -0
- package/dist/core/contracts/abis/LevrFulltimeMarket.js.map +1 -0
- package/dist/core/contracts/abis/LevrFundManager.d.ts +51 -0
- package/dist/core/contracts/abis/LevrFundManager.js +4 -0
- package/dist/core/contracts/abis/LevrFundManager.js.map +1 -0
- package/dist/core/contracts/abis/LevrLiquidationEngine.d.ts +244 -0
- package/dist/core/contracts/abis/LevrLiquidationEngine.js +231 -0
- package/dist/core/contracts/abis/LevrLiquidationEngine.js.map +1 -0
- package/dist/core/contracts/abis/LevrManager.d.ts +1281 -0
- package/dist/core/contracts/abis/LevrManager.js +1090 -0
- package/dist/core/contracts/abis/LevrManager.js.map +1 -0
- package/dist/core/contracts/abis/LevrMarketFeed.d.ts +902 -0
- package/dist/core/contracts/abis/LevrMarketFeed.js +775 -0
- package/dist/core/contracts/abis/LevrMarketFeed.js.map +1 -0
- package/dist/core/contracts/abis/LevrMarketMaker.d.ts +175 -0
- package/dist/core/contracts/abis/LevrMarketMaker.js +108 -0
- package/dist/core/contracts/abis/LevrMarketMaker.js.map +1 -0
- package/dist/core/contracts/abis/LevrMarketRiskSentinel.d.ts +682 -0
- package/dist/core/contracts/abis/LevrMarketRiskSentinel.js +323 -0
- package/dist/core/contracts/abis/LevrMarketRiskSentinel.js.map +1 -0
- package/dist/core/contracts/abis/LevrMarketRouter.d.ts +281 -0
- package/dist/core/contracts/abis/LevrMarketRouter.js +262 -0
- package/dist/core/contracts/abis/LevrMarketRouter.js.map +1 -0
- package/dist/core/contracts/abis/LevrMvpDepository.d.ts +766 -0
- package/dist/core/contracts/abis/LevrMvpDepository.js +396 -0
- package/dist/core/contracts/abis/LevrMvpDepository.js.map +1 -0
- package/dist/core/contracts/abis/LevrMvpRouter.d.ts +305 -0
- package/dist/core/contracts/abis/LevrMvpRouter.js +291 -0
- package/dist/core/contracts/abis/LevrMvpRouter.js.map +1 -0
- package/dist/core/contracts/abis/LevrMvpStaker.d.ts +746 -0
- package/dist/core/contracts/abis/LevrMvpStaker.js +386 -0
- package/dist/core/contracts/abis/LevrMvpStaker.js.map +1 -0
- package/dist/core/contracts/abis/LevrMvpToken.d.ts +341 -0
- package/dist/core/contracts/abis/LevrMvpToken.js +183 -0
- package/dist/core/contracts/abis/LevrMvpToken.js.map +1 -0
- package/dist/core/contracts/abis/LevrOrderbook.d.ts +471 -0
- package/dist/core/contracts/abis/LevrOrderbook.js +486 -0
- package/dist/core/contracts/abis/LevrOrderbook.js.map +1 -0
- package/dist/core/contracts/abis/LevrOrderbookLens.d.ts +167 -0
- package/dist/core/contracts/abis/LevrOrderbookLens.js +103 -0
- package/dist/core/contracts/abis/LevrOrderbookLens.js.map +1 -0
- package/dist/core/contracts/abis/LevrOverUnderMarket.d.ts +1054 -0
- package/dist/core/contracts/abis/LevrOverUnderMarket.js +463 -0
- package/dist/core/contracts/abis/LevrOverUnderMarket.js.map +1 -0
- package/dist/core/contracts/abis/LevrPythFeed.d.ts +225 -0
- package/dist/core/contracts/abis/LevrPythFeed.js +131 -0
- package/dist/core/contracts/abis/LevrPythFeed.js.map +1 -0
- package/dist/core/contracts/abis/LevrUtil.d.ts +485 -0
- package/dist/core/contracts/abis/LevrUtil.js +226 -0
- package/dist/core/contracts/abis/LevrUtil.js.map +1 -0
- package/dist/core/contracts/abis/Storage.d.ts +34 -0
- package/dist/core/contracts/abis/Storage.js +47 -0
- package/dist/core/contracts/abis/Storage.js.map +1 -0
- package/dist/core/contracts/abis/index.d.ts +12174 -0
- package/dist/core/contracts/abis/index.js +51 -0
- package/dist/core/contracts/abis/index.js.map +1 -0
- package/dist/core/contracts/addresses.d.ts +154 -0
- package/dist/core/contracts/addresses.js +160 -0
- package/dist/core/contracts/addresses.js.map +1 -0
- package/dist/core/contracts/chains.d.ts +4 -0
- package/dist/core/contracts/chains.js +14 -0
- package/dist/core/contracts/chains.js.map +1 -0
- package/dist/core/contracts/clients/index.d.ts +1 -0
- package/dist/core/contracts/clients/index.js +18 -0
- package/dist/core/contracts/clients/index.js.map +1 -0
- package/dist/core/contracts/clients/publicClients.d.ts +24 -0
- package/dist/core/contracts/clients/publicClients.js +123 -0
- package/dist/core/contracts/clients/publicClients.js.map +1 -0
- package/dist/core/contracts/constants.d.ts +15 -0
- package/dist/core/contracts/constants.js +30 -0
- package/dist/core/contracts/constants.js.map +1 -0
- package/dist/core/contracts/index.d.ts +6 -0
- package/dist/core/contracts/index.js +23 -0
- package/dist/core/contracts/index.js.map +1 -0
- package/dist/core/contracts/instances.d.ts +48 -0
- package/dist/core/contracts/instances.js +101 -0
- package/dist/core/contracts/instances.js.map +1 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.js +26 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/indexers/envio.test.query.d.ts +5 -0
- package/dist/core/indexers/envio.test.query.js +32 -0
- package/dist/core/indexers/envio.test.query.js.map +1 -0
- package/dist/core/indexers/index.d.ts +1 -0
- package/dist/core/indexers/index.js +18 -0
- package/dist/core/indexers/index.js.map +1 -0
- package/dist/core/indexers/indexers.service.d.ts +19 -0
- package/dist/core/indexers/indexers.service.js +104 -0
- package/dist/core/indexers/indexers.service.js.map +1 -0
- package/dist/core/indexers/subsquid.test.query.d.ts +4 -0
- package/dist/core/indexers/subsquid.test.query.js +42 -0
- package/dist/core/indexers/subsquid.test.query.js.map +1 -0
- package/dist/core/prisma/index.d.ts +1 -0
- package/dist/core/prisma/index.js +21 -0
- package/dist/core/prisma/index.js.map +1 -0
- package/dist/core/prisma/schema.prisma +360 -0
- package/dist/core/privy/constants.d.ts +19 -0
- package/dist/core/privy/constants.js +28 -0
- package/dist/core/privy/constants.js.map +1 -0
- package/dist/core/privy/index.d.ts +1 -0
- package/dist/core/privy/index.js +18 -0
- package/dist/core/privy/index.js.map +1 -0
- package/dist/core/socket.io/events.d.ts +20 -0
- package/dist/core/socket.io/events.js +20 -0
- package/dist/core/socket.io/events.js.map +1 -0
- package/dist/core/socket.io/index.d.ts +2 -0
- package/dist/core/socket.io/index.js +19 -0
- package/dist/core/socket.io/index.js.map +1 -0
- package/dist/core/socket.io/rooms.d.ts +6 -0
- package/dist/core/socket.io/rooms.js +10 -0
- package/dist/core/socket.io/rooms.js.map +1 -0
- package/dist/core/types/auth/auth.types.d.ts +31 -0
- package/dist/core/types/auth/auth.types.js +15 -0
- package/dist/core/types/auth/auth.types.js.map +1 -0
- package/dist/core/types/auth/index.d.ts +2 -0
- package/dist/core/types/auth/index.js +19 -0
- package/dist/core/types/auth/index.js.map +1 -0
- package/dist/core/types/auth/request.types.d.ts +19 -0
- package/dist/core/types/auth/request.types.js +15 -0
- package/dist/core/types/auth/request.types.js.map +1 -0
- package/dist/core/types/blockchain/chains.types.d.ts +3 -0
- package/dist/core/types/blockchain/chains.types.js +8 -0
- package/dist/core/types/blockchain/chains.types.js.map +1 -0
- package/dist/core/types/blockchain/contract.types.d.ts +8 -0
- package/dist/core/types/blockchain/contract.types.js +13 -0
- package/dist/core/types/blockchain/contract.types.js.map +1 -0
- package/dist/core/types/blockchain/index.d.ts +3 -0
- package/dist/core/types/blockchain/index.js +20 -0
- package/dist/core/types/blockchain/index.js.map +1 -0
- package/dist/core/types/blockchain/oz.relayer.types.d.ts +7 -0
- package/dist/core/types/blockchain/oz.relayer.types.js +13 -0
- package/dist/core/types/blockchain/oz.relayer.types.js.map +1 -0
- package/dist/core/types/index.d.ts +6 -0
- package/dist/core/types/index.js +23 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/types/indexers.types.d.ts +4 -0
- package/dist/core/types/indexers.types.js +9 -0
- package/dist/core/types/indexers.types.js.map +1 -0
- package/dist/core/types/misc.types.d.ts +6 -0
- package/dist/core/types/misc.types.js +11 -0
- package/dist/core/types/misc.types.js.map +1 -0
- package/dist/core/types/oracle/fixture.types.d.ts +75 -0
- package/dist/core/types/oracle/fixture.types.js +4 -0
- package/dist/core/types/oracle/fixture.types.js.map +1 -0
- package/dist/core/types/oracle/game/game.types.d.ts +108 -0
- package/dist/core/types/oracle/game/game.types.js +64 -0
- package/dist/core/types/oracle/game/game.types.js.map +1 -0
- package/dist/core/types/oracle/game/index.d.ts +2 -0
- package/dist/core/types/oracle/game/index.js +19 -0
- package/dist/core/types/oracle/game/index.js.map +1 -0
- package/dist/core/types/oracle/game/zod.game.types.d.ts +31 -0
- package/dist/core/types/oracle/game/zod.game.types.js +22 -0
- package/dist/core/types/oracle/game/zod.game.types.js.map +1 -0
- package/dist/core/types/oracle/index.d.ts +4 -0
- package/dist/core/types/oracle/index.js +21 -0
- package/dist/core/types/oracle/index.js.map +1 -0
- package/dist/core/types/oracle/market/index.d.ts +3 -0
- package/dist/core/types/oracle/market/index.js +20 -0
- package/dist/core/types/oracle/market/index.js.map +1 -0
- package/dist/core/types/oracle/market/markets.types.d.ts +95 -0
- package/dist/core/types/oracle/market/markets.types.js +35 -0
- package/dist/core/types/oracle/market/markets.types.js.map +1 -0
- package/dist/core/types/oracle/market/odds.types.d.ts +14 -0
- package/dist/core/types/oracle/market/odds.types.js +3 -0
- package/dist/core/types/oracle/market/odds.types.js.map +1 -0
- package/dist/core/types/oracle/market/positions.types.d.ts +57 -0
- package/dist/core/types/oracle/market/positions.types.js +3 -0
- package/dist/core/types/oracle/market/positions.types.js.map +1 -0
- package/dist/core/types/oracle/requests/game.request.types.d.ts +170 -0
- package/dist/core/types/oracle/requests/game.request.types.js +126 -0
- package/dist/core/types/oracle/requests/game.request.types.js.map +1 -0
- package/dist/core/types/oracle/requests/game.response.types.d.ts +8 -0
- package/dist/core/types/oracle/requests/game.response.types.js +3 -0
- package/dist/core/types/oracle/requests/game.response.types.js.map +1 -0
- package/dist/core/types/oracle/requests/index.d.ts +5 -0
- package/dist/core/types/oracle/requests/index.js +22 -0
- package/dist/core/types/oracle/requests/index.js.map +1 -0
- package/dist/core/types/oracle/requests/market.request.types.d.ts +63 -0
- package/dist/core/types/oracle/requests/market.request.types.js +41 -0
- package/dist/core/types/oracle/requests/market.request.types.js.map +1 -0
- package/dist/core/types/oracle/requests/odds.response.types.d.ts +2 -0
- package/dist/core/types/oracle/requests/odds.response.types.js +3 -0
- package/dist/core/types/oracle/requests/odds.response.types.js.map +1 -0
- package/dist/core/types/oracle/requests/user.request.type.d.ts +4 -0
- package/dist/core/types/oracle/requests/user.request.type.js +3 -0
- package/dist/core/types/oracle/requests/user.request.type.js.map +1 -0
- package/dist/core/types/privy.types.d.ts +4 -0
- package/dist/core/types/privy.types.js +9 -0
- package/dist/core/types/privy.types.js.map +1 -0
- package/dist/core/utils/converters.utils.d.ts +29 -0
- package/dist/core/utils/converters.utils.js +97 -0
- package/dist/core/utils/converters.utils.js.map +1 -0
- package/dist/core/utils/game.utils.d.ts +4 -0
- package/dist/core/utils/game.utils.js +79 -0
- package/dist/core/utils/game.utils.js.map +1 -0
- package/dist/core/utils/index.d.ts +4 -0
- package/dist/core/utils/index.js +21 -0
- package/dist/core/utils/index.js.map +1 -0
- package/dist/core/utils/misc.utils.d.ts +14 -0
- package/dist/core/utils/misc.utils.js +33 -0
- package/dist/core/utils/misc.utils.js.map +1 -0
- package/dist/core/utils/position.utils.d.ts +18 -0
- package/dist/core/utils/position.utils.js +68 -0
- package/dist/core/utils/position.utils.js.map +1 -0
- package/dist/core/validators/bytes.validators.d.ts +32 -0
- package/dist/core/validators/bytes.validators.js +47 -0
- package/dist/core/validators/bytes.validators.js.map +1 -0
- package/dist/core/validators/index.d.ts +2 -0
- package/dist/core/validators/index.js +19 -0
- package/dist/core/validators/index.js.map +1 -0
- package/dist/core/validators/mongo.validators.d.ts +2 -0
- package/dist/core/validators/mongo.validators.js +10 -0
- package/dist/core/validators/mongo.validators.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/react/hooks/auth/index.d.ts +1 -0
- package/dist/react/hooks/auth/index.js +18 -0
- package/dist/react/hooks/auth/index.js.map +1 -0
- package/dist/react/hooks/auth/useAuthHeaders.d.ts +45 -0
- package/dist/react/hooks/auth/useAuthHeaders.js +58 -0
- package/dist/react/hooks/auth/useAuthHeaders.js.map +1 -0
- package/dist/react/hooks/contracts/erc20/index.d.ts +6 -0
- package/dist/react/hooks/contracts/erc20/index.js +23 -0
- package/dist/react/hooks/contracts/erc20/index.js.map +1 -0
- package/dist/react/hooks/contracts/erc20/useApproveErc20.d.ts +13 -0
- package/dist/react/hooks/contracts/erc20/useApproveErc20.js +28 -0
- package/dist/react/hooks/contracts/erc20/useApproveErc20.js.map +1 -0
- package/dist/react/hooks/contracts/erc20/useErc20Allowance.d.ts +10 -0
- package/dist/react/hooks/contracts/erc20/useErc20Allowance.js +34 -0
- package/dist/react/hooks/contracts/erc20/useErc20Allowance.js.map +1 -0
- package/dist/react/hooks/contracts/erc20/useErc20Balance.d.ts +22 -0
- package/dist/react/hooks/contracts/erc20/useErc20Balance.js +95 -0
- package/dist/react/hooks/contracts/erc20/useErc20Balance.js.map +1 -0
- package/dist/react/hooks/contracts/erc20/useErc20Decimals.d.ts +8 -0
- package/dist/react/hooks/contracts/erc20/useErc20Decimals.js +28 -0
- package/dist/react/hooks/contracts/erc20/useErc20Decimals.js.map +1 -0
- package/dist/react/hooks/contracts/erc20/useErc20Symbol.d.ts +8 -0
- package/dist/react/hooks/contracts/erc20/useErc20Symbol.js +28 -0
- package/dist/react/hooks/contracts/erc20/useErc20Symbol.js.map +1 -0
- package/dist/react/hooks/contracts/erc20/useTransferErc20.d.ts +13 -0
- package/dist/react/hooks/contracts/erc20/useTransferErc20.js +31 -0
- package/dist/react/hooks/contracts/erc20/useTransferErc20.js.map +1 -0
- package/dist/react/hooks/contracts/index.d.ts +3 -0
- package/dist/react/hooks/contracts/index.js +20 -0
- package/dist/react/hooks/contracts/index.js.map +1 -0
- package/dist/react/hooks/contracts/useContracts.d.ts +120 -0
- package/dist/react/hooks/contracts/useContracts.js +81 -0
- package/dist/react/hooks/contracts/useContracts.js.map +1 -0
- package/dist/react/hooks/contracts/useLevrMarketContractAddresses.d.ts +3 -0
- package/dist/react/hooks/contracts/useLevrMarketContractAddresses.js +27 -0
- package/dist/react/hooks/contracts/useLevrMarketContractAddresses.js.map +1 -0
- package/dist/react/hooks/index.d.ts +2 -0
- package/dist/react/hooks/index.js +19 -0
- package/dist/react/hooks/index.js.map +1 -0
- package/dist/react/index.d.ts +6 -0
- package/dist/react/index.js +23 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/injectedDependencies.d.ts +78 -0
- package/dist/react/injectedDependencies.js +94 -0
- package/dist/react/injectedDependencies.js.map +1 -0
- package/dist/react/queryClient.d.ts +9 -0
- package/dist/react/queryClient.js +13 -0
- package/dist/react/queryClient.js.map +1 -0
- package/dist/react/queryKeys.d.ts +17 -0
- package/dist/react/queryKeys.js +23 -0
- package/dist/react/queryKeys.js.map +1 -0
- package/dist/react/types/contracts.types.d.ts +4 -0
- package/dist/react/types/contracts.types.js +3 -0
- package/dist/react/types/contracts.types.js.map +1 -0
- package/dist/react/types/index.d.ts +1 -0
- package/dist/react/types/index.js +18 -0
- package/dist/react/types/index.js.map +1 -0
- package/dist/server/config/cloudflare.d.ts +30 -0
- package/dist/server/config/cloudflare.js +45 -0
- package/dist/server/config/cloudflare.js.map +1 -0
- package/dist/server/config/constants.d.ts +1 -0
- package/dist/server/config/constants.js +7 -0
- package/dist/server/config/constants.js.map +1 -0
- package/dist/server/config/dotenv.d.ts +35 -0
- package/dist/server/config/dotenv.js +42 -0
- package/dist/server/config/dotenv.js.map +1 -0
- package/dist/server/config/index.d.ts +9 -0
- package/dist/server/config/index.js +31 -0
- package/dist/server/config/index.js.map +1 -0
- package/dist/server/config/kms.d.ts +22 -0
- package/dist/server/config/kms.js +54 -0
- package/dist/server/config/kms.js.map +1 -0
- package/dist/server/config/prisma.d.ts +20 -0
- package/dist/server/config/prisma.js +40 -0
- package/dist/server/config/prisma.js.map +1 -0
- package/dist/server/config/redis.d.ts +57 -0
- package/dist/server/config/redis.js +121 -0
- package/dist/server/config/redis.js.map +1 -0
- package/dist/server/config/urls.d.ts +49 -0
- package/dist/server/config/urls.js +7 -0
- package/dist/server/config/urls.js.map +1 -0
- package/dist/server/config/winston.d.ts +3 -0
- package/dist/server/config/winston.js +14 -0
- package/dist/server/config/winston.js.map +1 -0
- package/dist/server/contracts/clients/index.d.ts +1 -0
- package/dist/server/contracts/clients/index.js +18 -0
- package/dist/server/contracts/clients/index.js.map +1 -0
- package/dist/server/contracts/clients/ozRelayerService.d.ts +18 -0
- package/dist/server/contracts/clients/ozRelayerService.js +167 -0
- package/dist/server/contracts/clients/ozRelayerService.js.map +1 -0
- package/dist/server/contracts/index.d.ts +2 -0
- package/dist/server/contracts/index.js +19 -0
- package/dist/server/contracts/index.js.map +1 -0
- package/dist/server/contracts/instances.d.ts +20 -0
- package/dist/server/contracts/instances.js +28 -0
- package/dist/server/contracts/instances.js.map +1 -0
- package/dist/server/index.d.ts +11 -0
- package/dist/server/index.js +36 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/instrumentation.d.ts +9 -0
- package/dist/server/instrumentation.js +37 -0
- package/dist/server/instrumentation.js.map +1 -0
- package/dist/server/liquidation-engine/index.d.ts +3 -0
- package/dist/server/liquidation-engine/index.js +20 -0
- package/dist/server/liquidation-engine/index.js.map +1 -0
- package/dist/server/liquidation-engine/redis.cache.manager/cache.keys.util.d.ts +10 -0
- package/dist/server/liquidation-engine/redis.cache.manager/cache.keys.util.js +15 -0
- package/dist/server/liquidation-engine/redis.cache.manager/cache.keys.util.js.map +1 -0
- package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.d.ts +124 -0
- package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.js +242 -0
- package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.js.map +1 -0
- package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.test.d.ts +1 -0
- package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.test.js +115 -0
- package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.test.js.map +1 -0
- package/dist/server/liquidation-engine/types/index.d.ts +1 -0
- package/dist/server/liquidation-engine/types/index.js +3 -0
- package/dist/server/liquidation-engine/types/index.js.map +1 -0
- package/dist/server/middleware/auth/cloudflare.handler.d.ts +6 -0
- package/dist/server/middleware/auth/cloudflare.handler.js +37 -0
- package/dist/server/middleware/auth/cloudflare.handler.js.map +1 -0
- package/dist/server/middleware/auth/hmac.handler.d.ts +11 -0
- package/dist/server/middleware/auth/hmac.handler.js +157 -0
- package/dist/server/middleware/auth/hmac.handler.js.map +1 -0
- package/dist/server/middleware/auth/index.d.ts +3 -0
- package/dist/server/middleware/auth/index.js +20 -0
- package/dist/server/middleware/auth/index.js.map +1 -0
- package/dist/server/middleware/auth/privy.handler.d.ts +7 -0
- package/dist/server/middleware/auth/privy.handler.js +31 -0
- package/dist/server/middleware/auth/privy.handler.js.map +1 -0
- package/dist/server/middleware/index.d.ts +2 -0
- package/dist/server/middleware/index.js +19 -0
- package/dist/server/middleware/index.js.map +1 -0
- package/dist/server/middleware/multiAuth.examples.d.ts +46 -0
- package/dist/server/middleware/multiAuth.examples.js +123 -0
- package/dist/server/middleware/multiAuth.examples.js.map +1 -0
- package/dist/server/middleware/multiAuth.middleware.d.ts +30 -0
- package/dist/server/middleware/multiAuth.middleware.js +90 -0
- package/dist/server/middleware/multiAuth.middleware.js.map +1 -0
- package/dist/server/middleware/rateLimit.middleware.d.ts +1 -0
- package/dist/server/middleware/rateLimit.middleware.js +19 -0
- package/dist/server/middleware/rateLimit.middleware.js.map +1 -0
- package/dist/server/oracle/index.d.ts +3 -0
- package/dist/server/oracle/index.js +20 -0
- package/dist/server/oracle/index.js.map +1 -0
- package/dist/server/oracle/redis-cache-manager/cache.keys.utils.d.ts +90 -0
- package/dist/server/oracle/redis-cache-manager/cache.keys.utils.js +147 -0
- package/dist/server/oracle/redis-cache-manager/cache.keys.utils.js.map +1 -0
- package/dist/server/oracle/redis-cache-manager/channels.d.ts +2 -0
- package/dist/server/oracle/redis-cache-manager/channels.js +11 -0
- package/dist/server/oracle/redis-cache-manager/channels.js.map +1 -0
- package/dist/server/oracle/redis-cache-manager/game.cache.service.d.ts +184 -0
- package/dist/server/oracle/redis-cache-manager/game.cache.service.js +698 -0
- package/dist/server/oracle/redis-cache-manager/game.cache.service.js.map +1 -0
- package/dist/server/oracle/redis-cache-manager/index.d.ts +4 -0
- package/dist/server/oracle/redis-cache-manager/index.js +21 -0
- package/dist/server/oracle/redis-cache-manager/index.js.map +1 -0
- package/dist/server/oracle/redis-cache-manager/market.cache.service.d.ts +115 -0
- package/dist/server/oracle/redis-cache-manager/market.cache.service.js +279 -0
- package/dist/server/oracle/redis-cache-manager/market.cache.service.js.map +1 -0
- package/dist/server/oracle/rmq-manager/base.queue.manager.d.ts +21 -0
- package/dist/server/oracle/rmq-manager/base.queue.manager.js +128 -0
- package/dist/server/oracle/rmq-manager/base.queue.manager.js.map +1 -0
- package/dist/server/oracle/rmq-manager/index.d.ts +2 -0
- package/dist/server/oracle/rmq-manager/index.js +19 -0
- package/dist/server/oracle/rmq-manager/index.js.map +1 -0
- package/dist/server/oracle/rmq-manager/queue.configs.d.ts +5 -0
- package/dist/server/oracle/rmq-manager/queue.configs.js +38 -0
- package/dist/server/oracle/rmq-manager/queue.configs.js.map +1 -0
- package/dist/server/oracle/types/index.d.ts +2 -0
- package/dist/server/oracle/types/index.js +19 -0
- package/dist/server/oracle/types/index.js.map +1 -0
- package/dist/server/oracle/types/providers/index.d.ts +4 -0
- package/dist/server/oracle/types/providers/index.js +21 -0
- package/dist/server/oracle/types/providers/index.js.map +1 -0
- package/dist/server/oracle/types/providers/lsports.types.d.ts +148 -0
- package/dist/server/oracle/types/providers/lsports.types.js +13 -0
- package/dist/server/oracle/types/providers/lsports.types.js.map +1 -0
- package/dist/server/oracle/types/providers/optic.odds.types.d.ts +293 -0
- package/dist/server/oracle/types/providers/optic.odds.types.js +140 -0
- package/dist/server/oracle/types/providers/optic.odds.types.js.map +1 -0
- package/dist/server/oracle/types/providers/providers.types.d.ts +5 -0
- package/dist/server/oracle/types/providers/providers.types.js +10 -0
- package/dist/server/oracle/types/providers/providers.types.js.map +1 -0
- package/dist/server/oracle/types/providers/rundown.types.d.ts +194 -0
- package/dist/server/oracle/types/providers/rundown.types.js +22 -0
- package/dist/server/oracle/types/providers/rundown.types.js.map +1 -0
- package/dist/server/oracle/types/queue/index.d.ts +2 -0
- package/dist/server/oracle/types/queue/index.js +19 -0
- package/dist/server/oracle/types/queue/index.js.map +1 -0
- package/dist/server/oracle/types/queue/queue.constant.d.ts +10 -0
- package/dist/server/oracle/types/queue/queue.constant.js +14 -0
- package/dist/server/oracle/types/queue/queue.constant.js.map +1 -0
- package/dist/server/oracle/types/queue/queue.types.d.ts +5 -0
- package/dist/server/oracle/types/queue/queue.types.js +3 -0
- package/dist/server/oracle/types/queue/queue.types.js.map +1 -0
- package/dist/server/prisma/index.d.ts +2 -0
- package/dist/server/prisma/index.js +24 -0
- package/dist/server/prisma/index.js.map +1 -0
- package/dist/server/repositories/apiKey.repository.d.ts +7 -0
- package/dist/server/repositories/apiKey.repository.js +19 -0
- package/dist/server/repositories/apiKey.repository.js.map +1 -0
- package/dist/server/repositories/index.d.ts +1 -0
- package/dist/server/repositories/index.js +18 -0
- package/dist/server/repositories/index.js.map +1 -0
- package/dist/server/services/cloudflare.service.d.ts +12 -0
- package/dist/server/services/cloudflare.service.js +24 -0
- package/dist/server/services/cloudflare.service.js.map +1 -0
- package/dist/server/services/crypto.service.d.ts +17 -0
- package/dist/server/services/crypto.service.js +50 -0
- package/dist/server/services/crypto.service.js.map +1 -0
- package/dist/server/services/hmac.service.d.ts +52 -0
- package/dist/server/services/hmac.service.js +115 -0
- package/dist/server/services/hmac.service.js.map +1 -0
- package/dist/server/services/index.d.ts +5 -0
- package/dist/server/services/index.js +22 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/presigned.urls.d.ts +11 -0
- package/dist/server/services/presigned.urls.js +41 -0
- package/dist/server/services/presigned.urls.js.map +1 -0
- package/dist/server/services/privy.service.d.ts +30 -0
- package/dist/server/services/privy.service.js +122 -0
- package/dist/server/services/privy.service.js.map +1 -0
- package/dist/server/test-relayers.d.ts +1 -0
- package/dist/server/test-relayers.js +17 -0
- package/dist/server/test-relayers.js.map +1 -0
- package/dist/server/types/auth.types.d.ts +8 -0
- package/dist/server/types/auth.types.js +3 -0
- package/dist/server/types/auth.types.js.map +1 -0
- package/dist/server/types/global.types.d.ts +35 -0
- package/dist/server/types/global.types.js +4 -0
- package/dist/server/types/global.types.js.map +1 -0
- package/dist/server/types/index.d.ts +2 -0
- package/dist/server/types/index.js +19 -0
- package/dist/server/types/index.js.map +1 -0
- package/dist/server/utils/express.utils.d.ts +24 -0
- package/dist/server/utils/express.utils.js +36 -0
- package/dist/server/utils/express.utils.js.map +1 -0
- package/dist/server/utils/index.d.ts +2 -0
- package/dist/server/utils/index.js +19 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/tracing/index.d.ts +2 -0
- package/dist/server/utils/tracing/index.js +19 -0
- package/dist/server/utils/tracing/index.js.map +1 -0
- package/dist/server/utils/tracing/trace.d.ts +12 -0
- package/dist/server/utils/tracing/trace.js +50 -0
- package/dist/server/utils/tracing/trace.js.map +1 -0
- package/dist/server/utils/tracing/wrap.module.with.tracing.d.ts +126 -0
- package/dist/server/utils/tracing/wrap.module.with.tracing.js +202 -0
- package/dist/server/utils/tracing/wrap.module.with.tracing.js.map +1 -0
- 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,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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"}
|