@polymarket/clob-client 5.0.0 → 5.1.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.
Files changed (52) hide show
  1. package/package.json +2 -2
  2. package/dist/client.d.ts +0 -118
  3. package/dist/client.js +0 -776
  4. package/dist/client.js.map +0 -1
  5. package/dist/config.d.ts +0 -12
  6. package/dist/config.js +0 -28
  7. package/dist/config.js.map +0 -1
  8. package/dist/constants.d.ts +0 -3
  9. package/dist/constants.js +0 -7
  10. package/dist/constants.js.map +0 -1
  11. package/dist/endpoints.d.ts +0 -51
  12. package/dist/endpoints.js +0 -63
  13. package/dist/endpoints.js.map +0 -1
  14. package/dist/errors.d.ts +0 -4
  15. package/dist/errors.js +0 -5
  16. package/dist/errors.js.map +0 -1
  17. package/dist/headers/index.d.ts +0 -7
  18. package/dist/headers/index.js +0 -41
  19. package/dist/headers/index.js.map +0 -1
  20. package/dist/http-helpers/index.d.ts +0 -18
  21. package/dist/http-helpers/index.js +0 -105
  22. package/dist/http-helpers/index.js.map +0 -1
  23. package/dist/index.d.ts +0 -5
  24. package/dist/index.js +0 -6
  25. package/dist/index.js.map +0 -1
  26. package/dist/order-builder/builder.d.ts +0 -30
  27. package/dist/order-builder/builder.js +0 -52
  28. package/dist/order-builder/builder.js.map +0 -1
  29. package/dist/order-builder/helpers.d.ts +0 -51
  30. package/dist/order-builder/helpers.js +0 -279
  31. package/dist/order-builder/helpers.js.map +0 -1
  32. package/dist/order-builder/index.d.ts +0 -1
  33. package/dist/order-builder/index.js +0 -2
  34. package/dist/order-builder/index.js.map +0 -1
  35. package/dist/signing/constants.d.ts +0 -14
  36. package/dist/signing/constants.js +0 -16
  37. package/dist/signing/constants.js.map +0 -1
  38. package/dist/signing/eip712.d.ts +0 -10
  39. package/dist/signing/eip712.js +0 -34
  40. package/dist/signing/eip712.js.map +0 -1
  41. package/dist/signing/hmac.d.ts +0 -9
  42. package/dist/signing/hmac.js +0 -52
  43. package/dist/signing/hmac.js.map +0 -1
  44. package/dist/signing/index.d.ts +0 -2
  45. package/dist/signing/index.js +0 -3
  46. package/dist/signing/index.js.map +0 -1
  47. package/dist/types.d.ts +0 -445
  48. package/dist/types.js +0 -31
  49. package/dist/types.js.map +0 -1
  50. package/dist/utilities.d.ts +0 -16
  51. package/dist/utilities.js +0 -89
  52. package/dist/utilities.js.map +0 -1
