@levrbet/shared 0.5.7 → 0.5.9

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.
@@ -7,6 +7,7 @@ type IndexerConfig = {
7
7
  type IndexersMap = Partial<Record<LevrChain, IndexerConfig>>;
8
8
  type EnvUrls = {
9
9
  auth: string;
10
+ orderbook: string;
10
11
  oracleCore: string;
11
12
  oraclePeriphery: string;
12
13
  oracleProcessors: string;
@@ -6,6 +6,7 @@ const indexers_types_1 = require("../types/indexers.types");
6
6
  exports.allUrls = {
7
7
  [types_1.LevrEnv.LOCAL]: {
8
8
  auth: "https://auth-api.dev.levr.bet",
9
+ orderbook: "https://orderbook.dev.levr.bet",
9
10
  oracleCore: "https://oracle-core.dev.levr.bet",
10
11
  oraclePeriphery: "https://oracle-periphery.dev.levr.bet",
11
12
  oracleProcessors: "https://oracle-processor.dev.levr.bet",
@@ -23,6 +24,7 @@ exports.allUrls = {
23
24
  },
24
25
  [types_1.LevrEnv.DEV]: {
25
26
  auth: "https://auth-api.dev.levr.bet",
27
+ orderbook: "https://orderbook.dev.levr.bet",
26
28
  oracleCore: "https://oracle-core.dev.levr.bet",
27
29
  oraclePeriphery: "https://oracle-periphery.dev.levr.bet",
28
30
  oracleProcessors: "https://oracle-processor.dev.levr.bet",
@@ -40,6 +42,7 @@ exports.allUrls = {
40
42
  },
41
43
  [types_1.LevrEnv.STAGING]: {
42
44
  auth: "https://auth-api.staging.levr.bet",
45
+ orderbook: "https://orderbook.staging.levr.bet",
43
46
  oracleCore: "https://oracle-core.staging.levr.bet",
44
47
  oraclePeriphery: "https://oracle-periphery.staging.levr.bet",
45
48
  oracleProcessors: "https://oracle-processor.staging.levr.bet",
@@ -57,6 +60,7 @@ exports.allUrls = {
57
60
  },
58
61
  [types_1.LevrEnv.PROD]: {
59
62
  auth: "https://auth.api.levr.bet",
63
+ orderbook: "https://orderbook.api.levr.bet",
60
64
  oracleCore: "https://oracle-core.api.levr.bet",
61
65
  oraclePeriphery: "https://oracle-periphery.api.levr.bet",
62
66
  oracleProcessors: "https://oracle-processor.api.levr.bet",
@@ -1 +1 @@
1
- {"version":3,"file":"urls.js","sourceRoot":"","sources":["../../../src/core/config/urls.ts"],"names":[],"mappings":";;;AAAA,oCAA6C;AAC7C,4DAAqD;AAmBxC,QAAA,OAAO,GAA6B;IAC7C,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE;QACb,IAAI,EAAE,+BAA+B;QACrC,UAAU,EAAE,kCAAkC;QAC9C,eAAe,EAAE,uCAAuC;QACxD,gBAAgB,EAAE,uCAAuC;QACzD,OAAO,EAAE,+BAA+B;QACxC,SAAS,EAAE,gCAAgC;QAC3C,MAAM,EAAE,6BAA6B;QACrC,iBAAiB,EAAE,yCAAyC;QAC5D,WAAW,EAAE,kCAAkC;QAC/C,QAAQ,EAAE;YACN,CAAC,iBAAS,CAAC,aAAa,CAAC,EAAE;gBACvB,EAAE,IAAI,EAAE,4BAAW,CAAC,KAAK,EAAE,GAAG,EAAE,uDAAuD,EAAE;gBACzF,EAAE,IAAI,EAAE,4BAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,wDAAwD,EAAE;aAChG;SACJ;KACJ;IACD,CAAC,eAAO,CAAC,GAAG,CAAC,EAAE;QACX,IAAI,EAAE,+BAA+B;QACrC,UAAU,EAAE,kCAAkC;QAC9C,eAAe,EAAE,uCAAuC;QACxD,gBAAgB,EAAE,uCAAuC;QACzD,OAAO,EAAE,+BAA+B,EAAE,wEAAwE;QAClH,SAAS,EAAE,gCAAgC;QAC3C,MAAM,EAAE,6BAA6B;QACrC,iBAAiB,EAAE,yCAAyC;QAC5D,WAAW,EAAE,kCAAkC;QAC/C,QAAQ,EAAE;YACN,CAAC,iBAAS,CAAC,aAAa,CAAC,EAAE;gBACvB,EAAE,IAAI,EAAE,4BAAW,CAAC,KAAK,EAAE,GAAG,EAAE,uDAAuD,EAAE;gBACzF,EAAE,IAAI,EAAE,4BAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,wDAAwD,EAAE;aAChG;SACJ;KACJ;IACD,CAAC,eAAO,CAAC,OAAO,CAAC,EAAE;QACf,IAAI,EAAE,mCAAmC;QACzC,UAAU,EAAE,sCAAsC;QAClD,eAAe,EAAE,2CAA2C;QAC5D,gBAAgB,EAAE,2CAA2C;QAC7D,OAAO,EAAE,mCAAmC;QAC5C,SAAS,EAAE,oCAAoC;QAC/C,MAAM,EAAE,iCAAiC;QACzC,iBAAiB,EAAE,6CAA6C;QAChE,WAAW,EAAE,sCAAsC;QACnD,QAAQ,EAAE;YACN,CAAC,iBAAS,CAAC,aAAa,CAAC,EAAE;gBACvB,EAAE,IAAI,EAAE,4BAAW,CAAC,KAAK,EAAE,GAAG,EAAE,mDAAmD,EAAE;gBACrF,EAAE,IAAI,EAAE,4BAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,4DAA4D,EAAE;aACpG;SACJ;KACJ;IACD,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE;QACZ,IAAI,EAAE,2BAA2B;QACjC,UAAU,EAAE,kCAAkC;QAC9C,eAAe,EAAE,uCAAuC;QACxD,gBAAgB,EAAE,uCAAuC;QACzD,OAAO,EAAE,+BAA+B;QACxC,SAAS,EAAE,gCAAgC;QAC3C,MAAM,EAAE,6BAA6B;QACrC,iBAAiB,EAAE,yCAAyC;QAC5D,WAAW,EAAE,kCAAkC;QAC/C,QAAQ,EAAE;YACN,CAAC,iBAAS,CAAC,aAAa,CAAC,EAAE;gBACvB,EAAE,IAAI,EAAE,4BAAW,CAAC,KAAK,EAAE,GAAG,EAAE,mDAAmD,EAAE;gBACrF,EAAE,IAAI,EAAE,4BAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,+DAA+D,EAAE;aACvG;SACJ;KACJ;CACJ,CAAA"}
1
+ {"version":3,"file":"urls.js","sourceRoot":"","sources":["../../../src/core/config/urls.ts"],"names":[],"mappings":";;;AAAA,oCAA6C;AAC7C,4DAAqD;AAmBxC,QAAA,OAAO,GAA6B;IAC7C,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE;QACb,IAAI,EAAE,+BAA+B;QACrC,SAAS,EAAE,gCAAgC;QAC3C,UAAU,EAAE,kCAAkC;QAC9C,eAAe,EAAE,uCAAuC;QACxD,gBAAgB,EAAE,uCAAuC;QACzD,OAAO,EAAE,+BAA+B;QACxC,SAAS,EAAE,gCAAgC;QAC3C,MAAM,EAAE,6BAA6B;QACrC,iBAAiB,EAAE,yCAAyC;QAC5D,WAAW,EAAE,kCAAkC;QAC/C,QAAQ,EAAE;YACN,CAAC,iBAAS,CAAC,aAAa,CAAC,EAAE;gBACvB,EAAE,IAAI,EAAE,4BAAW,CAAC,KAAK,EAAE,GAAG,EAAE,uDAAuD,EAAE;gBACzF,EAAE,IAAI,EAAE,4BAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,wDAAwD,EAAE;aAChG;SACJ;KACJ;IACD,CAAC,eAAO,CAAC,GAAG,CAAC,EAAE;QACX,IAAI,EAAE,+BAA+B;QACrC,SAAS,EAAE,gCAAgC;QAC3C,UAAU,EAAE,kCAAkC;QAC9C,eAAe,EAAE,uCAAuC;QACxD,gBAAgB,EAAE,uCAAuC;QACzD,OAAO,EAAE,+BAA+B,EAAE,wEAAwE;QAClH,SAAS,EAAE,gCAAgC;QAC3C,MAAM,EAAE,6BAA6B;QACrC,iBAAiB,EAAE,yCAAyC;QAC5D,WAAW,EAAE,kCAAkC;QAC/C,QAAQ,EAAE;YACN,CAAC,iBAAS,CAAC,aAAa,CAAC,EAAE;gBACvB,EAAE,IAAI,EAAE,4BAAW,CAAC,KAAK,EAAE,GAAG,EAAE,uDAAuD,EAAE;gBACzF,EAAE,IAAI,EAAE,4BAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,wDAAwD,EAAE;aAChG;SACJ;KACJ;IACD,CAAC,eAAO,CAAC,OAAO,CAAC,EAAE;QACf,IAAI,EAAE,mCAAmC;QACzC,SAAS,EAAE,oCAAoC;QAC/C,UAAU,EAAE,sCAAsC;QAClD,eAAe,EAAE,2CAA2C;QAC5D,gBAAgB,EAAE,2CAA2C;QAC7D,OAAO,EAAE,mCAAmC;QAC5C,SAAS,EAAE,oCAAoC;QAC/C,MAAM,EAAE,iCAAiC;QACzC,iBAAiB,EAAE,6CAA6C;QAChE,WAAW,EAAE,sCAAsC;QACnD,QAAQ,EAAE;YACN,CAAC,iBAAS,CAAC,aAAa,CAAC,EAAE;gBACvB,EAAE,IAAI,EAAE,4BAAW,CAAC,KAAK,EAAE,GAAG,EAAE,mDAAmD,EAAE;gBACrF,EAAE,IAAI,EAAE,4BAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,4DAA4D,EAAE;aACpG;SACJ;KACJ;IACD,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE;QACZ,IAAI,EAAE,2BAA2B;QACjC,SAAS,EAAE,gCAAgC;QAC3C,UAAU,EAAE,kCAAkC;QAC9C,eAAe,EAAE,uCAAuC;QACxD,gBAAgB,EAAE,uCAAuC;QACzD,OAAO,EAAE,+BAA+B;QACxC,SAAS,EAAE,gCAAgC;QAC3C,MAAM,EAAE,6BAA6B;QACrC,iBAAiB,EAAE,yCAAyC;QAC5D,WAAW,EAAE,kCAAkC;QAC/C,QAAQ,EAAE;YACN,CAAC,iBAAS,CAAC,aAAa,CAAC,EAAE;gBACvB,EAAE,IAAI,EAAE,4BAAW,CAAC,KAAK,EAAE,GAAG,EAAE,mDAAmD,EAAE;gBACrF,EAAE,IAAI,EAAE,4BAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,+DAA+D,EAAE;aACvG;SACJ;KACJ;CACJ,CAAA"}
@@ -1,3 +1,4 @@
1
+ export * from "./alerts";
1
2
  export * from "./config";
2
3
  export * from "./contracts";
3
4
  export * from "./indexers";
@@ -7,4 +8,3 @@ export * from "./socket.io";
7
8
  export * from "./types";
8
9
  export * from "./utils";
9
10
  export * from "./validators";
10
- export * from "./alerts";
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./alerts"), exports);
17
18
  __exportStar(require("./config"), exports);
18
19
  __exportStar(require("./contracts"), exports);
19
20
  __exportStar(require("./indexers"), exports);
@@ -23,5 +24,4 @@ __exportStar(require("./socket.io"), exports);
23
24
  __exportStar(require("./types"), exports);
24
25
  __exportStar(require("./utils"), exports);
25
26
  __exportStar(require("./validators"), exports);
26
- __exportStar(require("./alerts"), exports);
27
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,8CAA2B;AAC3B,6CAA0B;AAC1B,2CAAwB;AACxB,0CAAuB;AACvB,8CAA2B;AAC3B,0CAAuB;AACvB,0CAAuB;AACvB,+CAA4B;AAC5B,2CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,2CAAwB;AACxB,8CAA2B;AAC3B,6CAA0B;AAC1B,2CAAwB;AACxB,0CAAuB;AACvB,8CAA2B;AAC3B,0CAAuB;AACvB,0CAAuB;AACvB,+CAA4B"}
@@ -38,3 +38,21 @@ export type MarketStatusUpdate = {
38
38
  gameId: number;
39
39
  open: boolean;
40
40
  };
41
+ export declare enum OrderbookEvent {
42
+ OrderPlaced = "orderPlaced",
43
+ OrderCancelled = "orderCancelled",
44
+ OrderEdited = "orderEdited",
45
+ OrderFilled = "orderFilled",
46
+ OrderUpdated = "orderUpdated",
47
+ BookUpdate = "bookUpdate"
48
+ }
49
+ export declare enum OrderbookRoomEvent {
50
+ JoinGame = "joinGame",
51
+ LeaveGame = "leaveGame",
52
+ JoinBook = "joinBook",
53
+ LeaveBook = "leaveBook",
54
+ JoinFills = "joinFills",
55
+ LeaveFills = "leaveFills",
56
+ JoinUser = "joinUser",
57
+ LeaveUser = "leaveUser"
58
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MarketEvent = exports.GameEvent = exports.RoomEvent = void 0;
3
+ exports.OrderbookRoomEvent = exports.OrderbookEvent = exports.MarketEvent = exports.GameEvent = exports.RoomEvent = void 0;
4
4
  var RoomEvent;
5
5
  (function (RoomEvent) {
6
6
  RoomEvent["JoinRoom"] = "joinRoom";
@@ -20,4 +20,25 @@ var MarketEvent;
20
20
  MarketEvent["GlobalOddsUpdate"] = "globalOddsUpdate";
21
21
  MarketEvent["StatusUpdate"] = "marketStatusUpdate";
22
22
  })(MarketEvent || (exports.MarketEvent = MarketEvent = {}));
23
+ // ORDERBOOK EVENTS AND TYPES
24
+ var OrderbookEvent;
25
+ (function (OrderbookEvent) {
26
+ OrderbookEvent["OrderPlaced"] = "orderPlaced";
27
+ OrderbookEvent["OrderCancelled"] = "orderCancelled";
28
+ OrderbookEvent["OrderEdited"] = "orderEdited";
29
+ OrderbookEvent["OrderFilled"] = "orderFilled";
30
+ OrderbookEvent["OrderUpdated"] = "orderUpdated";
31
+ OrderbookEvent["BookUpdate"] = "bookUpdate";
32
+ })(OrderbookEvent || (exports.OrderbookEvent = OrderbookEvent = {}));
33
+ var OrderbookRoomEvent;
34
+ (function (OrderbookRoomEvent) {
35
+ OrderbookRoomEvent["JoinGame"] = "joinGame";
36
+ OrderbookRoomEvent["LeaveGame"] = "leaveGame";
37
+ OrderbookRoomEvent["JoinBook"] = "joinBook";
38
+ OrderbookRoomEvent["LeaveBook"] = "leaveBook";
39
+ OrderbookRoomEvent["JoinFills"] = "joinFills";
40
+ OrderbookRoomEvent["LeaveFills"] = "leaveFills";
41
+ OrderbookRoomEvent["JoinUser"] = "joinUser";
42
+ OrderbookRoomEvent["LeaveUser"] = "leaveUser";
43
+ })(OrderbookRoomEvent || (exports.OrderbookRoomEvent = OrderbookRoomEvent = {}));
23
44
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/core/socket.io/events.ts"],"names":[],"mappings":";;;AAGA,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,kCAAqB,CAAA;IACrB,oCAAuB,CAAA;AAC3B,CAAC,EAHW,SAAS,aAAT,SAAS,GAAT,SAAS,QAGpB;AAED,wBAAwB;AACxB,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,4CAA+B,CAAA;IAC/B,4CAA+B,CAAA;IAC/B,8CAAiC,CAAA;AACrC,CAAC,EAJW,SAAS,aAAT,SAAS,GAAT,SAAS,QAIpB;AAkBD,0BAA0B;AAC1B,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,8CAA+B,CAAA;IAC/B,oDAAqC,CAAA;IACrC,kDAAmC,CAAA;AACvC,CAAC,EAJW,WAAW,aAAX,WAAW,GAAX,WAAW,QAItB"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/core/socket.io/events.ts"],"names":[],"mappings":";;;AAGA,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,kCAAqB,CAAA;IACrB,oCAAuB,CAAA;AAC3B,CAAC,EAHW,SAAS,aAAT,SAAS,GAAT,SAAS,QAGpB;AAED,wBAAwB;AACxB,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,4CAA+B,CAAA;IAC/B,4CAA+B,CAAA;IAC/B,8CAAiC,CAAA;AACrC,CAAC,EAJW,SAAS,aAAT,SAAS,GAAT,SAAS,QAIpB;AAkBD,0BAA0B;AAC1B,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,8CAA+B,CAAA;IAC/B,oDAAqC,CAAA;IACrC,kDAAmC,CAAA;AACvC,CAAC,EAJW,WAAW,aAAX,WAAW,GAAX,WAAW,QAItB;AAUD,6BAA6B;AAC7B,IAAY,cAOX;AAPD,WAAY,cAAc;IACtB,6CAA2B,CAAA;IAC3B,mDAAiC,CAAA;IACjC,6CAA2B,CAAA;IAC3B,6CAA2B,CAAA;IAC3B,+CAA6B,CAAA;IAC7B,2CAAyB,CAAA;AAC7B,CAAC,EAPW,cAAc,aAAd,cAAc,GAAd,cAAc,QAOzB;AAED,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC1B,2CAAqB,CAAA;IACrB,6CAAuB,CAAA;IACvB,2CAAqB,CAAA;IACrB,6CAAuB,CAAA;IACvB,6CAAuB,CAAA;IACvB,+CAAyB,CAAA;IACzB,2CAAqB,CAAA;IACrB,6CAAuB,CAAA;AAC3B,CAAC,EATW,kBAAkB,aAAlB,kBAAkB,GAAlB,kBAAkB,QAS7B"}
@@ -1,6 +1,16 @@
1
- import { LevrFixtureId } from "../types";
1
+ import type { Address } from "viem";
2
+ import { Side } from "../types/blockchain/contract.types";
3
+ import type { LevrChain } from "../types/blockchain/chains.types";
4
+ import type { LevrFixtureId, LevrGameMarketId } from "../types/oracle/market/markets.types";
2
5
  declare class SocketRooms {
3
6
  gameOddsRoom: (chainId: number, fixture: LevrFixtureId) => string;
4
7
  }
5
8
  export declare const socketRooms: SocketRooms;
9
+ export declare const orderbookRooms: {
10
+ readonly game: (chainId: LevrChain, gameId: string) => string;
11
+ readonly book: (gameMarketId: LevrGameMarketId, side: Side) => string;
12
+ readonly fills: (gameMarketId: LevrGameMarketId) => string;
13
+ readonly user: (address: Address) => string;
14
+ readonly admin: () => string;
15
+ };
6
16
  export {};
@@ -1,10 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.socketRooms = void 0;
3
+ exports.orderbookRooms = exports.socketRooms = void 0;
4
+ const contract_types_1 = require("../types/blockchain/contract.types");
4
5
  class SocketRooms {
5
6
  constructor() {
6
7
  this.gameOddsRoom = (chainId, fixture) => `gameOdds:chainId=${chainId}:fixtureId=${fixture}`;
7
8
  }
8
9
  }
9
10
  exports.socketRooms = new SocketRooms();
11
+ exports.orderbookRooms = {
12
+ game: (chainId, gameId) => `game:${chainId}:${gameId}`,
13
+ book: (gameMarketId, side) => `market:${gameMarketId}:book:${contract_types_1.Side[side]}`,
14
+ fills: (gameMarketId) => `market:${gameMarketId}:fills`,
15
+ user: (address) => `user:${address}`,
16
+ admin: () => "admin",
17
+ };
10
18
  //# sourceMappingURL=rooms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rooms.js","sourceRoot":"","sources":["../../../src/core/socket.io/rooms.ts"],"names":[],"mappings":";;;AAEA,MAAM,WAAW;IAAjB;QACI,iBAAY,GAAG,CAAC,OAAe,EAAE,OAAsB,EAAU,EAAE,CAAC,oBAAoB,OAAO,cAAc,OAAO,EAAE,CAAA;IAC1H,CAAC;CAAA;AAEY,QAAA,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"rooms.js","sourceRoot":"","sources":["../../../src/core/socket.io/rooms.ts"],"names":[],"mappings":";;;AACA,uEAAyD;AAIzD,MAAM,WAAW;IAAjB;QACI,iBAAY,GAAG,CAAC,OAAe,EAAE,OAAsB,EAAU,EAAE,CAAC,oBAAoB,OAAO,cAAc,OAAO,EAAE,CAAA;IAC1H,CAAC;CAAA;AAEY,QAAA,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;AAE/B,QAAA,cAAc,GAAG;IAC1B,IAAI,EAAE,CAAC,OAAkB,EAAE,MAAc,EAAU,EAAE,CAAC,QAAQ,OAAO,IAAI,MAAM,EAAE;IACjF,IAAI,EAAE,CAAC,YAA8B,EAAE,IAAU,EAAU,EAAE,CAAC,UAAU,YAAY,SAAS,qBAAI,CAAC,IAAI,CAAC,EAAE;IACzG,KAAK,EAAE,CAAC,YAA8B,EAAU,EAAE,CAAC,UAAU,YAAY,QAAQ;IACjF,IAAI,EAAE,CAAC,OAAgB,EAAU,EAAE,CAAC,QAAQ,OAAO,EAAE;IACrD,KAAK,EAAE,GAAW,EAAE,CAAC,OAAO;CACtB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  export * from "./auth";
2
2
  export * from "./blockchain";
3
3
  export * from "./indexers.types";
4
+ export * from "./orderbook";
4
5
  export * from "./misc.types";
5
6
  export * from "./oracle";
6
7
  export * from "./privy.types";
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./auth"), exports);
18
18
  __exportStar(require("./blockchain"), exports);
19
19
  __exportStar(require("./indexers.types"), exports);
20
+ __exportStar(require("./orderbook"), exports);
20
21
  __exportStar(require("./misc.types"), exports);
21
22
  __exportStar(require("./oracle"), exports);
22
23
  __exportStar(require("./privy.types"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAsB;AACtB,+CAA4B;AAC5B,mDAAgC;AAChC,+CAA4B;AAC5B,2CAAwB;AACxB,gDAA6B;AAC7B,kDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAsB;AACtB,+CAA4B;AAC5B,mDAAgC;AAChC,8CAA2B;AAC3B,+CAA4B;AAC5B,2CAAwB;AACxB,gDAA6B;AAC7B,kDAA+B"}
@@ -0,0 +1,10 @@
1
+ export interface DepthLevel {
2
+ price: number;
3
+ quantity: string;
4
+ orderCount: number;
5
+ }
6
+ export interface DepthSnapshot {
7
+ bids: DepthLevel[];
8
+ asks: DepthLevel[];
9
+ timestamp: number;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=depth.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depth.types.js","sourceRoot":"","sources":["../../../../src/core/types/orderbook/depth.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from "./depth.types";
2
+ export * from "./order.types";
3
+ export * from "./preview.types";
@@ -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("./depth.types"), exports);
18
+ __exportStar(require("./order.types"), exports);
19
+ __exportStar(require("./preview.types"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/types/orderbook/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,gDAA6B;AAC7B,kDAA+B"}
@@ -0,0 +1,70 @@
1
+ import { OrderDirection } from "@prisma/client";
2
+ import type { Address } from "viem";
3
+ import type { LevrMarketId } from "../../contracts/constants";
4
+ import type { Bytes32 } from "../../validators/bytes.validators";
5
+ import type { LevrChain } from "../blockchain/chains.types";
6
+ import type { Side } from "../blockchain/contract.types";
7
+ import type { LevrGameMarketId } from "../oracle/market/markets.types";
8
+ export declare enum OrderType {
9
+ LIMIT = "LIMIT",
10
+ MARKET = "MARKET"
11
+ }
12
+ export declare enum OrderStatus {
13
+ OPEN = "OPEN",
14
+ PENDING_SETTLEMENT = "PENDING_SETTLEMENT",
15
+ CANCEL_PENDING = "CANCEL_PENDING",
16
+ FILLED = "FILLED",
17
+ CANCELLED = "CANCELLED"
18
+ }
19
+ export declare enum CancelReason {
20
+ USER = "user_cancelled",
21
+ GAME_ENDED = "game_ended",
22
+ GAME_CANCELLED = "game_cancelled",
23
+ LIQUIDATION = "position_liquidated",
24
+ ADMIN_CANCEL_ALL = "admin_cancel_all",
25
+ ADMIN_FORCE_CANCEL = "admin_force_cancel",
26
+ BAD_ORDER = "bad_order",
27
+ DUST = "dust",
28
+ EXPIRED = "expired",
29
+ BALANCE_DECREASED = "balance_decreased",
30
+ USER_BLACKLISTED = "user_blacklisted"
31
+ }
32
+ interface BaseOrder {
33
+ orderId: string;
34
+ chainId: LevrChain;
35
+ gameId: number;
36
+ gameMarketId: LevrGameMarketId;
37
+ levrMarketId: LevrMarketId;
38
+ side: Side;
39
+ type: OrderType;
40
+ price: number;
41
+ score: number;
42
+ ethAddress: Address;
43
+ timestamp: number;
44
+ expiresAt?: number;
45
+ status: OrderStatus;
46
+ cancelRequested: boolean;
47
+ cancelReason?: CancelReason;
48
+ fillOrKill?: boolean;
49
+ }
50
+ export interface BidOrder extends BaseOrder {
51
+ direction: typeof OrderDirection.BID;
52
+ budget: bigint;
53
+ unfilledBudget: bigint;
54
+ settlingBudget: bigint;
55
+ filledBudget: bigint;
56
+ leverage: number;
57
+ }
58
+ export interface AskOrder extends BaseOrder {
59
+ direction: typeof OrderDirection.ASK;
60
+ volume: bigint;
61
+ unfilledVolume: bigint;
62
+ settlingVolume: bigint;
63
+ filledVolume: bigint;
64
+ positionId: Bytes32;
65
+ }
66
+ export type Order = BidOrder | AskOrder;
67
+ export declare function isBidOrder(order: Order): order is BidOrder;
68
+ export declare function isAskOrder(order: Order): order is AskOrder;
69
+ export declare function isActiveOrder(order: Order): boolean;
70
+ export {};
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CancelReason = exports.OrderStatus = exports.OrderType = void 0;
4
+ exports.isBidOrder = isBidOrder;
5
+ exports.isAskOrder = isAskOrder;
6
+ exports.isActiveOrder = isActiveOrder;
7
+ const client_1 = require("@prisma/client");
8
+ var OrderType;
9
+ (function (OrderType) {
10
+ OrderType["LIMIT"] = "LIMIT";
11
+ OrderType["MARKET"] = "MARKET";
12
+ })(OrderType || (exports.OrderType = OrderType = {}));
13
+ var OrderStatus;
14
+ (function (OrderStatus) {
15
+ OrderStatus["OPEN"] = "OPEN";
16
+ OrderStatus["PENDING_SETTLEMENT"] = "PENDING_SETTLEMENT";
17
+ OrderStatus["CANCEL_PENDING"] = "CANCEL_PENDING";
18
+ OrderStatus["FILLED"] = "FILLED";
19
+ OrderStatus["CANCELLED"] = "CANCELLED";
20
+ })(OrderStatus || (exports.OrderStatus = OrderStatus = {}));
21
+ var CancelReason;
22
+ (function (CancelReason) {
23
+ CancelReason["USER"] = "user_cancelled";
24
+ CancelReason["GAME_ENDED"] = "game_ended";
25
+ CancelReason["GAME_CANCELLED"] = "game_cancelled";
26
+ CancelReason["LIQUIDATION"] = "position_liquidated";
27
+ CancelReason["ADMIN_CANCEL_ALL"] = "admin_cancel_all";
28
+ CancelReason["ADMIN_FORCE_CANCEL"] = "admin_force_cancel";
29
+ CancelReason["BAD_ORDER"] = "bad_order";
30
+ CancelReason["DUST"] = "dust";
31
+ CancelReason["EXPIRED"] = "expired";
32
+ CancelReason["BALANCE_DECREASED"] = "balance_decreased";
33
+ CancelReason["USER_BLACKLISTED"] = "user_blacklisted";
34
+ })(CancelReason || (exports.CancelReason = CancelReason = {}));
35
+ const TERMINAL_STATUSES = new Set([OrderStatus.CANCELLED, OrderStatus.FILLED]);
36
+ function isBidOrder(order) {
37
+ return order.direction === client_1.OrderDirection.BID;
38
+ }
39
+ function isAskOrder(order) {
40
+ return order.direction === client_1.OrderDirection.ASK;
41
+ }
42
+ function isActiveOrder(order) {
43
+ return !TERMINAL_STATUSES.has(order.status);
44
+ }
45
+ //# sourceMappingURL=order.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.types.js","sourceRoot":"","sources":["../../../../src/core/types/orderbook/order.types.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA+C;AAQ/C,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,8BAAiB,CAAA;AACrB,CAAC,EAHW,SAAS,aAAT,SAAS,GAAT,SAAS,QAGpB;AAED,IAAY,WAMX;AAND,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,wDAAyC,CAAA;IACzC,gDAAiC,CAAA;IACjC,gCAAiB,CAAA;IACjB,sCAAuB,CAAA;AAC3B,CAAC,EANW,WAAW,aAAX,WAAW,GAAX,WAAW,QAMtB;AAED,IAAY,YAYX;AAZD,WAAY,YAAY;IACpB,uCAAuB,CAAA;IACvB,yCAAyB,CAAA;IACzB,iDAAiC,CAAA;IACjC,mDAAmC,CAAA;IACnC,qDAAqC,CAAA;IACrC,yDAAyC,CAAA;IACzC,uCAAuB,CAAA;IACvB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,uDAAuC,CAAA;IACvC,qDAAqC,CAAA;AACzC,CAAC,EAZW,YAAY,aAAZ,YAAY,GAAZ,YAAY,QAYvB;AAyCD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;AAE9E,oBAA2B,KAAY;IACnC,OAAO,KAAK,CAAC,SAAS,KAAK,uBAAc,CAAC,GAAG,CAAA;AACjD,CAAC;AAED,oBAA2B,KAAY;IACnC,OAAO,KAAK,CAAC,SAAS,KAAK,uBAAc,CAAC,GAAG,CAAA;AACjD,CAAC;AAED,uBAA8B,KAAY;IACtC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC"}
@@ -0,0 +1,61 @@
1
+ import type { OrderDirection } from "@prisma/client";
2
+ import type { Side } from "../blockchain/contract.types";
3
+ import type { LevrGameMarketId } from "../oracle/market/markets.types";
4
+ import type { OrderType } from "./order.types";
5
+ export interface AskPositionContext {
6
+ posEntryPrice: bigint;
7
+ posGameProgressAtOpen: number;
8
+ posPositionSize: bigint;
9
+ posTokensBought: bigint;
10
+ posTokenAmount: bigint;
11
+ posCollateral: bigint;
12
+ posEffectiveLeverage: bigint;
13
+ gameProgressBps: number;
14
+ borrowFeeBps: number;
15
+ txFeeBps: number;
16
+ }
17
+ export interface PreviewOrderInput {
18
+ gameMarketId: LevrGameMarketId;
19
+ side: Side;
20
+ direction: OrderDirection;
21
+ type: OrderType;
22
+ price?: number;
23
+ budget?: string;
24
+ tokenAmount?: string;
25
+ leverage?: number;
26
+ askContext?: AskPositionContext;
27
+ }
28
+ export interface PreviewOrderResult {
29
+ fillRatio: number;
30
+ estimatedOutput: string;
31
+ estimatedFees: string | null;
32
+ estimatedAveragePrice: number;
33
+ blockingReason: string | null;
34
+ }
35
+ export interface BatchPreviewOrderItem {
36
+ positionId: string;
37
+ gameMarketId: LevrGameMarketId;
38
+ side: Side;
39
+ direction: OrderDirection;
40
+ type: OrderType;
41
+ price?: number;
42
+ budget?: string;
43
+ tokenAmount?: string;
44
+ leverage?: number;
45
+ posEntryPrice?: string;
46
+ posGameProgressAtOpen?: number;
47
+ posPositionSize?: string;
48
+ posTokensBought?: string;
49
+ posTokenAmount?: string;
50
+ posCollateral?: string;
51
+ posEffectiveLeverage?: string;
52
+ gameProgressBps?: number;
53
+ borrowFeeBps?: number;
54
+ txFeeBps?: number;
55
+ }
56
+ export interface BatchPreviewOrderRequest {
57
+ items: BatchPreviewOrderItem[];
58
+ }
59
+ export interface BatchPreviewOrderResult extends PreviewOrderResult {
60
+ positionId: string;
61
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=preview.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.types.js","sourceRoot":"","sources":["../../../../src/core/types/orderbook/preview.types.ts"],"names":[],"mappings":""}
@@ -1,5 +1,6 @@
1
1
  export declare const urls: {
2
2
  auth: string;
3
+ orderbook: string;
3
4
  oracleCore: string;
4
5
  oraclePeriphery: string;
5
6
  oracleProcessors: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@levrbet/shared",
3
- "version": "0.5.7",
3
+ "version": "0.5.9",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {