@levrbet/shared 0.3.1 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/core/config/urls.d.ts +8 -0
  2. package/dist/core/config/urls.js +23 -15
  3. package/dist/core/config/urls.js.map +1 -1
  4. package/dist/core/contracts/abis/LevrManager.d.ts +1008 -988
  5. package/dist/core/contracts/abis/LevrManager.js +1538 -499
  6. package/dist/core/contracts/abis/LevrManager.js.map +1 -1
  7. package/dist/core/contracts/abis/index.d.ts +1008 -988
  8. package/dist/core/contracts/addresses.d.ts +21 -21
  9. package/dist/core/contracts/addresses.js +19 -19
  10. package/dist/core/types/oracle/game/game.types.d.ts +3 -2
  11. package/dist/core/types/oracle/game/game.types.js +0 -1
  12. package/dist/core/types/oracle/game/game.types.js.map +1 -1
  13. package/dist/core/types/oracle/market/markets.types.d.ts +4 -2
  14. package/dist/core/types/oracle/market/markets.types.js.map +1 -1
  15. package/dist/core/types/oracle/market/positions.types.d.ts +7 -1
  16. package/dist/core/utils/game.utils.d.ts +0 -2
  17. package/dist/core/utils/game.utils.js +1 -69
  18. package/dist/core/utils/game.utils.js.map +1 -1
  19. package/dist/react/hooks/contracts/useContracts.d.ts +19 -19
  20. package/dist/server/config/kms.js +1 -1
  21. package/dist/server/config/redis.d.ts +5 -0
  22. package/dist/server/config/redis.js +13 -3
  23. package/dist/server/config/redis.js.map +1 -1
  24. package/dist/server/config/urls.d.ts +8 -0
  25. package/dist/server/contracts/clients/ozRelayerService.d.ts +1 -0
  26. package/dist/server/contracts/clients/ozRelayerService.js +110 -17
  27. package/dist/server/contracts/clients/ozRelayerService.js.map +1 -1
  28. package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.d.ts +9 -9
  29. package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.js.map +1 -1
  30. package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.test.js +1 -1
  31. package/dist/server/liquidation-engine/redis.cache.manager/prices.set.manager.test.js.map +1 -1
  32. package/dist/server/oracle/config/game-periods/providers/lsports.periods.js +3 -3
  33. package/dist/server/oracle/config/game-periods/providers/lsports.periods.js.map +1 -1
  34. package/dist/server/oracle/config/game-periods/providers/optic-odds.periods.d.ts +31 -4
  35. package/dist/server/oracle/config/game-periods/providers/optic-odds.periods.js +32 -5
  36. package/dist/server/oracle/config/game-periods/providers/optic-odds.periods.js.map +1 -1
  37. package/dist/server/oracle/config/game-periods/sports.config.d.ts +1 -1
  38. package/dist/server/oracle/config/game-periods/sports.config.js +125 -10
  39. package/dist/server/oracle/config/game-periods/sports.config.js.map +1 -1
  40. package/dist/server/oracle/config/game-periods/types.d.ts +15 -3
  41. package/dist/server/oracle/config/game-periods/types.js +6 -0
  42. package/dist/server/oracle/config/game-periods/types.js.map +1 -1
  43. package/dist/server/oracle/redis-cache-manager/channels.d.ts +2 -2
  44. package/dist/server/oracle/redis-cache-manager/channels.js.map +1 -1
  45. package/dist/server/oracle/redis-cache-manager/game.progress.d.ts +4 -0
  46. package/dist/server/oracle/redis-cache-manager/game.progress.js +27 -0
  47. package/dist/server/oracle/redis-cache-manager/game.progress.js.map +1 -0
  48. package/dist/server/oracle/redis-cache-manager/index.d.ts +1 -0
  49. package/dist/server/oracle/redis-cache-manager/index.js +1 -0
  50. package/dist/server/oracle/redis-cache-manager/index.js.map +1 -1
  51. package/dist/server/oracle/redis-cache-manager/leagues.cache.service.d.ts +3 -3
  52. package/dist/server/oracle/redis-cache-manager/leagues.cache.service.js +5 -1
  53. package/dist/server/oracle/redis-cache-manager/leagues.cache.service.js.map +1 -1
  54. package/dist/server/oracle/rmq-manager/base.queue.manager.d.ts +1 -1
  55. package/dist/server/oracle/rmq-manager/base.queue.manager.js +3 -1
  56. package/dist/server/oracle/rmq-manager/base.queue.manager.js.map +1 -1
  57. package/dist/server/oracle/types/providers/game-clock/index.d.ts +1 -1
  58. package/dist/server/oracle/types/providers/game-clock/index.js +1 -1
  59. package/dist/server/oracle/types/providers/game-clock/index.js.map +1 -1
  60. package/dist/server/services/presigned.urls.js +1 -1
  61. package/dist/server/services/presigned.urls.js.map +1 -1
  62. package/dist/server/utils/game_progress/caclulate.game.progress.d.ts +134 -0
  63. package/dist/server/utils/game_progress/caclulate.game.progress.js +267 -0
  64. package/dist/server/utils/game_progress/caclulate.game.progress.js.map +1 -0
  65. package/dist/server/utils/game_progress/game.utils.d.ts +7 -0
  66. package/dist/server/utils/game_progress/game.utils.js +83 -0
  67. package/dist/server/utils/game_progress/game.utils.js.map +1 -0
  68. package/dist/server/utils/game_progress/index.d.ts +3 -0
  69. package/dist/server/utils/game_progress/index.js +20 -0
  70. package/dist/server/utils/game_progress/index.js.map +1 -0
  71. package/dist/server/{oracle/types/providers/game-clock → utils/game_progress}/parser.d.ts +1 -7
  72. package/dist/server/{oracle/types/providers/game-clock → utils/game_progress}/parser.js +8 -13
  73. package/dist/server/utils/game_progress/parser.js.map +1 -0
  74. package/dist/server/utils/index.d.ts +1 -0
  75. package/dist/server/utils/index.js +1 -0
  76. package/dist/server/utils/index.js.map +1 -1
  77. package/package.json +2 -1
  78. package/prisma/schema.prisma +54 -15
  79. package/dist/server/oracle/types/providers/game-clock/parser.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: "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";
