@nadohq/trigger-client 0.1.0-alpha.2 → 0.1.0-alpha.21

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 (69) hide show
  1. package/dist/TriggerClient.cjs +41 -17
  2. package/dist/TriggerClient.cjs.map +1 -1
  3. package/dist/TriggerClient.d.cts +5 -3
  4. package/dist/TriggerClient.d.ts +5 -3
  5. package/dist/TriggerClient.js +39 -10
  6. package/dist/TriggerClient.js.map +1 -1
  7. package/dist/dataMappers.cjs +170 -67
  8. package/dist/dataMappers.cjs.map +1 -1
  9. package/dist/dataMappers.d.cts +22 -8
  10. package/dist/dataMappers.d.ts +22 -8
  11. package/dist/dataMappers.js +171 -66
  12. package/dist/dataMappers.js.map +1 -1
  13. package/dist/endpoints.cjs +2 -2
  14. package/dist/endpoints.cjs.map +1 -1
  15. package/dist/endpoints.d.cts +1 -1
  16. package/dist/endpoints.d.ts +1 -1
  17. package/dist/endpoints.js +2 -2
  18. package/dist/endpoints.js.map +1 -1
  19. package/dist/index.cjs +4 -4
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +9 -8
  22. package/dist/index.d.ts +9 -8
  23. package/dist/index.js +2 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/types/TriggerServerFailureError.cjs +1 -1
  26. package/dist/types/TriggerServerFailureError.cjs.map +1 -1
  27. package/dist/types/TriggerServerFailureError.d.cts +3 -2
  28. package/dist/types/TriggerServerFailureError.d.ts +3 -2
  29. package/dist/types/TriggerServerFailureError.js +1 -1
  30. package/dist/types/TriggerServerFailureError.js.map +1 -1
  31. package/dist/types/clientModelTypes.cjs +19 -0
  32. package/dist/types/clientModelTypes.cjs.map +1 -0
  33. package/dist/types/clientModelTypes.d.cts +67 -0
  34. package/dist/types/clientModelTypes.d.ts +67 -0
  35. package/dist/types/clientModelTypes.js +1 -0
  36. package/dist/types/clientModelTypes.js.map +1 -0
  37. package/dist/types/clientTypes.cjs.map +1 -1
  38. package/dist/types/clientTypes.d.cts +42 -24
  39. package/dist/types/clientTypes.d.ts +42 -24
  40. package/dist/types/index.cjs +4 -0
  41. package/dist/types/index.cjs.map +1 -1
  42. package/dist/types/index.d.cts +6 -5
  43. package/dist/types/index.d.ts +6 -5
  44. package/dist/types/index.js +2 -0
  45. package/dist/types/index.js.map +1 -1
  46. package/dist/types/serverExecuteTypes.cjs.map +1 -1
  47. package/dist/types/serverExecuteTypes.d.cts +4 -15
  48. package/dist/types/serverExecuteTypes.d.ts +4 -15
  49. package/dist/types/serverModelTypes.cjs +19 -0
  50. package/dist/types/serverModelTypes.cjs.map +1 -0
  51. package/dist/types/serverModelTypes.d.cts +42 -0
  52. package/dist/types/serverModelTypes.d.ts +42 -0
  53. package/dist/types/serverModelTypes.js +1 -0
  54. package/dist/types/serverModelTypes.js.map +1 -0
  55. package/dist/types/serverQueryTypes.cjs.map +1 -1
  56. package/dist/types/serverQueryTypes.d.cts +48 -7
  57. package/dist/types/serverQueryTypes.d.ts +48 -7
  58. package/package.json +4 -5
  59. package/src/TriggerClient.ts +48 -9
  60. package/src/dataMappers.ts +225 -71
  61. package/src/endpoints.ts +2 -2
  62. package/src/index.ts +2 -2
  63. package/src/types/TriggerServerFailureError.ts +2 -2
  64. package/src/types/clientModelTypes.ts +95 -0
  65. package/src/types/clientTypes.ts +61 -41
  66. package/src/types/index.ts +2 -0
  67. package/src/types/serverExecuteTypes.ts +3 -24
  68. package/src/types/serverModelTypes.ts +55 -0
  69. package/src/types/serverQueryTypes.ts +75 -9
@@ -21,114 +21,217 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var dataMappers_exports = {};
22
22
  __export(dataMappers_exports, {
23
23
  mapServerOrderInfo: () => mapServerOrderInfo,
24
- mapServerTriggerCriteria: () => mapServerTriggerCriteria,
25
24
  mapTriggerCriteria: () => mapTriggerCriteria,
26
- mapTriggerServerOrderStatus: () => mapTriggerServerOrderStatus
25
+ mapTwapExecutionStatus: () => mapTwapExecutionStatus
27
26
  });
