@nadohq/engine-client 0.19.1 → 0.21.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 (118) hide show
  1. package/dist/{EngineBaseClient-DOOXIhnZ.d.ts → EngineBaseClient-Cn4PMYKt.d.ts} +30 -5
  2. package/dist/EngineBaseClient-Cn4PMYKt.d.ts.map +1 -0
  3. package/dist/{EngineBaseClient-L1ue7jBx.d.cts → EngineBaseClient-a2leWTER.d.cts} +30 -5
  4. package/dist/EngineBaseClient-a2leWTER.d.cts.map +1 -0
  5. package/dist/{EngineBaseClient-Uc1D8ftx.cjs → EngineBaseClient-zgQmbhJv.cjs} +41 -7
  6. package/dist/EngineBaseClient-zgQmbhJv.cjs.map +1 -0
  7. package/dist/EngineBaseClient.cjs +1 -1
  8. package/dist/EngineBaseClient.d.cts +1 -1
  9. package/dist/EngineBaseClient.d.ts +1 -1
  10. package/dist/EngineBaseClient.js +40 -6
  11. package/dist/EngineBaseClient.js.map +1 -1
  12. package/dist/EngineClient.cjs +4 -3
  13. package/dist/EngineClient.cjs.map +1 -1
  14. package/dist/EngineClient.d.cts +6 -5
  15. package/dist/EngineClient.d.cts.map +1 -1
  16. package/dist/EngineClient.d.ts +6 -5
  17. package/dist/EngineClient.d.ts.map +1 -1
  18. package/dist/EngineClient.js +3 -2
  19. package/dist/EngineClient.js.map +1 -1
  20. package/dist/EngineEdgeQueryClient-B9Y8srJa.d.ts +79 -0
  21. package/dist/EngineEdgeQueryClient-B9Y8srJa.d.ts.map +1 -0
  22. package/dist/EngineEdgeQueryClient-CPEDAOd0.d.cts +79 -0
  23. package/dist/EngineEdgeQueryClient-CPEDAOd0.d.cts.map +1 -0
  24. package/dist/EngineEdgeQueryClient.cjs +143 -0
  25. package/dist/EngineEdgeQueryClient.cjs.map +1 -0
  26. package/dist/EngineEdgeQueryClient.d.cts +2 -0
  27. package/dist/EngineEdgeQueryClient.d.ts +2 -0
  28. package/dist/EngineEdgeQueryClient.js +142 -0
  29. package/dist/EngineEdgeQueryClient.js.map +1 -0
  30. package/dist/{EngineExecuteBuilder-t8EQ5Rmp.d.ts → EngineExecuteBuilder-BXKoW0uz.d.ts} +2 -2
  31. package/dist/{EngineExecuteBuilder-t8EQ5Rmp.d.ts.map → EngineExecuteBuilder-BXKoW0uz.d.ts.map} +1 -1
  32. package/dist/{EngineExecuteBuilder-VLrEndhv.d.cts → EngineExecuteBuilder-BaMHTuf-.d.cts} +2 -2
  33. package/dist/{EngineExecuteBuilder-VLrEndhv.d.cts.map → EngineExecuteBuilder-BaMHTuf-.d.cts.map} +1 -1
  34. package/dist/EngineExecuteBuilder.cjs +1 -1
  35. package/dist/EngineExecuteBuilder.d.cts +1 -1
  36. package/dist/EngineExecuteBuilder.d.ts +1 -1
  37. package/dist/{EngineExecuteClient-BGlNK5Le.d.cts → EngineExecuteClient-BLUkw1vR.d.cts} +3 -3
  38. package/dist/{EngineExecuteClient-BGlNK5Le.d.cts.map → EngineExecuteClient-BLUkw1vR.d.cts.map} +1 -1
  39. package/dist/{EngineExecuteClient-0EBoXRd7.d.ts → EngineExecuteClient-ReEcySA_.d.ts} +3 -3
  40. package/dist/{EngineExecuteClient-0EBoXRd7.d.ts.map → EngineExecuteClient-ReEcySA_.d.ts.map} +1 -1
  41. package/dist/EngineExecuteClient.cjs +1 -1
  42. package/dist/EngineExecuteClient.d.cts +1 -1
  43. package/dist/EngineExecuteClient.d.ts +1 -1
  44. package/dist/{EngineQueryClient-C_7p1oRx.d.cts → EngineQueryClient-Br-BC5LQ.d.cts} +3 -3
  45. package/dist/{EngineQueryClient-C_7p1oRx.d.cts.map → EngineQueryClient-Br-BC5LQ.d.cts.map} +1 -1
  46. package/dist/{EngineQueryClient-DQwCRaYl.d.ts → EngineQueryClient-C0xBMTo-.d.ts} +3 -3
  47. package/dist/{EngineQueryClient-DQwCRaYl.d.ts.map → EngineQueryClient-C0xBMTo-.d.ts.map} +1 -1
  48. package/dist/EngineQueryClient.cjs +1 -1
  49. package/dist/EngineQueryClient.d.cts +1 -1
  50. package/dist/EngineQueryClient.d.ts +1 -1
  51. package/dist/{EngineWebClient-CEwqgd4t.d.ts → EngineWebClient-KXOdpUol.d.ts} +3 -3
  52. package/dist/{EngineWebClient-CEwqgd4t.d.ts.map → EngineWebClient-KXOdpUol.d.ts.map} +1 -1
  53. package/dist/{EngineWebClient-DajZqKAQ.d.cts → EngineWebClient-i8BslipN.d.cts} +3 -3
  54. package/dist/{EngineWebClient-DajZqKAQ.d.cts.map → EngineWebClient-i8BslipN.d.cts.map} +1 -1
  55. package/dist/EngineWebClient.cjs +1 -1
  56. package/dist/EngineWebClient.d.cts +1 -1
  57. package/dist/EngineWebClient.d.ts +1 -1
  58. package/dist/{clientQueryTypes-DlTtS_mX.d.cts → clientQueryTypes-BTKfuoGI.d.cts} +39 -2
  59. package/dist/{clientQueryTypes-DlTtS_mX.d.cts.map → clientQueryTypes-BTKfuoGI.d.cts.map} +1 -1
  60. package/dist/{clientQueryTypes-DuRgEeBT.d.ts → clientQueryTypes-BaYOTnpm.d.ts} +39 -2
  61. package/dist/{clientQueryTypes-DuRgEeBT.d.ts.map → clientQueryTypes-BaYOTnpm.d.ts.map} +1 -1
  62. package/dist/index.cjs +1 -0
  63. package/dist/index.d.cts +6 -5
  64. package/dist/index.d.ts +6 -5
  65. package/dist/index.js +2 -2
  66. package/dist/{queryDataMappers-BguxA579.d.ts → queryDataMappers-CyUgQn0_.d.ts} +5 -3
  67. package/dist/{queryDataMappers-DO9yWdLo.d.cts.map → queryDataMappers-CyUgQn0_.d.ts.map} +1 -1
  68. package/dist/{queryDataMappers-DO9yWdLo.d.cts → queryDataMappers-kC-SPiHX.d.cts} +5 -3
  69. package/dist/queryDataMappers-kC-SPiHX.d.cts.map +1 -0
  70. package/dist/serverEdgeQueryTypes-BpMlbsCD.d.cts +100 -0
  71. package/dist/serverEdgeQueryTypes-BpMlbsCD.d.cts.map +1 -0
  72. package/dist/serverEdgeQueryTypes-DbSUWFzo.d.ts +100 -0
  73. package/dist/serverEdgeQueryTypes-DbSUWFzo.d.ts.map +1 -0
  74. package/dist/{serverSubscriptionEventTypes-CbT2Fx8Y.d.ts → serverSubscriptionEventTypes-Co3utjCs.d.ts} +1 -1
  75. package/dist/{serverSubscriptionEventTypes-CbT2Fx8Y.d.ts.map → serverSubscriptionEventTypes-Co3utjCs.d.ts.map} +1 -1
  76. package/dist/{serverSubscriptionEventTypes-UorThoIE.d.cts → serverSubscriptionEventTypes-CpmdNk1G.d.cts} +1 -1
  77. package/dist/{serverSubscriptionEventTypes-UorThoIE.d.cts.map → serverSubscriptionEventTypes-CpmdNk1G.d.cts.map} +1 -1
  78. package/dist/{serverSubscriptionTypes-CE6BIS-C.d.cts → serverSubscriptionTypes-BA92bWic.d.cts} +1 -1
  79. package/dist/{serverSubscriptionTypes-CE6BIS-C.d.cts.map → serverSubscriptionTypes-BA92bWic.d.cts.map} +1 -1
  80. package/dist/{serverSubscriptionTypes-Cgz-h0ot.d.ts → serverSubscriptionTypes-CEis5IgT.d.ts} +1 -1
  81. package/dist/{serverSubscriptionTypes-Cgz-h0ot.d.ts.map → serverSubscriptionTypes-CEis5IgT.d.ts.map} +1 -1
  82. package/dist/types/clientQueryTypes.d.cts +2 -2
  83. package/dist/types/clientQueryTypes.d.ts +2 -2
  84. package/dist/types/index.d.cts +5 -4
  85. package/dist/types/index.d.ts +5 -4
  86. package/dist/types/serverEdgeQueryTypes.cjs +0 -0
  87. package/dist/types/serverEdgeQueryTypes.d.cts +2 -0
  88. package/dist/types/serverEdgeQueryTypes.d.ts +2 -0
  89. package/dist/types/serverEdgeQueryTypes.js +1 -0
  90. package/dist/types/serverSubscriptionEventTypes.d.cts +1 -1
  91. package/dist/types/serverSubscriptionEventTypes.d.ts +1 -1
  92. package/dist/types/serverSubscriptionTypes.d.cts +1 -1
  93. package/dist/types/serverSubscriptionTypes.d.ts +1 -1
  94. package/dist/utils/index.cjs +1 -0
  95. package/dist/utils/index.d.cts +2 -2
  96. package/dist/utils/index.d.ts +2 -2
  97. package/dist/utils/index.js +2 -2
  98. package/dist/utils/productEngineTypeMappers.cjs +1 -1
  99. package/dist/utils/queryDataMappers.cjs +14 -1
  100. package/dist/utils/queryDataMappers.cjs.map +1 -1
  101. package/dist/utils/queryDataMappers.d.cts +2 -2
  102. package/dist/utils/queryDataMappers.d.ts +2 -2
  103. package/dist/utils/queryDataMappers.js +13 -1
  104. package/dist/utils/queryDataMappers.js.map +1 -1
  105. package/package.json +3 -3
  106. package/src/EngineBaseClient.ts +86 -10
  107. package/src/EngineClient.ts +3 -1
  108. package/src/EngineEdgeQueryClient.ts +211 -0
  109. package/src/types/clientQueryTypes.ts +54 -0
  110. package/src/types/index.ts +1 -0
  111. package/src/types/serverEdgeQueryTypes.ts +153 -0
  112. package/src/utils/queryDataMappers.ts +17 -0
  113. package/dist/EngineBaseClient-DOOXIhnZ.d.ts.map +0 -1
  114. package/dist/EngineBaseClient-L1ue7jBx.d.cts.map +0 -1
  115. package/dist/EngineBaseClient-Uc1D8ftx.cjs.map +0 -1
  116. package/dist/queryDataMappers-BguxA579.d.ts.map +0 -1
  117. /package/dist/{index-CmCelmEL.d.cts → index-D6CnpA_r.d.cts} +0 -0
  118. /package/dist/{index-D0E78WnU.d.ts → index-DhI2LvVQ.d.ts} +0 -0