52
+ readonly levrConfigProvider: "0x432173BC643a7FCe366F169d5bE1B75191552189";
53
+ readonly levrMvpDepository: "0x90e82D207562836Fc19D0E377d1f4a2311A5E7df";
54
+ readonly levrMvpStaker: "0xfC4C8553ce22043d43859A5F8dd8D45098C37f66";
55
+ readonly levrMvpToken: "0xD5BC123a4aa832694b6E827bEB11f44902D3DA07";
56
+ readonly levrPythFeed: "0xDE606de672A150Df2669Ae25d6be1FfEcBDb561d";
57
+ readonly levrManager: "0x309b960cae4d4AfE031d6Ff9021a0242ef1A8E76";
58
+ readonly levrMarketFeed: "0x355f2Ce4A6243e83781bf6FAD214792b96aF0388";
59
+ readonly levrLiquidationEngine: "0x1a93e57c05e1B6242d4B2e80f4b4b61196975f4e";
60
+ readonly levrFeeCollector: "0x242c87CFb625982A18C01313Bb640f0fc581ce57";
61
+ readonly levrFundManager: "0x09D4449EB32F7E75AADA8509D0507BF5baCFd85f";
62
+ readonly levrMvpRouter: "0x53a4F405633e153B38215D6006591923492F95f5";
63
+ readonly levrMarketRouter: "0x1b049AAc0F973c8EddB177a981154c1aecdaAA71";
64
+ readonly levrMarketRiskSentinel: "0x5B06cc77351B5bA8a4804BC8EfB5Cf3eDC732c0b";
65
+ readonly levrMarketMaker: "0x43965219512971bcfD0831fE6477337826527Bf9";
66
+ readonly levrOrderbook: "0xf0444A84FccCaB8154EE3F14C1A5E7305954D1dD";
67
+ readonly levrOrderbookLens: "0x5F1cB4ae88499a6C0F2C1b59B0A174e3a608D221";
68
+ readonly levrFulltimeMarket: "0x39f9da32297BaA9274A9f01c213aCc30862587E6";
69
+ readonly levrOverUnderMarket: "0x9D9dAAe2EAa2505e3E1D544E860517E08a0bC24b";
70
70
  readonly levrUtil: "0x5309dc7cc514ec962a0b203e57a1b9a79bf8d386";
71
- readonly usdcToken: "0xCb4b4b18bC2D4f9e7e4A7Bbb372E31D547635dcC";
71
+ readonly usdcToken: "0x0B9A42F39515dF7ed69E0759F888f0E0a86cA2D7";
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": "0x9892959dC99b3C7234807636e408D7974e1Ea8AD";
115
- readonly "0xa94fb48271ded4f41a3089f130a62d1f": "0x46cC9E9803A69b6d90E67180f77Ad33a480Dd86e";
114
+ readonly "0xeb1dcadcfca10960803009411023082d": "0x39f9da32297BaA9274A9f01c213aCc30862587E6";
115
+ readonly "0xa94fb48271ded4f41a3089f130a62d1f": "0x9D9dAAe2EAa2505e3E1D544E860517E08a0bC24b";
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: "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",
57
+ levrConfigProvider: "0x432173BC643a7FCe366F169d5bE1B75191552189",
58
+ levrMvpDepository: "0x90e82D207562836Fc19D0E377d1f4a2311A5E7df",
59
+ levrMvpStaker: "0xfC4C8553ce22043d43859A5F8dd8D45098C37f66",
60
+ levrMvpToken: "0xD5BC123a4aa832694b6E827bEB11f44902D3DA07",
61
+ levrPythFeed: "0xDE606de672A150Df2669Ae25d6be1FfEcBDb561d",
62
+ levrManager: "0x309b960cae4d4AfE031d6Ff9021a0242ef1A8E76",
63
+ levrMarketFeed: "0x355f2Ce4A6243e83781bf6FAD214792b96aF0388",
64
+ levrLiquidationEngine: "0x1a93e57c05e1B6242d4B2e80f4b4b61196975f4e",
65
+ levrFeeCollector: "0x242c87CFb625982A18C01313Bb640f0fc581ce57",
66
+ levrFundManager: "0x09D4449EB32F7E75AADA8509D0507BF5baCFd85f",
67
+ levrMvpRouter: "0x53a4F405633e153B38215D6006591923492F95f5",
68
+ levrMarketRouter: "0x1b049AAc0F973c8EddB177a981154c1aecdaAA71",
69
+ levrMarketRiskSentinel: "0x5B06cc77351B5bA8a4804BC8EfB5Cf3eDC732c0b",
70
+ levrMarketMaker: "0x43965219512971bcfD0831fE6477337826527Bf9",
71
+ levrOrderbook: "0xf0444A84FccCaB8154EE3F14C1A5E7305954D1dD",
72
+ levrOrderbookLens: "0x5F1cB4ae88499a6C0F2C1b59B0A174e3a608D221",
73
+ levrFulltimeMarket: "0x39f9da32297BaA9274A9f01c213aCc30862587E6",
74
+ levrOverUnderMarket: "0x9D9dAAe2EAa2505e3E1D544E860517E08a0bC24b",
75
75
  levrUtil: "0x5309dc7cc514ec962a0b203e57a1b9a79bf8d386",
