@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,7 @@
|
|
|
1
|
+
import type { Request } from "express";
|
|
2
|
+
import { LevrAuth, PrivyRole } from "../../../core";
|
|
3
|
+
import type { AuthResult } from "../../types/auth.types";
|
|
4
|
+
/**
|
|
5
|
+
* Handles Privy authentication (User or Admin)
|
|
6
|
+
*/
|
|
7
|
+
export declare function handlePrivyAuth(req: Request, role: PrivyRole, authType: LevrAuth): Promise<AuthResult>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handlePrivyAuth = handlePrivyAuth;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const core_1 = require("../../../core");
|
|
6
|
+
const services_1 = require("../../services");
|
|
7
|
+
/**
|
|
8
|
+
* Handles Privy authentication (User or Admin)
|
|
9
|
+
*/
|
|
10
|
+
async function handlePrivyAuth(req, role, authType) {
|
|
11
|
+
const privyToken = req.headers[core_1.PRIVY_ACCESS_TOKEN_HEADER]?.toString();
|
|
12
|
+
const privyIdToken = req.headers[core_1.PRIVY_ID_TOKEN_HEADER]?.toString();
|
|
13
|
+
const ethAddress = req.headers[core_1.ETH_ADDRESS_HEADER]?.toString();
|
|
14
|
+
if (!privyToken || !privyIdToken) {
|
|
15
|
+
return {
|
|
16
|
+
success: false,
|
|
17
|
+
error: `Missing ${core_1.PRIVY_ACCESS_TOKEN_HEADER} or ${core_1.PRIVY_ID_TOKEN_HEADER} header`,
|
|
18
|
+
statusCode: 401,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const privyUser = await services_1.privyService.authenticate({ privyToken, privyIdToken, ethAddress, role });
|
|
22
|
+
if (!privyUser) {
|
|
23
|
+
return { success: false, error: "Privy authentication failed", statusCode: 401 };
|
|
24
|
+
}
|
|
25
|
+
// Set auth context
|
|
26
|
+
req.privyUser = privyUser;
|
|
27
|
+
req.ethAddress = ethAddress && (0, viem_1.isAddress)(ethAddress) ? (0, viem_1.getAddress)(ethAddress) : services_1.privyService.getUserEthAddress(privyUser);
|
|
28
|
+
req.authMethod = authType;
|
|
29
|
+
return { success: true };
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=privy.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"privy.handler.js","sourceRoot":"","sources":["../../../../src/server/middleware/auth/privy.handler.ts"],"names":[],"mappings":";;AASA,0CAyBC;AAjCD,+BAA4C;AAC5C,wCAAyH;AACzH,6CAA6C;AAG7C;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,GAAY,EAAE,IAAe,EAAE,QAAkB;IACnF,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,gCAAyB,CAAC,EAAE,QAAQ,EAAE,CAAA;IACrE,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,4BAAqB,CAAC,EAAE,QAAQ,EAAE,CAAA;IACnE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,yBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAA;IAE9D,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,WAAW,gCAAyB,OAAO,4BAAqB,SAAS;YAChF,UAAU,EAAE,GAAG;SAClB,CAAA;IACL,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,uBAAY,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IAEjG,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;IACpF,CAAC;IAED,mBAAmB;IACnB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAA;IACzB,GAAG,CAAC,UAAU,GAAG,UAAU,IAAI,IAAA,gBAAS,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,uBAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACzH,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAA;IAEzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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("./multiAuth.middleware"), exports);
|
|
18
|
+
__exportStar(require("./rateLimit.middleware"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAsC;AACtC,yDAAsC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Auth Middleware Usage Examples
|
|
3
|
+
*
|
|
4
|
+
* This file demonstrates how to use the new multiAuth middleware
|
|
5
|
+
* to support multiple authentication methods in your routes.
|
|
6
|
+
*/
|
|
7
|
+
declare const router: import("express-serve-static-core").Router;
|
|
8
|
+
/**
|
|
9
|
+
* Client-side usage:
|
|
10
|
+
*
|
|
11
|
+
* Clients MUST include the x-levr-auth-type header to indicate which auth method they're using:
|
|
12
|
+
*
|
|
13
|
+
* For Privy User:
|
|
14
|
+
* ```
|
|
15
|
+
* headers: {
|
|
16
|
+
* 'x-levr-auth-type': 'privyUser',
|
|
17
|
+
* 'privy-access-token': 'token...',
|
|
18
|
+
* 'privy-id-token': 'token...',
|
|
19
|
+
* 'eth-address': '0x...' // optional
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* For HMAC API Key (user API keys):
|
|
24
|
+
* ```
|
|
25
|
+
* headers: {
|
|
26
|
+
* 'x-levr-auth-type': 'hmac',
|
|
27
|
+
* 'Authorization': 'HMAC <api-key-id>:<signature>',
|
|
28
|
+
* 'x-request-timestamp': '1234567890',
|
|
29
|
+
* 'x-request-nonce': 'random-string'
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* For Service HMAC (backend service API keys):
|
|
34
|
+
* ```
|
|
35
|
+
* headers: {
|
|
36
|
+
* 'x-levr-auth-type': 'serviceHmac',
|
|
37
|
+
* 'Authorization': 'HMAC <api-key-id>:<signature>',
|
|
38
|
+
* 'x-request-timestamp': '1234567890',
|
|
39
|
+
* 'x-request-nonce': 'random-string'
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* Note: Service API keys are distinguished by having a 'service' field set.
|
|
44
|
+
* User API keys have service=null. The auth handler validates this automatically.
|
|
45
|
+
*/
|
|
46
|
+
export default router;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Multi-Auth Middleware Usage Examples
|
|
4
|
+
*
|
|
5
|
+
* This file demonstrates how to use the new multiAuth middleware
|
|
6
|
+
* to support multiple authentication methods in your routes.
|
|
7
|
+
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const express_1 = require("express");
|
|
13
|
+
const core_1 = require("../../core");
|
|
14
|
+
const multiAuth_middleware_1 = require("./multiAuth.middleware");
|
|
15
|
+
const winston_1 = __importDefault(require("../config/winston"));
|
|
16
|
+
const router = (0, express_1.Router)();
|
|
17
|
+
// Example 1: Simple route supporting both Privy user auth and HMAC API keys
|
|
18
|
+
// Auto-enforces Write scope for POST requests
|
|
19
|
+
router.post("/orders", (0, multiAuth_middleware_1.multiAuth)({
|
|
20
|
+
methods: [core_1.LevrAuth.PRIVY_USER, core_1.LevrAuth.HMAC],
|
|
21
|
+
}), (req, res) => {
|
|
22
|
+
// Access authenticated user data
|
|
23
|
+
if (req.privyUser) {
|
|
24
|
+
winston_1.default.info("Authenticated via Privy:", req.privyUser.id);
|
|
25
|
+
}
|
|
26
|
+
else if (req.apiUser) {
|
|
27
|
+
winston_1.default.info("Authenticated via API key:", req.apiUser.id);
|
|
28
|
+
}
|
|
29
|
+
winston_1.default.info("Auth method used:", req.authMethod);
|
|
30
|
+
winston_1.default.info("ETH address:", req.ethAddress);
|
|
31
|
+
res.json({ success: true });
|
|
32
|
+
});
|
|
33
|
+
// Example 2: Admin-only route
|
|
34
|
+
router.delete("/admin/users/:id", (0, multiAuth_middleware_1.multiAuth)({
|
|
35
|
+
methods: [core_1.LevrAuth.PRIVY_ADMIN],
|
|
36
|
+
}), (req, res) => {
|
|
37
|
+
// Only Privy admins can access this
|
|
38
|
+
winston_1.default.info("Admin user:", req.privyUser?.id);
|
|
39
|
+
res.json({ success: true });
|
|
40
|
+
});
|
|
41
|
+
// Example 3: Read-only route supporting multiple auth methods
|
|
42
|
+
// Disable auto-enforcement of Write scope for POST
|
|
43
|
+
router.post("/search", (0, multiAuth_middleware_1.multiAuth)({
|
|
44
|
+
methods: [core_1.LevrAuth.PRIVY_USER, core_1.LevrAuth.HMAC],
|
|
45
|
+
requiredScopes: [core_1.ApiKeyScope.Read],
|
|
46
|
+
autoEnforceWriteScope: false, // POST doesn't require Write scope
|
|
47
|
+
}), (_req, res) => {
|
|
48
|
+
// This POST route only needs Read scope
|
|
49
|
+
res.json({ results: [] });
|
|
50
|
+
});
|
|
51
|
+
// Example 4: Service-to-service authentication
|
|
52
|
+
// Only Orderbook and OracleCore services can access
|
|
53
|
+
router.post("/internal/sync-markets", (0, multiAuth_middleware_1.multiAuth)({
|
|
54
|
+
methods: [core_1.LevrAuth.SERVICE_HMAC],
|
|
55
|
+
allowedServices: [core_1.LevrService.Orderbook, core_1.LevrService.OracleCore],
|
|
56
|
+
}), (req, res) => {
|
|
57
|
+
// Only specific services can access
|
|
58
|
+
winston_1.default.info("Service:", req.apiUser?.service);
|
|
59
|
+
res.json({ synced: true });
|
|
60
|
+
});
|
|
61
|
+
// Example 5: Mixed service and user auth with explicit scopes
|
|
62
|
+
router.put("/markets/:id", (0, multiAuth_middleware_1.multiAuth)({
|
|
63
|
+
methods: [core_1.LevrAuth.PRIVY_ADMIN, core_1.LevrAuth.SERVICE_HMAC],
|
|
64
|
+
requiredScopes: [core_1.ApiKeyScope.Write], // Explicitly require Write
|
|
65
|
+
allowedServices: [core_1.LevrService.Orderbook, core_1.LevrService.Lab],
|
|
66
|
+
}), (req, res) => {
|
|
67
|
+
// Either admin users or specific services can update
|
|
68
|
+
if (req.privyUser) {
|
|
69
|
+
winston_1.default.info("Admin updating market:", req.privyUser.id);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
winston_1.default.info("Service updating market:", req.apiUser?.service);
|
|
73
|
+
}
|
|
74
|
+
res.json({ updated: true });
|
|
75
|
+
});
|
|
76
|
+
// Example 6: GET route with optional auth
|
|
77
|
+
// Even GET requests can require specific scopes if needed
|
|
78
|
+
router.get("/private-data", (0, multiAuth_middleware_1.multiAuth)({
|
|
79
|
+
methods: [core_1.LevrAuth.PRIVY_USER, core_1.LevrAuth.HMAC],
|
|
80
|
+
requiredScopes: [core_1.ApiKeyScope.Read],
|
|
81
|
+
}), (_req, res) => {
|
|
82
|
+
res.json({ data: "sensitive information" });
|
|
83
|
+
});
|
|
84
|
+
/**
|
|
85
|
+
* Client-side usage:
|
|
86
|
+
*
|
|
87
|
+
* Clients MUST include the x-levr-auth-type header to indicate which auth method they're using:
|
|
88
|
+
*
|
|
89
|
+
* For Privy User:
|
|
90
|
+
* ```
|
|
91
|
+
* headers: {
|
|
92
|
+
* 'x-levr-auth-type': 'privyUser',
|
|
93
|
+
* 'privy-access-token': 'token...',
|
|
94
|
+
* 'privy-id-token': 'token...',
|
|
95
|
+
* 'eth-address': '0x...' // optional
|
|
96
|
+
* }
|
|
97
|
+
* ```
|
|
98
|
+
*
|
|
99
|
+
* For HMAC API Key (user API keys):
|
|
100
|
+
* ```
|
|
101
|
+
* headers: {
|
|
102
|
+
* 'x-levr-auth-type': 'hmac',
|
|
103
|
+
* 'Authorization': 'HMAC <api-key-id>:<signature>',
|
|
104
|
+
* 'x-request-timestamp': '1234567890',
|
|
105
|
+
* 'x-request-nonce': 'random-string'
|
|
106
|
+
* }
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* For Service HMAC (backend service API keys):
|
|
110
|
+
* ```
|
|
111
|
+
* headers: {
|
|
112
|
+
* 'x-levr-auth-type': 'serviceHmac',
|
|
113
|
+
* 'Authorization': 'HMAC <api-key-id>:<signature>',
|
|
114
|
+
* 'x-request-timestamp': '1234567890',
|
|
115
|
+
* 'x-request-nonce': 'random-string'
|
|
116
|
+
* }
|
|
117
|
+
* ```
|
|
118
|
+
*
|
|
119
|
+
* Note: Service API keys are distinguished by having a 'service' field set.
|
|
120
|
+
* User API keys have service=null. The auth handler validates this automatically.
|
|
121
|
+
*/
|
|
122
|
+
exports.default = router;
|
|
123
|
+
//# sourceMappingURL=multiAuth.examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiAuth.examples.js","sourceRoot":"","sources":["../../../src/server/middleware/multiAuth.examples.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { NextFunction, Request, Response } from "express";
|
|
2
|
+
import { MultiAuthOptions } from "../../core";
|
|
3
|
+
/**
|
|
4
|
+
* Multi-auth middleware factory
|
|
5
|
+
*
|
|
6
|
+
* Creates Express middleware that supports multiple authentication methods.
|
|
7
|
+
* The client specifies which method to use via the x-levr-auth-type header.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // Support both user and API key auth, require Write scope
|
|
12
|
+
* app.post('/orders',
|
|
13
|
+
* multiAuth({
|
|
14
|
+
* methods: [LevrAuth.PRIVY_USER, LevrAuth.HMAC],
|
|
15
|
+
* requiredScopes: [ApiKeyScope.Write]
|
|
16
|
+
* }),
|
|
17
|
+
* orderController.create
|
|
18
|
+
* )
|
|
19
|
+
*
|
|
20
|
+
* // Service-to-service only, must be from Orderbook or OracleCore service
|
|
21
|
+
* app.post('/internal/sync',
|
|
22
|
+
* multiAuth({
|
|
23
|
+
* methods: [LevrAuth.SERVICE_HMAC],
|
|
24
|
+
* requiredServices: [LevrService.Orderbook, LevrService.OracleCore]
|
|
25
|
+
* }),
|
|
26
|
+
* internalController.sync
|
|
27
|
+
* )
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function multiAuth(options: MultiAuthOptions): (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.multiAuth = multiAuth;
|
|
4
|
+
const core_1 = require("../../core");
|
|
5
|
+
const auth_1 = require("./auth");
|
|
6
|
+
/**
|
|
7
|
+
* Multi-auth middleware factory
|
|
8
|
+
*
|
|
9
|
+
* Creates Express middleware that supports multiple authentication methods.
|
|
10
|
+
* The client specifies which method to use via the x-levr-auth-type header.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // Support both user and API key auth, require Write scope
|
|
15
|
+
* app.post('/orders',
|
|
16
|
+
* multiAuth({
|
|
17
|
+
* methods: [LevrAuth.PRIVY_USER, LevrAuth.HMAC],
|
|
18
|
+
* requiredScopes: [ApiKeyScope.Write]
|
|
19
|
+
* }),
|
|
20
|
+
* orderController.create
|
|
21
|
+
* )
|
|
22
|
+
*
|
|
23
|
+
* // Service-to-service only, must be from Orderbook or OracleCore service
|
|
24
|
+
* app.post('/internal/sync',
|
|
25
|
+
* multiAuth({
|
|
26
|
+
* methods: [LevrAuth.SERVICE_HMAC],
|
|
27
|
+
* requiredServices: [LevrService.Orderbook, LevrService.OracleCore]
|
|
28
|
+
* }),
|
|
29
|
+
* internalController.sync
|
|
30
|
+
* )
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
function multiAuth(options) {
|
|
34
|
+
// Validate configuration at middleware creation time
|
|
35
|
+
if (options.methods.includes(core_1.LevrAuth.SERVICE_HMAC)) {
|
|
36
|
+
if (!options.allowedServices || options.allowedServices.length === 0) {
|
|
37
|
+
throw new Error("SERVICE_HMAC authentication requires 'allowedServices' to be specified in MultiAuthOptions");
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return async (req, res, next) => {
|
|
41
|
+
const requestedAuthType = req.header(core_1.LEVR_AUTH_HEADER);
|
|
42
|
+
// If no auth type specified, reject
|
|
43
|
+
if (!requestedAuthType) {
|
|
44
|
+
res.status(400).json({
|
|
45
|
+
error: `Missing ${core_1.LEVR_AUTH_HEADER} header`,
|
|
46
|
+
supportedMethods: options.methods,
|
|
47
|
+
});
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
// Check if requested auth method is supported by this route
|
|
51
|
+
if (!options.methods.includes(requestedAuthType)) {
|
|
52
|
+
res.status(400).json({
|
|
53
|
+
error: `Unsupported auth method: ${requestedAuthType}`,
|
|
54
|
+
supportedMethods: options.methods,
|
|
55
|
+
});
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
let result;
|
|
59
|
+
// Route to appropriate auth handler
|
|
60
|
+
switch (requestedAuthType) {
|
|
61
|
+
case core_1.LevrAuth.HMAC:
|
|
62
|
+
result = await (0, auth_1.handleHmacAuth)(req, options);
|
|
63
|
+
break;
|
|
64
|
+
case core_1.LevrAuth.SERVICE_HMAC:
|
|
65
|
+
result = await (0, auth_1.handleServiceHmacAuth)(req, options);
|
|
66
|
+
break;
|
|
67
|
+
case core_1.LevrAuth.PRIVY_USER:
|
|
68
|
+
result = await (0, auth_1.handlePrivyAuth)(req, core_1.PrivyRole.User, core_1.LevrAuth.PRIVY_USER);
|
|
69
|
+
break;
|
|
70
|
+
case core_1.LevrAuth.PRIVY_ADMIN:
|
|
71
|
+
result = await (0, auth_1.handlePrivyAuth)(req, core_1.PrivyRole.Admin, core_1.LevrAuth.PRIVY_ADMIN);
|
|
72
|
+
break;
|
|
73
|
+
case core_1.LevrAuth.CLOUDFLARE:
|
|
74
|
+
result = await (0, auth_1.handleCloudflareAuth)(req);
|
|
75
|
+
break;
|
|
76
|
+
default:
|
|
77
|
+
result = {
|
|
78
|
+
success: false,
|
|
79
|
+
error: `Unknown auth method: ${requestedAuthType}`,
|
|
80
|
+
statusCode: 400,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
if (!result.success) {
|
|
84
|
+
res.status(result.statusCode || 401).json({ error: result.error });
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
next();
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=multiAuth.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiAuth.middleware.js","sourceRoot":"","sources":["../../../src/server/middleware/multiAuth.middleware.ts"],"names":[],"mappings":";;AAgCA,8BAoEC;AAnGD,qCAAoF;AAEpF,iCAAqG;AAErG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,SAAS,CAAC,OAAyB;IAC/C,qDAAqD;IACrD,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAA;QACjH,CAAC;IACL,CAAC;IAED,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAiB,EAAE;QAC5E,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,uBAAgB,CAAC,CAAA;QAEtD,oCAAoC;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,WAAW,uBAAgB,SAAS;gBAC3C,gBAAgB,EAAE,OAAO,CAAC,OAAO;aACpC,CAAC,CAAA;YACF,OAAM;QACV,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAA6B,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,4BAA4B,iBAAiB,EAAE;gBACtD,gBAAgB,EAAE,OAAO,CAAC,OAAO;aACpC,CAAC,CAAA;YACF,OAAM;QACV,CAAC;QAED,IAAI,MAAkB,CAAA;QAEtB,oCAAoC;QACpC,QAAQ,iBAAiB,EAAE,CAAC;YACxB,KAAK,eAAQ,CAAC,IAAI;gBACd,MAAM,GAAG,MAAM,IAAA,qBAAc,EAAC,GAAG,EAAE,OAAO,CAAC,CAAA;gBAC3C,MAAK;YAET,KAAK,eAAQ,CAAC,YAAY;gBACtB,MAAM,GAAG,MAAM,IAAA,4BAAqB,EAAC,GAAG,EAAE,OAAO,CAAC,CAAA;gBAClD,MAAK;YAET,KAAK,eAAQ,CAAC,UAAU;gBACpB,MAAM,GAAG,MAAM,IAAA,sBAAe,EAAC,GAAG,EAAE,gBAAS,CAAC,IAAI,EAAE,eAAQ,CAAC,UAAU,CAAC,CAAA;gBACxE,MAAK;YAET,KAAK,eAAQ,CAAC,WAAW;gBACrB,MAAM,GAAG,MAAM,IAAA,sBAAe,EAAC,GAAG,EAAE,gBAAS,CAAC,KAAK,EAAE,eAAQ,CAAC,WAAW,CAAC,CAAA;gBAC1E,MAAK;YAET,KAAK,eAAQ,CAAC,UAAU;gBACpB,MAAM,GAAG,MAAM,IAAA,2BAAoB,EAAC,GAAG,CAAC,CAAA;gBACxC,MAAK;YAET;gBACI,MAAM,GAAG;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,wBAAwB,iBAAiB,EAAE;oBAClD,UAAU,EAAE,GAAG;iBAClB,CAAA;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;YAClE,OAAM;QACV,CAAC;QAED,IAAI,EAAE,CAAA;IACV,CAAC,CAAA;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const rateLimiter: (requestsWindow: number, maxRequests: number) => import("express-rate-limit").RateLimitRequestHandler;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rateLimiter = void 0;
|
|
4
|
+
const express_rate_limit_1 = require("express-rate-limit");
|
|
5
|
+
const rate_limit_redis_1 = require("rate-limit-redis");
|
|
6
|
+
const config_1 = require("../config");
|
|
7
|
+
const rateLimiter = (requestsWindow, maxRequests) => {
|
|
8
|
+
return (0, express_rate_limit_1.rateLimit)({
|
|
9
|
+
windowMs: requestsWindow,
|
|
10
|
+
max: maxRequests,
|
|
11
|
+
standardHeaders: true,
|
|
12
|
+
legacyHeaders: false,
|
|
13
|
+
store: new rate_limit_redis_1.RedisStore({
|
|
14
|
+
sendCommand: (command, ...args) => config_1.redisClientManager.primaryClient.call(command, ...args),
|
|
15
|
+
}),
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
exports.rateLimiter = rateLimiter;
|
|
19
|
+
//# sourceMappingURL=rateLimit.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateLimit.middleware.js","sourceRoot":"","sources":["../../../src/server/middleware/rateLimit.middleware.ts"],"names":[],"mappings":";;;AAAA,2DAA8C;AAC9C,uDAAyD;AACzD,sCAA8C;AAEvC,MAAM,WAAW,GAAG,CAAC,cAAsB,EAAE,WAAmB,EAAE,EAAE;IACvE,OAAO,IAAA,8BAAS,EAAC;QACb,QAAQ,EAAE,cAAc;QACxB,GAAG,EAAE,WAAW;QAChB,eAAe,EAAE,IAAI;QACrB,aAAa,EAAE,KAAK;QACpB,KAAK,EAAE,IAAI,6BAAU,CAAC;YAClB,WAAW,EAAE,CAAC,OAAe,EAAE,GAAG,IAAc,EAAE,EAAE,CAChD,2BAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAwB;SACrF,CAAC;KACL,CAAC,CAAA;AACN,CAAC,CAAA;AAXY,QAAA,WAAW,eAWvB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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("./redis-cache-manager"), exports);
|
|
18
|
+
__exportStar(require("./rmq-manager"), exports);
|
|
19
|
+
__exportStar(require("./types"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/oracle/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,gDAA6B;AAC7B,0CAAuB"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @memberof RedisCacheKeysUtils
|
|
3
|
+
* @description Key for storing the mapping of fixture ids to levr ids in redis
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
import { MarketType } from "../../prisma";
|
|
7
|
+
export declare const providerFixtureIdToLevrId = "provider_fixture_id_to_levrId";
|
|
8
|
+
export declare const levrIdToProviderIds = "levr_id_to_provider_ids";
|
|
9
|
+
export declare const queueBlockHashKey = "queue_block_key";
|
|
10
|
+
export declare enum GameCollectionKeys {
|
|
11
|
+
activeGamesHash = "active_games_hash",
|
|
12
|
+
postGamesHash = "post_games_hash"
|
|
13
|
+
}
|
|
14
|
+
export declare enum RedisNumStates {
|
|
15
|
+
success = 1,
|
|
16
|
+
failure = 0
|
|
17
|
+
}
|
|
18
|
+
export declare const schedulesHash = "schedules_hash";
|
|
19
|
+
export declare const gameIdsToLevrFixtureIdsMap = "game_ids_to_levr_ids";
|
|
20
|
+
/**
|
|
21
|
+
* @memberof RedisCacheKeysUtils
|
|
22
|
+
* @description Key for storing the mapping of levr ids to fixture ids in redis
|
|
23
|
+
*/
|
|
24
|
+
export declare const gameIdsToFixtureIds = "game_ids_to_fixture_ids";
|
|
25
|
+
/**
|
|
26
|
+
* @memberof RedisCacheKeysUtils
|
|
27
|
+
* @description stores the list of scores for the given gameId appended to it
|
|
28
|
+
*/
|
|
29
|
+
export declare const getGameScoreByFixtureIdHash = "game_scores_by_fixture_id_hash";
|
|
30
|
+
/**
|
|
31
|
+
* @memberof RedisCacheKeysUtils
|
|
32
|
+
* @description stores the list of all levr games in cache
|
|
33
|
+
*/
|
|
34
|
+
export declare const levrGames = "levr_games";
|
|
35
|
+
export declare const gameToMarketOfOddsInCache = "game_to_market_ids_of_odds_in_cache_";
|
|
36
|
+
/**
|
|
37
|
+
* @memberof RedisCacheKeysUtils
|
|
38
|
+
* @description stores the game period info for the given gameId appended to it
|
|
39
|
+
* @example {
|
|
40
|
+
* gameId: 1,
|
|
41
|
+
* period: 1,
|
|
42
|
+
* timeUpdated: 1714857600
|
|
43
|
+
* }
|
|
44
|
+
*/
|
|
45
|
+
export declare const baseBallGamePeriodInfo = "baseball_game_period_info";
|
|
46
|
+
/**
|
|
47
|
+
* @memberof RedisCacheKeysUtils
|
|
48
|
+
* @description stores the full time odds for the given gameId appended to it
|
|
49
|
+
* @example {
|
|
50
|
+
* gameId: 1,
|
|
51
|
+
* odds:
|
|
52
|
+
* }
|
|
53
|
+
*/
|
|
54
|
+
export declare const marketOddsKey = "market_odds";
|
|
55
|
+
export declare const marketByMarketIdKey = "market_by_market_id_";
|
|
56
|
+
export declare const marketByGameUniqueIdKeyAndMarketType = "market_by_game_unique_id_";
|
|
57
|
+
/**
|
|
58
|
+
* @memberof RedisCacheKeysUtils
|
|
59
|
+
* @description stores the time invalidation for the cache
|
|
60
|
+
*/
|
|
61
|
+
export declare const cacheTimeInvalidation = 60;
|
|
62
|
+
/** @audit levr fixture ids must be the same for games across all chains */
|
|
63
|
+
/**
|
|
64
|
+
* @memberof RedisCacheKeysUtils
|
|
65
|
+
* @param gameId
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
export declare const getMoneylineByGameIdKey: (gameId: number) => string;
|
|
69
|
+
/**
|
|
70
|
+
* @memberof RedisCacheKeysUtils
|
|
71
|
+
* @param gameId
|
|
72
|
+
* @returns
|
|
73
|
+
*/
|
|
74
|
+
export declare const getCacheLevrGameIdKey: (gameId: number) => string;
|
|
75
|
+
/**
|
|
76
|
+
* @memberof RedisCacheKeysUtils
|
|
77
|
+
* @param fixtureId
|
|
78
|
+
* @returns
|
|
79
|
+
*/
|
|
80
|
+
export declare const getCachedLevrByFixtureIdKey: (fixtureId: string, chainId: number) => string;
|
|
81
|
+
export declare const getMarketOddsField: (gameUniqueId: string, marketType: MarketType) => string;
|
|
82
|
+
export declare const getProviderIdsToLevrFixtureIdKey: (providerId: string) => string;
|
|
83
|
+
export declare const getLevrFixtureIdToProviderIdsKey: (levrFixtureId: string) => string;
|
|
84
|
+
export declare const getMarketOddsByMarketIdKey: (marketId: string) => string;
|
|
85
|
+
export declare const getMarketOddsByGameUniqueIdKeyAndMarketType: (gameUniqueId: string) => string;
|
|
86
|
+
export declare const getGameToMarketsOfOddsInCacheKey: (gameUniqueId: string) => string;
|
|
87
|
+
export declare const getCompletedMarketsKey: (marketType: MarketType) => string;
|
|
88
|
+
export declare const getCompletedMarketsField: (gameUniqueId: string, marketType: MarketType) => string;
|
|
89
|
+
export declare const getGamesKeyByChainId: (gameCollectionKey: GameCollectionKeys, chainId: number) => string;
|
|
90
|
+
export declare const getRevokedApiKey: (keyId: string) => string;
|