@@ -307,3 +307,57 @@ export interface NlpPool {
307
307
  export interface GetEngineNlpPoolInfoResponse {
308
308
  nlpPools: NlpPool[];
309
309
  }
310
+
311
+ /**
312
+ * Params for the cached (`edge`) market prices query. Unlike the live
313
+ * {@link GetEngineMarketPricesParams}, `productIds` is optional — omit it to return every
314
+ * product currently in the cache.
315
+ */
316
+ export interface GetEngineCachedMarketPricesParams {
317
+ productIds?: number[];
318
+ }
319
+
320
+ export interface GetEngineCachedBboHistoryParams {
321
+ productIds?: number[];
322
+ // Down-sampling stride in ms. Default 500, must be >= 500, rounded up to a multiple of 500
323
+ intervalMs?: number;
324
+ // Upper time bound (epoch ms). Omit for the most recent samples
325
+ maxTimeMs?: number;
326
+ // Max samples per product. Default 500, capped at 3600
327
+ limit?: number;
328
+ }
329
+
330
+ export interface EngineBboHistorySample {
331
+ productId: number;
332
+ // Sample time, epoch milliseconds
333
+ timestamp: number;
334
+ bid: BigNumber;
335
+ ask: BigNumber;
336
+ }
337
+
338
+ export interface GetEngineCachedBboHistoryResponse {
339
+ // The effective (normalized) sampling stride applied
340
+ intervalMs: number;
341
+ // The effective per-product sample cap applied
342
+ limit: number;
343
+ // Samples sorted ascending by (timestamp, productId)
344
+ history: EngineBboHistorySample[];
345
+ }
346
+
347
+ export interface EnginePingParams {
348
+ id?: number;
349
+ // If provided, echoed back so the caller can measure round-trip latency / clock offset
350
+ clientTime?: number;
351
+ }
352
+
353
+ export interface EnginePingResponse {
354
+ id?: number;
355
+ // Epoch ms
356
+ serverTime: number;
357
+ // Epoch ms, echoed from the request (only present when provided in the request)
358
+ clientTime?: number;
359
+ }
360
+
361
+ export interface EngineCachedTimeParams {
362
+ id?: number;
363
+ }
@@ -1,6 +1,7 @@
1
1
  export * from './clientExecuteTypes';
2
2
  export * from './clientQueryTypes';
3
3
  export * from './EngineServerFailureError';
4
+ export * from './serverEdgeQueryTypes';
4
5
  export * from './serverExecuteTypes';
5
6
  export * from './serverQueryModelTypes';
6
7
  export * from './serverQueryTypes';
@@ -0,0 +1,153 @@
1
+ import {
2
+ EngineServerAllProductsResponse,
3
+ EngineServerContractsResponse,
4
+ EngineServerEdgeAllProductsResponse,
5
+ EngineServerHealthGroupsResponse,
6
+ EngineServerMarketPricesQueryParams,
7
+ EngineServerMarketPricesResponse,
8
+ EngineServerNlpPoolInfoResponse,
9
+ EngineServerQueryFailureResponse,
10
+ EngineServerStatusResponse,
11
+ EngineServerSymbolsQueryParams,
12
+ EngineServerSymbolsResponse,
13
+ } from './serverQueryTypes';
14
+
15
+ /**
16
+ * "Edge" queries are fast, read-only market-data lookups served straight from the gateway's
17
+ * in-memory cache (no round-trip to the matching engine). They share a single endpoint
18
+ * (`/edge/query`), distinguished by the `type` field, and are eventually consistent — not
19
+ * suitable for order, margin, or settlement decisions.
20
+ *
21
+ * The cached data queries (`cached_*`) mirror their live counterparts, so their request/response
22
+ * types are reused here. Only `cached_bbo_history` is genuinely new.
23
+ *
24
+ * @see https://docs.nado.xyz/developer-resources/api/gateway/edge
25
+ */
26
+
27
+ export interface EngineServerCachedBboHistoryQueryParams {
28
+ product_ids?: number[];
29
+ // Down-sampling stride. Default 500, must be >= 500, rounded up to the nearest multiple of 500
30
+ interval_ms?: number;
31
+ // Upper time bound (epoch ms). Omit for the most recent samples
32
+ max_time_ms?: number;
33
+ // Max samples per product. Default 500, capped at 3600
34
+ limit?: number;
35
+ }
36
+
37
+ export interface EngineServerCachedQueryRequestByType {
38
+ // Unlike the live `market_prices` query, `product_ids` is optional — omit to return every
39
+ // product currently in the cache
40
+ cached_prices: Partial<EngineServerMarketPricesQueryParams>;
41
+ cached_symbols: EngineServerSymbolsQueryParams;
42
+ cached_contracts: Record<string, never>;
43
+ cached_status: Record<string, never>;
44
+ cached_all_products: Record<string, never>;
45
+ cached_edge_all_products: Record<string, never>;
46
+ cached_health_groups: Record<string, never>;
47
+ cached_nlp_pool_info: Record<string, never>;
48
+ cached_bbo_history: EngineServerCachedBboHistoryQueryParams;
49
+ }
50
+
51
+ export type EngineServerCachedQueryRequestType =
52
+ keyof EngineServerCachedQueryRequestByType;
53
+
54
+ export type EngineServerCachedQueryRequest<
55
+ TRequestType extends EngineServerCachedQueryRequestType,
56
+ > = {
57
+ type: TRequestType;
58
+ } & EngineServerCachedQueryRequestByType[TRequestType];
59
+
60
+ export interface EngineServerCachedBboHistorySample {
61
+ product_id: number;
62
+ // Sample time, epoch milliseconds
63
+ timestamp: string;
64
+ // Best bid at that sample, scaled by 10^18
65
+ bid: string;
66
+ // Best ask at that sample, scaled by 10^18
67
+ ask: string;
68
+ }
69
+
70
+ export interface EngineServerCachedBboHistoryResponse {
71
+ // The effective (normalized) sampling stride applied
72
+ interval_ms: number;
73
+ // The effective per-product sample cap applied
74
+ limit: number;
75
+ // Flat list of samples, sorted ascending by (timestamp, product_id)
76
+ history: EngineServerCachedBboHistorySample[];
77
+ }
78
+
79
+ export interface EngineServerCachedQueryResponseByType {
80
+ cached_prices: EngineServerMarketPricesResponse;
81
+ cached_symbols: EngineServerSymbolsResponse;
82
+ cached_contracts: EngineServerContractsResponse;
83
+ cached_status: EngineServerStatusResponse;
84
+ cached_all_products: EngineServerAllProductsResponse;
85
+ cached_edge_all_products: EngineServerEdgeAllProductsResponse;
86
+ cached_health_groups: EngineServerHealthGroupsResponse;
87
+ cached_nlp_pool_info: EngineServerNlpPoolInfoResponse;
88
+ cached_bbo_history: EngineServerCachedBboHistoryResponse;
89
+ }
90
+
91
+ export interface EngineServerCachedQuerySuccessResponse<
92
+ TQueryType extends keyof EngineServerCachedQueryResponseByType =
93
+ EngineServerCachedQueryRequestType,
94
+ > {
95
+ status: 'success';
96
+ data: EngineServerCachedQueryResponseByType[TQueryType];
97
+ request_type: TQueryType;
98
+ }
99
+
100
+ export type EngineServerCachedQueryResponse<
101
+ TQueryType extends keyof EngineServerCachedQueryResponseByType =
102
+ EngineServerCachedQueryRequestType,
103
+ > =
104
+ | EngineServerCachedQuerySuccessResponse<TQueryType>
105
+ // The failure envelope is identical to the live query failure response
106
+ | EngineServerQueryFailureResponse;
107
+
108
+ /**
109
+ * `ping` / `time` control messages. These share the `/edge/query` endpoint but return immediately
110
+ * from the server clock and use a different envelope than the cached data queries (no `data`
111
+ * field).
112
+ */
113
+
114
+ export interface EngineServerPingQueryParams {
115
+ id?: number;
116
+ // Echoed back so the caller can measure round-trip latency / clock offset. Epoch ms
117
+ client_time?: string;
118
+ }
119
+
120
+ export interface EngineServerTimeQueryParams {
121
+ id?: number;
122
+ }
123
+
124
+ export interface EngineServerEdgeControlRequestByType {
125
+ ping: EngineServerPingQueryParams;
126
+ time: EngineServerTimeQueryParams;
127
+ }
128
+
129
+ export type EngineServerEdgeControlRequestType =
130
+ keyof EngineServerEdgeControlRequestByType;
131
+
132
+ export interface EngineServerPingResponse {
133
+ status: 'success';
134
+ method: 'pong';
135
+ id?: number;
136
+ // Epoch ms
137
+ server_time: string;
138
+ // Echoed from the request, only present when the request provided it
139
+ client_time?: string;
140
+ }
141
+
142
+ export interface EngineServerControlTimeResponse {
143
+ status: 'success';
144
+ method: 'time';
145
+ id?: number;
146
+ // Epoch ms
147
+ server_time: string;
148
+ }
149
+
150
+ export interface EngineServerEdgeControlResponseByType {
151
+ ping: EngineServerPingResponse;
152
+ time: EngineServerControlTimeResponse;
153
+ }
@@ -16,6 +16,7 @@ import {
16
16
  EngineNlpLockedBalance,
17
17
  EngineOrder,
18
18
  EnginePriceTickLiquidity,
19
+ EngineServerCachedBboHistoryResponse,
19
20
  EngineServerIsolatedPositionsResponse,
20
21
  EngineServerMarketPrice,
21
22
  EngineServerNlpLockedBalancesResponse,
@@ -30,6 +31,7 @@ import {
30
31
  EngineServerSymbolsResponse,
31
32
  EngineSymbol,
32
33
  EngineSymbolsResponse,
34
+ GetEngineCachedBboHistoryResponse,
33
35
  GetEngineIsolatedPositionsResponse,
34
36
  GetEngineNlpLockedBalancesResponse,
35
37
  GetEngineNlpPoolInfoResponse,
@@ -317,6 +319,21 @@ export function mapEngineMarketPrice(
317
319
  };
318
320
  }
319
321
 
322
+ export function mapEngineBboHistory(
323
+ baseResponse: EngineServerCachedBboHistoryResponse,
324
+ ): GetEngineCachedBboHistoryResponse {
325
+ return {
326
+ intervalMs: baseResponse.interval_ms,
327
+ limit: baseResponse.limit,
328
+ history: baseResponse.history.map((item) => ({
329
+ productId: item.product_id,
330
+ timestamp: Number(item.timestamp),
331
+ bid: removeDecimals(item.bid),
332
+ ask: removeDecimals(item.ask),
333
+ })),
334
+ };
335
+ }
336
+
320
337
  export function mapEngineServerNlpLockedBalances(
321
338
  baseResponse: EngineServerNlpLockedBalancesResponse,
322
339
  ): GetEngineNlpLockedBalancesResponse {
@@ -1 +0,0 @@
1
- {"version":3,"file":"EngineBaseClient-DOOXIhnZ.d.ts","names":[],"sources":["../src/src/EngineBaseClient.ts"],"mappings":";;;;;;;UAwBiB,gBAAA;EAEf,GAAA;EAEA,YAAA,GAAe,uBAAA;EAEf,wBAAA,GAA2B,uBAAuB;AAAA;AAAA,KAI/C,wBAAA,GAA2B,OAAO,CAAC,gCAAA;;;;cAS3B,gBAAA;EAAA,SACF,IAAA,EAAM,gBAAA;EAAA,SACN,aAAA,EAAe,aAAA;cAEZ,IAAA,EAAM,gBAAA;EAjBS;;AAAuB;AACnD;;EA8BQ,eAAA,CACL,wBAAA,EAA0B,uBAAA;EAKf,UAAA,CAAW,OAAA,YAAmB,OAAA;EAc9B,SAAA,CACX,MAAA,EAAQ,qBAAA,GACP,OAAA,CAAQ,uBAAA;EAxCA;;;;;;;EAwDE,KAAA,sBAA2B,4BAAA,CAAA,CACtC,WAAA,EAAa,YAAA,EACb,MAAA,EAAQ,8BAAA,CAA+B,YAAA,IACtC,OAAA,CAAQ,+BAAA,CAAgC,YAAA;EApBjC;;;;;;EA4CH,eAAA,sBAAqC,4BAAA,CAAA,CAC1C,WAAA,EAAa,YAAA,EACb,MAAA,EAAQ,8BAAA,CAA+B,YAAA,IACtC,wBAAA,CAAyB,YAAA;EA3BjB;;;;;;;;EA0CE,OAAA,sBAA6B,8BAAA,CAAA,CACxC,WAAA,EAAa,YAAA,EACb,MAAA,EAAQ,gCAAA,CAAiC,YAAA,IACxC,OAAA,CAAQ,gCAAA,CAAiC,YAAA;EAHF;;;;;;EAsBnC,iBAAA,sBAAuC,8BAAA,CAAA,CAC5C,WAAA,EAAa,YAAA,EACb,MAAA,EAAQ,gCAAA,CAAiC,YAAA,IACxC,wBAAA;EAH2C;;;;;;;;;EAkBjC,IAAA,WAAe,mBAAA,CAAA,CAC1B,WAAA,EAAa,CAAA,EACb,iBAAA,UACA,OAAA,UACA,MAAA,EAAQ,2BAAA,CAA4B,CAAA,IAAE,OAAA;EAAA,QAmBhC,mBAAA;EAAA,QAQA,iBAAA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EngineBaseClient-L1ue7jBx.d.cts","names":[],"sources":["../src/src/EngineBaseClient.ts"],"mappings":";;;;;;;UAwBiB,gBAAA;EAEf,GAAA;EAEA,YAAA,GAAe,uBAAA;EAEf,wBAAA,GAA2B,uBAAuB;AAAA;AAAA,KAI/C,wBAAA,GAA2B,OAAO,CAAC,gCAAA;;;;cAS3B,gBAAA;EAAA,SACF,IAAA,EAAM,gBAAA;EAAA,SACN,aAAA,EAAe,aAAA;cAEZ,IAAA,EAAM,gBAAA;EAjBS;;AAAuB;AACnD;;EA8BQ,eAAA,CACL,wBAAA,EAA0B,uBAAA;EAKf,UAAA,CAAW,OAAA,YAAmB,OAAA;EAc9B,SAAA,CACX,MAAA,EAAQ,qBAAA,GACP,OAAA,CAAQ,uBAAA;EAxCA;;;;;;;EAwDE,KAAA,sBAA2B,4BAAA,CAAA,CACtC,WAAA,EAAa,YAAA,EACb,MAAA,EAAQ,8BAAA,CAA+B,YAAA,IACtC,OAAA,CAAQ,+BAAA,CAAgC,YAAA;EApBjC;;;;;;EA4CH,eAAA,sBAAqC,4BAAA,CAAA,CAC1C,WAAA,EAAa,YAAA,EACb,MAAA,EAAQ,8BAAA,CAA+B,YAAA,IACtC,wBAAA,CAAyB,YAAA;EA3BjB;;;;;;;;EA0CE,OAAA,sBAA6B,8BAAA,CAAA,CACxC,WAAA,EAAa,YAAA,EACb,MAAA,EAAQ,gCAAA,CAAiC,YAAA,IACxC,OAAA,CAAQ,gCAAA,CAAiC,YAAA;EAHF;;;;;;EAsBnC,iBAAA,sBAAuC,8BAAA,CAAA,CAC5C,WAAA,EAAa,YAAA,EACb,MAAA,EAAQ,gCAAA,CAAiC,YAAA,IACxC,wBAAA;EAH2C;;;;;;;;;EAkBjC,IAAA,WAAe,mBAAA,CAAA,CAC1B,WAAA,EAAa,CAAA,EACb,iBAAA,UACA,OAAA,UACA,MAAA,EAAQ,2BAAA,CAA4B,CAAA,IAAE,OAAA;EAAA,QAmBhC,mBAAA;EAAA,QAQA,iBAAA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EngineBaseClient-Uc1D8ftx.cjs","names":["WalletNotProvidedError","successResponse","EngineServerFailureError"],"sources":["../src/EngineBaseClient.ts"],"sourcesContent":["import {\n getSignedTransactionRequest,\n SignableRequestType,\n SignableRequestTypeToParams,\n WalletClientWithAccount,\n WalletNotProvidedError,\n} from '@nadohq/shared';\nimport axios, { AxiosInstance, AxiosResponse } from 'axios';\nimport {\n EngineServerExecuteRequestByType,\n EngineServerExecuteRequestType,\n EngineServerExecuteResult,\n EngineServerExecuteSuccessResult,\n EngineServerQueryRequest,\n EngineServerQueryRequestByType,\n EngineServerQueryRequestType,\n EngineServerQueryResponse,\n EngineServerQueryResponseByType,\n EngineServerQuerySuccessResponse,\n GetEngineNoncesParams,\n GetEngineNoncesResponse,\n} from './types';\nimport { EngineServerFailureError } from './types/EngineServerFailureError';\n\nexport interface EngineClientOpts {\n // Server URL\n url: string;\n // Wallet client for EIP712 signing\n walletClient?: WalletClientWithAccount;\n // Linked signer registered through the engine, if provided, execute requests will use this signer\n linkedSignerWalletClient?: WalletClientWithAccount;\n}\n\n// Only 1 key can be defined per execute request\ntype EngineExecuteRequestBody = Partial<EngineServerExecuteRequestByType>;\n\ntype EngineQueryRequestResponse<\n T extends EngineServerQueryRequestType = EngineServerQueryRequestType,\n> = EngineServerQueryResponse<T>;\n\n/**\n * Base client for all engine requests\n */\nexport class EngineBaseClient {\n readonly opts: EngineClientOpts;\n readonly axiosInstance: AxiosInstance;\n\n constructor(opts: EngineClientOpts) {\n this.opts = opts;\n this.axiosInstance = axios.create({\n withCredentials: true,\n // We have custom logic to validate response status and create an appropriate error\n validateStatus: () => true,\n });\n }\n\n /**\n * Sets the linked signer for execute requests\n *\n * @param linkedSignerWalletClient The linkedSigner to use for all signatures. Set to null to revert to the chain signer\n */\n public setLinkedSigner(\n linkedSignerWalletClient: WalletClientWithAccount | null,\n ) {\n this.opts.linkedSignerWalletClient = linkedSignerWalletClient ?? undefined;\n }\n\n public async getTxNonce(address?: string): Promise<string> {\n const addr = address ?? this.opts.walletClient?.account.address;\n\n if (!addr) {\n throw new WalletNotProvidedError();\n }\n\n return (\n await this.getNonces({\n address: addr,\n })\n ).txNonce;\n }\n\n public async getNonces(\n params: GetEngineNoncesParams,\n ): Promise<GetEngineNoncesResponse> {\n const baseResp = await this.query('nonces', params);\n\n return {\n orderNonce: baseResp.order_nonce,\n txNonce: baseResp.tx_nonce,\n };\n }\n\n /**\n * Queries the engine, all query params are stringified into the query string\n *\n * @param requestType\n * @param params\n * @public\n */\n public async query<TRequestType extends EngineServerQueryRequestType>(\n requestType: TRequestType,\n params: EngineServerQueryRequestByType[TRequestType],\n ): Promise<EngineServerQueryResponseByType[TRequestType]> {\n const request = this.getQueryRequest(requestType, params);\n const response = await this.axiosInstance.post<EngineQueryRequestResponse>(\n `${this.opts.url}/query`,\n request,\n );\n\n this.checkResponseStatus(response);\n this.checkServerStatus(response);\n\n // checkServerStatus throws on failure responses so the cast to the success response is acceptable here\n const successResponse = response as AxiosResponse<\n EngineServerQuerySuccessResponse<TRequestType>\n >;\n\n return successResponse.data.data;\n }\n\n /**\n * A simple, typechecked fn for constructing a query request in the format expected by the server.\n *\n * @param requestType\n * @param params\n */\n public getQueryRequest<TRequestType extends EngineServerQueryRequestType>(\n requestType: TRequestType,\n params: EngineServerQueryRequestByType[TRequestType],\n ): EngineServerQueryRequest<TRequestType> {\n return {\n type: requestType,\n ...params,\n };\n }\n\n /**\n * POSTs an execute message to the engine and returns the successful response. Throws the failure response wrapped\n * in an EngineServerFailureError on failure.\n *\n * @param requestType\n * @param params\n * @public\n */\n public async execute<TRequestType extends EngineServerExecuteRequestType>(\n requestType: TRequestType,\n params: EngineServerExecuteRequestByType[TRequestType],\n ): Promise<EngineServerExecuteSuccessResult<TRequestType>> {\n const reqBody = this.getExecuteRequest(requestType, params);\n const response = await this.axiosInstance.post<\n EngineServerExecuteResult<TRequestType>\n >(`${this.opts.url}/execute`, reqBody);\n\n this.checkResponseStatus(response);\n this.checkServerStatus(response);\n\n // checkServerStatus catches the failure result and throws the error, so the cast to the success response is acceptable here\n return response.data as EngineServerExecuteSuccessResult<TRequestType>;\n }\n\n /**\n * A simple, typechecked fn for constructing an execute request in the format expected by the server.\n *\n * @param requestType\n * @param params\n */\n public getExecuteRequest<TRequestType extends EngineServerExecuteRequestType>(\n requestType: TRequestType,\n params: EngineServerExecuteRequestByType[TRequestType],\n ): EngineExecuteRequestBody {\n return {\n [requestType]: params,\n };\n }\n\n /**\n * Signs a given request with the signer provided to the engine\n *\n * @param requestType\n * @param verifyingContract\n * @param chainId\n * @param params\n * @public\n */\n public async sign<T extends SignableRequestType>(\n requestType: T,\n verifyingContract: string,\n chainId: number,\n params: SignableRequestTypeToParams[T],\n ) {\n // Use the linked signer if provided, otherwise use the default signer provided to the engine\n const walletClient =\n this.opts.linkedSignerWalletClient ?? this.opts.walletClient;\n\n if (!walletClient) {\n throw new WalletNotProvidedError();\n }\n\n return getSignedTransactionRequest({\n chainId,\n requestParams: params,\n requestType,\n walletClient,\n verifyingContract,\n });\n }\n\n private checkResponseStatus(response: AxiosResponse) {\n if (response.status !== 200 || !response.data) {\n throw Error(\n `Unexpected response from server: ${response.status} ${response.statusText}. Data: ${response.data}`,\n );\n }\n }\n\n private checkServerStatus(\n response: AxiosResponse<\n EngineServerExecuteResult | EngineQueryRequestResponse\n >,\n ) {\n if (response.data.status !== 'success') {\n throw new EngineServerFailureError(response.data);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,IAAa,mBAAb,MAA8B;CAI5B,YAAY,MAAwB;EAClC,KAAK,OAAO;EACZ,KAAK,gBAAgB,MAAA,QAAM,OAAO;GAChC,iBAAiB;GAEjB,sBAAsB;EACxB,CAAC;CACH;;;;;;CAOA,gBACE,0BACA;EACA,KAAK,KAAK,2BAA2B,4BAA4B,KAAA;CACnE;CAEA,MAAa,WAAW,SAAmC;EACzD,MAAM,OAAO,WAAW,KAAK,KAAK,cAAc,QAAQ;EAExD,IAAI,CAAC,MACH,MAAM,IAAIA,eAAAA,uBAAuB;EAGnC,QACE,MAAM,KAAK,UAAU,EACnB,SAAS,KACX,CAAC,GACD;CACJ;CAEA,MAAa,UACX,QACkC;EAClC,MAAM,WAAW,MAAM,KAAK,MAAM,UAAU,MAAM;EAElD,OAAO;GACL,YAAY,SAAS;GACrB,SAAS,SAAS;EACpB;CACF;;;;;;;;CASA,MAAa,MACX,aACA,QACwD;EACxD,MAAM,UAAU,KAAK,gBAAgB,aAAa,MAAM;EACxD,MAAM,WAAW,MAAM,KAAK,cAAc,KACxC,GAAG,KAAK,KAAK,IAAI,SACjB,OACF;EAEA,KAAK,oBAAoB,QAAQ;EACjC,KAAK,kBAAkB,QAAQ;EAO/B,OAAOC,SAAgB,KAAK;CAC9B;;;;;;;CAQA,gBACE,aACA,QACwC;EACxC,OAAO;GACL,MAAM;GACN,GAAG;EACL;CACF;;;;;;;;;CAUA,MAAa,QACX,aACA,QACyD;EACzD,MAAM,UAAU,KAAK,kBAAkB,aAAa,MAAM;EAC1D,MAAM,WAAW,MAAM,KAAK,cAAc,KAExC,GAAG,KAAK,KAAK,IAAI,WAAW,OAAO;EAErC,KAAK,oBAAoB,QAAQ;EACjC,KAAK,kBAAkB,QAAQ;EAG/B,OAAO,SAAS;CAClB;;;;;;;CAQA,kBACE,aACA,QAC0B;EAC1B,OAAO,GACJ,cAAc,OACjB;CACF;;;;;;;;;;CAWA,MAAa,KACX,aACA,mBACA,SACA,QACA;EAEA,MAAM,eACJ,KAAK,KAAK,4BAA4B,KAAK,KAAK;EAElD,IAAI,CAAC,cACH,MAAM,IAAID,eAAAA,uBAAuB;EAGnC,QAAA,GAAA,eAAA,6BAAmC;GACjC;GACA,eAAe;GACf;GACA;GACA;EACF,CAAC;CACH;CAEA,oBAA4B,UAAyB;EACnD,IAAI,SAAS,WAAW,OAAO,CAAC,SAAS,MACvC,MAAM,MACJ,oCAAoC,SAAS,OAAO,GAAG,SAAS,WAAW,UAAU,SAAS,MAChG;CAEJ;CAEA,kBACE,UAGA;EACA,IAAI,SAAS,KAAK,WAAW,WAC3B,MAAM,IAAIE,uCAAAA,yBAAyB,SAAS,IAAI;CAEpD;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryDataMappers-BguxA579.d.ts","names":[],"sources":["../src/utils/src/utils/queryDataMappers.ts"],"mappings":";;;;;;iBAwCgB,4BAAA,CACd,IAAA,EAAM,8BAAA,GACL,wBAAwB;AAAA,iBAOX,oBAAA,CACd,KAAA,EAAO,yBAAA,GACN,WAAW;AAAA,iBAiBE,0BAAA,CACd,OAAA,EAAS,uBAAA,GACR,UAAU;AAAA,iBAuCG,0BAAA,CACd,OAAA,EAAS,uBAAA,GACR,UAAU;AAAA,iBA8BG,yCAAA,CACd,6BAAA,aACC,0BAA0B;AAAA,iBAQb,oBAAA,CACd,YAAA,EAAc,kCAAA,GACb,kCAAkC;AAAA,iBAkFrB,gCAAA,CACd,YAAA,EAAc,qCAAA,GACb,kCAAkC;AAAA,iBAoCrB,sBAAA,CACd,YAAA,EAAc,2BAAA,GACb,qBAAqB;AAAA,iBAWR,qBAAA,CACd,kBAAA,EAAoB,kBAAA,GACnB,YAAY;AAAA,iBAqBC,oBAAA,CACd,YAAA,EAAc,uBAAA,GACb,iBAAiB;AAAA,iBAQJ,gCAAA,CACd,YAAA,EAAc,qCAAA,GACb,kCAAkC;AAAA,iBAqBrB,0BAAA,CACd,YAAA,EAAc,+BAAA,GACb,4BAA4B"}