76
- usdcToken: "0xCb4b4b18bC2D4f9e7e4A7Bbb372E31D547635dcC",
76
+ usdcToken: "0x0B9A42F39515dF7ed69E0759F888f0E0a86cA2D7",
77
77
  },
78
78
  },
79
79
  prod: {
@@ -1,6 +1,6 @@
1
1
  import { GamePhase, LevrGame, MarketType, Prisma } from "@prisma/client";
2
2
  import { LevrChain } from "../../blockchain";
3
- import { MarketWithRelations } from "../market";
3
+ import { MarketWithRelations, OddsServices } from "../market";
4
4
  export declare enum RegistrationStatus {
5
5
  Registered = "Registered",
6
6
  Unregistered = "Unregistered"
@@ -70,6 +70,8 @@ export interface LevrScores {
70
70
  gamePhase: GamePhase;
71
71
  fixtureId: string;
72
72
  fixtureObjectId: string;
73
+ provider?: OddsServices;
74
+ isTopOfInning?: boolean;
73
75
  }
74
76
  export declare enum FixtureIdIndexes {
75
77
  OpticOdds = 0,
@@ -85,7 +87,6 @@ export declare enum LeagueIdsEnum {
85
87
  NBA_BASKET_BALL = "4"
86
88
  }
87
89
  export declare enum GameProvider {
88
- Rundown = "rundown",
89
90
  LSports = "lsports",
90
91
  OpticOdds = "optic_odds"
91
92
  }
@@ -56,7 +56,6 @@ var LeagueIdsEnum;
56
56
  })(LeagueIdsEnum || (exports.LeagueIdsEnum = LeagueIdsEnum = {}));
57
57
  var GameProvider;
58
58
  (function (GameProvider) {
59
- GameProvider["Rundown"] = "rundown";
60
59
  GameProvider["LSports"] = "lsports";
61
60
  GameProvider["OpticOdds"] = "optic_odds";
62
61
  })(GameProvider || (exports.GameProvider = GameProvider = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"game.types.js","sourceRoot":"","sources":["../../../../../src/core/types/oracle/game/game.types.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AACxE,0CAA2C;AAI3C,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,+CAAyB,CAAA;IACzB,mDAA6B,CAAA;AACjC,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAEM,MAAM,mBAAmB,GAAG,CAAC,MAAkB,EAAE,EAAE;IACtD,OAAO;QACH,CAAC,mBAAU,CAAC,cAAc,CAAC,EAAE,kBAAkB;QAC/C,CAAC,mBAAU,CAAC,SAAS,CAAC,EAAE,YAAY;KACvC,CAAC,MAAM,CAAC,CAAA;AACb,CAAC,CAAA;AALY,QAAA,mBAAmB,uBAK/B;AAwBD,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC5B,kDAA0B,CAAA;IAC1B,oDAA4B,CAAA;IAC5B,0DAAkC,CAAA;IAClC,8CAAsB,CAAA;IACtB,sDAA8B,CAAA;AAClC,CAAC,EANW,oBAAoB,oCAApB,oBAAoB,QAM/B;AAEY,QAAA,cAAc,GAAG,IAAA,kBAAU,EAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;AAErD,QAAA,cAAc,GAAG,IAAA,kBAAU,EAAC,oBAAoB,EAAE;IAC3D,SAAS,EAAE,kBAAkB;CAChC,CAAC,CAAA;AACW,QAAA,cAAc,GAAG,IAAA,kBAAU,EAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;AACrD,QAAA,cAAc,GAAG,IAAA,kBAAU,EAAC,oBAAoB,EAAE;IAC3D,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,qBAAqB;CACrC,CAAC,CAAA;AAEF,IAAY,iBAUX;AAVD,WAAY,iBAAiB;IACzB,uEAAe,CAAA;IACf,iEAAY,CAAA;IACZ,uEAAe,CAAA;IACf,iEAAY,CAAA;IACZ,mEAAa,CAAA;IACb,uEAAe,CAAA;IACf,mEAAa,CAAA;IACb,2EAAiB,CAAA;IACjB,6EAAkB,CAAA;AACtB,CAAC,EAVW,iBAAiB,iCAAjB,iBAAiB,QAU5B;AAyBD,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,iEAAa,CAAA;IACb,6DAAW,CAAA;AACf,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAQD,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;AACzB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAED,IAAY,YAIX;AAJD,WAAY,YAAY;IACpB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,wCAAwB,CAAA;AAC5B,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB"}
1
+ {"version":3,"file":"game.types.js","sourceRoot":"","sources":["../../../../../src/core/types/oracle/game/game.types.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AACxE,0CAA2C;AAI3C,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,+CAAyB,CAAA;IACzB,mDAA6B,CAAA;AACjC,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAEM,MAAM,mBAAmB,GAAG,CAAC,MAAkB,EAAE,EAAE;IACtD,OAAO;QACH,CAAC,mBAAU,CAAC,cAAc,CAAC,EAAE,kBAAkB;QAC/C,CAAC,mBAAU,CAAC,SAAS,CAAC,EAAE,YAAY;KACvC,CAAC,MAAM,CAAC,CAAA;AACb,CAAC,CAAA;AALY,QAAA,mBAAmB,uBAK/B;AAwBD,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC5B,kDAA0B,CAAA;IAC1B,oDAA4B,CAAA;IAC5B,0DAAkC,CAAA;IAClC,8CAAsB,CAAA;IACtB,sDAA8B,CAAA;AAClC,CAAC,EANW,oBAAoB,oCAApB,oBAAoB,QAM/B;AAEY,QAAA,cAAc,GAAG,IAAA,kBAAU,EAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;AAErD,QAAA,cAAc,GAAG,IAAA,kBAAU,EAAC,oBAAoB,EAAE;IAC3D,SAAS,EAAE,kBAAkB;CAChC,CAAC,CAAA;AACW,QAAA,cAAc,GAAG,IAAA,kBAAU,EAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;AACrD,QAAA,cAAc,GAAG,IAAA,kBAAU,EAAC,oBAAoB,EAAE;IAC3D,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,qBAAqB;CACrC,CAAC,CAAA;AAEF,IAAY,iBAUX;AAVD,WAAY,iBAAiB;IACzB,uEAAe,CAAA;IACf,iEAAY,CAAA;IACZ,uEAAe,CAAA;IACf,iEAAY,CAAA;IACZ,mEAAa,CAAA;IACb,uEAAe,CAAA;IACf,mEAAa,CAAA;IACb,2EAAiB,CAAA;IACjB,6EAAkB,CAAA;AACtB,CAAC,EAVW,iBAAiB,iCAAjB,iBAAiB,QAU5B;AA2BD,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,iEAAa,CAAA;IACb,6DAAW,CAAA;AACf,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAQD,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;AACzB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACpB,mCAA8B,CAAA;IAC9B,wCAAmC,CAAA;AACvC,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB"}
@@ -2,6 +2,7 @@ import { GamePhase, MarketStatus, MarketType, Prisma } from "@prisma/client";
2
2
  import { LevrMarketId } from "../../../contracts";
3
3
  import { Bytes10, Bytes32 } from "../../../validators";
4
4
  import { LevrChain } from "../../blockchain";
5
+ import { GameProvider } from "../game";
5
6
  import { type OddsData, type PriceData } from "./odds.types";
6
7
  export type MarketWithRelations = Prisma.MarketGetPayload<{
7
8
  include: {
@@ -12,19 +13,20 @@ export interface MarketPriceBroadcast {
12
13
  gameId: number;
13
14
  chainId: LevrChain;
14
15
  levrFixtureId: string;
15
- provider: string;
16
+ provider: GameProvider;
16
17
  type: MarketType;
17
18
  odds: OddsData;
18
19
  marketPhase: MarketStatus;
19
20
  prices: PriceData;
20
21
  gamePhase: GamePhase;
21
22
  gamePeriod: number;
22
- gameClock: number;
23
+ gameClock: string | number;
23
24
  gameMarketId: LevrGameMarketId;
24
25
  nFactor: number;
25
26
  providerObjectId: string;
26
27
  levrGameObjectId: string;
27
28
  marketObjectId: string;
29
+ isTopOfInning?: boolean;
28
30
  }
29
31
  export interface BaseMarket {
30
32
  txHash: string;
@@ -1 +1 @@
1
- {"version":3,"file":"markets.types.js","sourceRoot":"","sources":["../../../../../src/core/types/oracle/market/markets.types.ts"],"names":[],"mappings":";;;AAGA,iDAAkD;AA4DlD,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAC9B,mEAAQ,CAAA;IACR,yEAAW,CAAA;IACX,mEAAQ,CAAA;AACZ,CAAC,EAJW,sBAAsB,sCAAtB,sBAAsB,QAIjC;AAeD;;;;;;;;;GASG;AACU,QAAA,SAAS,GAAG,CAAC,IAAI,iBAAI,CAAC,IAAI,CAAA,CAAC,iBAAiB;AAC5C,QAAA,SAAS,GAAG,CAAC,IAAI,iBAAI,CAAC,IAAI,CAAA,CAAC,iBAAiB;AAC5C,QAAA,YAAY,GAAG,CAAC,IAAI,iBAAI,CAAC,OAAO,CAAA,CAAC,iBAAiB;AAClD,QAAA,SAAS,GAAG,CAAC,IAAI,iBAAI,CAAC,IAAI,CAAA,CAAC,iBAAiB;AAC5C,QAAA,SAAS,GAAG,CAAC,IAAI,iBAAI,CAAC,IAAI,CAAA,CAAC,kBAAkB;AAC7C,QAAA,UAAU,GAAG,CAAC,IAAI,iBAAI,CAAC,KAAK,CAAA,CAAC,kBAAkB;AAE5D;;;;;GAKG;AACU,QAAA,aAAa,GAAG,iBAAS,GAAG,oBAAY,GAAG,iBAAS,CAAA,CAAC,kBAAkB;AACvE,QAAA,WAAW,GAAG,iBAAS,GAAG,kBAAU,CAAA,CAAC,kBAAkB"}
1
+ {"version":3,"file":"markets.types.js","sourceRoot":"","sources":["../../../../../src/core/types/oracle/market/markets.types.ts"],"names":[],"mappings":";;;AAGA,iDAAkD;AA8DlD,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAC9B,mEAAQ,CAAA;IACR,yEAAW,CAAA;IACX,mEAAQ,CAAA;AACZ,CAAC,EAJW,sBAAsB,sCAAtB,sBAAsB,QAIjC;AAeD;;;;;;;;;GASG;AACU,QAAA,SAAS,GAAG,CAAC,IAAI,iBAAI,CAAC,IAAI,CAAA,CAAC,iBAAiB;AAC5C,QAAA,SAAS,GAAG,CAAC,IAAI,iBAAI,CAAC,IAAI,CAAA,CAAC,iBAAiB;AAC5C,QAAA,YAAY,GAAG,CAAC,IAAI,iBAAI,CAAC,OAAO,CAAA,CAAC,iBAAiB;AAClD,QAAA,SAAS,GAAG,CAAC,IAAI,iBAAI,CAAC,IAAI,CAAA,CAAC,iBAAiB;AAC5C,QAAA,SAAS,GAAG,CAAC,IAAI,iBAAI,CAAC,IAAI,CAAA,CAAC,kBAAkB;AAC7C,QAAA,UAAU,GAAG,CAAC,IAAI,iBAAI,CAAC,KAAK,CAAA,CAAC,kBAAkB;AAE5D;;;;;GAKG;AACU,QAAA,aAAa,GAAG,iBAAS,GAAG,oBAAY,GAAG,iBAAS,CAAA,CAAC,kBAAkB;AACvE,QAAA,WAAW,GAAG,iBAAS,GAAG,kBAAU,CAAA,CAAC,kBAAkB"}
@@ -1,6 +1,7 @@
1
+ import { LevrMarketId } from "../../../contracts";
2
+ import { LevrGameMarketId } from "./markets.types";
1
3
  export interface MarketPosition {
2
4
  id: string;
3
- game: string;
4
5
  homeTeam: string;
5
6
  awayTeam: string;
6
7
  selectedTeam: string;
@@ -15,7 +16,12 @@ export interface MarketPosition {
15
16
  leverage: string;
16
17
  marketPrice: number;
17
18
  liquidationPrice: number;
19
+ liquidationOddsAmerican: number;
20
+ liquidationOddsEuropean: number;
18
21
  healthFactor: number;
22
+ gameMarketId: LevrGameMarketId;
23
+ levrMarketId: LevrMarketId;
24
+ isDraw: boolean;
19
25
  margin: number;
20
26
  isLong: boolean;
21
27
  resultBadge?: {
@@ -1,4 +1,2 @@
1
- import { SportGroup } from "@prisma/client";
2
1
  export declare const calculatePrice: (americanOdds: number, normalizationFactor: number) => number;
3
2
  export declare const calculateAmericanOdds: (price: number, normalizationFactor?: number) => string;
4
- export declare const getGameProgressBPS: (gameClock: string, totalPeriodDurationInSeconds: number, period: number, totalPeriods: number, sportGroup: SportGroup) => number | null;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getGameProgressBPS = exports.calculateAmericanOdds = exports.calculatePrice = void 0;
4
- const client_1 = require("@prisma/client");
3
+ exports.calculateAmericanOdds = exports.calculatePrice = void 0;
5
4
  const calculatePrice = (americanOdds, normalizationFactor) => {
6
5
  const decimalOdds = americanOdds > 0 ? americanOdds / 100 + 1 : 100 / Math.abs(americanOdds) + 1;
7
6
  return Number((normalizationFactor / decimalOdds).toFixed(4));
@@ -22,71 +21,4 @@ const calculateAmericanOdds = (price, normalizationFactor = 1) => {
22
21
  }
23
22
  };
24
23
  exports.calculateAmericanOdds = calculateAmericanOdds;
25
- // Game progress calculation utilities
26
- const parseGameClockToSeconds = (gameClock) => {
27
- const [rawMinutes, rawSeconds] = gameClock.split(":");
28
- const minutes = Number(rawMinutes);
29
- const seconds = Number(rawSeconds);
30
- if (isNaN(minutes) || isNaN(seconds))
31
- return null;
32
- return minutes * 60 + seconds;
33
- };
34
- const calculateGameProgressBPSWithPeriodsOnly = (period, totalPeriods) => {
35
- if (period > totalPeriods)
36
- return 1e4;
37
- const progress = period / totalPeriods;
38
- return Math.round(progress * 1e4);
39
- };
40
- //{ totalPeriods: 2, totalPeriodDurationInSeconds: 45 * 60 },
41
- // gameClock: '57:20',
42
- //levr-v1-dev-oracle-core | gamePeriod: 20,
43
- const calculateGameProgressBPS = (elapsedSeconds, totalPeriodDurationInSeconds, totalPeriods, period) => {
44
- if (totalPeriodDurationInSeconds === 0)
45
- return 0;
46
- if (elapsedSeconds > totalPeriodDurationInSeconds)
47
- elapsedSeconds = totalPeriodDurationInSeconds;
48
- const progress = elapsedSeconds / totalPeriodDurationInSeconds;
49
- const periodsPassed = period - 1;
50
- const pastProgress = calculateGameProgressBPSWithPeriodsOnly(periodsPassed, totalPeriods);
51
- const currentPeriodProgress = (progress * 1e4) / totalPeriods;
52
- const value = Math.round(pastProgress + currentPeriodProgress);
53
- //TODO: revise time tracking
54
- if (value > 1e4 || value < 0)
55
- return 5e3;
56
- return value;
57
- };
58
- // Example: { totalPeriods: 2, totalPeriodDurationInSeconds: 45 * 60 }, gameClock: '57:20', period: 2
59
- // gameClock is cumulative (57:20 = 57 mins into game, which is 12:20 into period 2)
60
- // Expected: elapsedInPeriod = 3440 - 2700 = 740 seconds → ~63.7% game progress
61
- const calculateGameProgressBPSWithGameClockCountUp = (gameClock, totalPeriodDurationInSeconds, totalPeriods, period) => {
62
- const cumulativeElapsedSeconds = parseGameClockToSeconds(gameClock);
63
- if (cumulativeElapsedSeconds === null)
64
- return null;
65
- // Subtract time from previous periods since gameClock is cumulative
66
- const previousPeriodsSeconds = (period - 1) * totalPeriodDurationInSeconds;
67
- const elapsedSecondsInCurrentPeriod = cumulativeElapsedSeconds - previousPeriodsSeconds;
68
- return calculateGameProgressBPS(elapsedSecondsInCurrentPeriod, totalPeriodDurationInSeconds, totalPeriods, period);
69
- };
70
- const calculateGameProgressBPSWithGameClockCountDown = (gameClock, totalPeriodDurationInSeconds, totalPeriods, period) => {
71
- const remainingSeconds = parseGameClockToSeconds(gameClock);
72
- if (remainingSeconds === null)
73
- return null;
74
- const elapsedSeconds = totalPeriodDurationInSeconds - remainingSeconds;
75
- return calculateGameProgressBPS(elapsedSeconds, totalPeriodDurationInSeconds, totalPeriods, period);
76
- };
77
- const getGameProgressBPS = (gameClock, totalPeriodDurationInSeconds, period, totalPeriods, sportGroup) => {
78
- switch (sportGroup) {
79
- case client_1.SportGroup.Soccer:
80
- return calculateGameProgressBPSWithGameClockCountUp(gameClock, totalPeriodDurationInSeconds, totalPeriods, period);
81
- case client_1.SportGroup.Basketball:
82
- return calculateGameProgressBPSWithGameClockCountDown(gameClock, totalPeriodDurationInSeconds, totalPeriods, period);
83
- case client_1.SportGroup.Football:
84
- return calculateGameProgressBPSWithGameClockCountDown(gameClock, totalPeriodDurationInSeconds, totalPeriods, period);
85
- case client_1.SportGroup.Baseball:
86
- return calculateGameProgressBPSWithPeriodsOnly(period, totalPeriods);
87
- default:
88
- return null;
89
- }
90
- };
91
- exports.getGameProgressBPS = getGameProgressBPS;
92
24
  //# sourceMappingURL=game.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"game.utils.js","sourceRoot":"","sources":["../../../src/core/utils/game.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"game.utils.js","sourceRoot":"","sources":["../../../src/core/utils/game.utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,cAAc,GAAG,CAAC,YAAoB,EAAE,mBAA2B,EAAU,EAAE;IACxF,MAAM,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IAChG,OAAO,MAAM,CAAC,CAAC,mBAAmB,GAAG,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC,CAAA;AAHY,QAAA,cAAc,kBAG1B;AAEM,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAE,mBAAmB,GAAG,CAAC,EAAU,EAAE;IACpF,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5B,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,mBAAmB,GAAG,KAAK,CAAA;QAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,GAAG,KAAK,CAAA;QAEhE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAA;QAE5G,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;IAC7D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAA;QACrD,OAAO,IAAI,CAAA;IACf,CAAC;AACL,CAAC,CAAA;AAbY,QAAA,qBAAqB,yBAajC"}
@@ -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: "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";
70
+ readonly levrConfigProvider: "0x432173BC643a7FCe366F169d5bE1B75191552189";
71
+ readonly levrMvpDepository: "0x90e82D207562836Fc19D0E377d1f4a2311A5E7df";
72
+ readonly levrMvpStaker: "0xfC4C8553ce22043d43859A5F8dd8D45098C37f66";
73
+ readonly levrMvpToken: "0xD5BC123a4aa832694b6E827bEB11f44902D3DA07";
74
+ readonly levrPythFeed: "0xDE606de672A150Df2669Ae25d6be1FfEcBDb561d";
75
+ readonly levrManager: "0x309b960cae4d4AfE031d6Ff9021a0242ef1A8E76";
76
+ readonly levrMarketFeed: "0x355f2Ce4A6243e83781bf6FAD214792b96aF0388";
77
+ readonly levrLiquidationEngine: "0x1a93e57c05e1B6242d4B2e80f4b4b61196975f4e";
78
+ readonly levrFeeCollector: "0x242c87CFb625982A18C01313Bb640f0fc581ce57";
79
+ readonly levrFundManager: "0x09D4449EB32F7E75AADA8509D0507BF5baCFd85f";
80
+ readonly levrMvpRouter: "0x53a4F405633e153B38215D6006591923492F95f5";
81
+ readonly levrMarketRouter: "0x1b049AAc0F973c8EddB177a981154c1aecdaAA71";
82
+ readonly levrMarketRiskSentinel: "0x5B06cc77351B5bA8a4804BC8EfB5Cf3eDC732c0b";
83
+ readonly levrMarketMaker: "0x43965219512971bcfD0831fE6477337826527Bf9";
84
+ readonly levrOrderbook: "0xf0444A84FccCaB8154EE3F14C1A5E7305954D1dD";
85
+ readonly levrOrderbookLens: "0x5F1cB4ae88499a6C0F2C1b59B0A174e3a608D221";
86
+ readonly levrFulltimeMarket: "0x39f9da32297BaA9274A9f01c213aCc30862587E6";
87
+ readonly levrOverUnderMarket: "0x9D9dAAe2EAa2505e3E1D544E860517E08a0bC24b";
88
88
  readonly levrUtil: "0x5309dc7cc514ec962a0b203e57a1b9a79bf8d386";
89
- readonly usdcToken: "0xCb4b4b18bC2D4f9e7e4A7Bbb372E31D547635dcC";
89
+ readonly usdcToken: "0x0B9A42F39515dF7ed69E0759F888f0E0a86cA2D7";
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]: "b6050d0f-be5b-418c-9056-c53c1d982dec",
18
+ [core_1.LevrEnv.STAGING]: "28bef5bc-1af9-464c-9192-f31c80de0951",
19
19
  [core_1.LevrEnv.PROD]: "b6050d0f-be5b-418c-9056-c53c1d982dec",
20
20
  };
21
21
  this.KeyId = this.kmsKeyIds[dotenv_1.LEVR_ENV];
@@ -1,5 +1,10 @@
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;
3
8
  export declare enum RedisDb {
4
9
  ORACLE = 0,
5
10
  ORDERBOOK = 1,
@@ -6,8 +6,9 @@ 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 _1 = require(".");
10
9
  const core_1 = require("../../core");
10
+ const _1 = require(".");
11
+ const dotenv_1 = require("./dotenv");
11
12
  const winston_1 = __importDefault(require("./winston"));
12
13
  var RedisDb;
13
14
  (function (RedisDb) {
@@ -78,9 +79,18 @@ class RedisClientManager {
78
79
  }
79
80
  this.initialized = true;
80
81
  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
+ };
81
91
  if (options?.db)
82
92
  this.dbIndex = options.db;
83
- this._primaryClient = options ? new ioredis_1.default(REDIS_URL, options) : new ioredis_1.default(REDIS_URL);
93
+ this._primaryClient = new ioredis_1.default(REDIS_URL, redisOptions);
84
94
  if (options?.db)
85
95
  void this._primaryClient.select(options.db);
86
96
  this._primaryClient.on("error", (err) => {
@@ -91,7 +101,7 @@ class RedisClientManager {
91
101
  });
92
102
  const replicaEndpoints = REDIS_REPLICA_ENDPOINTS.split(",").filter(Boolean); // Comma-separated list of replica endpoints
93
103
  this.replicaClients = replicaEndpoints.map((url) => {
94
- const client = options ? new ioredis_1.default(url, options) : new ioredis_1.default(url);
104
+ const client = new ioredis_1.default(url, redisOptions);
95
105
  if (options?.db)
96
106
  void client.select(options.db);
97
107
  client.on("error", (err) => {
@@ -1 +1 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/server/config/redis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/server/config/redis.ts"],"names":[],"mappings":";;;;;;AAAA,yBAAsB;AACtB,sDAAkD;AAClD,qCAA4C;AAC5C,wBAA+B;AAC/B,qCAAmC;AACnC,wDAA8B;AAQ9B,IAAY,OAOX;AAPD,WAAY,OAAO;IACf,yCAAU,CAAA;IACV,+CAAa,CAAA;IACb,qCAAQ,CAAA;IACR,iEAAsB,CAAA;IACtB,mDAAe,CAAA;IACf,mCAAO,CAAA;AACX,CAAC,EAPW,OAAO,uBAAP,OAAO,QAOlB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,kBAAkB;IAAxB;QACY,mBAAc,GAAiB,IAAI,CAAA;QACnC,mBAAc,GAAY,EAAE,CAAA;QAC5B,gBAAW,GAAG,KAAK,CAAA;QACnB,YAAO,GAAG,CAAC,CAAA;QA4EnB,oBAAe,GAAG,CAAC,UAAkB,EAAS,EAAE;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAA;YAC7C,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAEhC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,iBAAM,CAAC,KAAK,CAAC,SAAS,UAAU,gBAAgB,EAAE,GAAG,CAAC,CAAA;YAC1D,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACtB,iBAAM,CAAC,IAAI,CAAC,sBAAsB,UAAU,SAAS,CAAC,CAAA;YAC1D,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACjB,CAAC,CAAA;IACL,CAAC;IAvFG;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,OAAsB;QACvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,iBAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAA;YAClE,OAAM;QACV,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QAEvB,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE,GAAG,aAAM,CAAC,IAAI,CAAC,cAAW,CAAC,CAAA;QAEvE,iGAAiG;QACjG,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;QAC5F,MAAM,YAAY,GAAG,CAAC,YAAY,IAAI,iBAAQ,KAAK,cAAO,CAAC,GAAG,IAAI,iBAAQ,KAAK,cAAO,CAAC,KAAK,CAAA;QAC5F,MAAM,YAAY,GAAiB;YAC/B,GAAG,OAAO;YACV,GAAG,CAAC,YAAY,IAAI;gBAChB,GAAG,EAAE,EAAE;aACV,CAAC;SACL,CAAA;QAED,IAAI,OAAO,EAAE,EAAE;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAA;QAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,iBAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QACxD,IAAI,OAAO,EAAE,EAAE;YAAE,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAE5D,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACpC,iBAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACnC,iBAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA,CAAC,4CAA4C;QACxH,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE;YACvD,MAAM,MAAM,GAAG,IAAI,iBAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;YAC3C,IAAI,OAAO,EAAE,EAAE;gBAAE,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAE/C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,iBAAM,CAAC,KAAK,CAAC,kCAAkC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAA;YACtG,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACtB,iBAAM,CAAC,IAAI,CAAC,iCAAiC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YAC9F,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACjB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,IAAI,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;QACtG,OAAO,IAAI,CAAC,cAAc,CAAA;IAC9B,CAAC;IAED,IAAI,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,aAAa,CAAA;QAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAE,CAAA;QAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3B,OAAO,MAAM,CAAA;IACjB,CAAC;CAeJ;AAEY,QAAA,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAA"}
@@ -5,7 +5,9 @@ export declare const urls: {
5
5
  oracleProcessors: string;
6
6
  relayer: string;
7
7
  referrals: string;
8
+ lambda: string;
8
9
  liquidationEngine: string;
10
+ leaderboard: string;
9
11
  indexers: {
10
12
  10143: {
11
13
  type: import("../../core").LevrIndexer;
@@ -19,7 +21,9 @@ export declare const urls: {
19
21
  oracleProcessors: string;
20
22
  relayer: string;
21
23
  referrals: string;
24
+ lambda: string;
22
25
  liquidationEngine: string;
26
+ leaderboard: string;
23
27
  indexers: {
24
28
  10143: {
25
29
  type: import("../../core").LevrIndexer;
@@ -33,7 +37,9 @@ export declare const urls: {
33
37
  oracleProcessors: string;
34
38
  relayer: string;
35
39
  referrals: string;
40
+ lambda: string;
36
41
  liquidationEngine: string;
42
+ leaderboard: string;
37
43
  indexers: {
38
44
  10143: {
39
45
  type: import("../../core").LevrIndexer;
@@ -47,7 +53,9 @@ export declare const urls: {
47
53
  oracleProcessors: string;
48
54
  relayer: string;
49
55
  referrals: string;
56
+ lambda: string;
50
57
  liquidationEngine: string;
58
+ leaderboard: string;
51
59
  indexers: {
52
60
  10143: {
53
61
  type: import("../../core").LevrIndexer;
@@ -10,6 +10,7 @@ declare class OzRelayerService {
10
10
  private createRelayerTransport;
11
11
  private waitForTxConfirmation;
12
12
  private getTxHashFromRelayer;
13
+ private cancelTransaction;
13
14
  private waitForTxHashOnChain;
14
15
  private proxyTxToRelayer;
15
16
  private getNextIndex;