@velora-dex/sdk 9.3.6 → 9.4.1-dev.1
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/README.md +2 -0
- package/dist/examples/externalDelta.d.ts +2 -0
- package/dist/examples/externalDelta.d.ts.map +1 -0
- package/dist/examples/helpers/delta.d.ts +2 -2
- package/dist/examples/helpers/delta.d.ts.map +1 -1
- package/dist/index.d.ts +17 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/methods/delta/buildDeltaOrder.d.ts +4 -10
- package/dist/methods/delta/buildDeltaOrder.d.ts.map +1 -1
- package/dist/methods/delta/buildExternalDeltaOrder.d.ts +46 -0
- package/dist/methods/delta/buildExternalDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/buildTWAPDeltaOrder.d.ts +65 -0
- package/dist/methods/delta/buildTWAPDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/getDeltaOrders.d.ts +14 -6
- package/dist/methods/delta/getDeltaOrders.d.ts.map +1 -1
- package/dist/methods/delta/helpers/abi.d.ts +16 -0
- package/dist/methods/delta/helpers/abi.d.ts.map +1 -0
- package/dist/methods/delta/helpers/buildDeltaOrderData.d.ts +0 -1
- package/dist/methods/delta/helpers/buildDeltaOrderData.d.ts.map +1 -1
- package/dist/methods/delta/helpers/buildExternalOrderData.d.ts +34 -0
- package/dist/methods/delta/helpers/buildExternalOrderData.d.ts.map +1 -0
- package/dist/methods/delta/helpers/buildTWAPOrderData.d.ts +74 -0
- package/dist/methods/delta/helpers/buildTWAPOrderData.d.ts.map +1 -0
- package/dist/methods/delta/helpers/misc.d.ts +51 -0
- package/dist/methods/delta/helpers/misc.d.ts.map +1 -1
- package/dist/methods/delta/helpers/types.d.ts +116 -4
- package/dist/methods/delta/helpers/types.d.ts.map +1 -1
- package/dist/methods/delta/index.d.ts +34 -3
- package/dist/methods/delta/index.d.ts.map +1 -1
- package/dist/methods/delta/postDeltaOrder.d.ts +4 -9
- package/dist/methods/delta/postDeltaOrder.d.ts.map +1 -1
- package/dist/methods/delta/postExternalDeltaOrder.d.ts +11 -0
- package/dist/methods/delta/postExternalDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/postTWAPDeltaOrder.d.ts +16 -0
- package/dist/methods/delta/postTWAPDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/preSignDeltaOrder.d.ts.map +1 -1
- package/dist/methods/delta/preSignExternalDeltaOrder.d.ts +17 -0
- package/dist/methods/delta/preSignExternalDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/preSignTWAPDeltaOrder.d.ts +20 -0
- package/dist/methods/delta/preSignTWAPDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/signExternalDeltaOrder.d.ts +9 -0
- package/dist/methods/delta/signExternalDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/signTWAPDeltaOrder.d.ts +9 -0
- package/dist/methods/delta/signTWAPDeltaOrder.d.ts.map +1 -0
- package/dist/methods/limitOrders/approveForOrder.d.ts +2 -0
- package/dist/methods/limitOrders/approveForOrder.d.ts.map +1 -1
- package/dist/methods/limitOrders/buildOrder.d.ts +3 -0
- package/dist/methods/limitOrders/buildOrder.d.ts.map +1 -1
- package/dist/methods/limitOrders/cancelOrder.d.ts +2 -0
- package/dist/methods/limitOrders/cancelOrder.d.ts.map +1 -1
- package/dist/methods/limitOrders/fillOrderDirectly.d.ts +2 -0
- package/dist/methods/limitOrders/fillOrderDirectly.d.ts.map +1 -1
- package/dist/methods/limitOrders/getOrders.d.ts +2 -0
- package/dist/methods/limitOrders/getOrders.d.ts.map +1 -1
- package/dist/methods/limitOrders/getOrdersContract.d.ts +2 -0
- package/dist/methods/limitOrders/getOrdersContract.d.ts.map +1 -1
- package/dist/methods/limitOrders/index.d.ts +7 -1
- package/dist/methods/limitOrders/index.d.ts.map +1 -1
- package/dist/methods/limitOrders/postOrder.d.ts +2 -0
- package/dist/methods/limitOrders/postOrder.d.ts.map +1 -1
- package/dist/methods/limitOrders/signOrder.d.ts +2 -0
- package/dist/methods/limitOrders/signOrder.d.ts.map +1 -1
- package/dist/methods/limitOrders/transaction.d.ts +2 -0
- package/dist/methods/limitOrders/transaction.d.ts.map +1 -1
- package/dist/methods/nftOrders/approveForOrder.d.ts +2 -0
- package/dist/methods/nftOrders/approveForOrder.d.ts.map +1 -1
- package/dist/methods/nftOrders/buildOrder.d.ts +3 -0
- package/dist/methods/nftOrders/buildOrder.d.ts.map +1 -1
- package/dist/methods/nftOrders/cancelOrder.d.ts +2 -0
- package/dist/methods/nftOrders/cancelOrder.d.ts.map +1 -1
- package/dist/methods/nftOrders/getOrders.d.ts +2 -0
- package/dist/methods/nftOrders/getOrders.d.ts.map +1 -1
- package/dist/methods/nftOrders/getOrdersContract.d.ts +2 -0
- package/dist/methods/nftOrders/getOrdersContract.d.ts.map +1 -1
- package/dist/methods/nftOrders/helpers/misc.d.ts +1 -0
- package/dist/methods/nftOrders/helpers/misc.d.ts.map +1 -1
- package/dist/methods/nftOrders/index.d.ts +7 -1
- package/dist/methods/nftOrders/index.d.ts.map +1 -1
- package/dist/methods/nftOrders/postOrder.d.ts +2 -0
- package/dist/methods/nftOrders/postOrder.d.ts.map +1 -1
- package/dist/methods/nftOrders/signOrder.d.ts +2 -0
- package/dist/methods/nftOrders/signOrder.d.ts.map +1 -1
- package/dist/methods/nftOrders/transaction.d.ts +2 -0
- package/dist/methods/nftOrders/transaction.d.ts.map +1 -1
- package/dist/sdk/full.d.ts +2 -0
- package/dist/sdk/full.d.ts.map +1 -1
- package/dist/sdk/partial.d.ts +5 -1
- package/dist/sdk/partial.d.ts.map +1 -1
- package/dist/sdk/simple.d.ts +6 -0
- package/dist/sdk/simple.d.ts.map +1 -1
- package/dist/sdk.cjs.development.js +1357 -210
- package/dist/sdk.cjs.development.js.map +1 -1
- package/dist/sdk.cjs.production.min.js +1 -1
- package/dist/sdk.cjs.production.min.js.map +1 -1
- package/dist/sdk.esm.js +1348 -211
- package/dist/sdk.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/constants.js +3 -0
- package/src/examples/delta.ts +9 -20
- package/src/examples/externalDelta.ts +162 -0
- package/src/examples/helpers/delta.ts +8 -4
- package/src/gas.js +1 -0
- package/src/index.js +85 -0
- package/src/index.ts +103 -3
- package/src/methods/delta/buildDeltaOrder.ts +13 -61
- package/src/methods/delta/buildExternalDeltaOrder.ts +124 -0
- package/src/methods/delta/buildTWAPDeltaOrder.ts +181 -0
- package/src/methods/delta/getDeltaOrders.ts +31 -13
- package/src/methods/delta/helpers/abi.ts +20 -0
- package/src/methods/delta/helpers/buildDeltaOrderData.ts +3 -35
- package/src/methods/delta/helpers/buildExternalOrderData.ts +129 -0
- package/src/methods/delta/helpers/buildTWAPOrderData.ts +227 -0
- package/src/methods/delta/helpers/misc.ts +244 -0
- package/src/methods/delta/helpers/types.ts +138 -9
- package/src/methods/delta/index.ts +159 -3
- package/src/methods/delta/postDeltaOrder.ts +9 -11
- package/src/methods/delta/postExternalDeltaOrder.ts +45 -0
- package/src/methods/delta/postTWAPDeltaOrder.ts +57 -0
- package/src/methods/delta/preSignDeltaOrder.ts +1 -21
- package/src/methods/delta/preSignExternalDeltaOrder.ts +141 -0
- package/src/methods/delta/preSignTWAPDeltaOrder.ts +168 -0
- package/src/methods/delta/signExternalDeltaOrder.ts +35 -0
- package/src/methods/delta/signTWAPDeltaOrder.ts +32 -0
- package/src/methods/limitOrders/approveForOrder.ts +2 -0
- package/src/methods/limitOrders/buildOrder.ts +3 -0
- package/src/methods/limitOrders/cancelOrder.ts +2 -0
- package/src/methods/limitOrders/fillOrderDirectly.ts +2 -0
- package/src/methods/limitOrders/getOrders.ts +2 -0
- package/src/methods/limitOrders/getOrdersContract.ts +2 -0
- package/src/methods/limitOrders/index.ts +7 -1
- package/src/methods/limitOrders/postOrder.ts +2 -0
- package/src/methods/limitOrders/signOrder.ts +2 -0
- package/src/methods/limitOrders/transaction.ts +2 -0
- package/src/methods/nftOrders/approveForOrder.ts +2 -0
- package/src/methods/nftOrders/buildOrder.ts +3 -0
- package/src/methods/nftOrders/cancelOrder.ts +2 -0
- package/src/methods/nftOrders/getOrders.ts +2 -0
- package/src/methods/nftOrders/getOrdersContract.ts +2 -0
- package/src/methods/nftOrders/helpers/misc.ts +1 -0
- package/src/methods/nftOrders/index.ts +7 -1
- package/src/methods/nftOrders/postOrder.ts +2 -0
- package/src/methods/nftOrders/signOrder.ts +2 -0
- package/src/methods/nftOrders/transaction.ts +2 -0
- package/src/sdk/full.ts +2 -0
- package/src/sdk/partial.ts +5 -1
- package/src/sdk/simple.ts +6 -0
- package/src/types.js +1 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ConstructProviderFetchInput } from '../../types';
|
|
2
|
+
import type { DeltaAuction } from './helpers/types';
|
|
2
3
|
import {
|
|
3
4
|
BuildDeltaOrderDataParams,
|
|
4
5
|
BuildDeltaOrderFunctions,
|
|
@@ -6,7 +7,6 @@ import {
|
|
|
6
7
|
} from './buildDeltaOrder';
|
|
7
8
|
import {
|
|
8
9
|
constructPostDeltaOrder,
|
|
9
|
-
DeltaOrderApiResponse,
|
|
10
10
|
DeltaOrderToPost,
|
|
11
11
|
PostDeltaOrderFunctions,
|
|
12
12
|
} from './postDeltaOrder';
|
|
@@ -54,6 +54,40 @@ import {
|
|
|
54
54
|
DeltaTokenModuleFunctions,
|
|
55
55
|
constructDeltaTokenModule,
|
|
56
56
|
} from './deltaTokenModule';
|
|
57
|
+
import {
|
|
58
|
+
BuildExternalDeltaOrderParams,
|
|
59
|
+
BuildExternalDeltaOrderFunctions,
|
|
60
|
+
constructBuildExternalDeltaOrder,
|
|
61
|
+
} from './buildExternalDeltaOrder';
|
|
62
|
+
import {
|
|
63
|
+
constructSignExternalDeltaOrder,
|
|
64
|
+
SignExternalDeltaOrderFunctions,
|
|
65
|
+
} from './signExternalDeltaOrder';
|
|
66
|
+
import {
|
|
67
|
+
constructPostExternalDeltaOrder,
|
|
68
|
+
PostExternalDeltaOrderFunctions,
|
|
69
|
+
} from './postExternalDeltaOrder';
|
|
70
|
+
import {
|
|
71
|
+
constructPreSignExternalDeltaOrder,
|
|
72
|
+
PreSignExternalDeltaOrderFunctions,
|
|
73
|
+
} from './preSignExternalDeltaOrder';
|
|
74
|
+
import {
|
|
75
|
+
BuildTWAPDeltaOrderParams,
|
|
76
|
+
BuildTWAPDeltaOrderFunctions,
|
|
77
|
+
constructBuildTWAPDeltaOrder,
|
|
78
|
+
} from './buildTWAPDeltaOrder';
|
|
79
|
+
import {
|
|
80
|
+
constructSignTWAPDeltaOrder,
|
|
81
|
+
SignTWAPDeltaOrderFunctions,
|
|
82
|
+
} from './signTWAPDeltaOrder';
|
|
83
|
+
import {
|
|
84
|
+
constructPostTWAPDeltaOrder,
|
|
85
|
+
PostTWAPDeltaOrderFunctions,
|
|
86
|
+
} from './postTWAPDeltaOrder';
|
|
87
|
+
import {
|
|
88
|
+
constructPreSignTWAPDeltaOrder,
|
|
89
|
+
PreSignTWAPDeltaOrderFunctions,
|
|
90
|
+
} from './preSignTWAPDeltaOrder';
|
|
57
91
|
|
|
58
92
|
export type SubmitDeltaOrderParams = BuildDeltaOrderDataParams & {
|
|
59
93
|
/** @description designates the Order as being able to be partially filled, as opposed to fill-or-kill */
|
|
@@ -65,7 +99,7 @@ export type SubmitDeltaOrderParams = BuildDeltaOrderDataParams & {
|
|
|
65
99
|
|
|
66
100
|
type SubmitDeltaOrder = (
|
|
67
101
|
orderParams: SubmitDeltaOrderParams
|
|
68
|
-
) => Promise<
|
|
102
|
+
) => Promise<DeltaAuction<'Order'>>;
|
|
69
103
|
|
|
70
104
|
export type SubmitDeltaOrderFuncs = {
|
|
71
105
|
submitDeltaOrder: SubmitDeltaOrder;
|
|
@@ -101,6 +135,95 @@ export const constructSubmitDeltaOrder = (
|
|
|
101
135
|
return { submitDeltaOrder };
|
|
102
136
|
};
|
|
103
137
|
|
|
138
|
+
export type SubmitExternalDeltaOrderParams = BuildExternalDeltaOrderParams & {
|
|
139
|
+
/** @description designates the Order as being able to be partially filled, as opposed to fill-or-kill */
|
|
140
|
+
partiallyFillable?: boolean;
|
|
141
|
+
/** @description Referrer address */
|
|
142
|
+
referrerAddress?: string;
|
|
143
|
+
} & Pick<DeltaOrderToPost, 'type' | 'includeAgents' | 'excludeAgents'>;
|
|
144
|
+
|
|
145
|
+
type SubmitExternalDeltaOrder = (
|
|
146
|
+
orderParams: SubmitExternalDeltaOrderParams
|
|
147
|
+
) => Promise<DeltaAuction<'ExternalOrder'>>;
|
|
148
|
+
|
|
149
|
+
export type SubmitExternalDeltaOrderFuncs = {
|
|
150
|
+
submitExternalDeltaOrder: SubmitExternalDeltaOrder;
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
export const constructSubmitExternalDeltaOrder = (
|
|
154
|
+
options: ConstructProviderFetchInput<any, 'signTypedDataCall'>
|
|
155
|
+
): SubmitExternalDeltaOrderFuncs => {
|
|
156
|
+
const { buildExternalDeltaOrder } = constructBuildExternalDeltaOrder(options);
|
|
157
|
+
const { signExternalDeltaOrder } = constructSignExternalDeltaOrder(options);
|
|
158
|
+
const { postExternalDeltaOrder } = constructPostExternalDeltaOrder(options);
|
|
159
|
+
|
|
160
|
+
const submitExternalDeltaOrder: SubmitExternalDeltaOrder = async (
|
|
161
|
+
orderParams
|
|
162
|
+
) => {
|
|
163
|
+
const orderData = await buildExternalDeltaOrder(orderParams);
|
|
164
|
+
const signature = await signExternalDeltaOrder(orderData);
|
|
165
|
+
|
|
166
|
+
const response = await postExternalDeltaOrder({
|
|
167
|
+
signature,
|
|
168
|
+
partner: orderParams.partner,
|
|
169
|
+
order: orderData.data,
|
|
170
|
+
partiallyFillable: orderParams.partiallyFillable,
|
|
171
|
+
referrerAddress: orderParams.referrerAddress,
|
|
172
|
+
type: orderParams.type,
|
|
173
|
+
includeAgents: orderParams.includeAgents,
|
|
174
|
+
excludeAgents: orderParams.excludeAgents,
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
return response;
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
return { submitExternalDeltaOrder };
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
export type SubmitTWAPDeltaOrderParams = BuildTWAPDeltaOrderParams & {
|
|
184
|
+
/** @description designates the Order as being able to be partially filled, as opposed to fill-or-kill */
|
|
185
|
+
partiallyFillable?: boolean;
|
|
186
|
+
/** @description Referrer address */
|
|
187
|
+
referrerAddress?: string;
|
|
188
|
+
} & Pick<DeltaOrderToPost, 'type' | 'includeAgents' | 'excludeAgents'>;
|
|
189
|
+
|
|
190
|
+
type SubmitTWAPDeltaOrder = (
|
|
191
|
+
orderParams: SubmitTWAPDeltaOrderParams
|
|
192
|
+
) => Promise<DeltaAuction<'TWAPOrder'> | DeltaAuction<'TWAPBuyOrder'>>;
|
|
193
|
+
|
|
194
|
+
export type SubmitTWAPDeltaOrderFuncs = {
|
|
195
|
+
submitTWAPDeltaOrder: SubmitTWAPDeltaOrder;
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
export const constructSubmitTWAPDeltaOrder = (
|
|
199
|
+
options: ConstructProviderFetchInput<any, 'signTypedDataCall'>
|
|
200
|
+
): SubmitTWAPDeltaOrderFuncs => {
|
|
201
|
+
const { buildTWAPDeltaOrder } = constructBuildTWAPDeltaOrder(options);
|
|
202
|
+
const { signTWAPDeltaOrder } = constructSignTWAPDeltaOrder(options);
|
|
203
|
+
const { postTWAPDeltaOrder } = constructPostTWAPDeltaOrder(options);
|
|
204
|
+
|
|
205
|
+
const submitTWAPDeltaOrder: SubmitTWAPDeltaOrder = async (orderParams) => {
|
|
206
|
+
const orderData = await buildTWAPDeltaOrder(orderParams);
|
|
207
|
+
const signature = await signTWAPDeltaOrder(orderData);
|
|
208
|
+
|
|
209
|
+
const response = await postTWAPDeltaOrder({
|
|
210
|
+
signature,
|
|
211
|
+
partner: orderParams.partner,
|
|
212
|
+
order: orderData.data,
|
|
213
|
+
onChainOrderType: orderParams.onChainOrderType,
|
|
214
|
+
partiallyFillable: orderParams.partiallyFillable,
|
|
215
|
+
referrerAddress: orderParams.referrerAddress,
|
|
216
|
+
type: orderParams.type,
|
|
217
|
+
includeAgents: orderParams.includeAgents,
|
|
218
|
+
excludeAgents: orderParams.excludeAgents,
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
return response;
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
return { submitTWAPDeltaOrder };
|
|
225
|
+
};
|
|
226
|
+
|
|
104
227
|
export type DeltaOrderHandlers<T> = SubmitDeltaOrderFuncs &
|
|
105
228
|
ApproveTokenForDeltaFunctions<T> &
|
|
106
229
|
BuildDeltaOrderFunctions &
|
|
@@ -114,7 +237,17 @@ export type DeltaOrderHandlers<T> = SubmitDeltaOrderFuncs &
|
|
|
114
237
|
SignDeltaOrderFunctions &
|
|
115
238
|
PreSignDeltaOrderFunctions<T> &
|
|
116
239
|
CancelDeltaOrderFunctions &
|
|
117
|
-
DeltaTokenModuleFunctions<T
|
|
240
|
+
DeltaTokenModuleFunctions<T> &
|
|
241
|
+
SubmitExternalDeltaOrderFuncs &
|
|
242
|
+
BuildExternalDeltaOrderFunctions &
|
|
243
|
+
SignExternalDeltaOrderFunctions &
|
|
244
|
+
PostExternalDeltaOrderFunctions &
|
|
245
|
+
PreSignExternalDeltaOrderFunctions<T> &
|
|
246
|
+
SubmitTWAPDeltaOrderFuncs &
|
|
247
|
+
BuildTWAPDeltaOrderFunctions &
|
|
248
|
+
SignTWAPDeltaOrderFunctions &
|
|
249
|
+
PostTWAPDeltaOrderFunctions &
|
|
250
|
+
PreSignTWAPDeltaOrderFunctions<T>;
|
|
118
251
|
|
|
119
252
|
/** @description construct SDK with every Delta Order-related method, fetching from API and Order signing */
|
|
120
253
|
export const constructAllDeltaOrdersHandlers = <TxResponse>(
|
|
@@ -144,6 +277,19 @@ export const constructAllDeltaOrdersHandlers = <TxResponse>(
|
|
|
144
277
|
|
|
145
278
|
const deltaTokenModule = constructDeltaTokenModule(options);
|
|
146
279
|
|
|
280
|
+
const externalDeltaOrdersSubmit = constructSubmitExternalDeltaOrder(options);
|
|
281
|
+
const externalDeltaOrdersBuild = constructBuildExternalDeltaOrder(options);
|
|
282
|
+
const externalDeltaOrdersSign = constructSignExternalDeltaOrder(options);
|
|
283
|
+
const externalDeltaOrdersPost = constructPostExternalDeltaOrder(options);
|
|
284
|
+
const externalDeltaOrdersPreSign =
|
|
285
|
+
constructPreSignExternalDeltaOrder(options);
|
|
286
|
+
|
|
287
|
+
const twapDeltaOrdersSubmit = constructSubmitTWAPDeltaOrder(options);
|
|
288
|
+
const twapDeltaOrdersBuild = constructBuildTWAPDeltaOrder(options);
|
|
289
|
+
const twapDeltaOrdersSign = constructSignTWAPDeltaOrder(options);
|
|
290
|
+
const twapDeltaOrdersPost = constructPostTWAPDeltaOrder(options);
|
|
291
|
+
const twapDeltaOrdersPreSign = constructPreSignTWAPDeltaOrder(options);
|
|
292
|
+
|
|
147
293
|
return {
|
|
148
294
|
...deltaOrdersGetters,
|
|
149
295
|
...deltaOrdersContractGetter,
|
|
@@ -159,5 +305,15 @@ export const constructAllDeltaOrdersHandlers = <TxResponse>(
|
|
|
159
305
|
...deltaOrdersPost,
|
|
160
306
|
...deltaOrdersCancel,
|
|
161
307
|
...deltaTokenModule,
|
|
308
|
+
...externalDeltaOrdersSubmit,
|
|
309
|
+
...externalDeltaOrdersBuild,
|
|
310
|
+
...externalDeltaOrdersSign,
|
|
311
|
+
...externalDeltaOrdersPost,
|
|
312
|
+
...externalDeltaOrdersPreSign,
|
|
313
|
+
...twapDeltaOrdersSubmit,
|
|
314
|
+
...twapDeltaOrdersBuild,
|
|
315
|
+
...twapDeltaOrdersSign,
|
|
316
|
+
...twapDeltaOrdersPost,
|
|
317
|
+
...twapDeltaOrdersPreSign,
|
|
162
318
|
};
|
|
163
319
|
};
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { API_URL } from '../../constants';
|
|
2
2
|
import { constructSearchString } from '../../helpers/misc';
|
|
3
3
|
import type { ConstructFetchInput, RequestParameters } from '../../types';
|
|
4
|
-
import {
|
|
4
|
+
import type {
|
|
5
|
+
DeltaAuction,
|
|
6
|
+
OnChainOrderMap,
|
|
7
|
+
OnChainOrderType,
|
|
8
|
+
} from './helpers/types';
|
|
5
9
|
|
|
6
|
-
export type DeltaOrderToPost = {
|
|
10
|
+
export type DeltaOrderToPost<T extends OnChainOrderType = 'Order'> = {
|
|
7
11
|
/** @description Partner string */
|
|
8
12
|
partner?: string;
|
|
9
13
|
/** @description Referrer address */
|
|
10
14
|
referrerAddress?: string;
|
|
11
|
-
order:
|
|
15
|
+
order: OnChainOrderMap[T];
|
|
12
16
|
/** @description Signature of the order from order.owner address. EOA signatures must be submitted in ERC-2098 Compact Representation. */
|
|
13
17
|
signature: string;
|
|
14
18
|
chainId: number;
|
|
@@ -26,16 +30,10 @@ export type PostDeltaOrderParams = Omit<DeltaOrderToPost, 'chainId'> & {
|
|
|
26
30
|
degenMode?: boolean;
|
|
27
31
|
};
|
|
28
32
|
|
|
29
|
-
export type DeltaOrderApiResponse = Omit<DeltaAuction, 'transactions'> & {
|
|
30
|
-
orderVersion: string; // "2.0.0"
|
|
31
|
-
deltaGasOverhead: number; // @TODO may be removed
|
|
32
|
-
type: 'MARKET' | 'LIMIT';
|
|
33
|
-
};
|
|
34
|
-
|
|
35
33
|
type PostDeltaOrder = (
|
|
36
34
|
postData: PostDeltaOrderParams,
|
|
37
35
|
requestParams?: RequestParameters
|
|
38
|
-
) => Promise<
|
|
36
|
+
) => Promise<DeltaAuction<'Order'>>;
|
|
39
37
|
|
|
40
38
|
export type PostDeltaOrderFunctions = {
|
|
41
39
|
postDeltaOrder: PostDeltaOrder;
|
|
@@ -57,7 +55,7 @@ export const constructPostDeltaOrder = ({
|
|
|
57
55
|
});
|
|
58
56
|
const fetchURL = `${postOrderUrl}/${search}` as const;
|
|
59
57
|
|
|
60
|
-
return fetcher<
|
|
58
|
+
return fetcher<DeltaAuction<'Order'>>({
|
|
61
59
|
url: fetchURL,
|
|
62
60
|
method: 'POST',
|
|
63
61
|
data: deltaOrderToPost,
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { API_URL } from '../../constants';
|
|
2
|
+
import type { ConstructFetchInput, RequestParameters } from '../../types';
|
|
3
|
+
import type { DeltaAuction } from './helpers/types';
|
|
4
|
+
import type { DeltaOrderToPost } from './postDeltaOrder';
|
|
5
|
+
|
|
6
|
+
export type PostExternalDeltaOrderParams = Omit<
|
|
7
|
+
DeltaOrderToPost<'ExternalOrder'>,
|
|
8
|
+
'chainId'
|
|
9
|
+
>;
|
|
10
|
+
|
|
11
|
+
type PostExternalDeltaOrder = (
|
|
12
|
+
postData: PostExternalDeltaOrderParams,
|
|
13
|
+
requestParams?: RequestParameters
|
|
14
|
+
) => Promise<DeltaAuction<'ExternalOrder'>>;
|
|
15
|
+
|
|
16
|
+
export type PostExternalDeltaOrderFunctions = {
|
|
17
|
+
postExternalDeltaOrder: PostExternalDeltaOrder;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const constructPostExternalDeltaOrder = ({
|
|
21
|
+
apiURL = API_URL,
|
|
22
|
+
chainId,
|
|
23
|
+
fetcher,
|
|
24
|
+
}: ConstructFetchInput): PostExternalDeltaOrderFunctions => {
|
|
25
|
+
const postOrderUrl = `${apiURL}/delta/orders` as const;
|
|
26
|
+
|
|
27
|
+
const postExternalDeltaOrder: PostExternalDeltaOrder = (
|
|
28
|
+
postData,
|
|
29
|
+
requestParams
|
|
30
|
+
) => {
|
|
31
|
+
const deltaOrderToPost: DeltaOrderToPost<'ExternalOrder'> = {
|
|
32
|
+
...postData,
|
|
33
|
+
chainId,
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
return fetcher<DeltaAuction<'ExternalOrder'>>({
|
|
37
|
+
url: postOrderUrl,
|
|
38
|
+
method: 'POST',
|
|
39
|
+
data: deltaOrderToPost,
|
|
40
|
+
requestParams,
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
return { postExternalDeltaOrder };
|
|
45
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Prettify } from 'ts-essentials';
|
|
2
|
+
import { API_URL } from '../../constants';
|
|
3
|
+
import type { ConstructFetchInput, RequestParameters } from '../../types';
|
|
4
|
+
import type { DeltaAuction, TWAPOnChainOrderType } from './helpers/types';
|
|
5
|
+
import type { DeltaOrderToPost } from './postDeltaOrder';
|
|
6
|
+
import { constructSearchString } from '../../helpers/misc';
|
|
7
|
+
|
|
8
|
+
export type PostTWAPDeltaOrderParams = Prettify<
|
|
9
|
+
Omit<
|
|
10
|
+
DeltaOrderToPost<'TWAPOrder'> | DeltaOrderToPost<'TWAPBuyOrder'>,
|
|
11
|
+
'chainId'
|
|
12
|
+
> & {
|
|
13
|
+
/** @description Must be "TWAPOrder" or "TWAPBuyOrder" */
|
|
14
|
+
onChainOrderType: TWAPOnChainOrderType;
|
|
15
|
+
degenMode?: boolean;
|
|
16
|
+
}
|
|
17
|
+
>;
|
|
18
|
+
|
|
19
|
+
type PostTWAPDeltaOrder = (
|
|
20
|
+
postData: PostTWAPDeltaOrderParams,
|
|
21
|
+
requestParams?: RequestParameters
|
|
22
|
+
) => Promise<DeltaAuction<'TWAPOrder'> | DeltaAuction<'TWAPBuyOrder'>>;
|
|
23
|
+
|
|
24
|
+
export type PostTWAPDeltaOrderFunctions = {
|
|
25
|
+
postTWAPDeltaOrder: PostTWAPDeltaOrder;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export const constructPostTWAPDeltaOrder = ({
|
|
29
|
+
apiURL = API_URL,
|
|
30
|
+
chainId,
|
|
31
|
+
fetcher,
|
|
32
|
+
}: ConstructFetchInput): PostTWAPDeltaOrderFunctions => {
|
|
33
|
+
const postOrderUrl = `${apiURL}/delta/orders` as const;
|
|
34
|
+
|
|
35
|
+
const postTWAPDeltaOrder: PostTWAPDeltaOrder = (_postData, requestParams) => {
|
|
36
|
+
const { degenMode, ...postData } = _postData;
|
|
37
|
+
const deltaOrderToPost: DeltaOrderToPost<'TWAPOrder' | 'TWAPBuyOrder'> = {
|
|
38
|
+
...postData,
|
|
39
|
+
chainId,
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const search = constructSearchString<{ degenMode?: boolean }>({
|
|
43
|
+
degenMode,
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const fetchURL = `${postOrderUrl}/${search}` as const;
|
|
47
|
+
|
|
48
|
+
return fetcher<DeltaAuction<'TWAPOrder'> | DeltaAuction<'TWAPBuyOrder'>>({
|
|
49
|
+
url: fetchURL,
|
|
50
|
+
method: 'POST',
|
|
51
|
+
data: deltaOrderToPost,
|
|
52
|
+
requestParams,
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
return { postTWAPDeltaOrder };
|
|
57
|
+
};
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
SignableDeltaOrderData,
|
|
10
10
|
} from './helpers/buildDeltaOrderData';
|
|
11
11
|
import { sanitizeDeltaOrderData } from './helpers/misc';
|
|
12
|
+
import { PreSignatureModuleAbi } from './helpers/abi';
|
|
12
13
|
import type { ExtractAbiMethodNames } from '../../helpers/misc';
|
|
13
14
|
import { findPrimaryType } from '../../helpers/providers/helpers';
|
|
14
15
|
import { constructGetDeltaContract } from './getDeltaContract';
|
|
@@ -42,27 +43,6 @@ export type PreSignDeltaOrderFunctions<T> = {
|
|
|
42
43
|
preSignDeltaOrder: PreSignDeltaOrder<T>;
|
|
43
44
|
};
|
|
44
45
|
|
|
45
|
-
const PreSignatureModuleAbi = [
|
|
46
|
-
{
|
|
47
|
-
inputs: [
|
|
48
|
-
{
|
|
49
|
-
internalType: 'bytes32',
|
|
50
|
-
name: 'orderHash',
|
|
51
|
-
type: 'bytes32',
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
internalType: 'bool',
|
|
55
|
-
name: 'preSigned',
|
|
56
|
-
type: 'bool',
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
name: 'setPreSignature',
|
|
60
|
-
outputs: [],
|
|
61
|
-
stateMutability: 'nonpayable',
|
|
62
|
-
type: 'function',
|
|
63
|
-
},
|
|
64
|
-
] as const;
|
|
65
|
-
|
|
66
46
|
type AvailableMethods = ExtractAbiMethodNames<typeof PreSignatureModuleAbi>;
|
|
67
47
|
|
|
68
48
|
// returns whatever `contractCaller` returns
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { hashTypedData } from 'viem/utils';
|
|
2
|
+
import type {
|
|
3
|
+
ConstructProviderFetchInput,
|
|
4
|
+
RequestParameters,
|
|
5
|
+
TxSendOverrides,
|
|
6
|
+
} from '../../types';
|
|
7
|
+
import {
|
|
8
|
+
produceExternalOrderTypedData,
|
|
9
|
+
SignableExternalOrderData,
|
|
10
|
+
} from './helpers/buildExternalOrderData';
|
|
11
|
+
import { sanitizeExternalOrderData } from './helpers/misc';
|
|
12
|
+
import { PreSignatureModuleAbi } from './helpers/abi';
|
|
13
|
+
import type { ExtractAbiMethodNames } from '../../helpers/misc';
|
|
14
|
+
import { findPrimaryType } from '../../helpers/providers/helpers';
|
|
15
|
+
import { constructGetDeltaContract } from './getDeltaContract';
|
|
16
|
+
import type { ExternalDeltaOrder } from './helpers/types';
|
|
17
|
+
|
|
18
|
+
type HashExternalDeltaOrderTypedData = (
|
|
19
|
+
signableOrderData: SignableExternalOrderData
|
|
20
|
+
) => string;
|
|
21
|
+
|
|
22
|
+
type HashExternalDeltaOrder = (
|
|
23
|
+
orderData: ExternalDeltaOrder,
|
|
24
|
+
requestParams?: RequestParameters
|
|
25
|
+
) => Promise<string>;
|
|
26
|
+
|
|
27
|
+
export type SetExternalDeltaOrderPreSignature<T> = (
|
|
28
|
+
orderHash: string,
|
|
29
|
+
overrides?: TxSendOverrides,
|
|
30
|
+
requestParams?: RequestParameters
|
|
31
|
+
) => Promise<T>;
|
|
32
|
+
|
|
33
|
+
export type PreSignExternalDeltaOrder<T> = (
|
|
34
|
+
signableOrderData: SignableExternalOrderData,
|
|
35
|
+
overrides?: TxSendOverrides,
|
|
36
|
+
requestParams?: RequestParameters
|
|
37
|
+
) => Promise<T>;
|
|
38
|
+
|
|
39
|
+
export type PreSignExternalDeltaOrderFunctions<T> = {
|
|
40
|
+
hashExternalDeltaOrderTypedData: HashExternalDeltaOrderTypedData;
|
|
41
|
+
hashExternalDeltaOrder: HashExternalDeltaOrder;
|
|
42
|
+
setExternalDeltaOrderPreSignature: SetExternalDeltaOrderPreSignature<T>;
|
|
43
|
+
preSignExternalDeltaOrder: PreSignExternalDeltaOrder<T>;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
type AvailableMethods = ExtractAbiMethodNames<typeof PreSignatureModuleAbi>;
|
|
47
|
+
|
|
48
|
+
// returns whatever `contractCaller` returns
|
|
49
|
+
// to allow for better versatility
|
|
50
|
+
export const constructPreSignExternalDeltaOrder = <T>(
|
|
51
|
+
options: ConstructProviderFetchInput<T, 'transactCall'>
|
|
52
|
+
): PreSignExternalDeltaOrderFunctions<T> => {
|
|
53
|
+
const hashExternalDeltaOrderTypedData: HashExternalDeltaOrderTypedData = (
|
|
54
|
+
typedData
|
|
55
|
+
) => {
|
|
56
|
+
// types allow to pass OrderData & extra_stuff, but tx will break like that
|
|
57
|
+
const typedDataOnly: SignableExternalOrderData = {
|
|
58
|
+
...typedData,
|
|
59
|
+
data: sanitizeExternalOrderData(typedData.data),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const orderHash = produceExternalOrderHash(typedDataOnly);
|
|
63
|
+
|
|
64
|
+
return orderHash;
|
|
65
|
+
};
|
|
66
|
+
// cached internally
|
|
67
|
+
const { getDeltaContract } = constructGetDeltaContract(options);
|
|
68
|
+
|
|
69
|
+
const hashExternalDeltaOrder: HashExternalDeltaOrder = async (
|
|
70
|
+
orderData,
|
|
71
|
+
requestParams
|
|
72
|
+
) => {
|
|
73
|
+
const ParaswapDelta = await getDeltaContract(requestParams);
|
|
74
|
+
if (!ParaswapDelta) {
|
|
75
|
+
throw new Error(`Delta is not available on chain ${options.chainId}`);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const typedData = produceExternalOrderTypedData({
|
|
79
|
+
orderInput: orderData,
|
|
80
|
+
chainId: options.chainId,
|
|
81
|
+
paraswapDeltaAddress: ParaswapDelta,
|
|
82
|
+
});
|
|
83
|
+
return hashExternalDeltaOrderTypedData(typedData);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const setExternalDeltaOrderPreSignature: SetExternalDeltaOrderPreSignature<
|
|
87
|
+
T
|
|
88
|
+
> = async (orderHash, overrides = {}, requestParams) => {
|
|
89
|
+
const ParaswapDelta = await getDeltaContract(requestParams);
|
|
90
|
+
if (!ParaswapDelta) {
|
|
91
|
+
throw new Error(`Delta is not available on chain ${options.chainId}`);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const res = await options.contractCaller.transactCall<AvailableMethods>({
|
|
95
|
+
address: ParaswapDelta,
|
|
96
|
+
abi: PreSignatureModuleAbi,
|
|
97
|
+
contractMethod: 'setPreSignature',
|
|
98
|
+
args: [orderHash, true],
|
|
99
|
+
overrides,
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
return res;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
const preSignExternalDeltaOrder: PreSignExternalDeltaOrder<T> = async (
|
|
106
|
+
signableOrderData,
|
|
107
|
+
overrides = {},
|
|
108
|
+
requestParams
|
|
109
|
+
) => {
|
|
110
|
+
const orderHash = hashExternalDeltaOrderTypedData(signableOrderData);
|
|
111
|
+
const res = await setExternalDeltaOrderPreSignature(
|
|
112
|
+
orderHash,
|
|
113
|
+
overrides,
|
|
114
|
+
requestParams
|
|
115
|
+
);
|
|
116
|
+
return res;
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
return {
|
|
120
|
+
hashExternalDeltaOrderTypedData,
|
|
121
|
+
hashExternalDeltaOrder,
|
|
122
|
+
setExternalDeltaOrderPreSignature,
|
|
123
|
+
preSignExternalDeltaOrder,
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
export function produceExternalOrderHash(
|
|
128
|
+
typedData: SignableExternalOrderData
|
|
129
|
+
): string {
|
|
130
|
+
return hashTypedData({
|
|
131
|
+
domain: {
|
|
132
|
+
name: typedData.domain.name,
|
|
133
|
+
version: typedData.domain.version,
|
|
134
|
+
chainId: typedData.domain.chainId,
|
|
135
|
+
verifyingContract: typedData.domain.verifyingContract as `0x${string}`,
|
|
136
|
+
},
|
|
137
|
+
types: typedData.types,
|
|
138
|
+
primaryType: findPrimaryType(typedData.types),
|
|
139
|
+
message: typedData.data,
|
|
140
|
+
});
|
|
141
|
+
}
|