@nadohq/trigger-client 0.1.0-alpha.2 → 0.1.0-alpha.20
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.
- package/dist/TriggerClient.cjs +41 -17
- package/dist/TriggerClient.cjs.map +1 -1
- package/dist/TriggerClient.d.cts +5 -3
- package/dist/TriggerClient.d.ts +5 -3
- package/dist/TriggerClient.js +39 -10
- package/dist/TriggerClient.js.map +1 -1
- package/dist/dataMappers.cjs +170 -67
- package/dist/dataMappers.cjs.map +1 -1
- package/dist/dataMappers.d.cts +22 -8
- package/dist/dataMappers.d.ts +22 -8
- package/dist/dataMappers.js +171 -66
- package/dist/dataMappers.js.map +1 -1
- package/dist/endpoints.cjs +2 -2
- package/dist/endpoints.cjs.map +1 -1
- package/dist/endpoints.d.cts +1 -1
- package/dist/endpoints.d.ts +1 -1
- package/dist/endpoints.js +2 -2
- package/dist/endpoints.js.map +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -8
- package/dist/index.d.ts +9 -8
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/types/TriggerServerFailureError.cjs +1 -1
- package/dist/types/TriggerServerFailureError.cjs.map +1 -1
- package/dist/types/TriggerServerFailureError.d.cts +3 -2
- package/dist/types/TriggerServerFailureError.d.ts +3 -2
- package/dist/types/TriggerServerFailureError.js +1 -1
- package/dist/types/TriggerServerFailureError.js.map +1 -1
- package/dist/types/clientModelTypes.cjs +19 -0
- package/dist/types/clientModelTypes.cjs.map +1 -0
- package/dist/types/clientModelTypes.d.cts +67 -0
- package/dist/types/clientModelTypes.d.ts +67 -0
- package/dist/types/clientModelTypes.js +1 -0
- package/dist/types/clientModelTypes.js.map +1 -0
- package/dist/types/clientTypes.cjs.map +1 -1
- package/dist/types/clientTypes.d.cts +42 -24
- package/dist/types/clientTypes.d.ts +42 -24
- package/dist/types/index.cjs +4 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +6 -5
- package/dist/types/index.d.ts +6 -5
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/serverExecuteTypes.cjs.map +1 -1
- package/dist/types/serverExecuteTypes.d.cts +4 -15
- package/dist/types/serverExecuteTypes.d.ts +4 -15
- package/dist/types/serverModelTypes.cjs +19 -0
- package/dist/types/serverModelTypes.cjs.map +1 -0
- package/dist/types/serverModelTypes.d.cts +42 -0
- package/dist/types/serverModelTypes.d.ts +42 -0
- package/dist/types/serverModelTypes.js +1 -0
- package/dist/types/serverModelTypes.js.map +1 -0
- package/dist/types/serverQueryTypes.cjs.map +1 -1
- package/dist/types/serverQueryTypes.d.cts +48 -7
- package/dist/types/serverQueryTypes.d.ts +48 -7
- package/package.json +4 -5
- package/src/TriggerClient.ts +48 -9
- package/src/dataMappers.ts +225 -71
- package/src/endpoints.ts +2 -2
- package/src/index.ts +2 -2
- package/src/types/TriggerServerFailureError.ts +2 -2
- package/src/types/clientModelTypes.ts +95 -0
- package/src/types/clientTypes.ts +61 -41
- package/src/types/index.ts +2 -0
- package/src/types/serverExecuteTypes.ts +3 -24
- package/src/types/serverModelTypes.ts +55 -0
- package/src/types/serverQueryTypes.ts +75 -9
package/dist/dataMappers.cjs
CHANGED
|
@@ -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
|
-
|
|
25
|
+
mapTwapExecutionStatus: () => mapTwapExecutionStatus
|
|
27
26
|
});
|
|
28
27
|
module.exports = __toCommonJS(dataMappers_exports);
|
|
29
|
-
var
|
|
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 === "
|
|
94
|
+
if (status === "triggering") {
|
|
32
95
|
return {
|
|
33
|
-
type: "
|
|
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 ("
|
|
121
|
+
} else if ("twap_executing" in status) {
|
|
46
122
|
return {
|
|
47
|
-
type: "
|
|
48
|
-
|
|
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 ("
|
|
137
|
+
if ("price_trigger" in criteria) {
|
|
72
138
|
return {
|
|
73
|
-
type: "
|
|
74
|
-
|
|
139
|
+
type: "price",
|
|
140
|
+
criteria: mapServerPriceTriggerCriteria(criteria.price_trigger)
|
|
75
141
|
};
|
|
76
142
|
}
|
|
77
|
-
if ("
|
|
143
|
+
if ("time_trigger" in criteria) {
|
|
78
144
|
return {
|
|
79
|
-
type: "
|
|
80
|
-
|
|
145
|
+
type: "time",
|
|
146
|
+
criteria: mapServerTimeTriggerCriteria(criteria.time_trigger)
|
|
81
147
|
};
|
|
82
148
|
}
|
|
83
|
-
|
|
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: "
|
|
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: "
|
|
92
|
-
|
|
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: "
|
|
98
|
-
|
|
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: "
|
|
104
|
-
|
|
225
|
+
type: "cancelled",
|
|
226
|
+
reason: status.cancelled
|
|
105
227
|
};
|
|
106
228
|
}
|
|
107
|
-
throw
|
|
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
|
-
|
|
235
|
+
mapTwapExecutionStatus
|
|
133
236
|
});
|
|
134
237
|
//# sourceMappingURL=dataMappers.cjs.map
|
package/dist/dataMappers.cjs.map
CHANGED
|
@@ -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":[]}
|
package/dist/dataMappers.d.cts
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import '
|
|
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/
|
|
6
|
+
import '@nadohq/shared';
|
|
7
|
+
import './types/serverExecuteTypes.cjs';
|
|
7
8
|
|
|
8
|
-
|
|
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
|
-
|
|
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,
|
|
27
|
+
export { mapServerOrderInfo, mapTriggerCriteria, mapTwapExecutionStatus };
|
package/dist/dataMappers.d.ts
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import '
|
|
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/
|
|
6
|
+
import '@nadohq/shared';
|
|
7
|
+
import './types/serverExecuteTypes.js';
|
|
7
8
|
|
|
8
|
-
|
|
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
|
-
|
|
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,
|
|
27
|
+
export { mapServerOrderInfo, mapTriggerCriteria, mapTwapExecutionStatus };
|