pmxtjs 2.22.1 → 2.23.0

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.
@@ -67,7 +67,7 @@ export declare abstract class Exchange {
67
67
  fetchEvents(params?: any): Promise<UnifiedEvent[]>;
68
68
  fetchMarket(params?: any): Promise<UnifiedMarket>;
69
69
  fetchEvent(params?: any): Promise<UnifiedEvent>;
70
- fetchOrderBook(id: string): Promise<OrderBook>;
70
+ fetchOrderBook(id: string | MarketOutcome): Promise<OrderBook>;
71
71
  cancelOrder(orderId: string): Promise<Order>;
72
72
  fetchOrder(orderId: string): Promise<Order>;
73
73
  fetchOpenOrders(marketId?: string): Promise<Order[]>;
@@ -94,7 +94,7 @@ export declare abstract class Exchange {
94
94
  * });
95
95
  * ```
96
96
  */
97
- fetchOHLCV(outcomeId: string, params: any): Promise<PriceCandle[]>;
97
+ fetchOHLCV(outcomeId: string | MarketOutcome, params: any): Promise<PriceCandle[]>;
98
98
  /**
99
99
  * Get trade history for an outcome.
100
100
  *
@@ -104,7 +104,7 @@ export declare abstract class Exchange {
104
104
  * @param params - History filter parameters
105
105
  * @returns List of trades
106
106
  */
107
- fetchTrades(outcomeId: string, params: any): Promise<Trade[]>;
107
+ fetchTrades(outcomeId: string | MarketOutcome, params: any): Promise<Trade[]>;
108
108
  /**
109
109
  * Watch real-time order book updates via WebSocket.
110
110
  *
@@ -125,7 +125,7 @@ export declare abstract class Exchange {
125
125
  * }
126
126
  * ```
127
127
  */
128
- watchOrderBook(outcomeId: string, limit?: number): Promise<OrderBook>;
128
+ watchOrderBook(outcomeId: string | MarketOutcome, limit?: number): Promise<OrderBook>;
129
129
  /**
130
130
  * Watch real-time trade updates via WebSocket.
131
131
  *
@@ -149,7 +149,7 @@ export declare abstract class Exchange {
149
149
  * }
150
150
  * ```
151
151
  */
152
- watchTrades(outcomeId: string, address?: string, since?: number, limit?: number): Promise<Trade[]>;
152
+ watchTrades(outcomeId: string | MarketOutcome, address?: string, since?: number, limit?: number): Promise<Trade[]>;
153
153
  /**
154
154
  * Watch real-time updates of a public wallet via WebSocket.
155
155
  *
@@ -9,6 +9,15 @@ import { MarketList, } from "./models.js";
9
9
  import { ServerManager } from "./server-manager.js";
10
10
  import { buildArgsWithOptionalOptions } from "./args.js";
11
11
  import { PmxtError, fromServerError } from "./errors.js";
12
+ /**
13
+ * Resolve a MarketOutcome shorthand to a plain outcome ID string.
14
+ * Accepts either a raw string ID or a MarketOutcome object.
15
+ */
16
+ function resolveOutcomeId(input) {
17
+ if (typeof input === 'string')
18
+ return input;
19
+ return input.outcomeId;
20
+ }
12
21
  // Converter functions