package/dist/types.d.ts DELETED
@@ -1,445 +0,0 @@
1
- import type { SignatureType, SignedOrder } from "@polymarket/order-utils";
2
- export interface ApiKeyCreds {
3
- key: string;
4
- secret: string;
5
- passphrase: string;
6
- }
7
- export interface ApiKeyRaw {
8
- apiKey: string;
9
- secret: string;
10
- passphrase: string;
11
- }
12
- export interface L2HeaderArgs {
13
- method: string;
14
- requestPath: string;
15
- body?: string;
16
- }
17
- export type SimpleHeaders = Record<string, string | number | boolean>;
18
- export interface L1PolyHeader extends SimpleHeaders {
19
- POLY_ADDRESS: string;
20
- POLY_SIGNATURE: string;
21
- POLY_TIMESTAMP: string;
22
- POLY_NONCE: string;
23
- }
24
- export interface L2PolyHeader extends SimpleHeaders {
25
- POLY_ADDRESS: string;
26
- POLY_SIGNATURE: string;
27
- POLY_TIMESTAMP: string;
28
- POLY_API_KEY: string;
29
- POLY_PASSPHRASE: string;
30
- }
31
- export interface L2WithBuilderHeader extends L2PolyHeader {
32
- POLY_BUILDER_API_KEY: string;
33
- POLY_BUILDER_TIMESTAMP: string;
34
- POLY_BUILDER_PASSPHRASE: string;
35
- POLY_BUILDER_SIGNATURE: string;
36
- }
37
- export declare enum Side {
38
- BUY = "BUY",
39
- SELL = "SELL"
40
- }
41
- export declare enum OrderType {
42
- GTC = "GTC",
43
- FOK = "FOK",
44
- GTD = "GTD",
45
- FAK = "FAK"
46
- }
47
- export interface PostOrdersArgs {
48
- order: SignedOrder;
49
- orderType: OrderType;
50
- }
51
- export interface NewOrder<T extends OrderType> {
52
- readonly order: {
53
- readonly salt: number;
54
- readonly maker: string;
55
- readonly signer: string;
56
- readonly taker: string;
57
- readonly tokenId: string;
58
- readonly makerAmount: string;
59
- readonly takerAmount: string;
60
- readonly expiration: string;
61
- readonly nonce: string;
62
- readonly feeRateBps: string;
63
- readonly side: Side;
64
- readonly signatureType: SignatureType;
65
- readonly signature: string;
66
- };
67
- readonly owner: string;
68
- readonly orderType: T;
69
- readonly deferExec: boolean;
70
- }
71
- export interface UserOrder {
72
- /**
73
- * TokenID of the Conditional token asset being traded
74
- */
75
- tokenID: string;
76
- /**
77
- * Price used to create the order
78
- */
79
- price: number;
80
- /**
81
- * Size in terms of the ConditionalToken
82
- */
83
- size: number;
84
- /**
85
- * Side of the order
86
- */
87
- side: Side;
88
- /**
89
- * Fee rate, in basis points, charged to the order maker, charged on proceeds
90
- */
91
- feeRateBps?: number;
92
- /**
93
- * Nonce used for onchain cancellations
94
- */
95
- nonce?: number;
96
- /**
97
- * Timestamp after which the order is expired.
98
- */
99
- expiration?: number;
100
- /**
101
- * Address of the order taker. The zero address is used to indicate a public order
102
- */
103
- taker?: string;
104
- }
105
- export interface UserMarketOrder {
106
- /**
107
- * TokenID of the Conditional token asset being traded
108
- */
109
- tokenID: string;
110
- /**
111
- * Price used to create the order
112
- * If it is not present the market price will be used.
113
- */
114
- price?: number;
115
- /**
116
- * BUY orders: $$$ Amount to buy
117
- * SELL orders: Shares to sell
118
- */
119
- amount: number;
120
- /**
121
- * Side of the order
122
- */
123
- side: Side;
124
- /**
125
- * Fee rate, in basis points, charged to the order maker, charged on proceeds
126
- */
127
- feeRateBps?: number;
128
- /**
129
- * Nonce used for onchain cancellations
130
- */
131
- nonce?: number;
132
- /**
133
- * Address of the order taker. The zero address is used to indicate a public order
134
- */
135
- taker?: string;
136
- /**
137
- * Specifies the type of order execution:
138
- * - FOK (Fill or Kill): The order must be filled entirely or not at all.
139
- * - FAK (Fill and Kill): The order can be partially filled, and any unfilled portion is canceled.
140
- */
141
- orderType?: OrderType.FOK | OrderType.FAK;
142
- }
143
- export interface OrderPayload {
144
- orderID: string;
145
- }
146
- export interface ApiKeysResponse {
147
- apiKeys: ApiKeyCreds[];
148
- }
149
- export interface BanStatus {
150
- closed_only: boolean;
151
- }
152
- export interface OrderResponse {
153
- success: boolean;
154
- errorMsg: string;
155
- orderID: string;
156
- transactionsHashes: string[];
157
- status: string;
158
- takingAmount: string;
159
- makingAmount: string;
160
- }
161
- export interface OpenOrder {
162
- id: string;
163
- status: string;
164
- owner: string;
165
- maker_address: string;
166
- market: string;
167
- asset_id: string;
168
- side: string;
169
- original_size: string;
170
- size_matched: string;
171
- price: string;
172
- associate_trades: string[];
173
- outcome: string;
174
- created_at: number;
175
- expiration: string;
176
- order_type: string;
177
- }
178
- export type OpenOrdersResponse = OpenOrder[];
179
- export interface TradeParams {
180
- id?: string;
181
- maker_address?: string;
182
- market?: string;
183
- asset_id?: string;
184
- before?: string;
185
- after?: string;
186
- }
187
- export interface OpenOrderParams {
188
- id?: string;
189
- market?: string;
190
- asset_id?: string;
191
- }
192
- export interface MakerOrder {
193
- order_id: string;
194
- owner: string;
195
- maker_address: string;
196
- matched_amount: string;
197
- price: string;
198
- fee_rate_bps: string;
199
- asset_id: string;
200
- outcome: string;
201
- side: Side;
202
- }
203
- export interface Trade {
204
- id: string;
205
- taker_order_id: string;
206
- market: string;
207
- asset_id: string;
208
- side: Side;
209
- size: string;
210
- fee_rate_bps: string;
211
- price: string;
212
- status: string;
213
- match_time: string;
214
- last_update: string;
215
- outcome: string;
216
- bucket_index: number;
217
- owner: string;
218
- maker_address: string;
219
- maker_orders: MakerOrder[];
220
- transaction_hash: string;
221
- trader_side: "TAKER" | "MAKER";
222
- }
223
- export declare enum Chain {
224
- POLYGON = 137,
225
- AMOY = 80002
226
- }
227
- export interface MarketPrice {
228
- t: number;
229
- p: number;
230
- }
231
- export interface PriceHistoryFilterParams {
232
- market?: string;
233
- startTs?: number;
234
- endTs?: number;
235
- fidelity?: number;
236
- interval?: PriceHistoryInterval;
237
- }
238
- export declare enum PriceHistoryInterval {
239
- MAX = "max",
240
- ONE_WEEK = "1w",
241
- ONE_DAY = "1d",
242
- SIX_HOURS = "6h",
243
- ONE_HOUR = "1h"
244
- }
245
- export interface DropNotificationParams {
246
- ids: string[];
247
- }
248
- export interface Notification {
249
- type: number;
250
- owner: string;
251
- payload: any;
252
- }
253
- export interface OrderMarketCancelParams {
254
- market?: string;
255
- asset_id?: string;
256
- }
257
- export interface OrderBookSummary {
258
- market: string;
259
- asset_id: string;
260
- timestamp: string;
261
- bids: OrderSummary[];
262
- asks: OrderSummary[];
263
- min_order_size: string;
264
- tick_size: string;
265
- neg_risk: boolean;
266
- hash: string;
267
- }
268
- export interface OrderSummary {
269
- price: string;
270
- size: string;
271
- }
272
- export declare enum AssetType {
273
- COLLATERAL = "COLLATERAL",
274
- CONDITIONAL = "CONDITIONAL"
275
- }
276
- export interface BalanceAllowanceParams {
277
- asset_type: AssetType;
278
- token_id?: string;
279
- }
280
- export interface BalanceAllowanceResponse {
281
- balance: string;
282
- allowance: string;
283
- }
284
- export interface OrderScoringParams {
285
- order_id: string;
286
- }
287
- export interface OrderScoring {
288
- scoring: boolean;
289
- }
290
- export interface OrdersScoringParams {
291
- orderIds: string[];
292
- }
293
- export type OrdersScoring = {
294
- [orderId in string]: boolean;
295
- };
296
- export type CreateOrderOptions = {
297
- tickSize: TickSize;
298
- negRisk?: boolean;
299
- };
300
- export type TickSize = "0.1" | "0.01" | "0.001" | "0.0001";
301
- export interface RoundConfig {
302
- readonly price: number;
303
- readonly size: number;
304
- readonly amount: number;
305
- }
306
- export interface TickSizes {
307
- [tokenId: string]: TickSize;
308
- }
309
- export interface NegRisk {
310
- [tokenId: string]: boolean;
311
- }
312
- export interface FeeRates {
313
- [tokenId: string]: number;
314
- }
315
- export interface PaginationPayload {
316
- readonly limit: number;
317
- readonly count: number;
318
- readonly next_cursor: string;
319
- readonly data: any[];
320
- }
321
- export interface MarketTradeEvent {
322
- event_type: string;
323
- market: {
324
- condition_id: string;
325
- asset_id: string;
326
- question: string;
327
- icon: string;
328
- slug: string;
329
- };
330
- user: {
331
- address: string;
332
- username: string;
333
- profile_picture: string;
334
- optimized_profile_picture: string;
335
- pseudonym: string;
336
- };
337
- side: Side;
338
- size: string;
339
- fee_rate_bps: string;
340
- price: string;
341
- outcome: string;
342
- outcome_index: number;
343
- transaction_hash: string;
344
- timestamp: string;
345
- }
346
- export interface BookParams {
347
- token_id: string;
348
- side: Side;
349
- }
350
- export interface UserEarning {
351
- date: string;
352
- condition_id: string;
353
- asset_address: string;
354
- maker_address: string;
355
- earnings: number;
356
- asset_rate: number;
357
- }
358
- export interface TotalUserEarning {
359
- date: string;
360
- asset_address: string;
361
- maker_address: string;
362
- earnings: number;
363
- asset_rate: number;
364
- }
365
- export interface RewardsPercentages {
366
- [market: string]: number;
367
- }
368
- export interface Token {
369
- token_id: string;
370
- outcome: string;
371
- price: number;
372
- }
373
- export interface RewardsConfig {
374
- asset_address: string;
375
- start_date: string;
376
- end_date: string;
377
- rate_per_day: number;
378
- total_rewards: number;
379
- }
380
- export interface MarketReward {
381
- condition_id: string;
382
- question: string;
383
- market_slug: string;
384
- event_slug: string;
385
- image: string;
386
- rewards_max_spread: number;
387
- rewards_min_size: number;
388
- tokens: Token[];
389
- rewards_config: RewardsConfig[];
390
- }
391
- export interface Earning {
392
- asset_address: string;
393
- earnings: number;
394
- asset_rate: number;
395
- }
396
- export interface BuilderApiKey {
397
- key: string;
398
- secret: string;
399
- passphrase: string;
400
- }
401
- export interface BuilderApiKeyResponse {
402
- key: string;
403
- createdAt?: string;
404
- revokedAt?: string;
405
- }
406
- export interface UserRewardsEarning {
407
- condition_id: string;
408
- question: string;
409
- market_slug: string;
410
- event_slug: string;
411
- image: string;
412
- rewards_max_spread: number;
413
- rewards_min_size: number;
414
- market_competitiveness: number;
415
- tokens: Token[];
416
- rewards_config: RewardsConfig[];
417
- maker_address: string;
418
- earning_percentage: number;
419
- earnings: Earning[];
420
- }
421
- export interface BuilderTrade {
422
- id: string;
423
- tradeType: string;
424
- takerOrderHash: string;
425
- builder: string;
426
- market: string;
427
- assetId: string;
428
- side: string;
429
- size: string;
430
- sizeUsdc: string;
431
- price: string;
432
- status: string;
433
- outcome: string;
434
- outcomeIndex: number;
435
- owner: string;
436
- maker: string;
437
- transactionHash: string;
438
- matchTime: string;
439
- bucketIndex: number;
440
- fee: string;
441
- feeUsdc: string;
442
- err_msg?: string | null;
443
- createdAt: string | null;
444
- updatedAt: string | null;
445
- }
package/dist/types.js DELETED
@@ -1,31 +0,0 @@
1
- export var Side;
2
- (function (Side) {
3
- Side["BUY"] = "BUY";
4
- Side["SELL"] = "SELL";
5
- })(Side || (Side = {}));
6
- export var OrderType;
7
- (function (OrderType) {
8
- OrderType["GTC"] = "GTC";
9
- OrderType["FOK"] = "FOK";
10
- OrderType["GTD"] = "GTD";
11
- OrderType["FAK"] = "FAK";
12
- })(OrderType || (OrderType = {}));
13
- export var Chain;
14
- (function (Chain) {
15
- Chain[Chain["POLYGON"] = 137] = "POLYGON";
16
- Chain[Chain["AMOY"] = 80002] = "AMOY";
17
- })(Chain || (Chain = {}));
18
- export var PriceHistoryInterval;
19
- (function (PriceHistoryInterval) {
20
- PriceHistoryInterval["MAX"] = "max";
21
- PriceHistoryInterval["ONE_WEEK"] = "1w";
22
- PriceHistoryInterval["ONE_DAY"] = "1d";
23
- PriceHistoryInterval["SIX_HOURS"] = "6h";
24
- PriceHistoryInterval["ONE_HOUR"] = "1h";
25
- })(PriceHistoryInterval || (PriceHistoryInterval = {}));
26
- export var AssetType;
27
- (function (AssetType) {
28
- AssetType["COLLATERAL"] = "COLLATERAL";
29
- AssetType["CONDITIONAL"] = "CONDITIONAL";
30
- })(AssetType || (AssetType = {}));
31
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgDA,MAAM,CAAN,IAAY,IAGX;AAHD,WAAY,IAAI;IACZ,mBAAW,CAAA;IACX,qBAAa,CAAA;AACjB,CAAC,EAHW,IAAI,KAAJ,IAAI,QAGf;AAED,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,wBAAW,CAAA;AACf,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAkND,MAAM,CAAN,IAAY,KAGX;AAHD,WAAY,KAAK;IACb,yCAAa,CAAA;IACb,qCAAY,CAAA;AAChB,CAAC,EAHW,KAAK,KAAL,KAAK,QAGhB;AAeD,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC5B,mCAAW,CAAA;IACX,uCAAe,CAAA;IACf,sCAAc,CAAA;IACd,wCAAgB,CAAA;IAChB,uCAAe,CAAA;AACnB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;AAmCD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,sCAAyB,CAAA;IACzB,wCAA2B,CAAA;AAC/B,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB"}
@@ -1,16 +0,0 @@
1
- import type { SignedOrder } from "@polymarket/order-utils";
2
- import { OrderType } from "./types.ts";
3
- import type { NewOrder, OrderBookSummary, TickSize } from "./types.ts";
4
- export declare function orderToJson<T extends OrderType>(order: SignedOrder, owner: string, orderType: T, deferExec?: boolean): NewOrder<T>;
5
- export declare const roundNormal: (num: number, decimals: number) => number;
6
- export declare const roundDown: (num: number, decimals: number) => number;
7
- export declare const roundUp: (num: number, decimals: number) => number;
8
- export declare const decimalPlaces: (num: number) => number;
9
- /**
10
- * Calculates the hash for the given orderbook
11
- * @param orderbook
12
- * @returns
13
- */
14
- export declare const generateOrderBookSummaryHash: (orderbook: OrderBookSummary) => Promise<string>;
15
- export declare const isTickSizeSmaller: (a: TickSize, b: TickSize) => boolean;
16
- export declare const priceValid: (price: number, tickSize: TickSize) => boolean;
package/dist/utilities.js DELETED
@@ -1,89 +0,0 @@
1
- import { Side as UtilsSide } from "@polymarket/order-utils";
2
- import { OrderType, Side } from "./types.js";
3
- export function orderToJson(order, owner, orderType, deferExec = false) {
4
- let side = Side.BUY;
5
- if (order.side == UtilsSide.BUY) {
6
- side = Side.BUY;
7
- }
8
- else {
9
- side = Side.SELL;
10
- }
11
- return {
12
- deferExec,
13
- order: {
14
- salt: parseInt(order.salt, 10),
15
- maker: order.maker,
16
- signer: order.signer,
17
- taker: order.taker,
18
- tokenId: order.tokenId,
19
- makerAmount: order.makerAmount,
20
- takerAmount: order.takerAmount,
21
- side,
22
- expiration: order.expiration,
23
- nonce: order.nonce,
24
- feeRateBps: order.feeRateBps,
25
- signatureType: order.signatureType,
26
- signature: order.signature,
27
- },
28
- owner,
29
- orderType,
30
- };
31
- }
32
- export const roundNormal = (num, decimals) => {
33
- if (decimalPlaces(num) <= decimals) {
34
- return num;
35
- }
36
- return Math.round((num + Number.EPSILON) * 10 ** decimals) / 10 ** decimals;
37
- };
38
- export const roundDown = (num, decimals) => {
39
- if (decimalPlaces(num) <= decimals) {
40
- return num;
41
- }
42
- return Math.floor(num * 10 ** decimals) / 10 ** decimals;
43
- };
44
- export const roundUp = (num, decimals) => {
45
- if (decimalPlaces(num) <= decimals) {
46
- return num;
47
- }
48
- return Math.ceil(num * 10 ** decimals) / 10 ** decimals;
49
- };
50
- export const decimalPlaces = (num) => {
51
- if (Number.isInteger(num)) {
52
- return 0;
53
- }
54
- const arr = num.toString().split(".");
55
- if (arr.length <= 1) {
56
- return 0;
57
- }
58
- return arr[1].length;
59
- };
60
- /**
61
- * Converts ArrayBuffer to hex string
62
- */
63
- function arrayBufferToHex(buffer) {
64
- const bytes = new Uint8Array(buffer);
65
- return Array.from(bytes)
66
- .map(b => b.toString(16).padStart(2, "0"))
67
- .join("");
68
- }
69
- /**
70
- * Calculates the hash for the given orderbook
71
- * @param orderbook
72
- * @returns
73
- */
74
- export const generateOrderBookSummaryHash = async (orderbook) => {
75
- orderbook.hash = "";
76
- const message = JSON.stringify(orderbook);
77
- const messageBuffer = new TextEncoder().encode(message);
78
- const hashBuffer = await crypto.subtle.digest("SHA-1", messageBuffer);
79
- const hash = arrayBufferToHex(hashBuffer);
80
- orderbook.hash = hash;
81
- return hash;
82
- };
83
- export const isTickSizeSmaller = (a, b) => {
84
- return parseFloat(a) < parseFloat(b);
85
- };
86
- export const priceValid = (price, tickSize) => {
87
- return price >= parseFloat(tickSize) && price <= 1 - parseFloat(tickSize);
88
- };
89
- //# sourceMappingURL=utilities.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}