@polymarket/clob-client-v2 1.0.5 → 1.0.6-pr79.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 (200) hide show
  1. package/README.md +3 -0
  2. package/dist/_virtual/rolldown_runtime.cjs +29 -0
  3. package/dist/client.cjs +886 -0
  4. package/dist/client.cjs.map +1 -0
  5. package/dist/client.d.cts +165 -0
  6. package/dist/client.d.ts +167 -0
  7. package/dist/client.js +886 -0
  8. package/dist/client.js.map +1 -0
  9. package/dist/config.cjs +37 -0
  10. package/dist/config.cjs.map +1 -0
  11. package/dist/config.d.cts +17 -0
  12. package/dist/config.d.ts +17 -0
  13. package/dist/config.js +34 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/constants.cjs +15 -0
  16. package/dist/constants.cjs.map +1 -0
  17. package/dist/constants.js +10 -0
  18. package/dist/constants.js.map +1 -0
  19. package/dist/endpoints.cjs +125 -0
  20. package/dist/endpoints.cjs.map +1 -0
  21. package/dist/endpoints.js +65 -0
  22. package/dist/endpoints.js.map +1 -0
  23. package/dist/errors.cjs +20 -0
  24. package/dist/errors.cjs.map +1 -0
  25. package/dist/errors.d.cts +11 -0
  26. package/dist/errors.d.ts +11 -0
  27. package/dist/errors.js +17 -0
  28. package/dist/errors.js.map +1 -0
  29. package/dist/fees/index.cjs +21 -0
  30. package/dist/fees/index.cjs.map +1 -0
  31. package/dist/fees/index.d.cts +5 -0
  32. package/dist/fees/index.d.ts +5 -0
  33. package/dist/fees/index.js +19 -0
  34. package/dist/fees/index.js.map +1 -0
  35. package/dist/headers/index.cjs +34 -0
  36. package/dist/headers/index.cjs.map +1 -0
  37. package/dist/headers/index.d.cts +9 -0
  38. package/dist/headers/index.d.ts +11 -0
  39. package/dist/headers/index.js +33 -0
  40. package/dist/headers/index.js.map +1 -0
  41. package/dist/http-helpers/index.cjs +109 -0
  42. package/dist/http-helpers/index.cjs.map +1 -0
  43. package/dist/http-helpers/index.js +101 -0
  44. package/dist/http-helpers/index.js.map +1 -0
  45. package/dist/index.cjs +35 -2620
  46. package/dist/index.d.cts +14 -1039
  47. package/dist/index.d.ts +16 -1039
  48. package/dist/index.js +15 -2563
  49. package/dist/order-builder/helpers/buildMarketOrderCreationArgs.cjs +43 -0
  50. package/dist/order-builder/helpers/buildMarketOrderCreationArgs.cjs.map +1 -0
  51. package/dist/order-builder/helpers/buildMarketOrderCreationArgs.js +42 -0
  52. package/dist/order-builder/helpers/buildMarketOrderCreationArgs.js.map +1 -0
  53. package/dist/order-builder/helpers/buildOrder.cjs +34 -0
  54. package/dist/order-builder/helpers/buildOrder.cjs.map +1 -0
  55. package/dist/order-builder/helpers/buildOrder.js +34 -0
  56. package/dist/order-builder/helpers/buildOrder.js.map +1 -0
  57. package/dist/order-builder/helpers/buildOrderCreationArgs.cjs +45 -0
  58. package/dist/order-builder/helpers/buildOrderCreationArgs.cjs.map +1 -0
  59. package/dist/order-builder/helpers/buildOrderCreationArgs.js +44 -0
  60. package/dist/order-builder/helpers/buildOrderCreationArgs.js.map +1 -0
  61. package/dist/order-builder/helpers/calculateBuyMarketPrice.cjs +24 -0
  62. package/dist/order-builder/helpers/calculateBuyMarketPrice.cjs.map +1 -0
  63. package/dist/order-builder/helpers/calculateBuyMarketPrice.js +24 -0
  64. package/dist/order-builder/helpers/calculateBuyMarketPrice.js.map +1 -0
  65. package/dist/order-builder/helpers/calculateSellMarketPrice.cjs +24 -0
  66. package/dist/order-builder/helpers/calculateSellMarketPrice.cjs.map +1 -0
  67. package/dist/order-builder/helpers/calculateSellMarketPrice.js +24 -0
  68. package/dist/order-builder/helpers/calculateSellMarketPrice.js.map +1 -0
  69. package/dist/order-builder/helpers/createMarketOrder.cjs +34 -0
  70. package/dist/order-builder/helpers/createMarketOrder.cjs.map +1 -0
  71. package/dist/order-builder/helpers/createMarketOrder.js +34 -0
  72. package/dist/order-builder/helpers/createMarketOrder.js.map +1 -0
  73. package/dist/order-builder/helpers/createOrder.cjs +34 -0
  74. package/dist/order-builder/helpers/createOrder.cjs.map +1 -0
  75. package/dist/order-builder/helpers/createOrder.js +34 -0
  76. package/dist/order-builder/helpers/createOrder.js.map +1 -0
  77. package/dist/order-builder/helpers/getMarketOrderRawAmounts.cjs +36 -0
  78. package/dist/order-builder/helpers/getMarketOrderRawAmounts.cjs.map +1 -0
  79. package/dist/order-builder/helpers/getMarketOrderRawAmounts.js +36 -0
  80. package/dist/order-builder/helpers/getMarketOrderRawAmounts.js.map +1 -0
  81. package/dist/order-builder/helpers/getOrderRawAmounts.cjs +36 -0
  82. package/dist/order-builder/helpers/getOrderRawAmounts.cjs.map +1 -0
  83. package/dist/order-builder/helpers/getOrderRawAmounts.js +36 -0
  84. package/dist/order-builder/helpers/getOrderRawAmounts.js.map +1 -0
  85. package/dist/order-builder/helpers/roundingConfig.cjs +28 -0
  86. package/dist/order-builder/helpers/roundingConfig.cjs.map +1 -0
  87. package/dist/order-builder/helpers/roundingConfig.js +27 -0
  88. package/dist/order-builder/helpers/roundingConfig.js.map +1 -0
  89. package/dist/order-builder/index.d.ts +1 -0
  90. package/dist/order-builder/orderBuilder.cjs +51 -0
  91. package/dist/order-builder/orderBuilder.cjs.map +1 -0
  92. package/dist/order-builder/orderBuilder.d.cts +37 -0
  93. package/dist/order-builder/orderBuilder.d.ts +39 -0
  94. package/dist/order-builder/orderBuilder.js +51 -0
  95. package/dist/order-builder/orderBuilder.js.map +1 -0
  96. package/dist/order-utils/exchangeOrderBuilderV1.cjs +128 -0
  97. package/dist/order-utils/exchangeOrderBuilderV1.cjs.map +1 -0
  98. package/dist/order-utils/exchangeOrderBuilderV1.d.ts +2 -0
  99. package/dist/order-utils/exchangeOrderBuilderV1.js +127 -0
  100. package/dist/order-utils/exchangeOrderBuilderV1.js.map +1 -0
  101. package/dist/order-utils/exchangeOrderBuilderV2.cjs +196 -0
  102. package/dist/order-utils/exchangeOrderBuilderV2.cjs.map +1 -0
  103. package/dist/order-utils/exchangeOrderBuilderV2.d.ts +2 -0
  104. package/dist/order-utils/exchangeOrderBuilderV2.js +194 -0
  105. package/dist/order-utils/exchangeOrderBuilderV2.js.map +1 -0
  106. package/dist/order-utils/index.d.ts +7 -0
  107. package/dist/order-utils/model/ctfExchangeV1TypedData.cjs +60 -0
  108. package/dist/order-utils/model/ctfExchangeV1TypedData.cjs.map +1 -0
  109. package/dist/order-utils/model/ctfExchangeV1TypedData.js +57 -0
  110. package/dist/order-utils/model/ctfExchangeV1TypedData.js.map +1 -0
  111. package/dist/order-utils/model/ctfExchangeV2TypedData.cjs +58 -0
  112. package/dist/order-utils/model/ctfExchangeV2TypedData.cjs.map +1 -0
  113. package/dist/order-utils/model/ctfExchangeV2TypedData.js +54 -0
  114. package/dist/order-utils/model/ctfExchangeV2TypedData.js.map +1 -0
  115. package/dist/order-utils/model/eip712.cjs +24 -0
  116. package/dist/order-utils/model/eip712.cjs.map +1 -0
  117. package/dist/order-utils/model/eip712.d.cts +9 -0
  118. package/dist/order-utils/model/eip712.d.ts +9 -0
  119. package/dist/order-utils/model/eip712.js +23 -0
  120. package/dist/order-utils/model/eip712.js.map +1 -0
  121. package/dist/order-utils/model/order.d.cts +5 -0
  122. package/dist/order-utils/model/order.d.ts +5 -0
  123. package/dist/order-utils/model/orderDataV1.d.cts +68 -0
  124. package/dist/order-utils/model/orderDataV1.d.ts +69 -0
  125. package/dist/order-utils/model/orderDataV2.d.cts +68 -0
  126. package/dist/order-utils/model/orderDataV2.d.ts +69 -0
  127. package/dist/order-utils/model/side.cjs +11 -0
  128. package/dist/order-utils/model/side.cjs.map +1 -0
  129. package/dist/order-utils/model/side.d.cts +8 -0
  130. package/dist/order-utils/model/side.d.ts +8 -0
  131. package/dist/order-utils/model/side.js +10 -0
  132. package/dist/order-utils/model/side.js.map +1 -0
  133. package/dist/order-utils/model/signatureTypeV1.cjs +21 -0
  134. package/dist/order-utils/model/signatureTypeV1.cjs.map +1 -0
  135. package/dist/order-utils/model/signatureTypeV1.d.cts +18 -0
  136. package/dist/order-utils/model/signatureTypeV1.d.ts +18 -0
  137. package/dist/order-utils/model/signatureTypeV1.js +20 -0
  138. package/dist/order-utils/model/signatureTypeV1.js.map +1 -0
  139. package/dist/order-utils/model/signatureTypeV2.cjs +25 -0
  140. package/dist/order-utils/model/signatureTypeV2.cjs.map +1 -0
  141. package/dist/order-utils/model/signatureTypeV2.d.cts +22 -0
  142. package/dist/order-utils/model/signatureTypeV2.d.ts +22 -0
  143. package/dist/order-utils/model/signatureTypeV2.js +24 -0
  144. package/dist/order-utils/model/signatureTypeV2.js.map +1 -0
  145. package/dist/order-utils/utils.cjs +9 -0
  146. package/dist/order-utils/utils.cjs.map +1 -0
  147. package/dist/order-utils/utils.js +8 -0
  148. package/dist/order-utils/utils.js.map +1 -0
  149. package/dist/signing/constants.cjs +7 -0
  150. package/dist/signing/constants.cjs.map +1 -0
  151. package/dist/signing/constants.js +6 -0
  152. package/dist/signing/constants.js.map +1 -0
  153. package/dist/signing/eip712.cjs +51 -0
  154. package/dist/signing/eip712.cjs.map +1 -0
  155. package/dist/signing/eip712.d.ts +2 -0
  156. package/dist/signing/eip712.js +51 -0
  157. package/dist/signing/eip712.js.map +1 -0
  158. package/dist/signing/hmac.cjs +40 -0
  159. package/dist/signing/hmac.cjs.map +1 -0
  160. package/dist/signing/hmac.js +39 -0
  161. package/dist/signing/hmac.js.map +1 -0
  162. package/dist/signing/index.d.ts +2 -0
  163. package/dist/signing/signer.cjs +41 -0
  164. package/dist/signing/signer.cjs.map +1 -0
  165. package/dist/signing/signer.d.cts +17 -0
  166. package/dist/signing/signer.d.ts +17 -0
  167. package/dist/signing/signer.js +39 -0
  168. package/dist/signing/signer.js.map +1 -0
  169. package/dist/types/clob.cjs +35 -0
  170. package/dist/types/clob.cjs.map +1 -0
  171. package/dist/types/clob.d.cts +427 -0
  172. package/dist/types/clob.d.ts +427 -0
  173. package/dist/types/clob.js +32 -0
  174. package/dist/types/clob.js.map +1 -0
  175. package/dist/types/index.d.ts +5 -0
  176. package/dist/types/ordersV1.cjs +29 -0
  177. package/dist/types/ordersV1.cjs.map +1 -0
  178. package/dist/types/ordersV1.d.cts +115 -0
  179. package/dist/types/ordersV1.d.ts +116 -0
  180. package/dist/types/ordersV1.js +28 -0
  181. package/dist/types/ordersV1.js.map +1 -0
  182. package/dist/types/ordersV2.cjs +30 -0
  183. package/dist/types/ordersV2.cjs.map +1 -0
  184. package/dist/types/ordersV2.d.cts +113 -0
  185. package/dist/types/ordersV2.d.ts +114 -0
  186. package/dist/types/ordersV2.js +29 -0
  187. package/dist/types/ordersV2.js.map +1 -0
  188. package/dist/types/unifiedOrder.cjs +10 -0
  189. package/dist/types/unifiedOrder.cjs.map +1 -0
  190. package/dist/types/unifiedOrder.d.cts +56 -0
  191. package/dist/types/unifiedOrder.d.ts +57 -0
  192. package/dist/types/unifiedOrder.js +9 -0
  193. package/dist/types/unifiedOrder.js.map +1 -0
  194. package/dist/utilities.cjs +50 -0
  195. package/dist/utilities.cjs.map +1 -0
  196. package/dist/utilities.js +43 -0
  197. package/dist/utilities.js.map +1 -0
  198. package/package.json +3 -3
  199. package/dist/index.cjs.map +0 -1
  200. package/dist/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.cjs","names":["OrderBuilder","SignatureTypeV2","OK","createL2Headers","POST","HEARTBEAT","TIME","INITIAL_CURSOR","GET_SAMPLING_SIMPLIFIED_MARKETS","GET_SAMPLING_MARKETS","GET_SIMPLIFIED_MARKETS","GET_MARKETS","GET_MARKET","result: MarketDetails","GET_CLOB_MARKET","GET_ORDER_BOOK","GET_ORDER_BOOKS","GET_TICK_SIZE","GET_NEG_RISK","GET_FEE_RATE","generateOrderBookSummaryHash","GET_MIDPOINT","GET_MIDPOINTS","GET_PRICE","GET_PRICES","GET_SPREAD","GET_SPREADS","GET_LAST_TRADE_PRICE","GET_LAST_TRADES_PRICES","GET_PRICES_HISTORY","CREATE_API_KEY","createL1Headers","DERIVE_API_KEY","GET_API_KEYS","GET","CLOSED_ONLY","DELETE_API_KEY","DELETE","CREATE_READONLY_API_KEY","GET_READONLY_API_KEYS","DELETE_READONLY_API_KEY","GET_ORDER","GET_TRADES","results: Trade[]","END_CURSOR","_params: any","bytes32Zero","GET_BUILDER_TRADES","GET_NOTIFICATIONS","DROP_NOTIFICATIONS","parseDropNotificationParams","GET_BALANCE_ALLOWANCE","UPDATE_BALANCE_ALLOWANCE","priceValid","roundNormal","ROUNDING_CONFIG","Side","OrderType","postOrderResponse: any","postOrderMarketResponse: any","GET_OPEN_ORDERS","results: OpenOrder[]","GET_PRE_MIGRATION_ORDERS","results: PreMigrationOrder[]","POST_ORDER","isV2Order","orderToJsonV2","orderToJsonV1","POST_ORDERS","ordersPayload: (NewOrderV2<any> | NewOrderV1<any>)[]","CANCEL_ORDER","CANCEL_ORDERS","CANCEL_ALL","CANCEL_MARKET_ORDERS","IS_ORDER_SCORING","ARE_ORDERS_SCORING","GET_EARNINGS_FOR_USER_FOR_DAY","results: UserEarning[]","GET_TOTAL_EARNINGS_FOR_USER_FOR_DAY","GET_REWARDS_EARNINGS_PERCENTAGES","results: UserRewardsEarning[]","GET_LIQUIDITY_REWARD_PERCENTAGES","results: MarketReward[]","GET_REWARDS_MARKETS_CURRENT","GET_REWARDS_MARKETS","calculateBuyMarketPrice","calculateSellMarketPrice","CREATE_BUILDER_API_KEY","GET_BUILDER_API_KEYS","REVOKE_BUILDER_API_KEY","GET_MARKET_TRADES_EVENTS","L1_AUTH_UNAVAILABLE_ERROR","L2_AUTH_NOT_AVAILABLE","adjustBuyAmountForFees","GET_MARKET_BY_TOKEN","GET_BUILDER_FEES","BUILDER_FEES_BPS","isTickSizeSmaller","ORDER_VERSION_MISMATCH_ERROR","ApiError","get","post","del"],"sources":["../src/client.ts"],"sourcesContent":["import {\n\tBUILDER_FEES_BPS,\n\tbytes32Zero,\n\tEND_CURSOR,\n\tINITIAL_CURSOR,\n\tORDER_VERSION_MISMATCH_ERROR,\n} from \"./constants.js\";\nimport {\n\tARE_ORDERS_SCORING,\n\tCANCEL_ALL,\n\tCANCEL_MARKET_ORDERS,\n\tCANCEL_ORDER,\n\tCANCEL_ORDERS,\n\tCLOSED_ONLY,\n\tCREATE_API_KEY,\n\tCREATE_BUILDER_API_KEY,\n\tCREATE_READONLY_API_KEY,\n\tDELETE_API_KEY,\n\tDELETE_READONLY_API_KEY,\n\tDERIVE_API_KEY,\n\tDROP_NOTIFICATIONS,\n\tGET_API_KEYS,\n\tGET_BALANCE_ALLOWANCE,\n\tGET_BUILDER_API_KEYS,\n\tGET_BUILDER_FEES,\n\tGET_BUILDER_TRADES,\n\tGET_CLOB_MARKET,\n\tGET_EARNINGS_FOR_USER_FOR_DAY,\n\tGET_FEE_RATE,\n\tGET_LAST_TRADE_PRICE,\n\tGET_LAST_TRADES_PRICES,\n\tGET_LIQUIDITY_REWARD_PERCENTAGES,\n\tGET_MARKET,\n\tGET_MARKET_BY_TOKEN,\n\tGET_MARKET_TRADES_EVENTS,\n\tGET_MARKETS,\n\tGET_MIDPOINT,\n\tGET_MIDPOINTS,\n\tGET_NEG_RISK,\n\tGET_NOTIFICATIONS,\n\tGET_OPEN_ORDERS,\n\tGET_ORDER,\n\tGET_ORDER_BOOK,\n\tGET_ORDER_BOOKS,\n\tGET_PRE_MIGRATION_ORDERS,\n\tGET_PRICE,\n\tGET_PRICES,\n\tGET_PRICES_HISTORY,\n\tGET_READONLY_API_KEYS,\n\tGET_REWARDS_EARNINGS_PERCENTAGES,\n\tGET_REWARDS_MARKETS,\n\tGET_REWARDS_MARKETS_CURRENT,\n\tGET_SAMPLING_MARKETS,\n\tGET_SAMPLING_SIMPLIFIED_MARKETS,\n\tGET_SIMPLIFIED_MARKETS,\n\tGET_SPREAD,\n\tGET_SPREADS,\n\tGET_TICK_SIZE,\n\tGET_TOTAL_EARNINGS_FOR_USER_FOR_DAY,\n\tGET_TRADES,\n\tHEARTBEAT,\n\tIS_ORDER_SCORING,\n\tOK,\n\tPOST_ORDER,\n\tPOST_ORDERS,\n\tREVOKE_BUILDER_API_KEY,\n\tTIME,\n\tUPDATE_BALANCE_ALLOWANCE,\n} from \"./endpoints.js\";\nimport { ApiError, L1_AUTH_UNAVAILABLE_ERROR, L2_AUTH_NOT_AVAILABLE } from \"./errors.js\";\nimport { adjustBuyAmountForFees, validateFeeSlippage } from \"./fees/index.js\";\nimport { createL1Headers, createL2Headers } from \"./headers/index.js\";\nimport {\n\tDELETE,\n\tdel,\n\tGET,\n\tget,\n\tPOST,\n\tparseDropNotificationParams,\n\tpost,\n\ttype RequestOptions,\n} from \"./http-helpers/index.js\";\nimport {\n\tcalculateBuyMarketPrice,\n\tcalculateSellMarketPrice,\n\tROUNDING_CONFIG,\n} from \"./order-builder/helpers/index.js\";\nimport { OrderBuilder } from \"./order-builder/index.js\";\nimport { SignatureTypeV2 } from \"./order-utils/model/signatureTypeV2.js\";\nimport type { ClobSigner } from \"./signing/signer.js\";\nimport type {\n\tApiKeyCreds,\n\tApiKeyRaw,\n\tApiKeysResponse,\n\tBalanceAllowanceParams,\n\tBalanceAllowanceResponse,\n\tBanStatus,\n\tBookParams,\n\tBuilderApiKey,\n\tBuilderApiKeyResponse,\n\tBuilderConfig,\n\tBuilderFeeRates,\n\tBuilderTrade,\n\tBuilderTradeParams,\n\tBuilderTradesResponse,\n\tChain,\n\tClobErrorResponseBody,\n\tCreateOrderOptions,\n\tDropNotificationParams,\n\tFeeInfos,\n\tFeeRates,\n\tMarketDetails,\n\tMarketPrice,\n\tMarketReward,\n\tMarketTradeEvent,\n\tNegRisk,\n\tNewOrderV1,\n\tNewOrderV2,\n\tNotification,\n\tOpenOrder,\n\tOpenOrderParams,\n\tOpenOrdersResponse,\n\tOrderBookSummary,\n\tOrderMarketCancelParams,\n\tOrderPayload,\n\tOrderScoring,\n\tOrderScoringParams,\n\tOrdersScoring,\n\tOrdersScoringParams,\n\tPaginationPayload,\n\tPostOrdersArgs,\n\tPreMigrationOrder,\n\tPreMigrationOrdersResponse,\n\tPriceHistoryFilterParams,\n\tReadonlyApiKeyResponse,\n\tRewardsPercentages,\n\tTickSize,\n\tTickSizes,\n\tTokenConditionMap,\n\tTotalUserEarning,\n\tTrade,\n\tTradeParams,\n\tTradesPaginatedResponse,\n\tUserEarning,\n\tUserMarketOrderV1,\n\tUserMarketOrderV2,\n\tUserOrderV1,\n\tUserOrderV2,\n\tUserRewardsEarning,\n} from \"./types/index.js\";\nimport { OrderType, orderToJsonV1, orderToJsonV2, Side } from \"./types/index.js\";\nimport { isV2Order, type SignedOrder } from \"./types/unifiedOrder.js\";\nimport {\n\tgenerateOrderBookSummaryHash,\n\tisTickSizeSmaller,\n\tpriceValid,\n\troundNormal,\n} from \"./utilities.js\";\n\nexport { adjustBuyAmountForFees } from \"./fees/index.js\";\n\nexport interface ClobClientOptions {\n\thost: string;\n\tchain: Chain;\n\tsigner?: ClobSigner;\n\tcreds?: ApiKeyCreds;\n\tsignatureType?: SignatureTypeV2;\n\tfunderAddress?: string;\n\tuseServerTime?: boolean;\n\tbuilderConfig?: BuilderConfig;\n\tgetSigner?: () => Promise<ClobSigner> | ClobSigner;\n\tretryOnError?: boolean;\n\tthrowOnError?: boolean;\n\tfeeSlippage?: number;\n}\n\nexport class ClobClient {\n\treadonly host: string;\n\n\treadonly chainId: Chain;\n\n\t// Used to perform Level 1 authentication and sign orders\n\treadonly signer?: ClobSigner;\n\n\t// Used to perform Level 2 authentication\n\treadonly creds?: ApiKeyCreds;\n\n\treadonly orderBuilder: OrderBuilder;\n\n\treadonly tickSizes: TickSizes;\n\n\treadonly negRisk: NegRisk;\n\n\treadonly feeInfos: FeeInfos;\n\n\t// Fee rate bps data for CLOB V1\n\treadonly feeRates: FeeRates;\n\n\treadonly builderFeeRates: BuilderFeeRates;\n\n\tprivate readonly tokenConditionMap: TokenConditionMap;\n\n\treadonly useServerTime?: boolean;\n\n\treadonly builderConfig?: BuilderConfig;\n\n\treadonly signatureType: SignatureTypeV2;\n\n\treadonly funderAddress?: string;\n\n\tprivate cachedVersion?: number;\n\n\treadonly retryOnError?: boolean;\n\n\treadonly throwOnError?: boolean;\n\n\treadonly feeSlippage: number;\n\n\tconstructor({\n\t\thost,\n\t\tchain,\n\t\tsigner,\n\t\tcreds,\n\t\tsignatureType,\n\t\tfunderAddress,\n\t\tuseServerTime,\n\t\tbuilderConfig,\n\t\tgetSigner,\n\t\tretryOnError,\n\t\tthrowOnError,\n\t\tfeeSlippage,\n\t}: ClobClientOptions) {\n\t\tthis.host = host.endsWith(\"/\") ? host.slice(0, -1) : host;\n\t\tthis.chainId = chain;\n\n\t\tif (signer !== undefined) {\n\t\t\tthis.signer = signer;\n\t\t}\n\t\tif (creds !== undefined) {\n\t\t\tthis.creds = creds;\n\t\t}\n\t\tthis.orderBuilder = new OrderBuilder(\n\t\t\tsigner as ClobSigner,\n\t\t\tchain,\n\t\t\tsignatureType,\n\t\t\tfunderAddress,\n\t\t\tgetSigner,\n\t\t);\n\t\tthis.signatureType = signatureType ?? SignatureTypeV2.EOA;\n\t\tthis.funderAddress = funderAddress;\n\t\tthis.tickSizes = {};\n\t\tthis.negRisk = {};\n\t\tthis.feeRates = {};\n\t\tthis.feeInfos = {};\n\t\tthis.builderFeeRates = {};\n\t\tthis.tokenConditionMap = {};\n\t\tthis.retryOnError = retryOnError;\n\t\tthis.throwOnError = throwOnError;\n\t\tthis.feeSlippage = feeSlippage ?? 0;\n\t\tvalidateFeeSlippage(this.feeSlippage);\n\t\tthis.useServerTime = useServerTime;\n\t\tif (builderConfig !== undefined) {\n\t\t\tthis.builderConfig = builderConfig;\n\t\t}\n\t}\n\n\t// Public endpoints\n\tpublic async getOk(): Promise<any> {\n\t\treturn this.get(`${this.host}${OK}`);\n\t}\n\n\tpublic async postHeartbeat(\n\t\theartbeatId = \"\",\n\t): Promise<{ heartbeat_id: string; error_msg?: string }> {\n\t\tthis.canL2Auth();\n\t\tconst body = JSON.stringify({ heartbeat_id: heartbeatId });\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\t{ method: POST, requestPath: HEARTBEAT, body },\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\t\treturn this.post(`${this.host}${HEARTBEAT}`, {\n\t\t\theaders,\n\t\t\tdata: { heartbeat_id: heartbeatId },\n\t\t});\n\t}\n\n\tpublic async getVersion(): Promise<number> {\n\t\tconst response = await this.get(`${this.host}/version`);\n\t\t// default to v2\n\t\treturn response?.version ?? 2;\n\t}\n\n\tpublic async getServerTime(): Promise<number> {\n\t\treturn this.get(`${this.host}${TIME}`);\n\t}\n\n\tpublic async getSamplingSimplifiedMarkets(\n\t\tnext_cursor = INITIAL_CURSOR,\n\t): Promise<PaginationPayload> {\n\t\treturn this.get(`${this.host}${GET_SAMPLING_SIMPLIFIED_MARKETS}`, {\n\t\t\tparams: { next_cursor },\n\t\t});\n\t}\n\n\tpublic async getSamplingMarkets(next_cursor = INITIAL_CURSOR): Promise<PaginationPayload> {\n\t\treturn this.get(`${this.host}${GET_SAMPLING_MARKETS}`, {\n\t\t\tparams: { next_cursor },\n\t\t});\n\t}\n\n\tpublic async getSimplifiedMarkets(next_cursor = INITIAL_CURSOR): Promise<PaginationPayload> {\n\t\treturn this.get(`${this.host}${GET_SIMPLIFIED_MARKETS}`, {\n\t\t\tparams: { next_cursor },\n\t\t});\n\t}\n\n\tpublic async getMarkets(next_cursor = INITIAL_CURSOR): Promise<PaginationPayload> {\n\t\treturn this.get(`${this.host}${GET_MARKETS}`, {\n\t\t\tparams: { next_cursor },\n\t\t});\n\t}\n\n\tpublic async getMarket(conditionID: string): Promise<any> {\n\t\treturn this.get(`${this.host}${GET_MARKET}${conditionID}`);\n\t}\n\n\tpublic async getClobMarketInfo(conditionID: string): Promise<MarketDetails> {\n\t\tconst result: MarketDetails = await this.get(\n\t\t\t`${this.host}${GET_CLOB_MARKET}${conditionID}`,\n\t\t);\n\n\t\tif (!result?.t) {\n\t\t\tthrow new Error(`failed to fetch market info for condition id ${conditionID}`);\n\t\t}\n\n\t\tfor (const token of result.t) {\n\t\t\tif (!token) continue;\n\t\t\tconst tokenId = token.t;\n\n\t\t\tthis.tokenConditionMap[tokenId] = conditionID;\n\t\t\tthis.tickSizes[tokenId] = result.mts.toString() as TickSize;\n\t\t\tthis.negRisk[tokenId] = result.nr ?? false;\n\n\t\t\tthis.feeInfos[tokenId] = {\n\t\t\t\trate: result.fd?.r ?? 0,\n\t\t\t\texponent: result.fd?.e ?? 0,\n\t\t\t};\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tpublic async getOrderBook(tokenID: string): Promise<OrderBookSummary> {\n\t\treturn this.get(`${this.host}${GET_ORDER_BOOK}`, {\n\t\t\tparams: { token_id: tokenID },\n\t\t});\n\t}\n\n\tpublic async getOrderBooks(params: BookParams[]): Promise<OrderBookSummary[]> {\n\t\treturn this.post(`${this.host}${GET_ORDER_BOOKS}`, {\n\t\t\tdata: params,\n\t\t});\n\t}\n\n\tpublic async getTickSize(tokenID: string): Promise<TickSize> {\n\t\tif (tokenID in this.tickSizes) {\n\t\t\treturn this.tickSizes[tokenID];\n\t\t}\n\n\t\tif (tokenID in this.tokenConditionMap) {\n\t\t\tawait this.getClobMarketInfo(this.tokenConditionMap[tokenID]);\n\t\t\treturn this.tickSizes[tokenID];\n\t\t}\n\n\t\tconst result = await this.get(`${this.host}${GET_TICK_SIZE}`, {\n\t\t\tparams: { token_id: tokenID },\n\t\t});\n\t\tthis.tickSizes[tokenID] = result.minimum_tick_size.toString() as TickSize;\n\n\t\treturn this.tickSizes[tokenID];\n\t}\n\n\tpublic async getNegRisk(tokenID: string): Promise<boolean> {\n\t\tif (tokenID in this.negRisk) {\n\t\t\treturn this.negRisk[tokenID];\n\t\t}\n\n\t\tif (tokenID in this.tokenConditionMap) {\n\t\t\tawait this.getClobMarketInfo(this.tokenConditionMap[tokenID]);\n\t\t\treturn this.negRisk[tokenID];\n\t\t}\n\n\t\tconst result = await this.get(`${this.host}${GET_NEG_RISK}`, {\n\t\t\tparams: { token_id: tokenID },\n\t\t});\n\t\tthis.negRisk[tokenID] = result.neg_risk as boolean;\n\n\t\treturn this.negRisk[tokenID];\n\t}\n\n\tpublic async getFeeRateBps(tokenID: string): Promise<number> {\n\t\tif (tokenID in this.feeRates) {\n\t\t\treturn this.feeRates[tokenID];\n\t\t}\n\n\t\tconst result = await this.get(`${this.host}${GET_FEE_RATE}`, {\n\t\t\tparams: { token_id: tokenID },\n\t\t});\n\t\tthis.feeRates[tokenID] = result.base_fee as number;\n\n\t\treturn this.feeRates[tokenID];\n\t}\n\n\tpublic async getFeeExponent(tokenID: string): Promise<number> {\n\t\tif (tokenID in this.feeInfos) {\n\t\t\treturn this.feeInfos[tokenID].exponent;\n\t\t}\n\n\t\tawait this._ensureMarketInfoCached(tokenID);\n\t\treturn this.feeInfos[tokenID].exponent;\n\t}\n\n\t/**\n\t * Calculates the hash for the given orderbook\n\t * @param orderbook\n\t * @returns\n\t */\n\tpublic async getOrderBookHash(orderbook: OrderBookSummary): Promise<string> {\n\t\treturn generateOrderBookSummaryHash(orderbook);\n\t}\n\n\tpublic async getMidpoint(tokenID: string): Promise<any> {\n\t\treturn this.get(`${this.host}${GET_MIDPOINT}`, {\n\t\t\tparams: { token_id: tokenID },\n\t\t});\n\t}\n\n\tpublic async getMidpoints(params: BookParams[]): Promise<any> {\n\t\treturn this.post(`${this.host}${GET_MIDPOINTS}`, {\n\t\t\tdata: params,\n\t\t});\n\t}\n\n\tpublic async getPrice(tokenID: string, side: string): Promise<any> {\n\t\treturn this.get(`${this.host}${GET_PRICE}`, {\n\t\t\tparams: { token_id: tokenID, side: side },\n\t\t});\n\t}\n\n\tpublic async getPrices(params: BookParams[]): Promise<any> {\n\t\treturn this.post(`${this.host}${GET_PRICES}`, {\n\t\t\tdata: params,\n\t\t});\n\t}\n\n\tpublic async getSpread(tokenID: string): Promise<any> {\n\t\treturn this.get(`${this.host}${GET_SPREAD}`, {\n\t\t\tparams: { token_id: tokenID },\n\t\t});\n\t}\n\n\tpublic async getSpreads(params: BookParams[]): Promise<any> {\n\t\treturn this.post(`${this.host}${GET_SPREADS}`, {\n\t\t\tdata: params,\n\t\t});\n\t}\n\n\tpublic async getLastTradePrice(tokenID: string): Promise<any> {\n\t\treturn this.get(`${this.host}${GET_LAST_TRADE_PRICE}`, {\n\t\t\tparams: { token_id: tokenID },\n\t\t});\n\t}\n\n\tpublic async getLastTradesPrices(params: BookParams[]): Promise<any> {\n\t\treturn this.post(`${this.host}${GET_LAST_TRADES_PRICES}`, {\n\t\t\tdata: params,\n\t\t});\n\t}\n\n\tpublic async getPricesHistory(params: PriceHistoryFilterParams): Promise<MarketPrice[]> {\n\t\tif (!params.interval && (params.startTs === undefined || params.endTs === undefined)) {\n\t\t\tthrow new Error(\"getPricesHistory requires either interval or both startTs and endTs\");\n\t\t}\n\t\treturn this.get(`${this.host}${GET_PRICES_HISTORY}`, {\n\t\t\tparams,\n\t\t});\n\t}\n\n\t// L1 Authed\n\n\t/**\n\t * Creates a new API key for a user\n\t * @param nonce\n\t * @returns ApiKeyCreds\n\t */\n\tpublic async createApiKey(nonce?: number): Promise<ApiKeyCreds> {\n\t\tthis.canL1Auth();\n\n\t\tconst endpoint = `${this.host}${CREATE_API_KEY}`;\n\t\tconst headers = await createL1Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.chainId,\n\t\t\tnonce,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn await this.post(endpoint, { headers }).then((apiKeyRaw: ApiKeyRaw) => {\n\t\t\tconst apiKey: ApiKeyCreds = {\n\t\t\t\tkey: apiKeyRaw.apiKey,\n\t\t\t\tsecret: apiKeyRaw.secret,\n\t\t\t\tpassphrase: apiKeyRaw.passphrase,\n\t\t\t};\n\t\t\treturn apiKey;\n\t\t});\n\t}\n\n\t/**\n\t * Derives an existing API key for a user\n\t * @param nonce\n\t * @returns ApiKeyCreds\n\t */\n\tpublic async deriveApiKey(nonce?: number): Promise<ApiKeyCreds> {\n\t\tthis.canL1Auth();\n\n\t\tconst endpoint = `${this.host}${DERIVE_API_KEY}`;\n\t\tconst headers = await createL1Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.chainId,\n\t\t\tnonce,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn await this.get(endpoint, { headers }).then((apiKeyRaw: ApiKeyRaw) => {\n\t\t\tconst apiKey: ApiKeyCreds = {\n\t\t\t\tkey: apiKeyRaw.apiKey,\n\t\t\t\tsecret: apiKeyRaw.secret,\n\t\t\t\tpassphrase: apiKeyRaw.passphrase,\n\t\t\t};\n\t\t\treturn apiKey;\n\t\t});\n\t}\n\n\tpublic async createOrDeriveApiKey(nonce?: number): Promise<ApiKeyCreds> {\n\t\treturn this.createApiKey(nonce).then(response => {\n\t\t\tif (!response.key) {\n\t\t\t\treturn this.deriveApiKey(nonce);\n\t\t\t}\n\t\t\treturn response;\n\t\t});\n\t}\n\n\tpublic async getApiKeys(): Promise<ApiKeysResponse> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = GET_API_KEYS;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.get(`${this.host}${endpoint}`, { headers });\n\t}\n\n\tpublic async getClosedOnlyMode(): Promise<BanStatus> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = CLOSED_ONLY;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.get(`${this.host}${endpoint}`, { headers });\n\t}\n\n\tpublic async deleteApiKey(): Promise<any> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = DELETE_API_KEY;\n\t\tconst headerArgs = {\n\t\t\tmethod: DELETE,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.del(`${this.host}${endpoint}`, { headers });\n\t}\n\n\tpublic async createReadonlyApiKey(): Promise<ReadonlyApiKeyResponse> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = CREATE_READONLY_API_KEY;\n\t\tconst headerArgs = {\n\t\t\tmethod: POST,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.post(`${this.host}${endpoint}`, { headers });\n\t}\n\n\tpublic async getReadonlyApiKeys(): Promise<string[]> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = GET_READONLY_API_KEYS;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.get(`${this.host}${endpoint}`, { headers });\n\t}\n\n\tpublic async deleteReadonlyApiKey(key: string): Promise<boolean> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = DELETE_READONLY_API_KEY;\n\t\tconst payload = { key };\n\t\tconst headerArgs = {\n\t\t\tmethod: DELETE,\n\t\t\trequestPath: endpoint,\n\t\t\tbody: JSON.stringify(payload),\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.del(`${this.host}${endpoint}`, { headers, data: payload });\n\t}\n\n\tpublic async getOrder(orderID: string): Promise<OpenOrder> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = `${GET_ORDER}${orderID}`;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.get(`${this.host}${endpoint}`, { headers });\n\t}\n\n\tpublic async getTrades(\n\t\tparams?: TradeParams,\n\t\tonly_first_page = false,\n\t\tnext_cursor?: string,\n\t): Promise<Trade[]> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = GET_TRADES;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\tlet results: Trade[] = [];\n\t\tnext_cursor = next_cursor || INITIAL_CURSOR;\n\t\twhile (next_cursor !== END_CURSOR && (next_cursor === INITIAL_CURSOR || !only_first_page)) {\n\t\t\tconst _params: any = {\n\t\t\t\t...params,\n\t\t\t\tnext_cursor,\n\t\t\t};\n\t\t\tconst response = await this.get(`${this.host}${endpoint}`, {\n\t\t\t\theaders,\n\t\t\t\tparams: _params,\n\t\t\t});\n\t\t\tnext_cursor = response.next_cursor;\n\t\t\tresults = [...results, ...response.data];\n\t\t}\n\t\treturn results;\n\t}\n\n\tpublic async getTradesPaginated(\n\t\tparams?: TradeParams,\n\t\tnext_cursor?: string,\n\t): Promise<TradesPaginatedResponse> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = GET_TRADES;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\tnext_cursor = next_cursor || INITIAL_CURSOR;\n\n\t\tconst _params: any = { ...params, next_cursor };\n\n\t\tconst {\n\t\t\tdata,\n\t\t\t...rest\n\t\t}: { data: Trade[]; next_cursor: string; limit: number; count: number } = await this.get(\n\t\t\t`${this.host}${endpoint}`,\n\t\t\t{ headers, params: _params },\n\t\t);\n\n\t\treturn { trades: Array.isArray(data) ? [...data] : [], ...rest };\n\t}\n\n\tpublic async getBuilderTrades(\n\t\tparams: BuilderTradeParams,\n\t\tnext_cursor?: string,\n\t): Promise<BuilderTradesResponse> {\n\t\tif (!params.builder_code || params.builder_code === bytes32Zero) {\n\t\t\tthrow new Error(\"builderCode is required and cannot be zero\");\n\t\t}\n\n\t\tconst _params: any = { ...params, next_cursor: next_cursor || INITIAL_CURSOR };\n\n\t\tconst {\n\t\t\tdata,\n\t\t\t...rest\n\t\t}: { data: BuilderTrade[]; next_cursor: string; limit: number; count: number } =\n\t\t\tawait this.get(`${this.host}${GET_BUILDER_TRADES}`, { params: _params });\n\n\t\treturn { trades: Array.isArray(data) ? [...data] : [], ...rest };\n\t}\n\n\tpublic async getNotifications(): Promise<Notification[]> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = GET_NOTIFICATIONS;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.get(`${this.host}${endpoint}`, {\n\t\t\theaders,\n\t\t\tparams: { signature_type: this.orderBuilder.signatureType },\n\t\t});\n\t}\n\n\tpublic async dropNotifications(params?: DropNotificationParams): Promise<void> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = DROP_NOTIFICATIONS;\n\t\tconst l2HeaderArgs = {\n\t\t\tmethod: DELETE,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\tl2HeaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.del(`${this.host}${endpoint}`, {\n\t\t\theaders,\n\t\t\tparams: parseDropNotificationParams(params),\n\t\t});\n\t}\n\n\tpublic async getBalanceAllowance(\n\t\tparams?: BalanceAllowanceParams,\n\t): Promise<BalanceAllowanceResponse> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = GET_BALANCE_ALLOWANCE;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\tconst _params = {\n\t\t\t...params,\n\t\t\tsignature_type: this.orderBuilder.signatureType,\n\t\t};\n\n\t\treturn this.get(`${this.host}${endpoint}`, { headers, params: _params });\n\t}\n\n\tpublic async updateBalanceAllowance(params?: BalanceAllowanceParams): Promise<void> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = UPDATE_BALANCE_ALLOWANCE;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\tconst _params = {\n\t\t\t...params,\n\t\t\tsignature_type: this.orderBuilder.signatureType,\n\t\t};\n\n\t\treturn this.get(`${this.host}${endpoint}`, { headers, params: _params });\n\t}\n\n\tpublic async createOrder(\n\t\tuserOrder: UserOrderV1 | UserOrderV2,\n\t\toptions?: Partial<CreateOrderOptions>,\n\t): Promise<SignedOrder> {\n\t\tthis.canL1Auth();\n\n\t\tconst orderToSign = { ...userOrder };\n\n\t\tif (this.builderConfig?.builderCode && !orderToSign.builderCode) {\n\t\t\torderToSign.builderCode = this.builderConfig.builderCode;\n\t\t}\n\n\t\tconst { tokenID } = orderToSign;\n\n\t\tconst tickSize = await this._resolveTickSize(tokenID, options?.tickSize);\n\n\t\tif (!priceValid(orderToSign.price, tickSize)) {\n\t\t\tthrow new Error(\n\t\t\t\t`invalid price (${orderToSign.price}), min: ${parseFloat(tickSize)} - max: ${\n\t\t\t\t\t1 - parseFloat(tickSize)\n\t\t\t\t}`,\n\t\t\t);\n\t\t}\n\t\torderToSign.price = roundNormal(orderToSign.price, ROUNDING_CONFIG[tickSize].price);\n\n\t\tconst version = options?.version ?? (await this.resolveVersion());\n\n\t\tif (\n\t\t\tversion !== 1 &&\n\t\t\torderToSign.side === Side.BUY &&\n\t\t\t\"userUSDCBalance\" in orderToSign &&\n\t\t\torderToSign.userUSDCBalance !== undefined\n\t\t) {\n\t\t\tconst adjustedAmount = await this.adjustBuyAmountForBalance(\n\t\t\t\ttokenID,\n\t\t\t\torderToSign.size * orderToSign.price,\n\t\t\t\torderToSign.price,\n\t\t\t\torderToSign.userUSDCBalance,\n\t\t\t\torderToSign.builderCode,\n\t\t\t);\n\t\t\torderToSign.size = adjustedAmount / orderToSign.price;\n\t\t}\n\n\t\tconst negRisk = options?.negRisk ?? (await this.getNegRisk(tokenID));\n\n\t\tif (version === 1) {\n\t\t\tconst userFeeRateBps =\n\t\t\t\t\"feeRateBps\" in orderToSign ? (orderToSign as UserOrderV1).feeRateBps : undefined;\n\t\t\tconst feeRateBps = await this._resolveFeeRateBps(tokenID, userFeeRateBps);\n\t\t\t(orderToSign as UserOrderV1).feeRateBps = feeRateBps;\n\t\t}\n\n\t\treturn this.orderBuilder.buildOrder(\n\t\t\torderToSign,\n\t\t\t{\n\t\t\t\ttickSize,\n\t\t\t\tnegRisk,\n\t\t\t},\n\t\t\tversion,\n\t\t);\n\t}\n\n\tpublic async createMarketOrder(\n\t\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\t\toptions?: Partial<CreateOrderOptions>,\n\t): Promise<SignedOrder> {\n\t\tthis.canL1Auth();\n\n\t\tconst { tokenID } = userMarketOrder;\n\n\t\tawait this._ensureMarketInfoCached(tokenID);\n\n\t\tconst tickSize = await this._resolveTickSize(tokenID, options?.tickSize);\n\n\t\tif (!userMarketOrder.price) {\n\t\t\tuserMarketOrder.price = await this.calculateMarketPrice(\n\t\t\t\ttokenID,\n\t\t\t\tuserMarketOrder.side,\n\t\t\t\tuserMarketOrder.amount,\n\t\t\t\tuserMarketOrder.orderType,\n\t\t\t);\n\t\t}\n\n\t\tif (!priceValid(userMarketOrder.price, tickSize)) {\n\t\t\tthrow new Error(\n\t\t\t\t`invalid price (${userMarketOrder.price}), min: ${parseFloat(tickSize)} - max: ${\n\t\t\t\t\t1 - parseFloat(tickSize)\n\t\t\t\t}`,\n\t\t\t);\n\t\t}\n\n\t\tconst orderToSign = { ...userMarketOrder };\n\n\t\tif (this.builderConfig?.builderCode && !orderToSign.builderCode) {\n\t\t\torderToSign.builderCode = this.builderConfig.builderCode;\n\t\t}\n\n\t\tawait this.ensureBuilderFeeRateCached(orderToSign.builderCode);\n\n\t\tif (\n\t\t\torderToSign.side === Side.BUY &&\n\t\t\t\"userUSDCBalance\" in orderToSign &&\n\t\t\torderToSign.userUSDCBalance !== undefined\n\t\t) {\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: price is validated above\n\t\t\tconst price = orderToSign.price!;\n\t\t\torderToSign.amount = await this.adjustBuyAmountForBalance(\n\t\t\t\ttokenID,\n\t\t\t\torderToSign.amount,\n\t\t\t\tprice,\n\t\t\t\torderToSign.userUSDCBalance,\n\t\t\t\torderToSign.builderCode,\n\t\t\t);\n\t\t}\n\n\t\tconst negRisk = options?.negRisk ?? (await this.getNegRisk(tokenID));\n\t\tconst version = options?.version ?? (await this.resolveVersion());\n\n\t\tif (version === 1) {\n\t\t\tconst userFeeRateBps =\n\t\t\t\t\"feeRateBps\" in orderToSign\n\t\t\t\t\t? (orderToSign as UserMarketOrderV1).feeRateBps\n\t\t\t\t\t: undefined;\n\t\t\tconst feeRateBps = await this._resolveFeeRateBps(tokenID, userFeeRateBps);\n\t\t\t(orderToSign as UserMarketOrderV1).feeRateBps = feeRateBps;\n\t\t}\n\n\t\treturn this.orderBuilder.buildMarketOrder(\n\t\t\torderToSign,\n\t\t\t{\n\t\t\t\ttickSize,\n\t\t\t\tnegRisk,\n\t\t\t},\n\t\t\tversion,\n\t\t);\n\t}\n\n\tpublic async createAndPostOrder<T extends OrderType.GTC | OrderType.GTD = OrderType.GTC>(\n\t\tuserOrder: UserOrderV1 | UserOrderV2,\n\t\toptions?: Partial<CreateOrderOptions>,\n\t\torderType: T = OrderType.GTC as T,\n\t\tpostOnly = false,\n\t\tdeferExec = false,\n\t): Promise<any> {\n\t\tlet postOrderResponse: any;\n\n\t\tawait this._retryOnVersionUpdate(async () => {\n\t\t\tconst order = await this.createOrder(userOrder, options);\n\t\t\tpostOrderResponse = await this.postOrder(order, orderType, postOnly, deferExec);\n\t\t});\n\n\t\treturn postOrderResponse;\n\t}\n\n\tpublic async createAndPostMarketOrder<T extends OrderType.FOK | OrderType.FAK = OrderType.FOK>(\n\t\tuserMarketOrder: UserMarketOrderV1 | UserMarketOrderV2,\n\t\toptions?: Partial<CreateOrderOptions>,\n\t\torderType: T = OrderType.FOK as T,\n\t\tdeferExec = false,\n\t): Promise<any> {\n\t\tlet postOrderMarketResponse: any;\n\n\t\tawait this._retryOnVersionUpdate(async () => {\n\t\t\tconst order = await this.createMarketOrder(userMarketOrder, options);\n\t\t\tpostOrderMarketResponse = await this.postOrder(order, orderType, false, deferExec);\n\t\t});\n\n\t\treturn postOrderMarketResponse;\n\t}\n\n\tpublic async getOpenOrders(\n\t\tparams?: OpenOrderParams,\n\t\tonly_first_page = false,\n\t\tnext_cursor?: string,\n\t): Promise<OpenOrdersResponse> {\n\t\tthis.canL2Auth();\n\t\tconst endpoint = GET_OPEN_ORDERS;\n\t\tconst l2HeaderArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\tl2HeaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\tlet results: OpenOrder[] = [];\n\t\tnext_cursor = next_cursor || INITIAL_CURSOR;\n\t\twhile (next_cursor !== END_CURSOR && (next_cursor === INITIAL_CURSOR || !only_first_page)) {\n\t\t\tconst _params: any = {\n\t\t\t\t...params,\n\t\t\t\tnext_cursor,\n\t\t\t};\n\t\t\tconst response = await this.get(`${this.host}${endpoint}`, {\n\t\t\t\theaders,\n\t\t\t\tparams: _params,\n\t\t\t});\n\t\t\tnext_cursor = response.next_cursor;\n\t\t\tresults = [...results, ...response.data];\n\t\t}\n\t\treturn results;\n\t}\n\n\tpublic async getPreMigrationOrders(\n\t\tonly_first_page = false,\n\t\tnext_cursor?: string,\n\t): Promise<PreMigrationOrdersResponse> {\n\t\tthis.canL2Auth();\n\t\tconst endpoint = GET_PRE_MIGRATION_ORDERS;\n\t\tconst l2HeaderArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\tl2HeaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\tlet results: PreMigrationOrder[] = [];\n\t\tnext_cursor = next_cursor || INITIAL_CURSOR;\n\t\twhile (next_cursor !== END_CURSOR && (next_cursor === INITIAL_CURSOR || !only_first_page)) {\n\t\t\tconst _params: any = { next_cursor };\n\t\t\tconst response = await this.get(`${this.host}${endpoint}`, {\n\t\t\t\theaders,\n\t\t\t\tparams: _params,\n\t\t\t});\n\t\t\tnext_cursor = response.next_cursor;\n\t\t\tresults = [...results, ...response.data];\n\t\t}\n\t\treturn results;\n\t}\n\n\tpublic async postOrder<T extends OrderType = OrderType.GTC>(\n\t\torder: SignedOrder,\n\t\torderType: T = OrderType.GTC as T,\n\t\tpostOnly = false,\n\t\tdeferExec = false,\n\t): Promise<any> {\n\t\tthis.canL2Auth();\n\t\tif (postOnly && (orderType === OrderType.FOK || orderType === OrderType.FAK)) {\n\t\t\tthrow new Error(\"postOnly is not supported for FOK/FAK orders\");\n\t\t}\n\t\tconst endpoint = POST_ORDER;\n\n\t\tconst orderPayload = isV2Order(order)\n\t\t\t? orderToJsonV2(order, this.creds?.key || \"\", orderType, postOnly, deferExec)\n\t\t\t: orderToJsonV1(order, this.creds?.key || \"\", orderType, postOnly, deferExec);\n\n\t\tconst l2HeaderArgs = {\n\t\t\tmethod: POST,\n\t\t\trequestPath: endpoint,\n\t\t\tbody: JSON.stringify(orderPayload),\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\tl2HeaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\tconst res = await this.post(\n\t\t\t`${this.host}${endpoint}`,\n\t\t\t{\n\t\t\t\theaders,\n\t\t\t\tdata: orderPayload,\n\t\t\t},\n\t\t\ttrue,\n\t\t);\n\n\t\tif (this._isOrderVersionMismatch(res)) await this.resolveVersion(true);\n\n\t\treturn this.throwIfError(res);\n\t}\n\n\tpublic async postOrders(\n\t\targs: PostOrdersArgs[],\n\t\tpostOnly = false,\n\t\tdeferExec = false,\n\t): Promise<any> {\n\t\tthis.canL2Auth();\n\t\tif (\n\t\t\tpostOnly &&\n\t\t\targs.some(({ orderType }) => orderType === OrderType.FOK || orderType === OrderType.FAK)\n\t\t) {\n\t\t\tthrow new Error(\"postOnly is not supported for FOK/FAK orders\");\n\t\t}\n\t\tconst endpoint = POST_ORDERS;\n\t\tconst ordersPayload: (NewOrderV2<any> | NewOrderV1<any>)[] = [];\n\t\tfor (const arg of args) {\n\t\t\tconst { order, orderType } = arg;\n\t\t\t// Version-aware dispatch\n\t\t\tconst orderPayload = isV2Order(order)\n\t\t\t\t? orderToJsonV2(order, this.creds?.key || \"\", orderType, postOnly, deferExec)\n\t\t\t\t: orderToJsonV1(order, this.creds?.key || \"\", orderType, postOnly, deferExec);\n\t\t\tordersPayload.push(orderPayload);\n\t\t}\n\n\t\tconst l2HeaderArgs = {\n\t\t\tmethod: POST,\n\t\t\trequestPath: endpoint,\n\t\t\tbody: JSON.stringify(ordersPayload),\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\tl2HeaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\tconst res = await this.post(\n\t\t\t`${this.host}${endpoint}`,\n\t\t\t{\n\t\t\t\theaders,\n\t\t\t\tdata: ordersPayload,\n\t\t\t},\n\t\t\ttrue,\n\t\t);\n\n\t\tif (this._isOrderVersionMismatch(res)) await this.resolveVersion(true);\n\n\t\treturn this.throwIfError(res);\n\t}\n\n\tpublic async cancelOrder(payload: OrderPayload): Promise<any> {\n\t\tthis.canL2Auth();\n\t\tconst endpoint = CANCEL_ORDER;\n\t\tconst l2HeaderArgs = {\n\t\t\tmethod: DELETE,\n\t\t\trequestPath: endpoint,\n\t\t\tbody: JSON.stringify(payload),\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\tl2HeaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\t\treturn this.del(`${this.host}${endpoint}`, { headers, data: payload });\n\t}\n\n\tpublic async cancelOrders(ordersHashes: string[]): Promise<any> {\n\t\tthis.canL2Auth();\n\t\tconst endpoint = CANCEL_ORDERS;\n\t\tconst l2HeaderArgs = {\n\t\t\tmethod: DELETE,\n\t\t\trequestPath: endpoint,\n\t\t\tbody: JSON.stringify(ordersHashes),\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\tl2HeaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\t\treturn this.del(`${this.host}${endpoint}`, { headers, data: ordersHashes });\n\t}\n\n\tpublic async cancelAll(): Promise<any> {\n\t\tthis.canL2Auth();\n\t\tconst endpoint = CANCEL_ALL;\n\t\tconst l2HeaderArgs = {\n\t\t\tmethod: DELETE,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\tl2HeaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\t\treturn this.del(`${this.host}${endpoint}`, { headers });\n\t}\n\n\tpublic async cancelMarketOrders(payload: OrderMarketCancelParams): Promise<any> {\n\t\tthis.canL2Auth();\n\t\tconst endpoint = CANCEL_MARKET_ORDERS;\n\t\tconst l2HeaderArgs = {\n\t\t\tmethod: DELETE,\n\t\t\trequestPath: endpoint,\n\t\t\tbody: JSON.stringify(payload),\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\tl2HeaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\t\treturn this.del(`${this.host}${endpoint}`, { headers, data: payload });\n\t}\n\n\tpublic async isOrderScoring(params?: OrderScoringParams): Promise<OrderScoring> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = IS_ORDER_SCORING;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.get(`${this.host}${endpoint}`, { headers, params });\n\t}\n\n\tpublic async areOrdersScoring(params?: OrdersScoringParams): Promise<OrdersScoring> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = ARE_ORDERS_SCORING;\n\t\tconst payload = JSON.stringify(params?.orderIds);\n\t\tconst headerArgs = {\n\t\t\tmethod: POST,\n\t\t\trequestPath: endpoint,\n\t\t\tbody: payload,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.post(`${this.host}${endpoint}`, {\n\t\t\theaders,\n\t\t\tdata: payload,\n\t\t});\n\t}\n\n\t// Rewards\n\tpublic async getEarningsForUserForDay(date: string): Promise<UserEarning[]> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = GET_EARNINGS_FOR_USER_FOR_DAY;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\tlet results: UserEarning[] = [];\n\t\tlet next_cursor = INITIAL_CURSOR;\n\t\twhile (next_cursor !== END_CURSOR) {\n\t\t\tconst params = {\n\t\t\t\tdate,\n\t\t\t\tsignature_type: this.orderBuilder.signatureType,\n\t\t\t\tnext_cursor,\n\t\t\t};\n\n\t\t\tconst response = await this.get(`${this.host}${endpoint}`, {\n\t\t\t\theaders,\n\t\t\t\tparams,\n\t\t\t});\n\t\t\tnext_cursor = response.next_cursor;\n\t\t\tresults = [...results, ...response.data];\n\t\t}\n\t\treturn results;\n\t}\n\n\tpublic async getTotalEarningsForUserForDay(date: string): Promise<TotalUserEarning[]> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = GET_TOTAL_EARNINGS_FOR_USER_FOR_DAY;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\tconst params = {\n\t\t\tdate,\n\t\t\tsignature_type: this.orderBuilder.signatureType,\n\t\t};\n\n\t\treturn await this.get(`${this.host}${endpoint}`, {\n\t\t\theaders,\n\t\t\tparams,\n\t\t});\n\t}\n\n\tpublic async getUserEarningsAndMarketsConfig(\n\t\tdate: string,\n\t\torder_by = \"\",\n\t\tposition = \"\",\n\t\tno_competition = false,\n\t): Promise<UserRewardsEarning[]> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = GET_REWARDS_EARNINGS_PERCENTAGES;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\tlet results: UserRewardsEarning[] = [];\n\t\tlet next_cursor = INITIAL_CURSOR;\n\t\twhile (next_cursor !== END_CURSOR) {\n\t\t\tconst params = {\n\t\t\t\tdate,\n\t\t\t\tsignature_type: this.orderBuilder.signatureType,\n\t\t\t\tnext_cursor,\n\t\t\t\torder_by,\n\t\t\t\tposition,\n\t\t\t\tno_competition,\n\t\t\t};\n\n\t\t\tconst response = await this.get(`${this.host}${endpoint}`, {\n\t\t\t\theaders,\n\t\t\t\tparams,\n\t\t\t});\n\t\t\tnext_cursor = response.next_cursor;\n\t\t\tresults = [...results, ...response.data];\n\t\t}\n\t\treturn results;\n\t}\n\n\tpublic async getRewardPercentages(): Promise<RewardsPercentages> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = GET_LIQUIDITY_REWARD_PERCENTAGES;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\tconst _params = {\n\t\t\tsignature_type: this.orderBuilder.signatureType,\n\t\t};\n\n\t\treturn this.get(`${this.host}${endpoint}`, { headers, params: _params });\n\t}\n\n\tpublic async getCurrentRewards(): Promise<MarketReward[]> {\n\t\tlet results: MarketReward[] = [];\n\t\tlet next_cursor = INITIAL_CURSOR;\n\t\twhile (next_cursor !== END_CURSOR) {\n\t\t\tconst response = await this.get(`${this.host}${GET_REWARDS_MARKETS_CURRENT}`, {\n\t\t\t\tparams: { next_cursor },\n\t\t\t});\n\t\t\tnext_cursor = response.next_cursor;\n\t\t\tresults = [...results, ...response.data];\n\t\t}\n\t\treturn results;\n\t}\n\n\tpublic async getRawRewardsForMarket(conditionId: string): Promise<MarketReward[]> {\n\t\tlet results: MarketReward[] = [];\n\t\tlet next_cursor = INITIAL_CURSOR;\n\t\twhile (next_cursor !== END_CURSOR) {\n\t\t\tconst response = await this.get(`${this.host}${GET_REWARDS_MARKETS}${conditionId}`, {\n\t\t\t\tparams: { next_cursor },\n\t\t\t});\n\t\t\tnext_cursor = response.next_cursor;\n\t\t\tresults = [...results, ...response.data];\n\t\t}\n\t\treturn results;\n\t}\n\n\tpublic async calculateMarketPrice(\n\t\ttokenID: string,\n\t\tside: Side,\n\t\tamount: number,\n\t\torderType: OrderType = OrderType.FOK,\n\t): Promise<number> {\n\t\tconst book = await this.getOrderBook(tokenID);\n\t\tif (!book) {\n\t\t\tthrow new Error(\"no orderbook\");\n\t\t}\n\t\tif (side === Side.BUY) {\n\t\t\tif (!book.asks) {\n\t\t\t\tthrow new Error(\"no match\");\n\t\t\t}\n\t\t\treturn calculateBuyMarketPrice(book.asks, amount, orderType);\n\t\t} else {\n\t\t\tif (!book.bids) {\n\t\t\t\tthrow new Error(\"no match\");\n\t\t\t}\n\t\t\treturn calculateSellMarketPrice(book.bids, amount, orderType);\n\t\t}\n\t}\n\n\tpublic async createBuilderApiKey(): Promise<BuilderApiKey> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = CREATE_BUILDER_API_KEY;\n\t\tconst headerArgs = {\n\t\t\tmethod: POST,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.post(`${this.host}${endpoint}`, { headers });\n\t}\n\n\tpublic async getBuilderApiKeys(): Promise<BuilderApiKeyResponse[]> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = GET_BUILDER_API_KEYS;\n\t\tconst headerArgs = {\n\t\t\tmethod: GET,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.get(`${this.host}${endpoint}`, { headers });\n\t}\n\n\tpublic async revokeBuilderApiKey(): Promise<any> {\n\t\tthis.canL2Auth();\n\n\t\tconst endpoint = REVOKE_BUILDER_API_KEY;\n\t\tconst headerArgs = {\n\t\t\tmethod: DELETE,\n\t\t\trequestPath: endpoint,\n\t\t};\n\n\t\tconst headers = await createL2Headers(\n\t\t\tthis.signer as ClobSigner,\n\t\t\tthis.creds as ApiKeyCreds,\n\t\t\theaderArgs,\n\t\t\tthis.useServerTime ? await this.getServerTime() : undefined,\n\t\t);\n\n\t\treturn this.del(`${this.host}${endpoint}`, { headers });\n\t}\n\n\tpublic async getMarketTradesEvents(conditionID: string): Promise<MarketTradeEvent[]> {\n\t\treturn this.get(`${this.host}${GET_MARKET_TRADES_EVENTS}${conditionID}`);\n\t}\n\n\tprivate canL1Auth(): void {\n\t\tif (this.signer === undefined) {\n\t\t\tthrow L1_AUTH_UNAVAILABLE_ERROR;\n\t\t}\n\t}\n\n\tprivate canL2Auth(): void {\n\t\tif (this.signer === undefined) {\n\t\t\tthrow L1_AUTH_UNAVAILABLE_ERROR;\n\t\t}\n\n\t\tif (this.creds === undefined) {\n\t\t\tthrow L2_AUTH_NOT_AVAILABLE;\n\t\t}\n\t}\n\n\tprivate isBuilderOrder(builderCode?: string): boolean {\n\t\treturn builderCode !== undefined && builderCode !== bytes32Zero;\n\t}\n\n\tprivate async getBuilderTakerFeeRate(builderCode?: string): Promise<number> {\n\t\tif (!this.isBuilderOrder(builderCode)) return 0;\n\n\t\tawait this.ensureBuilderFeeRateCached(builderCode);\n\t\treturn this.builderFeeRates[builderCode ?? \"\"]?.taker ?? 0;\n\t}\n\n\tprivate async adjustBuyAmountForBalance(\n\t\ttokenID: string,\n\t\tamount: number,\n\t\tprice: number,\n\t\tuserUSDCBalance: number,\n\t\tbuilderCode?: string,\n\t): Promise<number> {\n\t\tawait this._ensureMarketInfoCached(tokenID);\n\t\tconst builderTakerFeeRate = await this.getBuilderTakerFeeRate(builderCode);\n\n\t\treturn adjustBuyAmountForFees(\n\t\t\tamount,\n\t\t\tprice,\n\t\t\tuserUSDCBalance,\n\t\t\tthis.feeInfos[tokenID].rate,\n\t\t\tthis.feeInfos[tokenID].exponent,\n\t\t\tbuilderTakerFeeRate,\n\t\t\tthis.feeSlippage,\n\t\t);\n\t}\n\n\tprivate async _ensureMarketInfoCached(tokenID: string): Promise<void> {\n\t\tif (tokenID in this.feeInfos) return;\n\n\t\tif (!(tokenID in this.tokenConditionMap)) {\n\t\t\tconst result = await this.get(`${this.host}${GET_MARKET_BY_TOKEN}${tokenID}`);\n\t\t\tif (!result?.condition_id) {\n\t\t\t\tthrow new Error(`failed to resolve condition id for token ${tokenID}`);\n\t\t\t}\n\t\t\tthis.tokenConditionMap[tokenID] = result.condition_id as string;\n\t\t}\n\n\t\tawait this.getClobMarketInfo(this.tokenConditionMap[tokenID]);\n\t}\n\n\tprivate async ensureBuilderFeeRateCached(builderCode?: string): Promise<void> {\n\t\tif (!builderCode || builderCode === bytes32Zero) return;\n\t\tif (builderCode in this.builderFeeRates) return;\n\n\t\tconst result = await this.get(`${this.host}${GET_BUILDER_FEES}${builderCode}`);\n\t\tthis.builderFeeRates[builderCode] = {\n\t\t\tmaker: result.builder_maker_fee_rate_bps / BUILDER_FEES_BPS,\n\t\t\ttaker: result.builder_taker_fee_rate_bps / BUILDER_FEES_BPS,\n\t\t};\n\t}\n\n\tprivate async _resolveTickSize(tokenID: string, tickSize?: TickSize): Promise<TickSize> {\n\t\tconst minTickSize = await this.getTickSize(tokenID);\n\t\tif (tickSize) {\n\t\t\tif (isTickSizeSmaller(tickSize, minTickSize)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`invalid tick size (${tickSize}), minimum for the market is ${minTickSize}`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\ttickSize = minTickSize;\n\t\t}\n\t\treturn tickSize;\n\t}\n\n\tprivate async _resolveFeeRateBps(tokenID: string, userFeeRateBps?: number): Promise<number> {\n\t\tconst marketFeeRateBps = await this.getFeeRateBps(tokenID);\n\t\tif (\n\t\t\tmarketFeeRateBps > 0 &&\n\t\t\tuserFeeRateBps !== undefined &&\n\t\t\tuserFeeRateBps !== marketFeeRateBps\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`invalid user provided fee rate: ${userFeeRateBps}, fee rate for the market must be ${marketFeeRateBps}`,\n\t\t\t);\n\t\t}\n\t\treturn marketFeeRateBps;\n\t}\n\n\tprivate async resolveVersion(forceUpdate: boolean = false): Promise<number> {\n\t\t// Use cached version if given\n\t\tif (!forceUpdate && this.cachedVersion !== undefined) {\n\t\t\treturn this.cachedVersion;\n\t\t}\n\n\t\t// Query API and cache the result\n\t\tconst apiVersion = await this.getVersion();\n\t\tthis.cachedVersion = apiVersion;\n\n\t\treturn apiVersion;\n\t}\n\n\tprivate async _retryOnVersionUpdate(retryFunc: () => Promise<unknown>) {\n\t\tconst version = await this.resolveVersion();\n\n\t\tfor (let attempt = 0; attempt < 2; attempt++) {\n\t\t\tawait retryFunc();\n\n\t\t\t// no need to retry if version is unchanged\n\t\t\tif (version === (await this.resolveVersion())) break;\n\t\t}\n\t}\n\n\tprivate _isOrderVersionMismatch(resp: ClobErrorResponseBody) {\n\t\tconst error = resp?.error;\n\t\tif (!error) return false;\n\t\tconst message = typeof error === \"string\" ? error : JSON.stringify(error);\n\t\treturn message.includes(ORDER_VERSION_MISMATCH_ERROR);\n\t}\n\n\tprivate throwIfError(result: any): any {\n\t\tif (this.throwOnError && result && typeof result === \"object\" && \"error\" in result) {\n\t\t\tconst msg =\n\t\t\t\ttypeof result.error === \"string\" ? result.error : JSON.stringify(result.error);\n\t\t\tthrow new ApiError(msg, result.status, result);\n\t\t}\n\t\treturn result;\n\t}\n\n\t// http methods\n\tprivate async get(endpoint: string, options?: RequestOptions, skipThrow = false) {\n\t\tconst result = await get(endpoint, options);\n\t\treturn skipThrow ? result : this.throwIfError(result);\n\t}\n\n\tprivate async post(endpoint: string, options?: RequestOptions, skipThrow = false) {\n\t\tconst result = await post(endpoint, options, this.retryOnError);\n\t\treturn skipThrow ? result : this.throwIfError(result);\n\t}\n\n\tprivate async del(endpoint: string, options?: RequestOptions, skipThrow = false) {\n\t\tconst result = await del(endpoint, options);\n\t\treturn skipThrow ? result : this.throwIfError(result);\n\t}\n}\n"],"mappings":"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"}