28
27
  module.exports = __toCommonJS(dataMappers_exports);
29
- var import_utils = require("@nadohq/utils");
28
+ var import_shared = require("@nadohq/shared");
29
+ function mapTriggerCriteria(criteria) {
30
+ switch (criteria.type) {
31
+ case "price":
32
+ return {
33
+ price_trigger: mapPriceTriggerCriteria(criteria.criteria)
34
+ };
35
+ case "time":
36
+ return {
37
+ time_trigger: mapTimeTriggerCriteria(criteria.criteria)
38
+ };
39
+ }
40
+ }
41
+ function mapPriceTriggerCriteria(criteria) {
42
+ const priceValue = (0, import_shared.toIntegerString)((0, import_shared.addDecimals)(criteria.triggerPrice));
43
+ const price_requirement = (() => {
44
+ switch (criteria.type) {
45
+ case "oracle_price_above":
46
+ return { oracle_price_above: priceValue };
47
+ case "oracle_price_below":
48
+ return { oracle_price_below: priceValue };
49
+ case "last_price_above":
50
+ return { last_price_above: priceValue };
51
+ case "last_price_below":
52
+ return { last_price_below: priceValue };
53
+ case "mid_price_above":
54
+ return { mid_price_above: priceValue };
55
+ case "mid_price_below":
56
+ return { mid_price_below: priceValue };
57
+ }
58
+ })();
59
+ return {
60
+ price_requirement,
61
+ dependency: criteria.dependency ? {
62
+ digest: criteria.dependency.digest,
63
+ on_partial_fill: criteria.dependency.onPartialFill
64
+ } : void 0
65
+ };
66
+ }
67
+ function mapTimeTriggerCriteria(criteria) {
68
+ return {
69
+ interval: Number(criteria.interval),
70
+ amounts: criteria.amounts?.map((amount) => (0, import_shared.toIntegerString)(amount))
71
+ };
72
+ }
73
+ function mapServerOrderInfo(info) {
74
+ const { order: serverOrder, status, updated_at, placed_at } = info;
75
+ const order = {
76
+ amount: (0, import_shared.toBigDecimal)(serverOrder.order.amount),
77
+ expiration: Number(serverOrder.order.expiration),
78
+ nonce: serverOrder.order.nonce,
79
+ price: (0, import_shared.removeDecimals)((0, import_shared.toBigDecimal)(serverOrder.order.priceX18)),
80
+ digest: serverOrder.digest,
81
+ productId: serverOrder.product_id,
82
+ triggerCriteria: mapServerTriggerCriteria(serverOrder.trigger),
83
+ appendix: (0, import_shared.unpackOrderAppendix)(serverOrder.order.appendix)
84
+ };
85
+ return {
86
+ serverOrder,
87
+ order,
88
+ status: mapTriggerServerOrderStatus(status),
89
+ updatedAt: updated_at,
90
+ placementTime: placed_at
91
+ };
92
+ }
30
93
  function mapTriggerServerOrderStatus(status) {
31
- if (status === "pending") {
94
+ if (status === "triggering") {
32
95
  return {
33
- type: "pending"
96
+ type: "triggering"
97
+ };
98
+ } else if (status === "waiting_price") {
99
+ return {
100
+ type: "waiting_price"
101
+ };
102
+ } else if (status === "waiting_dependency") {
103
+ return {
104
+ type: "waiting_dependency"
34
105
  };
35
106
  } else if ("cancelled" in status) {
36
107
  return {
37
108
  type: "cancelled",
38
109
  reason: status.cancelled
39
110
  };
111
+ } else if ("triggered" in status) {
112
+ return {
113
+ type: "triggered",
114
+ result: status.triggered
115
+ };
40
116
  } else if ("internal_error" in status) {
41
117
  return {
42
118
  type: "internal_error",
43
119
  error: status.internal_error
44
120
  };
45
- } else if ("triggered" in status) {
121
+ } else if ("twap_executing" in status) {
46
122
  return {
47
- type: "triggered",
48
- result: status.triggered
123
+ type: "twap_executing",
124
+ currentExecution: status.twap_executing.current_execution,
125
+ totalExecutions: status.twap_executing.total_executions
126
+ };
127
+ } else if ("twap_completed" in status) {
128
+ return {
129
+ type: "twap_completed",
130
+ executed: status.twap_completed.executed,
131
+ total: status.twap_completed.total
49
132
  };
50
133
  }
51
134
  throw Error(`Unknown trigger order status: ${JSON.stringify(status)}`);
52
135
  }
53
- function mapTriggerCriteria(criteria) {
54
- const priceValue = (0, import_utils.toIntegerString)((0, import_utils.addDecimals)(criteria.triggerPrice));
55
- switch (criteria.type) {
56
- case "oracle_price_above":
57
- return { price_above: priceValue };
58
- case "oracle_price_below":
59
- return { price_below: priceValue };
60
- case "last_price_above":
61
- return { last_price_above: priceValue };
62
- case "last_price_below":
63
- return { last_price_below: priceValue };
64
- case "mid_price_above":
65
- return { mid_price_above: priceValue };
66
- case "mid_price_below":
67
- return { mid_price_below: priceValue };
68
- }
69
- }
70
136
  function mapServerTriggerCriteria(criteria) {
71
- if ("price_above" in criteria) {
137
+ if ("price_trigger" in criteria) {
72
138
  return {
73
- type: "oracle_price_above",
74
- triggerPrice: (0, import_utils.removeDecimals)(criteria.price_above)
139
+ type: "price",
140
+ criteria: mapServerPriceTriggerCriteria(criteria.price_trigger)
75
141
  };
76
142
  }
77
- if ("price_below" in criteria) {
143
+ if ("time_trigger" in criteria) {
78
144
  return {
79
- type: "oracle_price_below",
80
- triggerPrice: (0, import_utils.removeDecimals)(criteria.price_below)
145
+ type: "time",
146
+ criteria: mapServerTimeTriggerCriteria(criteria.time_trigger)
81
147
  };
82
148
  }
83
- if ("last_price_above" in criteria) {
149
+ throw new Error(`Unknown trigger criteria: ${JSON.stringify(criteria)}`);
150
+ }
151
+ function mapServerPriceTriggerCriteria(serverCriteria) {
152
+ const { price_requirement, dependency } = serverCriteria;
153
+ const { type, triggerPrice } = (() => {
154
+ if ("oracle_price_above" in price_requirement) {
155
+ return {
156
+ type: "oracle_price_above",
157
+ triggerPrice: price_requirement.oracle_price_above
158
+ };
159
+ } else if ("oracle_price_below" in price_requirement) {
160
+ return {
161
+ type: "oracle_price_below",
162
+ triggerPrice: price_requirement.oracle_price_below
163
+ };
164
+ } else if ("last_price_above" in price_requirement) {
165
+ return {
166
+ type: "last_price_above",
167
+ triggerPrice: price_requirement.last_price_above
168
+ };
169
+ } else if ("last_price_below" in price_requirement) {
170
+ return {
171
+ type: "last_price_below",
172
+ triggerPrice: price_requirement.last_price_below
173
+ };
174
+ } else if ("mid_price_above" in price_requirement) {
175
+ return {
176
+ type: "mid_price_above",
177
+ triggerPrice: price_requirement.mid_price_above
178
+ };
179
+ } else if ("mid_price_below" in price_requirement) {
180
+ return {
181
+ type: "mid_price_below",
182
+ triggerPrice: price_requirement.mid_price_below
183
+ };
184
+ } else {
185
+ throw new Error(
186
+ `Unknown price requirement: ${JSON.stringify(price_requirement)}`
187
+ );
188
+ }
189
+ })();
190
+ return {
191
+ type,
192
+ triggerPrice: (0, import_shared.removeDecimals)(triggerPrice),
193
+ dependency: dependency ? {
194
+ digest: dependency.digest,
195
+ onPartialFill: dependency.on_partial_fill
196
+ } : void 0
197
+ };
198
+ }
199
+ function mapServerTimeTriggerCriteria(serverCriteria) {
200
+ return {
201
+ interval: (0, import_shared.toBigDecimal)(serverCriteria.interval),
202
+ amounts: serverCriteria.amounts?.map(
203
+ (amount) => (0, import_shared.toBigDecimal)(amount)
204
+ )
205
+ };
206
+ }
207
+ function mapTwapExecutionStatus(status) {
208
+ if (status === "pending") {
84
209
  return {
85
- type: "last_price_above",
86
- triggerPrice: (0, import_utils.removeDecimals)(criteria.last_price_above)
210
+ type: "pending"
87
211
  };
88
- }
89
- if ("last_price_below" in criteria) {
212
+ } else if ("executed" in status) {
90
213
  return {
91
- type: "last_price_below",
92
- triggerPrice: (0, import_utils.removeDecimals)(criteria.last_price_below)
214
+ type: "executed",
215
+ executedTime: status.executed.executed_time,
216
+ executeResponse: status.executed.execute_response
93
217
  };
94
- }
95
- if ("mid_price_above" in criteria) {
218
+ } else if ("failed" in status) {
96
219
  return {
97
- type: "mid_price_above",
98
- triggerPrice: (0, import_utils.removeDecimals)(criteria.mid_price_above)
220
+ type: "failed",
221
+ error: status.failed
99
222
  };
100
- }
101
- if ("mid_price_below" in criteria) {
223
+ } else if ("cancelled" in status) {
102
224
  return {
103
- type: "mid_price_below",
104
- triggerPrice: (0, import_utils.removeDecimals)(criteria.mid_price_below)
225
+ type: "cancelled",
226
+ reason: status.cancelled
105
227
  };
106
228
  }
107
- throw new Error(`Unknown trigger criteria: ${JSON.stringify(criteria)}`);
108
- }
109
- function mapServerOrderInfo(info) {
110
- const { order: serverOrder, status, updated_at } = info;
111
- const order = {
112
- amount: (0, import_utils.toBigDecimal)(serverOrder.order.amount),
113
- expiration: (0, import_utils.toBigDecimal)(serverOrder.order.expiration),
114
- nonce: serverOrder.order.nonce,
115
- price: (0, import_utils.removeDecimals)((0, import_utils.toBigDecimal)(serverOrder.order.priceX18)),
116
- digest: serverOrder.digest,
117
- productId: serverOrder.product_id,
118
- triggerCriteria: mapServerTriggerCriteria(serverOrder.trigger)
119
- };
120
- return {
121
- serverOrder,
122
- order,
123
- status: mapTriggerServerOrderStatus(status),
124
- updatedAt: updated_at
125
- };
229
+ throw Error(`Unknown TWAP execution status: ${JSON.stringify(status)}`);
126
230
  }
127
231
  // Annotate the CommonJS export names for ESM import in node:
128
232
  0 && (module.exports = {
129
233
  mapServerOrderInfo,
130
- mapServerTriggerCriteria,
131
234
  mapTriggerCriteria,
132
- mapTriggerServerOrderStatus
235
+ mapTwapExecutionStatus
133
236
  });
134
237
  //# sourceMappingURL=dataMappers.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dataMappers.ts"],"sourcesContent":["import {\n addDecimals,\n removeDecimals,\n toBigDecimal,\n toIntegerString,\n} from '@nadohq/utils';\nimport {\n TriggerCriteria,\n TriggerOrder,\n TriggerOrderInfo,\n TriggerOrderStatus,\n TriggerServerOrderInfo,\n TriggerServerOrderStatus,\n TriggerServerTriggerCriteria,\n} from './types';\n\nexport function mapTriggerServerOrderStatus(\n status: TriggerServerOrderStatus,\n): TriggerOrderStatus {\n if (status === 'pending') {\n return {\n type: 'pending',\n };\n } else if ('cancelled' in status) {\n return {\n type: 'cancelled',\n reason: status.cancelled,\n };\n } else if ('internal_error' in status) {\n return {\n type: 'internal_error',\n error: status.internal_error,\n };\n } else if ('triggered' in status) {\n return {\n type: 'triggered',\n result: status.triggered,\n };\n }\n throw Error(`Unknown trigger order status: ${JSON.stringify(status)}`);\n}\n\nexport function mapTriggerCriteria(\n criteria: TriggerCriteria,\n): TriggerServerTriggerCriteria {\n const priceValue = toIntegerString(addDecimals(criteria.triggerPrice));\n switch (criteria.type) {\n case 'oracle_price_above':\n return { price_above: priceValue };\n case 'oracle_price_below':\n return { price_below: priceValue };\n case 'last_price_above':\n return { last_price_above: priceValue };\n case 'last_price_below':\n return { last_price_below: priceValue };\n case 'mid_price_above':\n return { mid_price_above: priceValue };\n case 'mid_price_below':\n return { mid_price_below: priceValue };\n }\n}\n\nexport function mapServerTriggerCriteria(\n criteria: TriggerServerTriggerCriteria,\n): TriggerCriteria {\n if ('price_above' in criteria) {\n return {\n type: 'oracle_price_above',\n triggerPrice: removeDecimals(criteria.price_above),\n };\n }\n if ('price_below' in criteria) {\n return {\n type: 'oracle_price_below',\n triggerPrice: removeDecimals(criteria.price_below),\n };\n }\n if ('last_price_above' in criteria) {\n return {\n type: 'last_price_above',\n triggerPrice: removeDecimals(criteria.last_price_above),\n };\n }\n if ('last_price_below' in criteria) {\n return {\n type: 'last_price_below',\n triggerPrice: removeDecimals(criteria.last_price_below),\n };\n }\n if ('mid_price_above' in criteria) {\n return {\n type: 'mid_price_above',\n triggerPrice: removeDecimals(criteria.mid_price_above),\n };\n }\n if ('mid_price_below' in criteria) {\n return {\n type: 'mid_price_below',\n triggerPrice: removeDecimals(criteria.mid_price_below),\n };\n }\n throw new Error(`Unknown trigger criteria: ${JSON.stringify(criteria)}`);\n}\n\nexport function mapServerOrderInfo(\n info: TriggerServerOrderInfo,\n): TriggerOrderInfo {\n const { order: serverOrder, status, updated_at } = info;\n const order: TriggerOrder = {\n amount: toBigDecimal(serverOrder.order.amount),\n expiration: toBigDecimal(serverOrder.order.expiration),\n nonce: serverOrder.order.nonce,\n price: removeDecimals(toBigDecimal(serverOrder.order.priceX18)),\n digest: serverOrder.digest,\n productId: serverOrder.product_id,\n triggerCriteria: mapServerTriggerCriteria(serverOrder.trigger),\n };\n return {\n serverOrder,\n order,\n status: mapTriggerServerOrderStatus(status),\n updatedAt: updated_at,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAKO;AAWA,SAAS,4BACd,QACoB;AACpB,MAAI,WAAW,WAAW;AACxB,WAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,EACF,WAAW,eAAe,QAAQ;AAChC,WAAO;AAAA,MACL,MAAM;AAAA,MACN,QAAQ,OAAO;AAAA,IACjB;AAAA,EACF,WAAW,oBAAoB,QAAQ;AACrC,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO,OAAO;AAAA,IAChB;AAAA,EACF,WAAW,eAAe,QAAQ;AAChC,WAAO;AAAA,MACL,MAAM;AAAA,MACN,QAAQ,OAAO;AAAA,IACjB;AAAA,EACF;AACA,QAAM,MAAM,iCAAiC,KAAK,UAAU,MAAM,CAAC,EAAE;AACvE;AAEO,SAAS,mBACd,UAC8B;AAC9B,QAAM,iBAAa,kCAAgB,0BAAY,SAAS,YAAY,CAAC;AACrE,UAAQ,SAAS,MAAM;AAAA,IACrB,KAAK;AACH,aAAO,EAAE,aAAa,WAAW;AAAA,IACnC,KAAK;AACH,aAAO,EAAE,aAAa,WAAW;AAAA,IACnC,KAAK;AACH,aAAO,EAAE,kBAAkB,WAAW;AAAA,IACxC,KAAK;AACH,aAAO,EAAE,kBAAkB,WAAW;AAAA,IACxC,KAAK;AACH,aAAO,EAAE,iBAAiB,WAAW;AAAA,IACvC,KAAK;AACH,aAAO,EAAE,iBAAiB,WAAW;AAAA,EACzC;AACF;AAEO,SAAS,yBACd,UACiB;AACjB,MAAI,iBAAiB,UAAU;AAC7B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,kBAAc,6BAAe,SAAS,WAAW;AAAA,IACnD;AAAA,EACF;AACA,MAAI,iBAAiB,UAAU;AAC7B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,kBAAc,6BAAe,SAAS,WAAW;AAAA,IACnD;AAAA,EACF;AACA,MAAI,sBAAsB,UAAU;AAClC,WAAO;AAAA,MACL,MAAM;AAAA,MACN,kBAAc,6BAAe,SAAS,gBAAgB;AAAA,IACxD;AAAA,EACF;AACA,MAAI,sBAAsB,UAAU;AAClC,WAAO;AAAA,MACL,MAAM;AAAA,MACN,kBAAc,6BAAe,SAAS,gBAAgB;AAAA,IACxD;AAAA,EACF;AACA,MAAI,qBAAqB,UAAU;AACjC,WAAO;AAAA,MACL,MAAM;AAAA,MACN,kBAAc,6BAAe,SAAS,eAAe;AAAA,IACvD;AAAA,EACF;AACA,MAAI,qBAAqB,UAAU;AACjC,WAAO;AAAA,MACL,MAAM;AAAA,MACN,kBAAc,6BAAe,SAAS,eAAe;AAAA,IACvD;AAAA,EACF;AACA,QAAM,IAAI,MAAM,6BAA6B,KAAK,UAAU,QAAQ,CAAC,EAAE;AACzE;AAEO,SAAS,mBACd,MACkB;AAClB,QAAM,EAAE,OAAO,aAAa,QAAQ,WAAW,IAAI;AACnD,QAAM,QAAsB;AAAA,IAC1B,YAAQ,2BAAa,YAAY,MAAM,MAAM;AAAA,IAC7C,gBAAY,2BAAa,YAAY,MAAM,UAAU;AAAA,IACrD,OAAO,YAAY,MAAM;AAAA,IACzB,WAAO,iCAAe,2BAAa,YAAY,MAAM,QAAQ,CAAC;AAAA,IAC9D,QAAQ,YAAY;AAAA,IACpB,WAAW,YAAY;AAAA,IACvB,iBAAiB,yBAAyB,YAAY,OAAO;AAAA,EAC/D;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,QAAQ,4BAA4B,MAAM;AAAA,IAC1C,WAAW;AAAA,EACb;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/dataMappers.ts"],"sourcesContent":["import {\n addDecimals,\n removeDecimals,\n toBigDecimal,\n toIntegerString,\n unpackOrderAppendix,\n} from '@nadohq/shared';\nimport {\n PriceTriggerCriteria,\n PriceTriggerRequirementType,\n TimeTriggerCriteria,\n TriggerCriteria,\n TriggerOrder,\n TriggerOrderInfo,\n TriggerOrderStatus,\n TriggerServerOrderInfo,\n TriggerServerOrderStatus,\n TriggerServerPriceRequirement,\n TriggerServerPriceTriggerCriteria,\n TriggerServerTimeTriggerCriteria,\n TriggerServerTriggerCriteria,\n TriggerServerTwapExecutionStatus,\n TwapExecutionStatus,\n} from './types';\n\n/**\n * Maps client-side trigger criteria to server-side trigger criteria format.\n * Converts price and time triggers to their respective server representations\n * with proper decimal scaling and field name transformations.\n *\n * @param criteria - The client-side trigger criteria (price or time based)\n * @returns The server-formatted trigger criteria ready for API transmission\n */\nexport function mapTriggerCriteria(\n criteria: TriggerCriteria,\n): TriggerServerTriggerCriteria {\n switch (criteria.type) {\n case 'price':\n return {\n price_trigger: mapPriceTriggerCriteria(criteria.criteria),\n };\n case 'time':\n return {\n time_trigger: mapTimeTriggerCriteria(criteria.criteria),\n };\n }\n}\n\nfunction mapPriceTriggerCriteria(\n criteria: PriceTriggerCriteria,\n): TriggerServerPriceTriggerCriteria {\n const priceValue = toIntegerString(addDecimals(criteria.triggerPrice));\n\n const price_requirement = ((): TriggerServerPriceRequirement => {\n switch (criteria.type) {\n case 'oracle_price_above':\n return { oracle_price_above: priceValue };\n case 'oracle_price_below':\n return { oracle_price_below: priceValue };\n case 'last_price_above':\n return { last_price_above: priceValue };\n case 'last_price_below':\n return { last_price_below: priceValue };\n case 'mid_price_above':\n return { mid_price_above: priceValue };\n case 'mid_price_below':\n return { mid_price_below: priceValue };\n }\n })();\n\n return {\n price_requirement,\n dependency: criteria.dependency\n ? {\n digest: criteria.dependency.digest,\n on_partial_fill: criteria.dependency.onPartialFill,\n }\n : undefined,\n };\n}\n\nfunction mapTimeTriggerCriteria(\n criteria: TimeTriggerCriteria,\n): TriggerServerTimeTriggerCriteria {\n return {\n interval: Number(criteria.interval),\n amounts: criteria.amounts?.map((amount) => toIntegerString(amount)),\n };\n}\n\n/**\n * Maps complete server-side trigger order information to client-side format.\n *\n * @param info - The complete server-side trigger order information including order, status, and timestamps\n * @returns The client-side trigger order information with converted values and normalized structure\n */\nexport function mapServerOrderInfo(\n info: TriggerServerOrderInfo,\n): TriggerOrderInfo {\n const { order: serverOrder, status, updated_at, placed_at } = info;\n const order: TriggerOrder = {\n amount: toBigDecimal(serverOrder.order.amount),\n expiration: Number(serverOrder.order.expiration),\n nonce: serverOrder.order.nonce,\n price: removeDecimals(toBigDecimal(serverOrder.order.priceX18)),\n digest: serverOrder.digest,\n productId: serverOrder.product_id,\n triggerCriteria: mapServerTriggerCriteria(serverOrder.trigger),\n appendix: unpackOrderAppendix(serverOrder.order.appendix),\n };\n return {\n serverOrder,\n order,\n status: mapTriggerServerOrderStatus(status),\n updatedAt: updated_at,\n placementTime: placed_at,\n };\n}\n\nfunction mapTriggerServerOrderStatus(\n status: TriggerServerOrderStatus,\n): TriggerOrderStatus {\n if (status === 'triggering') {\n return {\n type: 'triggering',\n };\n } else if (status === 'waiting_price') {\n return {\n type: 'waiting_price',\n };\n } else if (status === 'waiting_dependency') {\n return {\n type: 'waiting_dependency',\n };\n } else if ('cancelled' in status) {\n return {\n type: 'cancelled',\n reason: status.cancelled,\n };\n } else if ('triggered' in status) {\n return {\n type: 'triggered',\n result: status.triggered,\n };\n } else if ('internal_error' in status) {\n return {\n type: 'internal_error',\n error: status.internal_error,\n };\n } else if ('twap_executing' in status) {\n return {\n type: 'twap_executing',\n currentExecution: status.twap_executing.current_execution,\n totalExecutions: status.twap_executing.total_executions,\n };\n } else if ('twap_completed' in status) {\n return {\n type: 'twap_completed',\n executed: status.twap_completed.executed,\n total: status.twap_completed.total,\n };\n }\n throw Error(`Unknown trigger order status: ${JSON.stringify(status)}`);\n}\n\nfunction mapServerTriggerCriteria(\n criteria: TriggerServerTriggerCriteria,\n): TriggerCriteria {\n if ('price_trigger' in criteria) {\n return {\n type: 'price',\n criteria: mapServerPriceTriggerCriteria(criteria.price_trigger),\n };\n }\n if ('time_trigger' in criteria) {\n return {\n type: 'time',\n criteria: mapServerTimeTriggerCriteria(criteria.time_trigger),\n };\n }\n throw new Error(`Unknown trigger criteria: ${JSON.stringify(criteria)}`);\n}\n\nfunction mapServerPriceTriggerCriteria(\n serverCriteria: TriggerServerPriceTriggerCriteria,\n): PriceTriggerCriteria {\n const { price_requirement, dependency } = serverCriteria;\n\n const { type, triggerPrice } = ((): {\n type: PriceTriggerRequirementType;\n triggerPrice: string;\n } => {\n if ('oracle_price_above' in price_requirement) {\n return {\n type: 'oracle_price_above',\n triggerPrice: price_requirement.oracle_price_above,\n };\n } else if ('oracle_price_below' in price_requirement) {\n return {\n type: 'oracle_price_below',\n triggerPrice: price_requirement.oracle_price_below,\n };\n } else if ('last_price_above' in price_requirement) {\n return {\n type: 'last_price_above',\n triggerPrice: price_requirement.last_price_above,\n };\n } else if ('last_price_below' in price_requirement) {\n return {\n type: 'last_price_below',\n triggerPrice: price_requirement.last_price_below,\n };\n } else if ('mid_price_above' in price_requirement) {\n return {\n type: 'mid_price_above',\n triggerPrice: price_requirement.mid_price_above,\n };\n } else if ('mid_price_below' in price_requirement) {\n return {\n type: 'mid_price_below',\n triggerPrice: price_requirement.mid_price_below,\n };\n } else {\n throw new Error(\n `Unknown price requirement: ${JSON.stringify(price_requirement)}`,\n );\n }\n })();\n\n return {\n type,\n triggerPrice: removeDecimals(triggerPrice),\n dependency: dependency\n ? {\n digest: dependency.digest,\n onPartialFill: dependency.on_partial_fill,\n }\n : undefined,\n };\n}\n\nfunction mapServerTimeTriggerCriteria(\n serverCriteria: TriggerServerTimeTriggerCriteria,\n): TimeTriggerCriteria {\n return {\n interval: toBigDecimal(serverCriteria.interval),\n amounts: serverCriteria.amounts?.map((amount: string) =>\n toBigDecimal(amount),\n ),\n };\n}\n\nexport function mapTwapExecutionStatus(\n status: TriggerServerTwapExecutionStatus,\n): TwapExecutionStatus {\n if (status === 'pending') {\n return {\n type: 'pending',\n };\n } else if ('executed' in status) {\n return {\n type: 'executed',\n executedTime: status.executed.executed_time,\n executeResponse: status.executed.execute_response,\n };\n } else if ('failed' in status) {\n return {\n type: 'failed',\n error: status.failed,\n };\n } else if ('cancelled' in status) {\n return {\n type: 'cancelled',\n reason: status.cancelled,\n };\n }\n throw Error(`Unknown TWAP execution status: ${JSON.stringify(status)}`);\n}\n"],"mappings":"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","names":[]}
@@ -1,13 +1,27 @@
1
- import { TriggerOrderStatus, TriggerCriteria, TriggerOrderInfo } from './types/clientTypes.cjs';
2
- import { TriggerServerTriggerCriteria } from './types/serverExecuteTypes.cjs';
3
- import { TriggerServerOrderStatus, TriggerServerOrderInfo } from './types/serverQueryTypes.cjs';
4
- import '@nadohq/contracts';
1
+ import { TriggerCriteria } from './types/clientModelTypes.cjs';
2
+ import { TriggerOrderInfo, TwapExecutionStatus } from './types/clientTypes.cjs';
3
+ import { TriggerServerTriggerCriteria } from './types/serverModelTypes.cjs';
4
+ import { TriggerServerOrderInfo, TriggerServerTwapExecutionStatus } from './types/serverQueryTypes.cjs';
5
5
  import '@nadohq/engine-client';
6
- import '@nadohq/utils';
6
+ import '@nadohq/shared';
7
+ import './types/serverExecuteTypes.cjs';
7
8
 
8
- declare function mapTriggerServerOrderStatus(status: TriggerServerOrderStatus): TriggerOrderStatus;
9
+ /**
10
+ * Maps client-side trigger criteria to server-side trigger criteria format.
11
+ * Converts price and time triggers to their respective server representations
12
+ * with proper decimal scaling and field name transformations.
13
+ *
14
+ * @param criteria - The client-side trigger criteria (price or time based)
15
+ * @returns The server-formatted trigger criteria ready for API transmission
16
+ */
9
17
  declare function mapTriggerCriteria(criteria: TriggerCriteria): TriggerServerTriggerCriteria;
10
- declare function mapServerTriggerCriteria(criteria: TriggerServerTriggerCriteria): TriggerCriteria;
18
+ /**
19
+ * Maps complete server-side trigger order information to client-side format.
20
+ *
21
+ * @param info - The complete server-side trigger order information including order, status, and timestamps
22
+ * @returns The client-side trigger order information with converted values and normalized structure
23
+ */
11
24
  declare function mapServerOrderInfo(info: TriggerServerOrderInfo): TriggerOrderInfo;
25
+ declare function mapTwapExecutionStatus(status: TriggerServerTwapExecutionStatus): TwapExecutionStatus;
12
26
 
13
- export { mapServerOrderInfo, mapServerTriggerCriteria, mapTriggerCriteria, mapTriggerServerOrderStatus };
27
+ export { mapServerOrderInfo, mapTriggerCriteria, mapTwapExecutionStatus };
@@ -1,13 +1,27 @@
1
- import { TriggerOrderStatus, TriggerCriteria, TriggerOrderInfo } from './types/clientTypes.js';
2
- import { TriggerServerTriggerCriteria } from './types/serverExecuteTypes.js';
3
- import { TriggerServerOrderStatus, TriggerServerOrderInfo } from './types/serverQueryTypes.js';
4
- import '@nadohq/contracts';
1
+ import { TriggerCriteria } from './types/clientModelTypes.js';
2
+ import { TriggerOrderInfo, TwapExecutionStatus } from './types/clientTypes.js';
3
+ import { TriggerServerTriggerCriteria } from './types/serverModelTypes.js';
4
+ import { TriggerServerOrderInfo, TriggerServerTwapExecutionStatus } from './types/serverQueryTypes.js';
5
5
  import '@nadohq/engine-client';
6
- import '@nadohq/utils';
6
+ import '@nadohq/shared';
7
+ import './types/serverExecuteTypes.js';
7
8
 
8
- declare function mapTriggerServerOrderStatus(status: TriggerServerOrderStatus): TriggerOrderStatus;
9
+ /**
10
+ * Maps client-side trigger criteria to server-side trigger criteria format.
11
+ * Converts price and time triggers to their respective server representations
12
+ * with proper decimal scaling and field name transformations.
13
+ *
14
+ * @param criteria - The client-side trigger criteria (price or time based)
15
+ * @returns The server-formatted trigger criteria ready for API transmission
16
+ */
9
17
  declare function mapTriggerCriteria(criteria: TriggerCriteria): TriggerServerTriggerCriteria;
10
- declare function mapServerTriggerCriteria(criteria: TriggerServerTriggerCriteria): TriggerCriteria;
18
+ /**
19
+ * Maps complete server-side trigger order information to client-side format.
20
+ *
21
+ * @param info - The complete server-side trigger order information including order, status, and timestamps
22
+ * @returns The client-side trigger order information with converted values and normalized structure
23
+ */
11
24
  declare function mapServerOrderInfo(info: TriggerServerOrderInfo): TriggerOrderInfo;
25
+ declare function mapTwapExecutionStatus(status: TriggerServerTwapExecutionStatus): TwapExecutionStatus;
12
26
 
13
- export { mapServerOrderInfo, mapServerTriggerCriteria, mapTriggerCriteria, mapTriggerServerOrderStatus };
27
+ export { mapServerOrderInfo, mapTriggerCriteria, mapTwapExecutionStatus };