13
22
  function convertMarket(raw) {
14
23
  const outcomes = (raw.outcomes || []).map((o) => ({
@@ -456,9 +465,10 @@ export class Exchange {
456
465
  }
457
466
  async fetchOrderBook(id) {
458
467
  await this.initPromise;
468
+ const resolvedId = resolveOutcomeId(id);
459
469
  try {
460
470
  const args = [];
461
- args.push(id);
471
+ args.push(resolvedId);
462
472
  const response = await fetch(`${this.config.basePath}/api/${this.exchangeName}/fetchOrderBook`, {
463
473
  method: 'POST',
464
474
  headers: { 'Content-Type': 'application/json', ...this.getAuthHeaders() },
@@ -736,6 +746,7 @@ export class Exchange {
736
746
  */
737
747
  async fetchOHLCV(outcomeId, params) {
738
748
  await this.initPromise;
749
+ const resolvedOutcomeId = resolveOutcomeId(outcomeId);
739
750
  try {
740
751
  const paramsDict = { resolution: params.resolution };
741
752
  if (params.start) {
@@ -748,7 +759,7 @@ export class Exchange {
748
759
  paramsDict.limit = params.limit;
749
760
  }
750
761
  const requestBody = {
751
- args: [outcomeId, paramsDict],
762
+ args: [resolvedOutcomeId, paramsDict],
752
763
  credentials: this.getCredentials()
753
764
  };
754
765
  const response = await this.api.fetchOHLCV({
@@ -775,13 +786,14 @@ export class Exchange {
775
786
  */
776
787
  async fetchTrades(outcomeId, params) {
777
788
  await this.initPromise;
789
+ const resolvedOutcomeId = resolveOutcomeId(outcomeId);
778
790
  try {
779
791
  const paramsDict = { resolution: params.resolution };
780
792
  if (params.limit) {
781
793
  paramsDict.limit = params.limit;
782
794
  }
783
795
  const requestBody = {
784
- args: [outcomeId, paramsDict],
796
+ args: [resolvedOutcomeId, paramsDict],
785
797
  credentials: this.getCredentials()
786
798
  };
787
799
  const response = await this.api.fetchTrades({
@@ -820,8 +832,9 @@ export class Exchange {
820
832
  */
821
833
  async watchOrderBook(outcomeId, limit) {
822
834
  await this.initPromise;
835
+ const resolvedOutcomeId = resolveOutcomeId(outcomeId);
823
836
  try {
824
- const args = [outcomeId];
837
+ const args = [resolvedOutcomeId];
825
838
  if (limit !== undefined) {
826
839
  args.push(limit);
827
840
  }
@@ -867,8 +880,9 @@ export class Exchange {
867
880
  */
868
881
  async watchTrades(outcomeId, address, since, limit) {
869
882
  await this.initPromise;
883
+ const resolvedOutcomeId = resolveOutcomeId(outcomeId);
870
884
  try {
871
- const args = [outcomeId];
885
+ const args = [resolvedOutcomeId];
872
886
  if (address !== undefined) {
873
887
  args.push(address);
874
888
  }
@@ -67,7 +67,7 @@ export declare abstract class Exchange {
67
67
  fetchEvents(params?: any): Promise<UnifiedEvent[]>;
68
68
  fetchMarket(params?: any): Promise<UnifiedMarket>;
69
69
  fetchEvent(params?: any): Promise<UnifiedEvent>;
70
- fetchOrderBook(id: string): Promise<OrderBook>;
70
+ fetchOrderBook(id: string | MarketOutcome): Promise<OrderBook>;
71
71
  cancelOrder(orderId: string): Promise<Order>;
72
72
  fetchOrder(orderId: string): Promise<Order>;
73
73
  fetchOpenOrders(marketId?: string): Promise<Order[]>;
@@ -94,7 +94,7 @@ export declare abstract class Exchange {
94
94
  * });
95
95
  * ```
96
96
  */
97
- fetchOHLCV(outcomeId: string, params: any): Promise<PriceCandle[]>;
97
+ fetchOHLCV(outcomeId: string | MarketOutcome, params: any): Promise<PriceCandle[]>;
98
98
  /**
99
99
  * Get trade history for an outcome.
100
100
  *
@@ -104,7 +104,7 @@ export declare abstract class Exchange {
104
104
  * @param params - History filter parameters
105
105
  * @returns List of trades
106
106
  */
107
- fetchTrades(outcomeId: string, params: any): Promise<Trade[]>;
107
+ fetchTrades(outcomeId: string | MarketOutcome, params: any): Promise<Trade[]>;
108
108
  /**
109
109
  * Watch real-time order book updates via WebSocket.
110
110
  *
@@ -125,7 +125,7 @@ export declare abstract class Exchange {
125
125
  * }
126
126
  * ```
127
127
  */
128
- watchOrderBook(outcomeId: string, limit?: number): Promise<OrderBook>;
128
+ watchOrderBook(outcomeId: string | MarketOutcome, limit?: number): Promise<OrderBook>;
129
129
  /**
130
130
  * Watch real-time trade updates via WebSocket.
131
131
  *
@@ -149,7 +149,7 @@ export declare abstract class Exchange {
149
149
  * }
150
150
  * ```
151
151
  */
152
- watchTrades(outcomeId: string, address?: string, since?: number, limit?: number): Promise<Trade[]>;
152
+ watchTrades(outcomeId: string | MarketOutcome, address?: string, since?: number, limit?: number): Promise<Trade[]>;
153
153
  /**
154
154
  * Watch real-time updates of a public wallet via WebSocket.
155
155
  *
@@ -12,6 +12,15 @@ const models_js_1 = require("./models.js");
12
12
  const server_manager_js_1 = require("./server-manager.js");
13
13
  const args_js_1 = require("./args.js");
14
14
  const errors_js_1 = require("./errors.js");
15
+ /**
16
+ * Resolve a MarketOutcome shorthand to a plain outcome ID string.
17
+ * Accepts either a raw string ID or a MarketOutcome object.
18
+ */
19
+ function resolveOutcomeId(input) {
20
+ if (typeof input === 'string')
21
+ return input;
22
+ return input.outcomeId;
23
+ }
15
24
  // Converter functions
16
25
  function convertMarket(raw) {
17
26
  const outcomes = (raw.outcomes || []).map((o) => ({
@@ -459,9 +468,10 @@ class Exchange {
459
468
  }
460
469
  async fetchOrderBook(id) {
461
470
  await this.initPromise;
471
+ const resolvedId = resolveOutcomeId(id);
462
472
  try {
463
473
  const args = [];
464
- args.push(id);
474
+ args.push(resolvedId);
465
475
  const response = await fetch(`${this.config.basePath}/api/${this.exchangeName}/fetchOrderBook`, {
466
476
  method: 'POST',
467
477
  headers: { 'Content-Type': 'application/json', ...this.getAuthHeaders() },
@@ -739,6 +749,7 @@ class Exchange {
739
749
  */
740
750
  async fetchOHLCV(outcomeId, params) {
741
751
  await this.initPromise;
752
+ const resolvedOutcomeId = resolveOutcomeId(outcomeId);
742
753
  try {
743
754
  const paramsDict = { resolution: params.resolution };
744
755
  if (params.start) {
@@ -751,7 +762,7 @@ class Exchange {
751
762
  paramsDict.limit = params.limit;
752
763
  }
753
764
  const requestBody = {
754
- args: [outcomeId, paramsDict],
765
+ args: [resolvedOutcomeId, paramsDict],
755
766
  credentials: this.getCredentials()
756
767
  };
757
768
  const response = await this.api.fetchOHLCV({
@@ -778,13 +789,14 @@ class Exchange {
778
789
  */
779
790
  async fetchTrades(outcomeId, params) {
780
791
  await this.initPromise;
792
+ const resolvedOutcomeId = resolveOutcomeId(outcomeId);
781
793
  try {
782
794
  const paramsDict = { resolution: params.resolution };
783
795
  if (params.limit) {
784
796
  paramsDict.limit = params.limit;
785
797
  }
786
798
  const requestBody = {
787
- args: [outcomeId, paramsDict],
799
+ args: [resolvedOutcomeId, paramsDict],
788
800
  credentials: this.getCredentials()
789
801
  };
790
802
  const response = await this.api.fetchTrades({
@@ -823,8 +835,9 @@ class Exchange {
823
835
  */
824
836
  async watchOrderBook(outcomeId, limit) {
825
837
  await this.initPromise;
838
+ const resolvedOutcomeId = resolveOutcomeId(outcomeId);
826
839
  try {
827
- const args = [outcomeId];
840
+ const args = [resolvedOutcomeId];
828
841
  if (limit !== undefined) {
829
842
  args.push(limit);
830
843
  }
@@ -870,8 +883,9 @@ class Exchange {
870
883
  */
871
884
  async watchTrades(outcomeId, address, since, limit) {
872
885
  await this.initPromise;
886
+ const resolvedOutcomeId = resolveOutcomeId(outcomeId);
873
887
  try {
874
- const args = [outcomeId];
888
+ const args = [resolvedOutcomeId];
875
889
  if (address !== undefined) {
876
890
  args.push(address);
877
891
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmxtjs",
3
- "version": "2.22.1",
3
+ "version": "2.23.0",
4
4
  "description": "OpenAPI client for pmxtjs",
5
5
  "author": "OpenAPI-Generator",
6
6
  "repository": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmxtjs",
3
- "version": "2.22.1",
3
+ "version": "2.23.0",
4
4
  "description": "Unified prediction market data API - The ccxt for prediction markets",
5
5
  "author": "PMXT Contributors",
6
6
  "repository": {
@@ -43,13 +43,13 @@
43
43
  "unified"
44
44
  ],
45
45
  "dependencies": {
46
- "pmxt-core": "2.22.1"
46
+ "pmxt-core": "2.23.0"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@types/jest": "^30.0.0",
50
50
  "@types/node": "^20.0.0",
51
51
  "jest": "^30.3.0",
52
- "ts-jest": "^29.4.6",
52
+ "ts-jest": "^29.4.9",
53
53
  "typescript": "^5.0.0"
54
54
  }
55
55
  }
package/pmxt/client.ts CHANGED
@@ -45,6 +45,15 @@ import { ServerManager } from "./server-manager.js";
45
45
  import { buildArgsWithOptionalOptions } from "./args.js";
46
46
  import { PmxtError, fromServerError } from "./errors.js";
47
47
 
48
+ /**
49
+ * Resolve a MarketOutcome shorthand to a plain outcome ID string.
50
+ * Accepts either a raw string ID or a MarketOutcome object.
51
+ */
52
+ function resolveOutcomeId(input: string | MarketOutcome): string {
53
+ if (typeof input === 'string') return input;
54
+ return input.outcomeId;
55
+ }
56
+
48
57
  // Converter functions
49
58
  function convertMarket(raw: any): UnifiedMarket {
50
59
  const outcomes: MarketOutcome[] = (raw.outcomes || []).map((o: any) => ({
@@ -544,11 +553,12 @@ export abstract class Exchange {
544
553
  }
545
554
  }
546
555
 
547
- async fetchOrderBook(id: string): Promise<OrderBook> {
556
+ async fetchOrderBook(id: string | MarketOutcome): Promise<OrderBook> {
548
557
  await this.initPromise;
558
+ const resolvedId = resolveOutcomeId(id);
549
559
  try {
550
560
  const args: any[] = [];
551
- args.push(id);
561
+ args.push(resolvedId);
552
562
  const response = await fetch(`${this.config.basePath}/api/${this.exchangeName}/fetchOrderBook`, {
553
563
  method: 'POST',
554
564
  headers: { 'Content-Type': 'application/json', ...this.getAuthHeaders() },
@@ -817,10 +827,11 @@ export abstract class Exchange {
817
827
  * ```
818
828
  */
819
829
  async fetchOHLCV(
820
- outcomeId: string,
830
+ outcomeId: string | MarketOutcome,
821
831
  params: any
822
832
  ): Promise<PriceCandle[]> {
823
833
  await this.initPromise;
834
+ const resolvedOutcomeId = resolveOutcomeId(outcomeId);
824
835
  try {
825
836
  const paramsDict: any = { resolution: params.resolution };
826
837
  if (params.start) {
@@ -834,7 +845,7 @@ export abstract class Exchange {
834
845
  }
835
846
 
836
847
  const requestBody: FetchOHLCVRequest = {
837
- args: [outcomeId, paramsDict],
848
+ args: [resolvedOutcomeId, paramsDict],
838
849
  credentials: this.getCredentials()
839
850
  };
840
851
 
@@ -861,10 +872,11 @@ export abstract class Exchange {
861
872
  * @returns List of trades
862
873
  */
863
874
  async fetchTrades(
864
- outcomeId: string,
875
+ outcomeId: string | MarketOutcome,
865
876
  params: any
866
877
  ): Promise<Trade[]> {
867
878
  await this.initPromise;
879
+ const resolvedOutcomeId = resolveOutcomeId(outcomeId);
868
880
  try {
869
881
  const paramsDict: any = { resolution: params.resolution };
870
882
  if (params.limit) {
@@ -872,7 +884,7 @@ export abstract class Exchange {
872
884
  }
873
885
 
874
886
  const requestBody: FetchTradesRequest = {
875
- args: [outcomeId, paramsDict],
887
+ args: [resolvedOutcomeId, paramsDict],
876
888
  credentials: this.getCredentials()
877
889
  };
878
890
 
@@ -911,10 +923,11 @@ export abstract class Exchange {
911
923
  * }
912
924
  * ```
913
925
  */
914
- async watchOrderBook(outcomeId: string, limit?: number): Promise<OrderBook> {
926
+ async watchOrderBook(outcomeId: string | MarketOutcome, limit?: number): Promise<OrderBook> {
915
927
  await this.initPromise;
928
+ const resolvedOutcomeId = resolveOutcomeId(outcomeId);
916
929
  try {
917
- const args: any[] = [outcomeId];
930
+ const args: any[] = [resolvedOutcomeId];
918
931
  if (limit !== undefined) {
919
932
  args.push(limit);
920
933
  }
@@ -961,14 +974,15 @@ export abstract class Exchange {
961
974
  * ```
962
975
  */
963
976
  async watchTrades(
964
- outcomeId: string,
977
+ outcomeId: string | MarketOutcome,
965
978
  address?: string,
966
979
  since?: number,
967
980
  limit?: number
968
981
  ): Promise<Trade[]> {
969
982
  await this.initPromise;
983
+ const resolvedOutcomeId = resolveOutcomeId(outcomeId);
970
984
  try {
971
- const args: any[] = [outcomeId];
985
+ const args: any[] = [resolvedOutcomeId];
972
986
  if (address !== undefined) {
973
987
  args.push(address);
974
988
  }