@@ -0,0 +1,165 @@
1
+ import { ClobSigner } from "./signing/signer.cjs";
2
+ import { Side } from "./order-utils/model/side.cjs";
3
+ import { ApiKeyCreds, ApiKeysResponse, BalanceAllowanceParams, BalanceAllowanceResponse, BanStatus, BookParams, BuilderApiKey, BuilderApiKeyResponse, BuilderConfig, BuilderFeeRates, BuilderTradeParams, BuilderTradesResponse, Chain, CreateOrderOptions, DropNotificationParams, FeeInfos, FeeRates, MarketDetails, MarketPrice, MarketReward, MarketTradeEvent, NegRisk, Notification, OpenOrder, OpenOrderParams, OpenOrdersResponse, OrderBookSummary, OrderMarketCancelParams, OrderPayload, OrderScoring, OrderScoringParams, OrderType, OrdersScoring, OrdersScoringParams, PaginationPayload, PreMigrationOrdersResponse, PriceHistoryFilterParams, ReadonlyApiKeyResponse, RewardsPercentages, TickSize, TickSizes, TotalUserEarning, Trade, TradeParams, TradesPaginatedResponse, UserEarning, UserRewardsEarning } from "./types/clob.cjs";
4
+ import { UserMarketOrderV1, UserOrderV1 } from "./types/ordersV1.cjs";
5
+ import { UserMarketOrderV2, UserOrderV2 } from "./types/ordersV2.cjs";
6
+ import { PostOrdersArgs, SignedOrder } from "./types/unifiedOrder.cjs";
7
+ import { SignatureTypeV2 } from "./order-utils/model/signatureTypeV2.cjs";
8
+ import { OrderBuilder } from "./order-builder/orderBuilder.cjs";
9
+ import { adjustBuyAmountForFees } from "./fees/index.cjs";
10
+
11
+ //#region src/client.d.ts
12
+ interface ClobClientOptions {
13
+ host: string;
14
+ chain: Chain;
15
+ signer?: ClobSigner;
16
+ creds?: ApiKeyCreds;
17
+ signatureType?: SignatureTypeV2;
18
+ funderAddress?: string;
19
+ useServerTime?: boolean;
20
+ builderConfig?: BuilderConfig;
21
+ getSigner?: () => Promise<ClobSigner> | ClobSigner;
22
+ retryOnError?: boolean;
23
+ throwOnError?: boolean;
24
+ feeSlippage?: number;
25
+ }
26
+ declare class ClobClient {
27
+ readonly host: string;
28
+ readonly chainId: Chain;
29
+ readonly signer?: ClobSigner;
30
+ readonly creds?: ApiKeyCreds;
31
+ readonly orderBuilder: OrderBuilder;
32
+ readonly tickSizes: TickSizes;
33
+ readonly negRisk: NegRisk;
34
+ readonly feeInfos: FeeInfos;
35
+ readonly feeRates: FeeRates;
36
+ readonly builderFeeRates: BuilderFeeRates;
37
+ private readonly tokenConditionMap;
38
+ readonly useServerTime?: boolean;
39
+ readonly builderConfig?: BuilderConfig;
40
+ readonly signatureType: SignatureTypeV2;
41
+ readonly funderAddress?: string;
42
+ private cachedVersion?;
43
+ readonly retryOnError?: boolean;
44
+ readonly throwOnError?: boolean;
45
+ readonly feeSlippage: number;
46
+ constructor({
47
+ host,
48
+ chain,
49
+ signer,
50
+ creds,
51
+ signatureType,
52
+ funderAddress,
53
+ useServerTime,
54
+ builderConfig,
55
+ getSigner,
56
+ retryOnError,
57
+ throwOnError,
58
+ feeSlippage
59
+ }: ClobClientOptions);
60
+ getOk(): Promise<any>;
61
+ postHeartbeat(heartbeatId?: string): Promise<{
62
+ heartbeat_id: string;
63
+ error_msg?: string;
64
+ }>;
65
+ getVersion(): Promise<number>;
66
+ getServerTime(): Promise<number>;
67
+ getSamplingSimplifiedMarkets(next_cursor?: string): Promise<PaginationPayload>;
68
+ getSamplingMarkets(next_cursor?: string): Promise<PaginationPayload>;
69
+ getSimplifiedMarkets(next_cursor?: string): Promise<PaginationPayload>;
70
+ getMarkets(next_cursor?: string): Promise<PaginationPayload>;
71
+ getMarket(conditionID: string): Promise<any>;
72
+ getClobMarketInfo(conditionID: string): Promise<MarketDetails>;
73
+ getOrderBook(tokenID: string): Promise<OrderBookSummary>;
74
+ getOrderBooks(params: BookParams[]): Promise<OrderBookSummary[]>;
75
+ getTickSize(tokenID: string): Promise<TickSize>;
76
+ getNegRisk(tokenID: string): Promise<boolean>;
77
+ getFeeRateBps(tokenID: string): Promise<number>;
78
+ getFeeExponent(tokenID: string): Promise<number>;
79
+ /**
80
+ * Calculates the hash for the given orderbook
81
+ * @param orderbook
82
+ * @returns
83
+ */
84
+ getOrderBookHash(orderbook: OrderBookSummary): Promise<string>;
85
+ getMidpoint(tokenID: string): Promise<any>;
86
+ getMidpoints(params: BookParams[]): Promise<any>;
87
+ getPrice(tokenID: string, side: string): Promise<any>;
88
+ getPrices(params: BookParams[]): Promise<any>;
89
+ getSpread(tokenID: string): Promise<any>;
90
+ getSpreads(params: BookParams[]): Promise<any>;
91
+ getLastTradePrice(tokenID: string): Promise<any>;
92
+ getLastTradesPrices(params: BookParams[]): Promise<any>;
93
+ getPricesHistory(params: PriceHistoryFilterParams): Promise<MarketPrice[]>;
94
+ /**
95
+ * Creates a new API key for a user
96
+ * @param nonce
97
+ * @returns ApiKeyCreds
98
+ */
99
+ createApiKey(nonce?: number): Promise<ApiKeyCreds>;
100
+ /**
101
+ * Derives an existing API key for a user
102
+ * @param nonce
103
+ * @returns ApiKeyCreds
104
+ */
105
+ deriveApiKey(nonce?: number): Promise<ApiKeyCreds>;
106
+ createOrDeriveApiKey(nonce?: number): Promise<ApiKeyCreds>;
107
+ getApiKeys(): Promise<ApiKeysResponse>;
108
+ getClosedOnlyMode(): Promise<BanStatus>;
109
+ deleteApiKey(): Promise<any>;
110
+ createReadonlyApiKey(): Promise<ReadonlyApiKeyResponse>;
111
+ getReadonlyApiKeys(): Promise<string[]>;
112
+ deleteReadonlyApiKey(key: string): Promise<boolean>;
113
+ getOrder(orderID: string): Promise<OpenOrder>;
114
+ getTrades(params?: TradeParams, only_first_page?: boolean, next_cursor?: string): Promise<Trade[]>;
115
+ getTradesPaginated(params?: TradeParams, next_cursor?: string): Promise<TradesPaginatedResponse>;
116
+ getBuilderTrades(params: BuilderTradeParams, next_cursor?: string): Promise<BuilderTradesResponse>;
117
+ getNotifications(): Promise<Notification[]>;
118
+ dropNotifications(params?: DropNotificationParams): Promise<void>;
119
+ getBalanceAllowance(params?: BalanceAllowanceParams): Promise<BalanceAllowanceResponse>;
120
+ updateBalanceAllowance(params?: BalanceAllowanceParams): Promise<void>;
121
+ createOrder(userOrder: UserOrderV1 | UserOrderV2, options?: Partial<CreateOrderOptions>): Promise<SignedOrder>;
122
+ createMarketOrder(userMarketOrder: UserMarketOrderV1 | UserMarketOrderV2, options?: Partial<CreateOrderOptions>): Promise<SignedOrder>;
123
+ createAndPostOrder<T extends OrderType.GTC | OrderType.GTD = OrderType.GTC>(userOrder: UserOrderV1 | UserOrderV2, options?: Partial<CreateOrderOptions>, orderType?: T, postOnly?: boolean, deferExec?: boolean): Promise<any>;
124
+ createAndPostMarketOrder<T extends OrderType.FOK | OrderType.FAK = OrderType.FOK>(userMarketOrder: UserMarketOrderV1 | UserMarketOrderV2, options?: Partial<CreateOrderOptions>, orderType?: T, deferExec?: boolean): Promise<any>;
125
+ getOpenOrders(params?: OpenOrderParams, only_first_page?: boolean, next_cursor?: string): Promise<OpenOrdersResponse>;
126
+ getPreMigrationOrders(only_first_page?: boolean, next_cursor?: string): Promise<PreMigrationOrdersResponse>;
127
+ postOrder<T extends OrderType = OrderType.GTC>(order: SignedOrder, orderType?: T, postOnly?: boolean, deferExec?: boolean): Promise<any>;
128
+ postOrders(args: PostOrdersArgs[], postOnly?: boolean, deferExec?: boolean): Promise<any>;
129
+ cancelOrder(payload: OrderPayload): Promise<any>;
130
+ cancelOrders(ordersHashes: string[]): Promise<any>;
131
+ cancelAll(): Promise<any>;
132
+ cancelMarketOrders(payload: OrderMarketCancelParams): Promise<any>;
133
+ isOrderScoring(params?: OrderScoringParams): Promise<OrderScoring>;
134
+ areOrdersScoring(params?: OrdersScoringParams): Promise<OrdersScoring>;
135
+ getEarningsForUserForDay(date: string): Promise<UserEarning[]>;
136
+ getTotalEarningsForUserForDay(date: string): Promise<TotalUserEarning[]>;
137
+ getUserEarningsAndMarketsConfig(date: string, order_by?: string, position?: string, no_competition?: boolean): Promise<UserRewardsEarning[]>;
138
+ getRewardPercentages(): Promise<RewardsPercentages>;
139
+ getCurrentRewards(): Promise<MarketReward[]>;
140
+ getRawRewardsForMarket(conditionId: string): Promise<MarketReward[]>;
141
+ calculateMarketPrice(tokenID: string, side: Side, amount: number, orderType?: OrderType): Promise<number>;
142
+ createBuilderApiKey(): Promise<BuilderApiKey>;
143
+ getBuilderApiKeys(): Promise<BuilderApiKeyResponse[]>;
144
+ revokeBuilderApiKey(): Promise<any>;
145
+ getMarketTradesEvents(conditionID: string): Promise<MarketTradeEvent[]>;
146
+ private canL1Auth;
147
+ private canL2Auth;
148
+ private isBuilderOrder;
149
+ private getBuilderTakerFeeRate;
150
+ private adjustBuyAmountForBalance;
151
+ private _ensureMarketInfoCached;
152
+ private ensureBuilderFeeRateCached;
153
+ private _resolveTickSize;
154
+ private _resolveFeeRateBps;
155
+ private resolveVersion;
156
+ private _retryOnVersionUpdate;
157
+ private _isOrderVersionMismatch;
158
+ private throwIfError;
159
+ private get;
160
+ private post;
161
+ private del;
162
+ }
163
+ //#endregion
164
+ export { ClobClient, ClobClientOptions };
165
+ //# sourceMappingURL=client.d.cts.map
@@ -0,0 +1,167 @@
1
+ import { ClobSigner } from "./signing/signer.js";
2
+ import { Side } from "./order-utils/model/side.js";
3
+ import { ApiKeyCreds, ApiKeysResponse, BalanceAllowanceParams, BalanceAllowanceResponse, BanStatus, BookParams, BuilderApiKey, BuilderApiKeyResponse, BuilderConfig, BuilderFeeRates, BuilderTradeParams, BuilderTradesResponse, Chain, CreateOrderOptions, DropNotificationParams, FeeInfos, FeeRates, MarketDetails, MarketPrice, MarketReward, MarketTradeEvent, NegRisk, Notification, OpenOrder, OpenOrderParams, OpenOrdersResponse, OrderBookSummary, OrderMarketCancelParams, OrderPayload, OrderScoring, OrderScoringParams, OrderType, OrdersScoring, OrdersScoringParams, PaginationPayload, PreMigrationOrdersResponse, PriceHistoryFilterParams, ReadonlyApiKeyResponse, RewardsPercentages, TickSize, TickSizes, TotalUserEarning, Trade, TradeParams, TradesPaginatedResponse, UserEarning, UserRewardsEarning } from "./types/clob.js";
4
+ import { UserMarketOrderV1, UserOrderV1 } from "./types/ordersV1.js";
5
+ import { UserMarketOrderV2, UserOrderV2 } from "./types/ordersV2.js";
6
+ import { PostOrdersArgs, SignedOrder } from "./types/unifiedOrder.js";
7
+ import "./types/index.js";
8
+ import { SignatureTypeV2 } from "./order-utils/model/signatureTypeV2.js";
9
+ import { OrderBuilder } from "./order-builder/orderBuilder.js";
10
+ import "./order-builder/index.js";
11
+ import { adjustBuyAmountForFees } from "./fees/index.js";
12
+
13
+ //#region src/client.d.ts
14
+ interface ClobClientOptions {
15
+ host: string;
16
+ chain: Chain;
17
+ signer?: ClobSigner;
18
+ creds?: ApiKeyCreds;
19
+ signatureType?: SignatureTypeV2;
20
+ funderAddress?: string;
21
+ useServerTime?: boolean;
22
+ builderConfig?: BuilderConfig;
23
+ getSigner?: () => Promise<ClobSigner> | ClobSigner;
24
+ retryOnError?: boolean;
25
+ throwOnError?: boolean;
26
+ feeSlippage?: number;
27
+ }
28
+ declare class ClobClient {
29
+ readonly host: string;
30
+ readonly chainId: Chain;
31
+ readonly signer?: ClobSigner;
32
+ readonly creds?: ApiKeyCreds;
33
+ readonly orderBuilder: OrderBuilder;
34
+ readonly tickSizes: TickSizes;
35
+ readonly negRisk: NegRisk;
36
+ readonly feeInfos: FeeInfos;
37
+ readonly feeRates: FeeRates;
38
+ readonly builderFeeRates: BuilderFeeRates;
39
+ private readonly tokenConditionMap;
40
+ readonly useServerTime?: boolean;
41
+ readonly builderConfig?: BuilderConfig;
42
+ readonly signatureType: SignatureTypeV2;
43
+ readonly funderAddress?: string;
44
+ private cachedVersion?;
45
+ readonly retryOnError?: boolean;
46
+ readonly throwOnError?: boolean;
47
+ readonly feeSlippage: number;
48
+ constructor({
49
+ host,
50
+ chain,
51
+ signer,
52
+ creds,
53
+ signatureType,
54
+ funderAddress,
55
+ useServerTime,
56
+ builderConfig,
57
+ getSigner,
58
+ retryOnError,
59
+ throwOnError,
60
+ feeSlippage
61
+ }: ClobClientOptions);
62
+ getOk(): Promise<any>;
63
+ postHeartbeat(heartbeatId?: string): Promise<{
64
+ heartbeat_id: string;
65
+ error_msg?: string;
66
+ }>;
67
+ getVersion(): Promise<number>;
68
+ getServerTime(): Promise<number>;
69
+ getSamplingSimplifiedMarkets(next_cursor?: string): Promise<PaginationPayload>;
70
+ getSamplingMarkets(next_cursor?: string): Promise<PaginationPayload>;
71
+ getSimplifiedMarkets(next_cursor?: string): Promise<PaginationPayload>;
72
+ getMarkets(next_cursor?: string): Promise<PaginationPayload>;
73
+ getMarket(conditionID: string): Promise<any>;
74
+ getClobMarketInfo(conditionID: string): Promise<MarketDetails>;
75
+ getOrderBook(tokenID: string): Promise<OrderBookSummary>;
76
+ getOrderBooks(params: BookParams[]): Promise<OrderBookSummary[]>;
77
+ getTickSize(tokenID: string): Promise<TickSize>;
78
+ getNegRisk(tokenID: string): Promise<boolean>;
79
+ getFeeRateBps(tokenID: string): Promise<number>;
80
+ getFeeExponent(tokenID: string): Promise<number>;
81
+ /**
82
+ * Calculates the hash for the given orderbook
83
+ * @param orderbook
84
+ * @returns
85
+ */
86
+ getOrderBookHash(orderbook: OrderBookSummary): Promise<string>;
87
+ getMidpoint(tokenID: string): Promise<any>;
88
+ getMidpoints(params: BookParams[]): Promise<any>;
89
+ getPrice(tokenID: string, side: string): Promise<any>;
90
+ getPrices(params: BookParams[]): Promise<any>;
91
+ getSpread(tokenID: string): Promise<any>;
92
+ getSpreads(params: BookParams[]): Promise<any>;
93
+ getLastTradePrice(tokenID: string): Promise<any>;
94
+ getLastTradesPrices(params: BookParams[]): Promise<any>;
95
+ getPricesHistory(params: PriceHistoryFilterParams): Promise<MarketPrice[]>;
96
+ /**
97
+ * Creates a new API key for a user
98
+ * @param nonce
99
+ * @returns ApiKeyCreds
100
+ */
101
+ createApiKey(nonce?: number): Promise<ApiKeyCreds>;
102
+ /**
103
+ * Derives an existing API key for a user
104
+ * @param nonce
105
+ * @returns ApiKeyCreds
106
+ */
107
+ deriveApiKey(nonce?: number): Promise<ApiKeyCreds>;
108
+ createOrDeriveApiKey(nonce?: number): Promise<ApiKeyCreds>;
109
+ getApiKeys(): Promise<ApiKeysResponse>;
110
+ getClosedOnlyMode(): Promise<BanStatus>;
111
+ deleteApiKey(): Promise<any>;
112
+ createReadonlyApiKey(): Promise<ReadonlyApiKeyResponse>;
113
+ getReadonlyApiKeys(): Promise<string[]>;
114
+ deleteReadonlyApiKey(key: string): Promise<boolean>;
115
+ getOrder(orderID: string): Promise<OpenOrder>;
116
+ getTrades(params?: TradeParams, only_first_page?: boolean, next_cursor?: string): Promise<Trade[]>;
117
+ getTradesPaginated(params?: TradeParams, next_cursor?: string): Promise<TradesPaginatedResponse>;
118
+ getBuilderTrades(params: BuilderTradeParams, next_cursor?: string): Promise<BuilderTradesResponse>;
119
+ getNotifications(): Promise<Notification[]>;
120
+ dropNotifications(params?: DropNotificationParams): Promise<void>;
121
+ getBalanceAllowance(params?: BalanceAllowanceParams): Promise<BalanceAllowanceResponse>;
122
+ updateBalanceAllowance(params?: BalanceAllowanceParams): Promise<void>;
123
+ createOrder(userOrder: UserOrderV1 | UserOrderV2, options?: Partial<CreateOrderOptions>): Promise<SignedOrder>;
124
+ createMarketOrder(userMarketOrder: UserMarketOrderV1 | UserMarketOrderV2, options?: Partial<CreateOrderOptions>): Promise<SignedOrder>;
125
+ createAndPostOrder<T extends OrderType.GTC | OrderType.GTD = OrderType.GTC>(userOrder: UserOrderV1 | UserOrderV2, options?: Partial<CreateOrderOptions>, orderType?: T, postOnly?: boolean, deferExec?: boolean): Promise<any>;
126
+ createAndPostMarketOrder<T extends OrderType.FOK | OrderType.FAK = OrderType.FOK>(userMarketOrder: UserMarketOrderV1 | UserMarketOrderV2, options?: Partial<CreateOrderOptions>, orderType?: T, deferExec?: boolean): Promise<any>;
127
+ getOpenOrders(params?: OpenOrderParams, only_first_page?: boolean, next_cursor?: string): Promise<OpenOrdersResponse>;
128
+ getPreMigrationOrders(only_first_page?: boolean, next_cursor?: string): Promise<PreMigrationOrdersResponse>;
129
+ postOrder<T extends OrderType = OrderType.GTC>(order: SignedOrder, orderType?: T, postOnly?: boolean, deferExec?: boolean): Promise<any>;
130
+ postOrders(args: PostOrdersArgs[], postOnly?: boolean, deferExec?: boolean): Promise<any>;
131
+ cancelOrder(payload: OrderPayload): Promise<any>;
132
+ cancelOrders(ordersHashes: string[]): Promise<any>;
133
+ cancelAll(): Promise<any>;
134
+ cancelMarketOrders(payload: OrderMarketCancelParams): Promise<any>;
135
+ isOrderScoring(params?: OrderScoringParams): Promise<OrderScoring>;
136
+ areOrdersScoring(params?: OrdersScoringParams): Promise<OrdersScoring>;
137
+ getEarningsForUserForDay(date: string): Promise<UserEarning[]>;
138
+ getTotalEarningsForUserForDay(date: string): Promise<TotalUserEarning[]>;
139
+ getUserEarningsAndMarketsConfig(date: string, order_by?: string, position?: string, no_competition?: boolean): Promise<UserRewardsEarning[]>;
140
+ getRewardPercentages(): Promise<RewardsPercentages>;
141
+ getCurrentRewards(): Promise<MarketReward[]>;
142
+ getRawRewardsForMarket(conditionId: string): Promise<MarketReward[]>;
143
+ calculateMarketPrice(tokenID: string, side: Side, amount: number, orderType?: OrderType): Promise<number>;
144
+ createBuilderApiKey(): Promise<BuilderApiKey>;
145
+ getBuilderApiKeys(): Promise<BuilderApiKeyResponse[]>;
146
+ revokeBuilderApiKey(): Promise<any>;
147
+ getMarketTradesEvents(conditionID: string): Promise<MarketTradeEvent[]>;
148
+ private canL1Auth;
149
+ private canL2Auth;
150
+ private isBuilderOrder;
151
+ private getBuilderTakerFeeRate;
152
+ private adjustBuyAmountForBalance;
153
+ private _ensureMarketInfoCached;
154
+ private ensureBuilderFeeRateCached;
155
+ private _resolveTickSize;
156
+ private _resolveFeeRateBps;
157
+ private resolveVersion;
158
+ private _retryOnVersionUpdate;
159
+ private _isOrderVersionMismatch;
160
+ private throwIfError;
161
+ private get;
162
+ private post;
163
+ private del;
164
+ }
165
+ //#endregion
166
+ export { ClobClient, ClobClientOptions };
167
+ //# sourceMappingURL=client.d.ts.map