@nadohq/trigger-client 0.1.0-alpha.3 → 0.1.0-alpha.4
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 +22 -15
- package/dist/TriggerClient.cjs.map +1 -1
- package/dist/TriggerClient.d.cts +3 -2
- package/dist/TriggerClient.d.ts +3 -2
- package/dist/TriggerClient.js +15 -7
- package/dist/TriggerClient.js.map +1 -1
- package/dist/dataMappers.cjs +125 -68
- package/dist/dataMappers.cjs.map +1 -1
- package/dist/dataMappers.d.cts +21 -8
- package/dist/dataMappers.d.ts +21 -8
- package/dist/dataMappers.js +124 -65
- 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.d.cts +6 -5
- package/dist/index.d.ts +6 -5
- 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 +55 -0
- package/dist/types/clientModelTypes.d.ts +55 -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 +15 -23
- package/dist/types/clientTypes.d.ts +15 -23
- 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 +6 -2
- package/dist/types/serverQueryTypes.d.ts +6 -2
- package/package.json +4 -5
- package/src/TriggerClient.ts +14 -6
- package/src/dataMappers.ts +173 -69
- package/src/endpoints.ts +2 -2
- package/src/types/TriggerServerFailureError.ts +2 -2
- package/src/types/clientModelTypes.ts +79 -0
- package/src/types/clientTypes.ts +20 -38
- 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 +5 -1
package/dist/dataMappers.d.ts
CHANGED
|
@@ -1,13 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import '
|
|
1
|
+
import { TriggerCriteria } from './types/clientModelTypes.js';
|
|
2
|
+
import { TriggerOrderInfo } from './types/clientTypes.js';
|
|
3
|
+
import { TriggerServerTriggerCriteria } from './types/serverModelTypes.js';
|
|
4
|
+
import { TriggerServerOrderInfo } 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;
|
|
12
25
|
|
|
13
|
-
export { mapServerOrderInfo,
|
|
26
|
+
export { mapServerOrderInfo, mapTriggerCriteria };
|
package/dist/dataMappers.js
CHANGED
|
@@ -1,10 +1,74 @@
|
|
|
1
1
|
// src/dataMappers.ts
|
|
2
|
+
import { unpackOrderAppendix } from "@nadohq/shared";
|
|
2
3
|
import {
|
|
3
4
|
addDecimals,
|
|
4
5
|
removeDecimals,
|
|
5
6
|
toBigDecimal,
|
|
6
7
|
toIntegerString
|
|
7
|
-
} from "@nadohq/
|
|
8
|
+
} from "@nadohq/shared";
|
|
9
|
+
function mapTriggerCriteria(criteria) {
|
|
10
|
+
switch (criteria.type) {
|
|
11
|
+
case "price":
|
|
12
|
+
return {
|
|
13
|
+
price_trigger: mapPriceTriggerCriteria(criteria.criteria)
|
|
14
|
+
};
|
|
15
|
+
case "time":
|
|
16
|
+
return {
|
|
17
|
+
time_trigger: mapTimeTriggerCriteria(criteria.criteria)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function mapPriceTriggerCriteria(criteria) {
|
|
22
|
+
const priceValue = toIntegerString(addDecimals(criteria.triggerPrice));
|
|
23
|
+
const price_requirement = (() => {
|
|
24
|
+
switch (criteria.type) {
|
|
25
|
+
case "oracle_price_above":
|
|
26
|
+
return { oracle_price_above: priceValue };
|
|
27
|
+
case "oracle_price_below":
|
|
28
|
+
return { oracle_price_below: priceValue };
|
|
29
|
+
case "last_price_above":
|
|
30
|
+
return { last_price_above: priceValue };
|
|
31
|
+
case "last_price_below":
|
|
32
|
+
return { last_price_below: priceValue };
|
|
33
|
+
case "mid_price_above":
|
|
34
|
+
return { mid_price_above: priceValue };
|
|
35
|
+
case "mid_price_below":
|
|
36
|
+
return { mid_price_below: priceValue };
|
|
37
|
+
}
|
|
38
|
+
})();
|
|
39
|
+
return {
|
|
40
|
+
price_requirement,
|
|
41
|
+
dependency: criteria.dependency ? {
|
|
42
|
+
digest: criteria.dependency.digest,
|
|
43
|
+
on_partial_fill: criteria.dependency.onPartialFill
|
|
44
|
+
} : void 0
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function mapTimeTriggerCriteria(criteria) {
|
|
48
|
+
return {
|
|
49
|
+
interval: toIntegerString(criteria.interval),
|
|
50
|
+
amounts: criteria.amounts?.map((amount) => toIntegerString(amount))
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function mapServerOrderInfo(info) {
|
|
54
|
+
const { order: serverOrder, status, updated_at } = info;
|
|
55
|
+
const order = {
|
|
56
|
+
amount: toBigDecimal(serverOrder.order.amount),
|
|
57
|
+
expiration: Number(serverOrder.order.expiration),
|
|
58
|
+
nonce: serverOrder.order.nonce,
|
|
59
|
+
price: removeDecimals(toBigDecimal(serverOrder.order.priceX18)),
|
|
60
|
+
digest: serverOrder.digest,
|
|
61
|
+
productId: serverOrder.product_id,
|
|
62
|
+
triggerCriteria: mapServerTriggerCriteria(serverOrder.trigger),
|
|
63
|
+
appendix: unpackOrderAppendix(serverOrder.order.appendix)
|
|
64
|
+
};
|
|
65
|
+
return {
|
|
66
|
+
serverOrder,
|
|
67
|
+
order,
|
|
68
|
+
status: mapTriggerServerOrderStatus(status),
|
|
69
|
+
updatedAt: updated_at
|
|
70
|
+
};
|
|
71
|
+
}
|
|
8
72
|
function mapTriggerServerOrderStatus(status) {
|
|
9
73
|
if (status === "pending") {
|
|
10
74
|
return {
|
|
@@ -28,84 +92,79 @@ function mapTriggerServerOrderStatus(status) {
|
|
|
28
92
|
}
|
|
29
93
|
throw Error(`Unknown trigger order status: ${JSON.stringify(status)}`);
|
|
30
94
|
}
|
|
31
|
-
function mapTriggerCriteria(criteria) {
|
|
32
|
-
const priceValue = toIntegerString(addDecimals(criteria.triggerPrice));
|
|
33
|
-
switch (criteria.type) {
|
|
34
|
-
case "oracle_price_above":
|
|
35
|
-
return { price_above: priceValue };
|
|
36
|
-
case "oracle_price_below":
|
|
37
|
-
return { price_below: priceValue };
|
|
38
|
-
case "last_price_above":
|
|
39
|
-
return { last_price_above: priceValue };
|
|
40
|
-
case "last_price_below":
|
|
41
|
-
return { last_price_below: priceValue };
|
|
42
|
-
case "mid_price_above":
|
|
43
|
-
return { mid_price_above: priceValue };
|
|
44
|
-
case "mid_price_below":
|
|
45
|
-
return { mid_price_below: priceValue };
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
95
|
function mapServerTriggerCriteria(criteria) {
|
|
49
|
-
if ("
|
|
50
|
-
return {
|
|
51
|
-
type: "oracle_price_above",
|
|
52
|
-
triggerPrice: removeDecimals(criteria.price_above)
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
if ("price_below" in criteria) {
|
|
56
|
-
return {
|
|
57
|
-
type: "oracle_price_below",
|
|
58
|
-
triggerPrice: removeDecimals(criteria.price_below)
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
if ("last_price_above" in criteria) {
|
|
62
|
-
return {
|
|
63
|
-
type: "last_price_above",
|
|
64
|
-
triggerPrice: removeDecimals(criteria.last_price_above)
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
if ("last_price_below" in criteria) {
|
|
68
|
-
return {
|
|
69
|
-
type: "last_price_below",
|
|
70
|
-
triggerPrice: removeDecimals(criteria.last_price_below)
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
if ("mid_price_above" in criteria) {
|
|
96
|
+
if ("price_trigger" in criteria) {
|
|
74
97
|
return {
|
|
75
|
-
type: "
|
|
76
|
-
|
|
98
|
+
type: "price",
|
|
99
|
+
criteria: mapServerPriceTriggerCriteria(criteria.price_trigger)
|
|
77
100
|
};
|
|
78
101
|
}
|
|
79
|
-
if ("
|
|
102
|
+
if ("time_trigger" in criteria) {
|
|
80
103
|
return {
|
|
81
|
-
type: "
|
|
82
|
-
|
|
104
|
+
type: "time",
|
|
105
|
+
criteria: mapServerTimeTriggerCriteria(criteria.time_trigger)
|
|
83
106
|
};
|
|
84
107
|
}
|
|
85
108
|
throw new Error(`Unknown trigger criteria: ${JSON.stringify(criteria)}`);
|
|
86
109
|
}
|
|
87
|
-
function
|
|
88
|
-
const {
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
110
|
+
function mapServerPriceTriggerCriteria(serverCriteria) {
|
|
111
|
+
const { price_requirement, dependency } = serverCriteria;
|
|
112
|
+
const { type, triggerPrice } = (() => {
|
|
113
|
+
if ("oracle_price_above" in price_requirement) {
|
|
114
|
+
return {
|
|
115
|
+
type: "oracle_price_above",
|
|
116
|
+
triggerPrice: price_requirement.oracle_price_above
|
|
117
|
+
};
|
|
118
|
+
} else if ("oracle_price_below" in price_requirement) {
|
|
119
|
+
return {
|
|
120
|
+
type: "oracle_price_below",
|
|
121
|
+
triggerPrice: price_requirement.oracle_price_below
|
|
122
|
+
};
|
|
123
|
+
} else if ("last_price_above" in price_requirement) {
|
|
124
|
+
return {
|
|
125
|
+
type: "last_price_above",
|
|
126
|
+
triggerPrice: price_requirement.last_price_above
|
|
127
|
+
};
|
|
128
|
+
} else if ("last_price_below" in price_requirement) {
|
|
129
|
+
return {
|
|
130
|
+
type: "last_price_below",
|
|
131
|
+
triggerPrice: price_requirement.last_price_below
|
|
132
|
+
};
|
|
133
|
+
} else if ("mid_price_above" in price_requirement) {
|
|
134
|
+
return {
|
|
135
|
+
type: "mid_price_above",
|
|
136
|
+
triggerPrice: price_requirement.mid_price_above
|
|
137
|
+
};
|
|
138
|
+
} else if ("mid_price_below" in price_requirement) {
|
|
139
|
+
return {
|
|
140
|
+
type: "mid_price_below",
|
|
141
|
+
triggerPrice: price_requirement.mid_price_below
|
|
142
|
+
};
|
|
143
|
+
} else {
|
|
144
|
+
throw new Error(
|
|
145
|
+
`Unknown price requirement: ${JSON.stringify(price_requirement)}`
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
})();
|
|
149
|
+
return {
|
|
150
|
+
type,
|
|
151
|
+
triggerPrice: removeDecimals(triggerPrice),
|
|
152
|
+
dependency: dependency ? {
|
|
153
|
+
digest: dependency.digest,
|
|
154
|
+
onPartialFill: dependency.on_partial_fill
|
|
155
|
+
} : void 0
|
|
97
156
|
};
|
|
157
|
+
}
|
|
158
|
+
function mapServerTimeTriggerCriteria(serverCriteria) {
|
|
98
159
|
return {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
160
|
+
interval: toBigDecimal(serverCriteria.interval),
|
|
161
|
+
amounts: serverCriteria.amounts?.map(
|
|
162
|
+
(amount) => toBigDecimal(amount)
|
|
163
|
+
)
|
|
103
164
|
};
|
|
104
165
|
}
|
|
105
166
|
export {
|
|
106
167
|
mapServerOrderInfo,
|
|
107
|
-
|
|
108
|
-
mapTriggerCriteria,
|
|
109
|
-
mapTriggerServerOrderStatus
|
|
168
|
+
mapTriggerCriteria
|
|
110
169
|
};
|
|
111
170
|
//# sourceMappingURL=dataMappers.js.map
|
package/dist/dataMappers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/dataMappers.ts"],"sourcesContent":["import {\n addDecimals,\n removeDecimals,\n toBigDecimal,\n toIntegerString,\n} from '@nadohq/
|
|
1
|
+
{"version":3,"sources":["../src/dataMappers.ts"],"sourcesContent":["import { unpackOrderAppendix } from '@nadohq/shared';\nimport {\n addDecimals,\n removeDecimals,\n toBigDecimal,\n toIntegerString,\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} 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: toIntegerString(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 } = 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 };\n}\n\nfunction 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\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"],"mappings":";AAAA,SAAS,2BAA2B;AACpC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAyBA,SAAS,mBACd,UAC8B;AAC9B,UAAQ,SAAS,MAAM;AAAA,IACrB,KAAK;AACH,aAAO;AAAA,QACL,eAAe,wBAAwB,SAAS,QAAQ;AAAA,MAC1D;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,cAAc,uBAAuB,SAAS,QAAQ;AAAA,MACxD;AAAA,EACJ;AACF;AAEA,SAAS,wBACP,UACmC;AACnC,QAAM,aAAa,gBAAgB,YAAY,SAAS,YAAY,CAAC;AAErE,QAAM,qBAAqB,MAAqC;AAC9D,YAAQ,SAAS,MAAM;AAAA,MACrB,KAAK;AACH,eAAO,EAAE,oBAAoB,WAAW;AAAA,MAC1C,KAAK;AACH,eAAO,EAAE,oBAAoB,WAAW;AAAA,MAC1C,KAAK;AACH,eAAO,EAAE,kBAAkB,WAAW;AAAA,MACxC,KAAK;AACH,eAAO,EAAE,kBAAkB,WAAW;AAAA,MACxC,KAAK;AACH,eAAO,EAAE,iBAAiB,WAAW;AAAA,MACvC,KAAK;AACH,eAAO,EAAE,iBAAiB,WAAW;AAAA,IACzC;AAAA,EACF,GAAG;AAEH,SAAO;AAAA,IACL;AAAA,IACA,YAAY,SAAS,aACjB;AAAA,MACE,QAAQ,SAAS,WAAW;AAAA,MAC5B,iBAAiB,SAAS,WAAW;AAAA,IACvC,IACA;AAAA,EACN;AACF;AAEA,SAAS,uBACP,UACkC;AAClC,SAAO;AAAA,IACL,UAAU,gBAAgB,SAAS,QAAQ;AAAA,IAC3C,SAAS,SAAS,SAAS,IAAI,CAAC,WAAW,gBAAgB,MAAM,CAAC;AAAA,EACpE;AACF;AAQO,SAAS,mBACd,MACkB;AAClB,QAAM,EAAE,OAAO,aAAa,QAAQ,WAAW,IAAI;AACnD,QAAM,QAAsB;AAAA,IAC1B,QAAQ,aAAa,YAAY,MAAM,MAAM;AAAA,IAC7C,YAAY,OAAO,YAAY,MAAM,UAAU;AAAA,IAC/C,OAAO,YAAY,MAAM;AAAA,IACzB,OAAO,eAAe,aAAa,YAAY,MAAM,QAAQ,CAAC;AAAA,IAC9D,QAAQ,YAAY;AAAA,IACpB,WAAW,YAAY;AAAA,IACvB,iBAAiB,yBAAyB,YAAY,OAAO;AAAA,IAC7D,UAAU,oBAAoB,YAAY,MAAM,QAAQ;AAAA,EAC1D;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,QAAQ,4BAA4B,MAAM;AAAA,IAC1C,WAAW;AAAA,EACb;AACF;AAEA,SAAS,4BACP,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;AAEA,SAAS,yBACP,UACiB;AACjB,MAAI,mBAAmB,UAAU;AAC/B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,8BAA8B,SAAS,aAAa;AAAA,IAChE;AAAA,EACF;AACA,MAAI,kBAAkB,UAAU;AAC9B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU,6BAA6B,SAAS,YAAY;AAAA,IAC9D;AAAA,EACF;AACA,QAAM,IAAI,MAAM,6BAA6B,KAAK,UAAU,QAAQ,CAAC,EAAE;AACzE;AAEA,SAAS,8BACP,gBACsB;AACtB,QAAM,EAAE,mBAAmB,WAAW,IAAI;AAE1C,QAAM,EAAE,MAAM,aAAa,KAAK,MAG3B;AACH,QAAI,wBAAwB,mBAAmB;AAC7C,aAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc,kBAAkB;AAAA,MAClC;AAAA,IACF,WAAW,wBAAwB,mBAAmB;AACpD,aAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc,kBAAkB;AAAA,MAClC;AAAA,IACF,WAAW,sBAAsB,mBAAmB;AAClD,aAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc,kBAAkB;AAAA,MAClC;AAAA,IACF,WAAW,sBAAsB,mBAAmB;AAClD,aAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc,kBAAkB;AAAA,MAClC;AAAA,IACF,WAAW,qBAAqB,mBAAmB;AACjD,aAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc,kBAAkB;AAAA,MAClC;AAAA,IACF,WAAW,qBAAqB,mBAAmB;AACjD,aAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc,kBAAkB;AAAA,MAClC;AAAA,IACF,OAAO;AACL,YAAM,IAAI;AAAA,QACR,8BAA8B,KAAK,UAAU,iBAAiB,CAAC;AAAA,MACjE;AAAA,IACF;AAAA,EACF,GAAG;AAEH,SAAO;AAAA,IACL;AAAA,IACA,cAAc,eAAe,YAAY;AAAA,IACzC,YAAY,aACR;AAAA,MACE,QAAQ,WAAW;AAAA,MACnB,eAAe,WAAW;AAAA,IAC5B,IACA;AAAA,EACN;AACF;AAEA,SAAS,6BACP,gBACqB;AACrB,SAAO;AAAA,IACL,UAAU,aAAa,eAAe,QAAQ;AAAA,IAC9C,SAAS,eAAe,SAAS;AAAA,MAAI,CAAC,WACpC,aAAa,MAAM;AAAA,IACrB;AAAA,EACF;AACF;","names":[]}
|
package/dist/endpoints.cjs
CHANGED
|
@@ -25,8 +25,8 @@ __export(endpoints_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(endpoints_exports);
|
|
26
26
|
var TRIGGER_CLIENT_ENDPOINTS = {
|
|
27
27
|
local: "http://localhost:80/trigger",
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
arbitrum: "https://trigger.prod.vertexprotocol.com/v1",
|
|
29
|
+
inkTestnet: "https://trigger.test.nado-backend.xyz/v1"
|
|
30
30
|
};
|
|
31
31
|
// Annotate the CommonJS export names for ESM import in node:
|
|
32
32
|
0 && (module.exports = {
|
package/dist/endpoints.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/endpoints.ts"],"sourcesContent":["import { ChainEnv } from '@nadohq/
|
|
1
|
+
{"version":3,"sources":["../src/endpoints.ts"],"sourcesContent":["import { ChainEnv } from '@nadohq/shared';\n\nexport const TRIGGER_CLIENT_ENDPOINTS: Record<ChainEnv, string> = {\n local: 'http://localhost:80/trigger',\n arbitrum: 'https://trigger.prod.vertexprotocol.com/v1',\n inkTestnet: 'https://trigger.test.nado-backend.xyz/v1',\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,IAAM,2BAAqD;AAAA,EAChE,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AACd;","names":[]}
|
package/dist/endpoints.d.cts
CHANGED
package/dist/endpoints.d.ts
CHANGED
package/dist/endpoints.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// src/endpoints.ts
|
|
2
2
|
var TRIGGER_CLIENT_ENDPOINTS = {
|
|
3
3
|
local: "http://localhost:80/trigger",
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
arbitrum: "https://trigger.prod.vertexprotocol.com/v1",
|
|
5
|
+
inkTestnet: "https://trigger.test.nado-backend.xyz/v1"
|
|
6
6
|
};
|
|
7
7
|
export {
|
|
8
8
|
TRIGGER_CLIENT_ENDPOINTS
|
package/dist/endpoints.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/endpoints.ts"],"sourcesContent":["import { ChainEnv } from '@nadohq/
|
|
1
|
+
{"version":3,"sources":["../src/endpoints.ts"],"sourcesContent":["import { ChainEnv } from '@nadohq/shared';\n\nexport const TRIGGER_CLIENT_ENDPOINTS: Record<ChainEnv, string> = {\n local: 'http://localhost:80/trigger',\n arbitrum: 'https://trigger.prod.vertexprotocol.com/v1',\n inkTestnet: 'https://trigger.test.nado-backend.xyz/v1',\n};\n"],"mappings":";AAEO,IAAM,2BAAqD;AAAA,EAChE,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AACd;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
1
|
+
export { PriceTriggerCriteria, PriceTriggerDependency, PriceTriggerRequirementType, TimeTriggerCriteria, TriggerCriteria, TriggerCriteriaType, TriggerOrderStatus } from './types/clientModelTypes.cjs';
|
|
2
|
+
export { TriggerCancelOrdersParams, TriggerCancelProductOrdersParams, TriggerListOrdersParams, TriggerListOrdersResponse, TriggerOrder, TriggerOrderInfo, TriggerPlaceOrderParams } from './types/clientTypes.cjs';
|
|
3
|
+
export { TriggerServerDependency, TriggerServerPriceRequirement, TriggerServerPriceTriggerCriteria, TriggerServerTimeTriggerCriteria, TriggerServerTriggerCriteria } from './types/serverModelTypes.cjs';
|
|
4
|
+
export { TriggerServerCancelOrdersParams, TriggerServerCancelProductOrdersParams, TriggerServerExecuteRequestByType, TriggerServerExecuteRequestType, TriggerServerExecuteResult, TriggerServerExecuteSuccessResult, TriggerServerPlaceOrderParams } from './types/serverExecuteTypes.cjs';
|
|
5
|
+
export { TriggerServerListTriggerOrdersParams, TriggerServerListTriggerOrdersResponse, TriggerServerOrder, TriggerServerOrderInfo, TriggerServerOrderStatus, TriggerServerQueryFailureResponse, TriggerServerQueryRequestByType, TriggerServerQueryRequestType, TriggerServerQueryResponse, TriggerServerQueryResponseByType, TriggerServerQuerySuccessResponse, TriggerServerTriggerTypeFilter } from './types/serverQueryTypes.cjs';
|
|
4
6
|
export { TriggerServerFailureError } from './types/TriggerServerFailureError.cjs';
|
|
5
7
|
export { TriggerClient, TriggerClientOpts } from './TriggerClient.cjs';
|
|
6
8
|
export { TRIGGER_CLIENT_ENDPOINTS } from './endpoints.cjs';
|
|
7
|
-
import '@nadohq/contracts';
|
|
8
9
|
import '@nadohq/engine-client';
|
|
9
|
-
import '@nadohq/
|
|
10
|
+
import '@nadohq/shared';
|
|
10
11
|
import 'axios';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
1
|
+
export { PriceTriggerCriteria, PriceTriggerDependency, PriceTriggerRequirementType, TimeTriggerCriteria, TriggerCriteria, TriggerCriteriaType, TriggerOrderStatus } from './types/clientModelTypes.js';
|
|
2
|
+
export { TriggerCancelOrdersParams, TriggerCancelProductOrdersParams, TriggerListOrdersParams, TriggerListOrdersResponse, TriggerOrder, TriggerOrderInfo, TriggerPlaceOrderParams } from './types/clientTypes.js';
|
|
3
|
+
export { TriggerServerDependency, TriggerServerPriceRequirement, TriggerServerPriceTriggerCriteria, TriggerServerTimeTriggerCriteria, TriggerServerTriggerCriteria } from './types/serverModelTypes.js';
|
|
4
|
+
export { TriggerServerCancelOrdersParams, TriggerServerCancelProductOrdersParams, TriggerServerExecuteRequestByType, TriggerServerExecuteRequestType, TriggerServerExecuteResult, TriggerServerExecuteSuccessResult, TriggerServerPlaceOrderParams } from './types/serverExecuteTypes.js';
|
|
5
|
+
export { TriggerServerListTriggerOrdersParams, TriggerServerListTriggerOrdersResponse, TriggerServerOrder, TriggerServerOrderInfo, TriggerServerOrderStatus, TriggerServerQueryFailureResponse, TriggerServerQueryRequestByType, TriggerServerQueryRequestType, TriggerServerQueryResponse, TriggerServerQueryResponseByType, TriggerServerQuerySuccessResponse, TriggerServerTriggerTypeFilter } from './types/serverQueryTypes.js';
|
|
4
6
|
export { TriggerServerFailureError } from './types/TriggerServerFailureError.js';
|
|
5
7
|
export { TriggerClient, TriggerClientOpts } from './TriggerClient.js';
|
|
6
8
|
export { TRIGGER_CLIENT_ENDPOINTS } from './endpoints.js';
|
|
7
|
-
import '@nadohq/contracts';
|
|
8
9
|
import '@nadohq/engine-client';
|
|
9
|
-
import '@nadohq/
|
|
10
|
+
import '@nadohq/shared';
|
|
10
11
|
import 'axios';
|
|
@@ -25,7 +25,7 @@ __export(TriggerServerFailureError_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(TriggerServerFailureError_exports);
|
|
26
26
|
var TriggerServerFailureError = class extends Error {
|
|
27
27
|
constructor(responseData) {
|
|
28
|
-
super();
|
|
28
|
+
super(`${responseData.error_code}: ${responseData.error}`);
|
|
29
29
|
this.responseData = responseData;
|
|
30
30
|
}
|
|
31
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types/TriggerServerFailureError.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../src/types/TriggerServerFailureError.ts"],"sourcesContent":["import { EngineServerExecuteFailureResult } from '@nadohq/engine-client';\nimport { TriggerServerQueryFailureResponse } from './serverQueryTypes';\n\nexport class TriggerServerFailureError extends Error {\n constructor(\n readonly responseData:\n | TriggerServerQueryFailureResponse\n | EngineServerExecuteFailureResult,\n ) {\n super(`${responseData.error_code}: ${responseData.error}`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,IAAM,4BAAN,cAAwC,MAAM;AAAA,EACnD,YACW,cAGT;AACA,UAAM,GAAG,aAAa,UAAU,KAAK,aAAa,KAAK,EAAE;AAJhD;AAAA,EAKX;AACF;","names":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { TriggerServerQueryFailureResponse } from './serverQueryTypes.cjs';
|
|
2
1
|
import { EngineServerExecuteFailureResult } from '@nadohq/engine-client';
|
|
3
|
-
import '
|
|
2
|
+
import { TriggerServerQueryFailureResponse } from './serverQueryTypes.cjs';
|
|
3
|
+
import '@nadohq/shared';
|
|
4
4
|
import './serverExecuteTypes.cjs';
|
|
5
|
+
import './serverModelTypes.cjs';
|
|
5
6
|
|
|
6
7
|
declare class TriggerServerFailureError extends Error {
|
|
7
8
|
readonly responseData: TriggerServerQueryFailureResponse | EngineServerExecuteFailureResult;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { TriggerServerQueryFailureResponse } from './serverQueryTypes.js';
|
|
2
1
|
import { EngineServerExecuteFailureResult } from '@nadohq/engine-client';
|
|
3
|
-
import '
|
|
2
|
+
import { TriggerServerQueryFailureResponse } from './serverQueryTypes.js';
|
|
3
|
+
import '@nadohq/shared';
|
|
4
4
|
import './serverExecuteTypes.js';
|
|
5
|
+
import './serverModelTypes.js';
|
|
5
6
|
|
|
6
7
|
declare class TriggerServerFailureError extends Error {
|
|
7
8
|
readonly responseData: TriggerServerQueryFailureResponse | EngineServerExecuteFailureResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types/TriggerServerFailureError.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../src/types/TriggerServerFailureError.ts"],"sourcesContent":["import { EngineServerExecuteFailureResult } from '@nadohq/engine-client';\nimport { TriggerServerQueryFailureResponse } from './serverQueryTypes';\n\nexport class TriggerServerFailureError extends Error {\n constructor(\n readonly responseData:\n | TriggerServerQueryFailureResponse\n | EngineServerExecuteFailureResult,\n ) {\n super(`${responseData.error_code}: ${responseData.error}`);\n }\n}\n"],"mappings":";AAGO,IAAM,4BAAN,cAAwC,MAAM;AAAA,EACnD,YACW,cAGT;AACA,UAAM,GAAG,aAAa,UAAU,KAAK,aAAa,KAAK,EAAE;AAJhD;AAAA,EAKX;AACF;","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
|
|
16
|
+
// src/types/clientModelTypes.ts
|
|
17
|
+
var clientModelTypes_exports = {};
|
|
18
|
+
module.exports = __toCommonJS(clientModelTypes_exports);
|
|
19
|
+
//# sourceMappingURL=clientModelTypes.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/clientModelTypes.ts"],"sourcesContent":["import { EngineServerExecuteResult } from '@nadohq/engine-client';\nimport { BigDecimalish } from '@nadohq/shared';\n\n/*\nPrice trigger\n */\n\nexport type PriceTriggerRequirementType =\n | 'oracle_price_above'\n | 'oracle_price_below'\n | 'last_price_above'\n | 'last_price_below'\n | 'mid_price_above'\n | 'mid_price_below';\n\nexport interface PriceTriggerDependency {\n /**\n * Digest of the order that this trigger depends on.\n */\n digest: string;\n /**\n * Whether to trigger on partial fills.\n */\n onPartialFill: boolean;\n}\n\nexport interface PriceTriggerCriteria {\n type: PriceTriggerRequirementType;\n triggerPrice: BigDecimalish;\n dependency?: PriceTriggerDependency;\n}\n\n/*\nTime trigger (for TWAP)\n */\n\nexport interface TimeTriggerCriteria {\n /**\n * For TWAP: Trigger interval in seconds\n */\n interval: BigDecimalish;\n /**\n * For TWAP: By default, trigger service will split up orders as per total amount / interval\n * If you want to specify the amounts for each interval, you can provide them here.\n */\n amounts?: BigDecimalish[];\n}\n\n/**\n * All possible trigger conditions that can be used to place a trigger order.\n */\nexport type TriggerCriteria =\n | {\n type: 'price';\n criteria: PriceTriggerCriteria;\n }\n | {\n type: 'time';\n criteria: TimeTriggerCriteria;\n };\n\nexport type TriggerCriteriaType = TriggerCriteria['type'];\n\nexport type TriggerOrderStatus =\n | {\n type: 'pending';\n }\n | {\n type: 'cancelled';\n reason: string;\n }\n | {\n type: 'triggered';\n result: EngineServerExecuteResult;\n }\n | {\n type: 'internal_error';\n error: string;\n };\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { EngineServerExecuteResult } from '@nadohq/engine-client';
|
|
2
|
+
import { BigDecimalish } from '@nadohq/shared';
|
|
3
|
+
|
|
4
|
+
type PriceTriggerRequirementType = 'oracle_price_above' | 'oracle_price_below' | 'last_price_above' | 'last_price_below' | 'mid_price_above' | 'mid_price_below';
|
|
5
|
+
interface PriceTriggerDependency {
|
|
6
|
+
/**
|
|
7
|
+
* Digest of the order that this trigger depends on.
|
|
8
|
+
*/
|
|
9
|
+
digest: string;
|
|
10
|
+
/**
|
|
11
|
+
* Whether to trigger on partial fills.
|
|
12
|
+
*/
|
|
13
|
+
onPartialFill: boolean;
|
|
14
|
+
}
|
|
15
|
+
interface PriceTriggerCriteria {
|
|
16
|
+
type: PriceTriggerRequirementType;
|
|
17
|
+
triggerPrice: BigDecimalish;
|
|
18
|
+
dependency?: PriceTriggerDependency;
|
|
19
|
+
}
|
|
20
|
+
interface TimeTriggerCriteria {
|
|
21
|
+
/**
|
|
22
|
+
* For TWAP: Trigger interval in seconds
|
|
23
|
+
*/
|
|
24
|
+
interval: BigDecimalish;
|
|
25
|
+
/**
|
|
26
|
+
* For TWAP: By default, trigger service will split up orders as per total amount / interval
|
|
27
|
+
* If you want to specify the amounts for each interval, you can provide them here.
|
|
28
|
+
*/
|
|
29
|
+
amounts?: BigDecimalish[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* All possible trigger conditions that can be used to place a trigger order.
|
|
33
|
+
*/
|
|
34
|
+
type TriggerCriteria = {
|
|
35
|
+
type: 'price';
|
|
36
|
+
criteria: PriceTriggerCriteria;
|
|
37
|
+
} | {
|
|
38
|
+
type: 'time';
|
|
39
|
+
criteria: TimeTriggerCriteria;
|
|
40
|
+
};
|
|
41
|
+
type TriggerCriteriaType = TriggerCriteria['type'];
|
|
42
|
+
type TriggerOrderStatus = {
|
|
43
|
+
type: 'pending';
|
|
44
|
+
} | {
|
|
45
|
+
type: 'cancelled';
|
|
46
|
+
reason: string;
|
|
47
|
+
} | {
|
|
48
|
+
type: 'triggered';
|
|
49
|
+
result: EngineServerExecuteResult;
|
|
50
|
+
} | {
|
|
51
|
+
type: 'internal_error';
|
|
52
|
+
error: string;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export type { PriceTriggerCriteria, PriceTriggerDependency, PriceTriggerRequirementType, TimeTriggerCriteria, TriggerCriteria, TriggerCriteriaType, TriggerOrderStatus };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { EngineServerExecuteResult } from '@nadohq/engine-client';
|
|
2
|
+
import { BigDecimalish } from '@nadohq/shared';
|
|
3
|
+
|
|
4
|
+
type PriceTriggerRequirementType = 'oracle_price_above' | 'oracle_price_below' | 'last_price_above' | 'last_price_below' | 'mid_price_above' | 'mid_price_below';
|
|
5
|
+
interface PriceTriggerDependency {
|
|
6
|
+
/**
|
|
7
|
+
* Digest of the order that this trigger depends on.
|
|
8
|
+
*/
|
|
9
|
+
digest: string;
|
|
10
|
+
/**
|
|
11
|
+
* Whether to trigger on partial fills.
|
|
12
|
+
*/
|
|
13
|
+
onPartialFill: boolean;
|
|
14
|
+
}
|
|
15
|
+
interface PriceTriggerCriteria {
|
|
16
|
+
type: PriceTriggerRequirementType;
|
|
17
|
+
triggerPrice: BigDecimalish;
|
|
18
|
+
dependency?: PriceTriggerDependency;
|
|
19
|
+
}
|
|
20
|
+
interface TimeTriggerCriteria {
|
|
21
|
+
/**
|
|
22
|
+
* For TWAP: Trigger interval in seconds
|
|
23
|
+
*/
|
|
24
|
+
interval: BigDecimalish;
|
|
25
|
+
/**
|
|
26
|
+
* For TWAP: By default, trigger service will split up orders as per total amount / interval
|
|
27
|
+
* If you want to specify the amounts for each interval, you can provide them here.
|
|
28
|
+
*/
|
|
29
|
+
amounts?: BigDecimalish[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* All possible trigger conditions that can be used to place a trigger order.
|
|
33
|
+
*/
|
|
34
|
+
type TriggerCriteria = {
|
|
35
|
+
type: 'price';
|
|
36
|
+
criteria: PriceTriggerCriteria;
|
|
37
|
+
} | {
|
|
38
|
+
type: 'time';
|
|
39
|
+
criteria: TimeTriggerCriteria;
|
|
40
|
+
};
|
|
41
|
+
type TriggerCriteriaType = TriggerCriteria['type'];
|
|
42
|
+
type TriggerOrderStatus = {
|
|
43
|
+
type: 'pending';
|
|
44
|
+
} | {
|
|
45
|
+
type: 'cancelled';
|
|
46
|
+
reason: string;
|
|
47
|
+
} | {
|
|
48
|
+
type: 'triggered';
|
|
49
|
+
result: EngineServerExecuteResult;
|
|
50
|
+
} | {
|
|
51
|
+
type: 'internal_error';
|
|
52
|
+
error: string;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export type { PriceTriggerCriteria, PriceTriggerDependency, PriceTriggerRequirementType, TimeTriggerCriteria, TriggerCriteria, TriggerCriteriaType, TriggerOrderStatus };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=clientModelTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types/clientTypes.ts"],"sourcesContent":["import {\n EIP712CancelOrdersParams,\n EIP712CancelProductOrdersParams,\n Subaccount,\n} from '@nadohq/
|
|
1
|
+
{"version":3,"sources":["../../src/types/clientTypes.ts"],"sourcesContent":["import {\n EIP712CancelOrdersParams,\n EIP712CancelProductOrdersParams,\n OrderAppendix,\n Subaccount,\n} from '@nadohq/shared';\nimport { EngineOrderParams } from '@nadohq/engine-client';\nimport { BigDecimal } from '@nadohq/shared';\nimport { TriggerCriteria, TriggerOrderStatus } from './clientModelTypes';\nimport {\n TriggerServerOrder,\n TriggerServerTriggerTypeFilter,\n} from './serverQueryTypes';\n\ntype WithOptionalNonce<T> = Omit<T, 'nonce'> & { nonce?: string };\n\ninterface SignatureParams {\n /**\n * Address derived from productId for placement (see getOrderVerifyingAddr)\n * endpoint address for cancellation & listing\n */\n verifyingAddr: string;\n chainId: number;\n}\n\n/**\n * Executes\n */\n\nexport interface TriggerPlaceOrderParams extends SignatureParams {\n id?: number;\n productId: number;\n order: EngineOrderParams;\n triggerCriteria: TriggerCriteria;\n // If not given, engine defaults to true (leverage/borrow enabled)\n spotLeverage?: boolean;\n // For isolated orders, this specifies whether margin can be borrowed (i.e. whether the cross account can have a negative USDC balance)\n borrowMargin?: boolean;\n digest?: string;\n nonce?: string;\n}\n\nexport type TriggerCancelOrdersParams = SignatureParams &\n WithOptionalNonce<EIP712CancelOrdersParams>;\n\nexport type TriggerCancelProductOrdersParams = SignatureParams &\n WithOptionalNonce<EIP712CancelProductOrdersParams>;\n\n/**\n * Queries\n */\n\nexport interface TriggerListOrdersParams extends Subaccount, SignatureParams {\n // In millis, defaults to 90s in the future\n recvTime?: BigDecimal;\n // If not given, defaults to all products\n productId?: number;\n // Pending trigger orders only, ignores cancelled & triggered orders\n pending: boolean;\n // In seconds\n maxUpdateTimeInclusive?: number;\n // When provided, the associated trigger orders are returned regardless of other filters\n digests?: string[];\n limit?: number;\n // Filter by trigger types\n triggerTypes?: TriggerServerTriggerTypeFilter[];\n // Filter by reduce-only orders\n reduceOnly?: boolean;\n}\n\nexport interface TriggerOrder {\n productId: number;\n triggerCriteria: TriggerCriteria;\n price: BigDecimal;\n amount: BigDecimal;\n expiration: number;\n nonce: string;\n digest: string;\n appendix: OrderAppendix;\n}\n\nexport interface TriggerOrderInfo {\n order: TriggerOrder;\n serverOrder: TriggerServerOrder;\n status: TriggerOrderStatus;\n updatedAt: number;\n}\n\nexport interface TriggerListOrdersResponse {\n orders: TriggerOrderInfo[];\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|