@levrbet/shared 0.2.103 → 0.3.3
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/dist/core/config/urls.d.ts +0 -8
- package/dist/core/config/urls.js +12 -20
- package/dist/core/config/urls.js.map +1 -1
- package/dist/core/contracts/abis/LevrManager.d.ts +988 -1008
- package/dist/core/contracts/abis/LevrManager.js +497 -1536
- package/dist/core/contracts/abis/LevrManager.js.map +1 -1
- package/dist/core/contracts/abis/index.d.ts +988 -1008
- package/dist/core/contracts/addresses.d.ts +21 -21
- package/dist/core/contracts/addresses.js +19 -19
- package/dist/core/types/oracle/market/positions.types.d.ts +1 -7
- package/dist/react/hooks/contracts/useContracts.d.ts +19 -19
- package/dist/server/config/kms.js +1 -1
- package/dist/server/config/redis.d.ts +0 -5
- package/dist/server/config/redis.js +3 -13
- package/dist/server/config/redis.js.map +1 -1
- package/dist/server/config/urls.d.ts +0 -8
- package/dist/server/contracts/clients/ozRelayerService.d.ts +0 -1
- package/dist/server/contracts/clients/ozRelayerService.js +17 -110
- package/dist/server/contracts/clients/ozRelayerService.js.map +1 -1
- package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.d.ts +9 -9
- package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.js.map +1 -1
- package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.test.js +1 -1
- package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.test.js.map +1 -1
- package/dist/server/oracle/config/game-periods/providers/optic-odds.periods.d.ts +0 -4
- package/dist/server/oracle/config/game-periods/providers/optic-odds.periods.js +1 -5
- package/dist/server/oracle/config/game-periods/providers/optic-odds.periods.js.map +1 -1
- package/dist/server/oracle/config/game-periods/sports.config.d.ts +1 -1
- package/dist/server/oracle/config/game-periods/sports.config.js +6 -56
- package/dist/server/oracle/config/game-periods/sports.config.js.map +1 -1
- package/dist/server/oracle/config/game-periods/types.d.ts +1 -9
- package/dist/server/oracle/config/game-periods/types.js +0 -5
- package/dist/server/oracle/config/game-periods/types.js.map +1 -1
- package/dist/server/oracle/redis-cache-manager/cache.keys.utils.d.ts +45 -74
- package/dist/server/oracle/redis-cache-manager/cache.keys.utils.js +65 -120
- package/dist/server/oracle/redis-cache-manager/cache.keys.utils.js.map +1 -1
- package/dist/server/oracle/redis-cache-manager/channels.d.ts +2 -2
- package/dist/server/oracle/redis-cache-manager/channels.js.map +1 -1
- package/dist/server/oracle/redis-cache-manager/game.progress.d.ts +4 -4
- package/dist/server/oracle/redis-cache-manager/game.progress.js.map +1 -1
- package/dist/server/oracle/redis-cache-manager/game.query.engine.d.ts +90 -0
- package/dist/server/oracle/redis-cache-manager/game.query.engine.js +436 -0
- package/dist/server/oracle/redis-cache-manager/game.query.engine.js.map +1 -0
- package/dist/server/oracle/redis-cache-manager/index.d.ts +2 -2
- package/dist/server/oracle/redis-cache-manager/index.js +2 -2
- package/dist/server/oracle/redis-cache-manager/index.js.map +1 -1
- package/dist/server/oracle/redis-cache-manager/leagues.cache.service.d.ts +3 -3
- package/dist/server/oracle/redis-cache-manager/leagues.cache.service.js +1 -5
- package/dist/server/oracle/redis-cache-manager/leagues.cache.service.js.map +1 -1
- package/dist/server/oracle/redis-cache-manager/market.query.engine.d.ts +50 -97
- package/dist/server/oracle/redis-cache-manager/market.query.engine.js +310 -467
- package/dist/server/oracle/redis-cache-manager/market.query.engine.js.map +1 -1
- package/dist/server/oracle/rmq-manager/base.queue.manager.d.ts +1 -1
- package/dist/server/oracle/rmq-manager/base.queue.manager.js +1 -1
- package/dist/server/oracle/rmq-manager/base.queue.manager.js.map +1 -1
- package/dist/server/services/presigned.urls.js +1 -1
- package/dist/server/services/presigned.urls.js.map +1 -1
- package/dist/server/utils/game_progress/caclulate.game.progress.d.ts +4 -132
- package/dist/server/utils/game_progress/caclulate.game.progress.js +24 -195
- package/dist/server/utils/game_progress/caclulate.game.progress.js.map +1 -1
- package/dist/server/utils/game_progress/game.utils.d.ts +1 -6
- package/dist/server/utils/game_progress/game.utils.js +52 -71
- package/dist/server/utils/game_progress/game.utils.js.map +1 -1
- package/dist/server/utils/game_progress/parser.js +0 -6
- package/dist/server/utils/game_progress/parser.js.map +1 -1
- package/package.json +5 -5
- package/prisma/schema.prisma +3 -39
- package/scripts/setup-prisma.js +0 -0
- package/dist/server/oracle/redis-cache-manager/game.cache.service.d.ts +0 -186
- package/dist/server/oracle/redis-cache-manager/game.cache.service.js +0 -712
- package/dist/server/oracle/redis-cache-manager/game.cache.service.js.map +0 -1
- package/dist/server/oracle/redis-cache-manager/market.cache.service.d.ts +0 -87
- package/dist/server/oracle/redis-cache-manager/market.cache.service.js +0 -139
- package/dist/server/oracle/redis-cache-manager/market.cache.service.js.map +0 -1
|
@@ -49,26 +49,26 @@ export declare const levrContractAddresses: {
|
|
|
49
49
|
};
|
|
50
50
|
readonly staging: {
|
|
51
51
|
readonly 10143: {
|
|
52
|
-
readonly levrConfigProvider: "
|
|
53
|
-
readonly levrMvpDepository: "
|
|
54
|
-
readonly levrMvpStaker: "
|
|
55
|
-
readonly levrMvpToken: "
|
|
56
|
-
readonly levrPythFeed: "
|
|
57
|
-
readonly levrManager: "
|
|
58
|
-
readonly levrMarketFeed: "
|
|
59
|
-
readonly levrLiquidationEngine: "
|
|
60
|
-
readonly levrFeeCollector: "
|
|
61
|
-
readonly levrFundManager: "
|
|
62
|
-
readonly levrMvpRouter: "
|
|
63
|
-
readonly levrMarketRouter: "
|
|
64
|
-
readonly levrMarketRiskSentinel: "
|
|
65
|
-
readonly levrMarketMaker: "
|
|
66
|
-
readonly levrOrderbook: "
|
|
67
|
-
readonly levrOrderbookLens: "
|
|
68
|
-
readonly levrFulltimeMarket: "
|
|
69
|
-
readonly levrOverUnderMarket: "
|
|
52
|
+
readonly levrConfigProvider: "0xF8A32A9ED9ab3aAd0878DFc96BbD0F596A541620";
|
|
53
|
+
readonly levrMvpDepository: "0x00202BE80E90Dd1944B2484De37cf7da7DE364bC";
|
|
54
|
+
readonly levrMvpStaker: "0x59aA7cbBC2D7F7A15D693d79dB21640c4fc6B6fa";
|
|
55
|
+
readonly levrMvpToken: "0xaD853C405d54e48F94D6AC90640ea24c70E91104";
|
|
56
|
+
readonly levrPythFeed: "0x5BEbfdeD1EdA2F747Fc68FffdB976da6c37d632F";
|
|
57
|
+
readonly levrManager: "0x8B81FaDbFa6b599989615424300c3813eb07214b";
|
|
58
|
+
readonly levrMarketFeed: "0xEA91DaeaE68FF8967d8E466b974385BEF4E8fd1B";
|
|
59
|
+
readonly levrLiquidationEngine: "0x41d8F335D2A7Cb54151CEA8830F5050e6a0F868F";
|
|
60
|
+
readonly levrFeeCollector: "0x6B9235230a474d3Dd32E89Fab5fa459f8eF1E9b7";
|
|
61
|
+
readonly levrFundManager: "0xf460cB8C1227AAF592C75E145C2d3BabF49104df";
|
|
62
|
+
readonly levrMvpRouter: "0xc55bcF0354Fe487098d4B813C770150FE2047354";
|
|
63
|
+
readonly levrMarketRouter: "0xc6E5766BaebA50f4eD6328BE3f241a07bE9b0f15";
|
|
64
|
+
readonly levrMarketRiskSentinel: "0x885eb277686Cd392c1EEDAA02d02034405272C7a";
|
|
65
|
+
readonly levrMarketMaker: "0x3B57b60b53444D9A44A3b2c9871E6627630B7709";
|
|
66
|
+
readonly levrOrderbook: "0x5C48f5AA8D216548147E4688C9f4E81acBC15324";
|
|
67
|
+
readonly levrOrderbookLens: "0x81205784BFfFB1A53d486A77F010C064Ce35Bf79";
|
|
68
|
+
readonly levrFulltimeMarket: "0x9892959dC99b3C7234807636e408D7974e1Ea8AD";
|
|
69
|
+
readonly levrOverUnderMarket: "0x46cC9E9803A69b6d90E67180f77Ad33a480Dd86e";
|
|
70
70
|
readonly levrUtil: "0x5309dc7cc514ec962a0b203e57a1b9a79bf8d386";
|
|
71
|
-
readonly usdcToken: "
|
|
71
|
+
readonly usdcToken: "0xCb4b4b18bC2D4f9e7e4A7Bbb372E31D547635dcC";
|
|
72
72
|
};
|
|
73
73
|
};
|
|
74
74
|
readonly prod: {
|
|
@@ -111,8 +111,8 @@ export declare const levrMarketContracts: {
|
|
|
111
111
|
};
|
|
112
112
|
readonly staging: {
|
|
113
113
|
readonly 10143: {
|
|
114
|
-
readonly "0xeb1dcadcfca10960803009411023082d": "
|
|
115
|
-
readonly "0xa94fb48271ded4f41a3089f130a62d1f": "
|
|
114
|
+
readonly "0xeb1dcadcfca10960803009411023082d": "0x9892959dC99b3C7234807636e408D7974e1Ea8AD";
|
|
115
|
+
readonly "0xa94fb48271ded4f41a3089f130a62d1f": "0x46cC9E9803A69b6d90E67180f77Ad33a480Dd86e";
|
|
116
116
|
};
|
|
117
117
|
};
|
|
118
118
|
readonly prod: {
|
|
@@ -54,26 +54,26 @@ exports.levrContractAddresses = {
|
|
|
54
54
|
},
|
|
55
55
|
staging: {
|
|
56
56
|
[types_1.LevrChain.MONAD_TESTNET]: {
|
|
57
|
-
levrConfigProvider: "
|
|
58
|
-
levrMvpDepository: "
|
|
59
|
-
levrMvpStaker: "
|
|
60
|
-
levrMvpToken: "
|
|
61
|
-
levrPythFeed: "
|
|
62
|
-
levrManager: "
|
|
63
|
-
levrMarketFeed: "
|
|
64
|
-
levrLiquidationEngine: "
|
|
65
|
-
levrFeeCollector: "
|
|
66
|
-
levrFundManager: "
|
|
67
|
-
levrMvpRouter: "
|
|
68
|
-
levrMarketRouter: "
|
|
69
|
-
levrMarketRiskSentinel: "
|
|
70
|
-
levrMarketMaker: "
|
|
71
|
-
levrOrderbook: "
|
|
72
|
-
levrOrderbookLens: "
|
|
73
|
-
levrFulltimeMarket: "
|
|
74
|
-
levrOverUnderMarket: "
|
|
57
|
+
levrConfigProvider: "0xF8A32A9ED9ab3aAd0878DFc96BbD0F596A541620",
|
|
58
|
+
levrMvpDepository: "0x00202BE80E90Dd1944B2484De37cf7da7DE364bC",
|
|
59
|
+
levrMvpStaker: "0x59aA7cbBC2D7F7A15D693d79dB21640c4fc6B6fa",
|
|
60
|
+
levrMvpToken: "0xaD853C405d54e48F94D6AC90640ea24c70E91104",
|
|
61
|
+
levrPythFeed: "0x5BEbfdeD1EdA2F747Fc68FffdB976da6c37d632F",
|
|
62
|
+
levrManager: "0x8B81FaDbFa6b599989615424300c3813eb07214b",
|
|
63
|
+
levrMarketFeed: "0xEA91DaeaE68FF8967d8E466b974385BEF4E8fd1B",
|
|
64
|
+
levrLiquidationEngine: "0x41d8F335D2A7Cb54151CEA8830F5050e6a0F868F",
|
|
65
|
+
levrFeeCollector: "0x6B9235230a474d3Dd32E89Fab5fa459f8eF1E9b7",
|
|
66
|
+
levrFundManager: "0xf460cB8C1227AAF592C75E145C2d3BabF49104df",
|
|
67
|
+
levrMvpRouter: "0xc55bcF0354Fe487098d4B813C770150FE2047354",
|
|
68
|
+
levrMarketRouter: "0xc6E5766BaebA50f4eD6328BE3f241a07bE9b0f15",
|
|
69
|
+
levrMarketRiskSentinel: "0x885eb277686Cd392c1EEDAA02d02034405272C7a",
|
|
70
|
+
levrMarketMaker: "0x3B57b60b53444D9A44A3b2c9871E6627630B7709",
|
|
71
|
+
levrOrderbook: "0x5C48f5AA8D216548147E4688C9f4E81acBC15324",
|
|
72
|
+
levrOrderbookLens: "0x81205784BFfFB1A53d486A77F010C064Ce35Bf79",
|
|
73
|
+
levrFulltimeMarket: "0x9892959dC99b3C7234807636e408D7974e1Ea8AD",
|
|
74
|
+
levrOverUnderMarket: "0x46cC9E9803A69b6d90E67180f77Ad33a480Dd86e",
|
|
75
75
|
levrUtil: "0x5309dc7cc514ec962a0b203e57a1b9a79bf8d386",
|
|
76
|
-
usdcToken: "
|
|
76
|
+
usdcToken: "0xCb4b4b18bC2D4f9e7e4A7Bbb372E31D547635dcC",
|
|
77
77
|
},
|
|
78
78
|
},
|
|
79
79
|
prod: {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { LevrMarketId } from "../../../contracts";
|
|
2
|
-
import { LevrGameMarketId } from "./markets.types";
|
|
3
1
|
export interface MarketPosition {
|
|
4
2
|
id: string;
|
|
3
|
+
game: string;
|
|
5
4
|
homeTeam: string;
|
|
6
5
|
awayTeam: string;
|
|
7
6
|
selectedTeam: string;
|
|
@@ -16,12 +15,7 @@ export interface MarketPosition {
|
|
|
16
15
|
leverage: string;
|
|
17
16
|
marketPrice: number;
|
|
18
17
|
liquidationPrice: number;
|
|
19
|
-
liquidationOddsAmerican: number;
|
|
20
|
-
liquidationOddsEuropean: number;
|
|
21
18
|
healthFactor: number;
|
|
22
|
-
gameMarketId: LevrGameMarketId;
|
|
23
|
-
levrMarketId: LevrMarketId;
|
|
24
|
-
isDraw: boolean;
|
|
25
19
|
margin: number;
|
|
26
20
|
isLong: boolean;
|
|
27
21
|
resultBadge?: {
|
|
@@ -67,26 +67,26 @@ export declare const useContractAddresses: (params?: UseContractParams) => {
|
|
|
67
67
|
readonly levrUtil: "0x5309dc7cc514ec962a0b203e57a1b9a79bf8d386";
|
|
68
68
|
readonly usdcToken: "0xCb4b4b18bC2D4f9e7e4A7Bbb372E31D547635dcC";
|
|
69
69
|
} | {
|
|
70
|
-
readonly levrConfigProvider: "
|
|
71
|
-
readonly levrMvpDepository: "
|
|
72
|
-
readonly levrMvpStaker: "
|
|
73
|
-
readonly levrMvpToken: "
|
|
74
|
-
readonly levrPythFeed: "
|
|
75
|
-
readonly levrManager: "
|
|
76
|
-
readonly levrMarketFeed: "
|
|
77
|
-
readonly levrLiquidationEngine: "
|
|
78
|
-
readonly levrFeeCollector: "
|
|
79
|
-
readonly levrFundManager: "
|
|
80
|
-
readonly levrMvpRouter: "
|
|
81
|
-
readonly levrMarketRouter: "
|
|
82
|
-
readonly levrMarketRiskSentinel: "
|
|
83
|
-
readonly levrMarketMaker: "
|
|
84
|
-
readonly levrOrderbook: "
|
|
85
|
-
readonly levrOrderbookLens: "
|
|
86
|
-
readonly levrFulltimeMarket: "
|
|
87
|
-
readonly levrOverUnderMarket: "
|
|
70
|
+
readonly levrConfigProvider: "0xF8A32A9ED9ab3aAd0878DFc96BbD0F596A541620";
|
|
71
|
+
readonly levrMvpDepository: "0x00202BE80E90Dd1944B2484De37cf7da7DE364bC";
|
|
72
|
+
readonly levrMvpStaker: "0x59aA7cbBC2D7F7A15D693d79dB21640c4fc6B6fa";
|
|
73
|
+
readonly levrMvpToken: "0xaD853C405d54e48F94D6AC90640ea24c70E91104";
|
|
74
|
+
readonly levrPythFeed: "0x5BEbfdeD1EdA2F747Fc68FffdB976da6c37d632F";
|
|
75
|
+
readonly levrManager: "0x8B81FaDbFa6b599989615424300c3813eb07214b";
|
|
76
|
+
readonly levrMarketFeed: "0xEA91DaeaE68FF8967d8E466b974385BEF4E8fd1B";
|
|
77
|
+
readonly levrLiquidationEngine: "0x41d8F335D2A7Cb54151CEA8830F5050e6a0F868F";
|
|
78
|
+
readonly levrFeeCollector: "0x6B9235230a474d3Dd32E89Fab5fa459f8eF1E9b7";
|
|
79
|
+
readonly levrFundManager: "0xf460cB8C1227AAF592C75E145C2d3BabF49104df";
|
|
80
|
+
readonly levrMvpRouter: "0xc55bcF0354Fe487098d4B813C770150FE2047354";
|
|
81
|
+
readonly levrMarketRouter: "0xc6E5766BaebA50f4eD6328BE3f241a07bE9b0f15";
|
|
82
|
+
readonly levrMarketRiskSentinel: "0x885eb277686Cd392c1EEDAA02d02034405272C7a";
|
|
83
|
+
readonly levrMarketMaker: "0x3B57b60b53444D9A44A3b2c9871E6627630B7709";
|
|
84
|
+
readonly levrOrderbook: "0x5C48f5AA8D216548147E4688C9f4E81acBC15324";
|
|
85
|
+
readonly levrOrderbookLens: "0x81205784BFfFB1A53d486A77F010C064Ce35Bf79";
|
|
86
|
+
readonly levrFulltimeMarket: "0x9892959dC99b3C7234807636e408D7974e1Ea8AD";
|
|
87
|
+
readonly levrOverUnderMarket: "0x46cC9E9803A69b6d90E67180f77Ad33a480Dd86e";
|
|
88
88
|
readonly levrUtil: "0x5309dc7cc514ec962a0b203e57a1b9a79bf8d386";
|
|
89
|
-
readonly usdcToken: "
|
|
89
|
+
readonly usdcToken: "0xCb4b4b18bC2D4f9e7e4A7Bbb372E31D547635dcC";
|
|
90
90
|
} | {
|
|
91
91
|
readonly levrConfigProvider: "0xF8A32A9ED9ab3aAd0878DFc96BbD0F596A541620";
|
|
92
92
|
readonly levrMvpDepository: "0x00202BE80E90Dd1944B2484De37cf7da7DE364bC";
|
|
@@ -15,7 +15,7 @@ class KmsClientManager {
|
|
|
15
15
|
this.kmsKeyIds = {
|
|
16
16
|
[core_1.LevrEnv.LOCAL]: "b6050d0f-be5b-418c-9056-c53c1d982dec",
|
|
17
17
|
[core_1.LevrEnv.DEV]: "b6050d0f-be5b-418c-9056-c53c1d982dec",
|
|
18
|
-
[core_1.LevrEnv.STAGING]: "
|
|
18
|
+
[core_1.LevrEnv.STAGING]: "b6050d0f-be5b-418c-9056-c53c1d982dec",
|
|
19
19
|
[core_1.LevrEnv.PROD]: "b6050d0f-be5b-418c-9056-c53c1d982dec",
|
|
20
20
|
};
|
|
21
21
|
this.KeyId = this.kmsKeyIds[dotenv_1.LEVR_ENV];
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
2
|
import Redis, { type RedisOptions } from "ioredis";
|
|
3
|
-
/**
|
|
4
|
-
* Type alias for Redis client.
|
|
5
|
-
* Use this type when accepting a Redis client as a parameter in functions.
|
|
6
|
-
*/
|
|
7
|
-
export type RedisClient = Redis;
|
|
8
3
|
export declare enum RedisDb {
|
|
9
4
|
ORACLE = 0,
|
|
10
5
|
ORDERBOOK = 1,
|
|
@@ -6,9 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.redisClientManager = exports.RedisDb = void 0;
|
|
7
7
|
require("dotenv/config");
|
|
8
8
|
const ioredis_1 = __importDefault(require("ioredis"));
|
|
9
|
-
const core_1 = require("../../core");
|
|
10
9
|
const _1 = require(".");
|
|
11
|
-
const
|
|
10
|
+
const core_1 = require("../../core");
|
|
12
11
|
const winston_1 = __importDefault(require("./winston"));
|
|
13
12
|
var RedisDb;
|
|
14
13
|
(function (RedisDb) {
|
|
@@ -79,18 +78,9 @@ class RedisClientManager {
|
|
|
79
78
|
}
|
|
80
79
|
this.initialized = true;
|
|
81
80
|
const { REDIS_URL, REDIS_REPLICA_ENDPOINTS } = core_1.Config.init(_1.redisSchema);
|
|
82
|
-
// Enable TLS for non-dev/local environments, but skip for local Redis URLs (localhost, redis://)
|
|
83
|
-
const isLocalRedis = REDIS_URL.includes("localhost") || REDIS_URL.includes("redis://redis:");
|
|
84
|
-
const shouldUseTls = !isLocalRedis && dotenv_1.LEVR_ENV !== core_1.LevrEnv.DEV && dotenv_1.LEVR_ENV !== core_1.LevrEnv.LOCAL;
|
|
85
|
-
const redisOptions = {
|
|
86
|
-
...options,
|
|
87
|
-
...(shouldUseTls && {
|
|
88
|
-
tls: {},
|
|
89
|
-
}),
|
|
90
|
-
};
|
|
91
81
|
if (options?.db)
|
|
92
82
|
this.dbIndex = options.db;
|
|
93
|
-
this._primaryClient = new ioredis_1.default(REDIS_URL,
|
|
83
|
+
this._primaryClient = options ? new ioredis_1.default(REDIS_URL, options) : new ioredis_1.default(REDIS_URL);
|
|
94
84
|
if (options?.db)
|
|
95
85
|
void this._primaryClient.select(options.db);
|
|
96
86
|
this._primaryClient.on("error", (err) => {
|
|
@@ -101,7 +91,7 @@ class RedisClientManager {
|
|
|
101
91
|
});
|
|
102
92
|
const replicaEndpoints = REDIS_REPLICA_ENDPOINTS.split(",").filter(Boolean); // Comma-separated list of replica endpoints
|
|
103
93
|
this.replicaClients = replicaEndpoints.map((url) => {
|
|
104
|
-
const client = new ioredis_1.default(url,
|
|
94
|
+
const client = options ? new ioredis_1.default(url, options) : new ioredis_1.default(url);
|
|
105
95
|
if (options?.db)
|
|
106
96
|
void client.select(options.db);
|
|
107
97
|
client.on("error", (err) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/server/config/redis.ts"],"names":[],"mappings":";;;;;;AAAA,yBAAsB;AACtB,sDAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/server/config/redis.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,7 @@ export declare const urls: {
|
|
|
5
5
|
oracleProcessors: string;
|
|
6
6
|
relayer: string;
|
|
7
7
|
referrals: string;
|
|
8
|
-
lambda: string;
|
|
9
8
|
liquidationEngine: string;
|
|
10
|
-
leaderboard: string;
|
|
11
9
|
indexers: {
|
|
12
10
|
10143: {
|
|
13
11
|
type: import("../../core").LevrIndexer;
|
|
@@ -21,9 +19,7 @@ export declare const urls: {
|
|
|
21
19
|
oracleProcessors: string;
|
|
22
20
|
relayer: string;
|
|
23
21
|
referrals: string;
|
|
24
|
-
lambda: string;
|
|
25
22
|
liquidationEngine: string;
|
|
26
|
-
leaderboard: string;
|
|
27
23
|
indexers: {
|
|
28
24
|
10143: {
|
|
29
25
|
type: import("../../core").LevrIndexer;
|
|
@@ -37,9 +33,7 @@ export declare const urls: {
|
|
|
37
33
|
oracleProcessors: string;
|
|
38
34
|
relayer: string;
|
|
39
35
|
referrals: string;
|
|
40
|
-
lambda: string;
|
|
41
36
|
liquidationEngine: string;
|
|
42
|
-
leaderboard: string;
|
|
43
37
|
indexers: {
|
|
44
38
|
10143: {
|
|
45
39
|
type: import("../../core").LevrIndexer;
|
|
@@ -53,9 +47,7 @@ export declare const urls: {
|
|
|
53
47
|
oracleProcessors: string;
|
|
54
48
|
relayer: string;
|
|
55
49
|
referrals: string;
|
|
56
|
-
lambda: string;
|
|
57
50
|
liquidationEngine: string;
|
|
58
|
-
leaderboard: string;
|
|
59
51
|
indexers: {
|
|
60
52
|
10143: {
|
|
61
53
|
type: import("../../core").LevrIndexer;
|
|
@@ -1,51 +1,18 @@
|
|
|
1
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
7
|
};
|
|
24
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
-
var ownKeys = function(o) {
|
|
26
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
-
var ar = [];
|
|
28
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
-
return ar;
|
|
30
|
-
};
|
|
31
|
-
return ownKeys(o);
|
|
32
|
-
};
|
|
33
|
-
return function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
|
-
})();
|
|
41
8
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
42
9
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
43
10
|
};
|
|
44
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
12
|
const relayer_sdk_1 = require("@openzeppelin/relayer-sdk");
|
|
46
|
-
const axios_1 =
|
|
47
|
-
const axios_retry_1 = __importDefault(require("axios-retry"));
|
|
13
|
+
const axios_1 = require("axios");
|
|
48
14
|
const dayjs_1 = __importDefault(require("dayjs"));
|
|
15
|
+
const ms_1 = __importDefault(require("ms"));
|
|
49
16
|
const typescript_memoize_1 = require("typescript-memoize");
|
|
50
17
|
const viem_1 = require("viem");
|
|
51
18
|
const core_1 = require("../../../core");
|
|
@@ -53,34 +20,11 @@ const config_1 = require("../../config");
|
|
|
53
20
|
class OzRelayerService {
|
|
54
21
|
constructor() {
|
|
55
22
|
this.relayerGroupSizes = {
|
|
56
|
-
[core_1.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
[core_1.LevrRelayerGroup.POSITION_HANDLER]: 3,
|
|
62
|
-
},
|
|
63
|
-
[core_1.LevrEnv.DEV]: {
|
|
64
|
-
[core_1.LevrRelayerGroup.GAME_ADMIN]: 3,
|
|
65
|
-
[core_1.LevrRelayerGroup.FEED_PROVIDER]: 3,
|
|
66
|
-
[core_1.LevrRelayerGroup.LIQUIDATOR]: 3,
|
|
67
|
-
[core_1.LevrRelayerGroup.MATCH_MAKER]: 3,
|
|
68
|
-
[core_1.LevrRelayerGroup.POSITION_HANDLER]: 3,
|
|
69
|
-
},
|
|
70
|
-
[core_1.LevrEnv.STAGING]: {
|
|
71
|
-
[core_1.LevrRelayerGroup.GAME_ADMIN]: 5,
|
|
72
|
-
[core_1.LevrRelayerGroup.FEED_PROVIDER]: 5,
|
|
73
|
-
[core_1.LevrRelayerGroup.LIQUIDATOR]: 5,
|
|
74
|
-
[core_1.LevrRelayerGroup.MATCH_MAKER]: 5,
|
|
75
|
-
[core_1.LevrRelayerGroup.POSITION_HANDLER]: 5,
|
|
76
|
-
},
|
|
77
|
-
[core_1.LevrEnv.PROD]: {
|
|
78
|
-
[core_1.LevrRelayerGroup.GAME_ADMIN]: 5,
|
|
79
|
-
[core_1.LevrRelayerGroup.FEED_PROVIDER]: 5,
|
|
80
|
-
[core_1.LevrRelayerGroup.LIQUIDATOR]: 5,
|
|
81
|
-
[core_1.LevrRelayerGroup.MATCH_MAKER]: 5,
|
|
82
|
-
[core_1.LevrRelayerGroup.POSITION_HANDLER]: 5,
|
|
83
|
-
},
|
|
23
|
+
[core_1.LevrRelayerGroup.GAME_ADMIN]: 3,
|
|
24
|
+
[core_1.LevrRelayerGroup.FEED_PROVIDER]: 3,
|
|
25
|
+
[core_1.LevrRelayerGroup.LIQUIDATOR]: 3,
|
|
26
|
+
[core_1.LevrRelayerGroup.MATCH_MAKER]: 3,
|
|
27
|
+
[core_1.LevrRelayerGroup.POSITION_HANDLER]: 3,
|
|
84
28
|
};
|
|
85
29
|
this.lastUsedIndexRedisKey = `oz-relayer-last-used-index`;
|
|
86
30
|
this.getWalletClient = async (chainId, relayerGroup) => {
|
|
@@ -115,12 +59,8 @@ class OzRelayerService {
|
|
|
115
59
|
return await this.waitForTxHashOnChain(txHash, chainId, relayerId, txId);
|
|
116
60
|
};
|
|
117
61
|
this.getTxHashFromRelayer = async (relayerId, txId) => {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const defaultInterval = 5000; // Remaining attempts use 5s
|
|
121
|
-
for (let i = 0; i < maxAttempts; i++) {
|
|
122
|
-
const delay = pollIntervals[i] ?? defaultInterval;
|
|
123
|
-
await new Promise((r) => setTimeout(r, delay));
|
|
62
|
+
for (let i = 0; i < 20; i++) {
|
|
63
|
+
await new Promise((r) => setTimeout(r, (0, ms_1.default)("5s")));
|
|
124
64
|
config_1.logger.info(`Attempt ${i + 1}: Fetching tx from relayer...`, { relayerId, txId });
|
|
125
65
|
const { data } = await this.relayersApi().getTransactionById(relayerId, txId);
|
|
126
66
|
const tx = data.data;
|
|
@@ -140,24 +80,7 @@ class OzRelayerService {
|
|
|
140
80
|
}
|
|
141
81
|
config_1.logger.info(`Transaction still not submitted...`, { relayerId, txId, status: tx.status });
|
|
142
82
|
}
|
|
143
|
-
|
|
144
|
-
config_1.logger.warn(`Transaction ${txId} stuck after ${maxAttempts} attempts. Attempting to cancel...`, { relayerId, txId });
|
|
145
|
-
await this.cancelTransaction(relayerId, txId);
|
|
146
|
-
throw new Error(`Transaction ${txId} cancelled after timeout on relayer ${relayerId}`);
|
|
147
|
-
};
|
|
148
|
-
this.cancelTransaction = async (relayerId, txId) => {
|
|
149
|
-
try {
|
|
150
|
-
await this.relayersApi().cancelTransaction(relayerId, txId);
|
|
151
|
-
config_1.logger.info(`Successfully cancelled transaction.`, { relayerId, txId });
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
config_1.logger.error(`Failed to cancel transaction.`, {
|
|
155
|
-
relayerId,
|
|
156
|
-
txId,
|
|
157
|
-
error: error instanceof Error ? error.message : String(error),
|
|
158
|
-
});
|
|
159
|
-
// Don't throw - cancellation failure shouldn't mask the original timeout error
|
|
160
|
-
}
|
|
83
|
+
throw new Error(`Timeout waiting for transaction ${txId} to be submitted by relayer ${relayerId}`);
|
|
161
84
|
};
|
|
162
85
|
this.waitForTxHashOnChain = async (txHash, chainId, relayerId, txId) => {
|
|
163
86
|
const publicClient = core_1.publicClientService.getPublicClient(chainId);
|
|
@@ -177,19 +100,19 @@ class OzRelayerService {
|
|
|
177
100
|
}
|
|
178
101
|
};
|
|
179
102
|
this.proxyTxToRelayer = async ({ request, chainId, relayer }) => {
|
|
103
|
+
config_1.logger.info(`Proxying transaction to relayer.`, { request, chainId, relayer });
|
|
180
104
|
const { data, to } = request;
|
|
181
|
-
config_1.logger.info(`Proxying transaction to relayer.`, { to, chainId, relayerId: relayer.id });
|
|
182
105
|
try {
|
|
183
106
|
const { data: { data: tx }, } = await this.relayersApi().sendTransaction(relayer.id, {
|
|
184
107
|
data,
|
|
185
108
|
to: to ?? undefined,
|
|
186
109
|
value: 0,
|
|
187
110
|
speed: relayer_sdk_1.Speed.FASTEST,
|
|
188
|
-
valid_until: (0, dayjs_1.default)().add(
|
|
111
|
+
valid_until: (0, dayjs_1.default)().add(100, "seconds").toISOString(),
|
|
189
112
|
});
|
|
190
113
|
if (!tx)
|
|
191
114
|
throw new Error(`Failed to send transaction to Relayer ${relayer.id}`);
|
|
192
|
-
config_1.logger.info(`Transaction sent to relayer.`, {
|
|
115
|
+
config_1.logger.info(`Transaction sent to relayer.`, { request, chainId, relayer, tx });
|
|
193
116
|
return tx.id;
|
|
194
117
|
}
|
|
195
118
|
catch (e) {
|
|
@@ -200,9 +123,9 @@ class OzRelayerService {
|
|
|
200
123
|
};
|
|
201
124
|
this.getNextIndex = async (chainId, relayerGroup) => {
|
|
202
125
|
const hashField = `${chainId}-${relayerGroup}`;
|
|
203
|
-
const groupSize = this.relayerGroupSizes[
|
|
126
|
+
const groupSize = this.relayerGroupSizes[relayerGroup];
|
|
204
127
|
if (!groupSize)
|
|
205
|
-
throw new Error(`No relayer group size configured for ${relayerGroup}
|
|
128
|
+
throw new Error(`No relayer group size configured for ${relayerGroup}`);
|
|
206
129
|
// Use a Lua script to atomically get and update the index
|
|
207
130
|
const luaScript = `
|
|
208
131
|
local key = KEYS[1]
|
|
@@ -237,24 +160,8 @@ class OzRelayerService {
|
|
|
237
160
|
relayersApi() {
|
|
238
161
|
config_1.logger.info(`Creating Relayers API client`);
|
|
239
162
|
const { RELAYER_ACCESS_TOKEN } = core_1.Config.init(config_1.relayerSchema);
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
(0, axios_retry_1.default)(axiosInstance, {
|
|
243
|
-
retries: 3,
|
|
244
|
-
retryDelay: axios_retry_1.default.exponentialDelay,
|
|
245
|
-
retryCondition: (e) => axios_retry_1.default.isNetworkOrIdempotentRequestError(e) || (e.response?.status ?? 0) >= 500,
|
|
246
|
-
onRetry: (retryCount, error) => {
|
|
247
|
-
config_1.logger.warn(`Retrying relayer API request (attempt ${retryCount})`, {
|
|
248
|
-
error: error.message,
|
|
249
|
-
status: error.response?.status,
|
|
250
|
-
});
|
|
251
|
-
},
|
|
252
|
-
});
|
|
253
|
-
const config = new relayer_sdk_1.Configuration({
|
|
254
|
-
basePath: config_1.urls.relayer,
|
|
255
|
-
accessToken: RELAYER_ACCESS_TOKEN,
|
|
256
|
-
});
|
|
257
|
-
return new relayer_sdk_1.RelayersApi(config, undefined, axiosInstance);
|
|
163
|
+
const config = new relayer_sdk_1.Configuration({ basePath: config_1.urls.relayer, accessToken: RELAYER_ACCESS_TOKEN });
|
|
164
|
+
return new relayer_sdk_1.RelayersApi(config);
|
|
258
165
|
}
|
|
259
166
|
async getRelayer(relayerId) {
|
|
260
167
|
const response = await this.relayersApi().getRelayer(relayerId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ozRelayerService.js","sourceRoot":"","sources":["../../../../src/server/contracts/clients/ozRelayerService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ozRelayerService.js","sourceRoot":"","sources":["../../../../src/server/contracts/clients/ozRelayerService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Odds } from "@prisma/client";
|
|
2
|
-
import
|
|
2
|
+
import { Redis } from "ioredis";
|
|
3
3
|
import { type Bytes32 } from "../../../core";
|
|
4
4
|
import { type SnapShotReadState } from "../types";
|
|
5
5
|
/**
|
|
@@ -25,7 +25,7 @@ import { type SnapShotReadState } from "../types";
|
|
|
25
25
|
* - Ensures that each market is always assigned to a set, and the mapping is kept up-to-date for efficient retrieval.
|
|
26
26
|
* - Designed for high-throughput environments where market assignments need to be balanced dynamically.
|
|
27
27
|
*/
|
|
28
|
-
export declare const updateStreamSetsRoundRobin: (redis:
|
|
28
|
+
export declare const updateStreamSetsRoundRobin: (redis: Redis, marketId: Bytes32) => Promise<void>;
|
|
29
29
|
/**
|
|
30
30
|
* Removes a market's price stream from its associated Redis set and deletes its mapping.
|
|
31
31
|
*
|
|
@@ -47,8 +47,8 @@ export declare const updateStreamSetsRoundRobin: (redis: RedisClient, marketId:
|
|
|
47
47
|
* - Designed for use in environments where market-to-set mappings are dynamically managed.
|
|
48
48
|
* - Logging is performed at both warning and error levels for observability.
|
|
49
49
|
*/
|
|
50
|
-
export declare const removeStreamFromSet: (redis:
|
|
51
|
-
export declare const streamsOfMarketsBeingWatched: (redis:
|
|
50
|
+
export declare const removeStreamFromSet: (redis: Redis, marketId: Bytes32) => Promise<void>;
|
|
51
|
+
export declare const streamsOfMarketsBeingWatched: (redis: Redis, Id: number) => Promise<string[]>;
|
|
52
52
|
/**
|
|
53
53
|
* Adds an array of price objects to a Redis stream for a specific market.
|
|
54
54
|
*
|
|
@@ -72,7 +72,7 @@ export declare const streamsOfMarketsBeingWatched: (redis: RedisClient, Id: numb
|
|
|
72
72
|
* @throws
|
|
73
73
|
* Throws any unexpected errors encountered during consumer group creation or pipeline execution.
|
|
74
74
|
*/
|
|
75
|
-
export declare const addPrices: (redis:
|
|
75
|
+
export declare const addPrices: (redis: Redis, prices: Odds[], marketId: Bytes32) => Promise<void>;
|
|
76
76
|
/**
|
|
77
77
|
* Deletes the price stream associated with a specific market from Redis.
|
|
78
78
|
*
|
|
@@ -88,7 +88,7 @@ export declare const addPrices: (redis: RedisClient, prices: Odds[], marketId: B
|
|
|
88
88
|
* - Use this function when a market is being decommissioned or its price stream is no longer required.
|
|
89
89
|
* - Ensure that no other process is concurrently writing to the same stream to avoid race conditions.
|
|
90
90
|
*/
|
|
91
|
-
export declare const deleteStream: (redis:
|
|
91
|
+
export declare const deleteStream: (redis: Redis, marketId: Bytes32) => Promise<void>;
|
|
92
92
|
/**
|
|
93
93
|
* Retrieves and aggregates all odds data from a Redis stream for a given market.
|
|
94
94
|
*
|
|
@@ -111,15 +111,15 @@ export declare const deleteStream: (redis: RedisClient, marketId: Bytes32) => Pr
|
|
|
111
111
|
*
|
|
112
112
|
* @throws Never throws; errors are caught internally and reflected in the `snapshotState`.
|
|
113
113
|
*/
|
|
114
|
-
export declare const getStreamData: (redis:
|
|
114
|
+
export declare const getStreamData: (redis: Redis, marketId: Bytes32) => Promise<{
|
|
115
115
|
odds: Odds[];
|
|
116
116
|
snapshotState: SnapShotReadState;
|
|
117
117
|
}>;
|
|
118
118
|
/**
|
|
119
119
|
* Sets the change-over active marker in Redis.
|
|
120
120
|
*/
|
|
121
|
-
export declare const setChangeOverActive: (redis:
|
|
121
|
+
export declare const setChangeOverActive: (redis: Redis, status: boolean) => Promise<void>;
|
|
122
122
|
/**
|
|
123
123
|
* Checks whether the changeover for active liquidation is enabled in Redis.
|
|
124
124
|
*/
|
|
125
|
-
export declare const checkChangeOverActive: (redis:
|
|
125
|
+
export declare const checkChangeOverActive: (redis: Redis) => Promise<boolean>;
|