@velora-dex/sdk 9.5.3 → 9.5.4-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/dist/examples/deltaV2.d.ts +2 -0
- package/dist/examples/deltaV2.d.ts.map +1 -0
- package/dist/examples/helpers/deltaV2.d.ts +5 -0
- package/dist/examples/helpers/deltaV2.d.ts.map +1 -0
- package/dist/index.d.ts +18 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/methods/delta/cancelDeltaOrder.d.ts.map +1 -1
- package/dist/methods/delta/getDeltaOrders.d.ts +4 -4
- package/dist/methods/delta/getDeltaOrders.d.ts.map +1 -1
- package/dist/methods/delta/getDeltaPrice.d.ts +1 -1
- package/dist/methods/delta/getDeltaPrice.d.ts.map +1 -1
- package/dist/methods/delta/helpers/orders.d.ts +16 -1
- package/dist/methods/delta/helpers/orders.d.ts.map +1 -1
- package/dist/methods/delta/helpers/types.d.ts +49 -5
- package/dist/methods/delta/helpers/types.d.ts.map +1 -1
- package/dist/methods/delta/postDeltaOrder.d.ts +3 -3
- package/dist/methods/delta/postDeltaOrder.d.ts.map +1 -1
- package/dist/methods/deltaV2/buildDeltaOrderV2.d.ts +44 -0
- package/dist/methods/deltaV2/buildDeltaOrderV2.d.ts.map +1 -0
- package/dist/methods/deltaV2/buildExternalDeltaOrderV2.d.ts +48 -0
- package/dist/methods/deltaV2/buildExternalDeltaOrderV2.d.ts.map +1 -0
- package/dist/methods/deltaV2/buildTWAPDeltaOrderV2.d.ts +59 -0
- package/dist/methods/deltaV2/buildTWAPDeltaOrderV2.d.ts.map +1 -0
- package/dist/methods/deltaV2/cancelDeltaOrderV2.d.ts +21 -0
- package/dist/methods/deltaV2/cancelDeltaOrderV2.d.ts.map +1 -0
- package/dist/methods/deltaV2/getAgentsListV2.d.ts +10 -0
- package/dist/methods/deltaV2/getAgentsListV2.d.ts.map +1 -0
- package/dist/methods/deltaV2/getBridgeRoutes.d.ts +20 -0
- package/dist/methods/deltaV2/getBridgeRoutes.d.ts.map +1 -0
- package/dist/methods/deltaV2/getDeltaOrdersV2.d.ts +33 -0
- package/dist/methods/deltaV2/getDeltaOrdersV2.d.ts.map +1 -0
- package/dist/methods/deltaV2/getDeltaPriceV2.d.ts +46 -0
- package/dist/methods/deltaV2/getDeltaPriceV2.d.ts.map +1 -0
- package/dist/methods/deltaV2/index.d.ts +59 -0
- package/dist/methods/deltaV2/index.d.ts.map +1 -0
- package/dist/methods/deltaV2/isTokenSupportedInDeltaV2.d.ts +8 -0
- package/dist/methods/deltaV2/isTokenSupportedInDeltaV2.d.ts.map +1 -0
- package/dist/methods/deltaV2/postDeltaOrderV2.d.ts +28 -0
- package/dist/methods/deltaV2/postDeltaOrderV2.d.ts.map +1 -0
- package/dist/methods/deltaV2/postExternalDeltaOrderV2.d.ts +11 -0
- package/dist/methods/deltaV2/postExternalDeltaOrderV2.d.ts.map +1 -0
- package/dist/methods/deltaV2/postTWAPDeltaOrderV2.d.ts +16 -0
- package/dist/methods/deltaV2/postTWAPDeltaOrderV2.d.ts.map +1 -0
- package/dist/methods/deltaV2/types.d.ts +163 -0
- package/dist/methods/deltaV2/types.d.ts.map +1 -0
- package/dist/sdk/full.d.ts +2 -0
- package/dist/sdk/full.d.ts.map +1 -1
- package/dist/sdk/simple.d.ts +10 -0
- package/dist/sdk/simple.d.ts.map +1 -1
- package/dist/sdk.cjs.development.js +1091 -242
- 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 +1075 -243
- package/dist/sdk.esm.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/examples/deltaV2.ts +200 -0
- package/src/examples/helpers/deltaV2.ts +29 -0
- package/src/index.js +18 -0
- package/src/index.ts +153 -0
- package/src/methods/delta/cancelDeltaOrder.ts +4 -1
- package/src/methods/delta/getDeltaOrders.ts +6 -5
- package/src/methods/delta/getDeltaPrice.ts +1 -1
- package/src/methods/delta/helpers/orders.ts +26 -0
- package/src/methods/delta/helpers/types.ts +62 -13
- package/src/methods/delta/postDeltaOrder.ts +4 -4
- package/src/methods/delta/postTWAPDeltaOrder.ts +1 -1
- package/src/methods/deltaV2/buildDeltaOrderV2.ts +86 -0
- package/src/methods/deltaV2/buildExternalDeltaOrderV2.ts +95 -0
- package/src/methods/deltaV2/buildTWAPDeltaOrderV2.ts +131 -0
- package/src/methods/deltaV2/cancelDeltaOrderV2.ts +103 -0
- package/src/methods/deltaV2/getAgentsListV2.ts +34 -0
- package/src/methods/deltaV2/getBridgeRoutes.ts +82 -0
- package/src/methods/deltaV2/getDeltaOrdersV2.ts +119 -0
- package/src/methods/deltaV2/getDeltaPriceV2.ts +108 -0
- package/src/methods/deltaV2/index.ts +303 -0
- package/src/methods/deltaV2/isTokenSupportedInDeltaV2.ts +52 -0
- package/src/methods/deltaV2/postDeltaOrderV2.ts +65 -0
- package/src/methods/deltaV2/postExternalDeltaOrderV2.ts +45 -0
- package/src/methods/deltaV2/postTWAPDeltaOrderV2.ts +63 -0
- package/src/methods/deltaV2/types.ts +189 -0
- package/src/sdk/full.ts +8 -0
- package/src/sdk/simple.ts +56 -0
- package/src/types.ts +9 -0
|
@@ -123,6 +123,41 @@ export type ExternalDeltaOrder = {
|
|
|
123
123
|
data: string;
|
|
124
124
|
};
|
|
125
125
|
|
|
126
|
+
export type ProductiveDeltaOrder = {
|
|
127
|
+
/** @description The address of the order owner */
|
|
128
|
+
owner: string;
|
|
129
|
+
/** @description The address of the order beneficiary */
|
|
130
|
+
beneficiary: string;
|
|
131
|
+
/** @description The address of the src token */
|
|
132
|
+
srcToken: string;
|
|
133
|
+
/** @description The address of the dest token */
|
|
134
|
+
destToken: string;
|
|
135
|
+
/** @description The amount of src token to swap */
|
|
136
|
+
srcAmount: string;
|
|
137
|
+
/** @description The minimum amount of dest token to receive */
|
|
138
|
+
destAmount: string;
|
|
139
|
+
/** @description The expected amount of token to receive */
|
|
140
|
+
expectedAmount: string;
|
|
141
|
+
/** @description The deadline for the order */
|
|
142
|
+
deadline: number;
|
|
143
|
+
/** @description The nonce of the order */
|
|
144
|
+
nonce: string;
|
|
145
|
+
/** @description Metadata for the order, hex string */
|
|
146
|
+
metadata: string;
|
|
147
|
+
/** @description Encoded partner address, fee bps, and flags for the order. partnerAndFee = (partner << 96) | (partnerTakesSurplus << 8) | fee in bps (max fee is 2%) */
|
|
148
|
+
partnerAndFee: string;
|
|
149
|
+
/** @description Optional permit signature for the src token */
|
|
150
|
+
permit: string;
|
|
151
|
+
/** @description The strategy address. */
|
|
152
|
+
strategy: string;
|
|
153
|
+
/** @description The number of shares to execute for this order. */
|
|
154
|
+
shares: string;
|
|
155
|
+
/** @description Whether the order uses shares or raw amounts. */
|
|
156
|
+
useShares: boolean;
|
|
157
|
+
/** @description The bridge input */
|
|
158
|
+
bridge: Bridge;
|
|
159
|
+
};
|
|
160
|
+
|
|
126
161
|
type TWAPDeltaOrderBase = {
|
|
127
162
|
/** @description The address of the order owner */
|
|
128
163
|
owner: string;
|
|
@@ -216,6 +251,7 @@ export type OnChainOrderMap = {
|
|
|
216
251
|
ExternalOrder: ExternalDeltaOrder;
|
|
217
252
|
TWAPOrder: TWAPDeltaOrder;
|
|
218
253
|
TWAPBuyOrder: TWAPBuyDeltaOrder;
|
|
254
|
+
ProductiveOrder: ProductiveDeltaOrder;
|
|
219
255
|
};
|
|
220
256
|
|
|
221
257
|
type BaseBridgeAuctionFields = Pick<
|
|
@@ -228,6 +264,7 @@ type BridgeAuctionFiledsMap = {
|
|
|
228
264
|
ExternalOrder: BaseBridgeAuctionFields;
|
|
229
265
|
TWAPOrder: Record<keyof BaseBridgeAuctionFields, null>;
|
|
230
266
|
TWAPBuyOrder: Record<keyof BaseBridgeAuctionFields, null>;
|
|
267
|
+
ProductiveOrder: BaseBridgeAuctionFields;
|
|
231
268
|
};
|
|
232
269
|
|
|
233
270
|
type DeltaAuctionBase = {
|
|
@@ -252,35 +289,43 @@ type DeltaAuctionBase = {
|
|
|
252
289
|
bridgeMetadata: BridgeMetadata | null;
|
|
253
290
|
bridgeStatus: BridgeStatus | null;
|
|
254
291
|
|
|
255
|
-
type:
|
|
292
|
+
type: DeltaOrderType;
|
|
256
293
|
};
|
|
257
294
|
|
|
258
|
-
export type DeltaAuction<
|
|
259
|
-
T extends
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
295
|
+
export type DeltaAuction<
|
|
296
|
+
T extends keyof OnChainOrderMap = keyof OnChainOrderMap,
|
|
297
|
+
> = T extends T
|
|
298
|
+
? Prettify<
|
|
299
|
+
DeltaAuctionBase & {
|
|
300
|
+
onChainOrderType: T;
|
|
301
|
+
order: OnChainOrderMap[T];
|
|
302
|
+
} & BridgeAuctionFiledsMap[T]
|
|
303
|
+
>
|
|
304
|
+
: never;
|
|
267
305
|
|
|
268
306
|
export type DeltaAuctionDelta = DeltaAuction<'Order'>;
|
|
269
307
|
export type DeltaAuctionExternal = DeltaAuction<'ExternalOrder'>;
|
|
270
308
|
export type DeltaAuctionTWAP = DeltaAuction<'TWAPOrder'>;
|
|
271
309
|
export type DeltaAuctionTWAPBuy = DeltaAuction<'TWAPBuyOrder'>;
|
|
310
|
+
export type DeltaAuctionProductive = DeltaAuction<'ProductiveOrder'>;
|
|
272
311
|
|
|
273
312
|
export type DeltaAuctionUnion =
|
|
274
313
|
| DeltaAuctionDelta
|
|
275
314
|
| DeltaAuctionExternal
|
|
276
315
|
| DeltaAuctionTWAP
|
|
277
|
-
| DeltaAuctionTWAPBuy
|
|
316
|
+
| DeltaAuctionTWAPBuy
|
|
317
|
+
| DeltaAuctionProductive;
|
|
278
318
|
|
|
279
319
|
export type DeltaOrderUnion = OnChainOrderMap[keyof OnChainOrderMap];
|
|
280
320
|
|
|
281
321
|
export type BridgeMetadata = {
|
|
282
|
-
/** @description
|
|
322
|
+
/** @description Actual amount received on the destination chain. */
|
|
283
323
|
outputAmount: string;
|
|
324
|
+
/** @description Field is present iff: order was built via POST /v2/orders/build,
|
|
325
|
+
* the route is cross-chain (route.bridge !== null and not an external handler),
|
|
326
|
+
* and the order is posted before the per-order cache entry expires.
|
|
327
|
+
*/
|
|
328
|
+
expectedOutputAmount?: string;
|
|
284
329
|
/** @description The cross-chain deadline. If deadline passes, the bridgeStatus would be expired */
|
|
285
330
|
fillDeadline?: number; // available for Across protocol
|
|
286
331
|
/** @description The deposit id */
|
|
@@ -298,10 +343,14 @@ export type OnChainOrderType =
|
|
|
298
343
|
| 'Order'
|
|
299
344
|
| 'ExternalOrder'
|
|
300
345
|
| 'TWAPOrder'
|
|
301
|
-
| 'TWAPBuyOrder'
|
|
346
|
+
| 'TWAPBuyOrder'
|
|
347
|
+
| 'ProductiveOrder';
|
|
302
348
|
|
|
303
349
|
export type TWAPOnChainOrderType = 'TWAPOrder' | 'TWAPBuyOrder';
|
|
304
350
|
|
|
351
|
+
/** @description Order kind: MARKET (immediate) vs LIMIT (rate-pegged). */
|
|
352
|
+
export type DeltaOrderType = 'MARKET' | 'LIMIT';
|
|
353
|
+
|
|
305
354
|
//// available on BridgePrice ////
|
|
306
355
|
|
|
307
356
|
type BridgeQuoteFee = {
|
|
@@ -3,11 +3,11 @@ import { constructSearchString } from '../../helpers/misc';
|
|
|
3
3
|
import type { ConstructFetchInput, RequestParameters } from '../../types';
|
|
4
4
|
import type {
|
|
5
5
|
DeltaAuction,
|
|
6
|
+
DeltaOrderType,
|
|
6
7
|
OnChainOrderMap,
|
|
7
|
-
OnChainOrderType,
|
|
8
8
|
} from './helpers/types';
|
|
9
9
|
|
|
10
|
-
export type DeltaOrderToPost<T extends
|
|
10
|
+
export type DeltaOrderToPost<T extends keyof OnChainOrderMap = 'Order'> = {
|
|
11
11
|
/** @description Partner string */
|
|
12
12
|
partner?: string;
|
|
13
13
|
/** @description Referrer address */
|
|
@@ -20,7 +20,7 @@ export type DeltaOrderToPost<T extends OnChainOrderType = 'Order'> = {
|
|
|
20
20
|
partiallyFillable?: boolean;
|
|
21
21
|
|
|
22
22
|
/** @description Type of the order. MARKET or LIMIT. Default is MARKET */
|
|
23
|
-
type?:
|
|
23
|
+
type?: DeltaOrderType;
|
|
24
24
|
|
|
25
25
|
includeAgents?: string[];
|
|
26
26
|
excludeAgents?: string[];
|
|
@@ -53,7 +53,7 @@ export const constructPostDeltaOrder = ({
|
|
|
53
53
|
const search = constructSearchString<{ degenMode?: boolean }>({
|
|
54
54
|
degenMode,
|
|
55
55
|
});
|
|
56
|
-
const fetchURL = `${postOrderUrl}
|
|
56
|
+
const fetchURL = `${postOrderUrl}${search}` as const;
|
|
57
57
|
|
|
58
58
|
return fetcher<DeltaAuction<'Order'>>({
|
|
59
59
|
url: fetchURL,
|
|
@@ -43,7 +43,7 @@ export const constructPostTWAPDeltaOrder = ({
|
|
|
43
43
|
degenMode,
|
|
44
44
|
});
|
|
45
45
|
|
|
46
|
-
const fetchURL = `${postOrderUrl}
|
|
46
|
+
const fetchURL = `${postOrderUrl}${search}` as const;
|
|
47
47
|
|
|
48
48
|
return fetcher<DeltaAuction<'TWAPOrder'> | DeltaAuction<'TWAPBuyOrder'>>({
|
|
49
49
|
url: fetchURL,
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { API_URL } from '../../constants';
|
|
2
|
+
import type { ConstructFetchInput, RequestParameters } from '../../types';
|
|
3
|
+
import type { BuiltDeltaOrderV2, DeltaRoute } from './types';
|
|
4
|
+
export type { BuiltDeltaOrderV2 } from './types';
|
|
5
|
+
|
|
6
|
+
export type BuildDeltaOrderV2Params = {
|
|
7
|
+
/** @description The address of the order owner */
|
|
8
|
+
owner: string;
|
|
9
|
+
/** @description The address of the order beneficiary. Defaults to owner. */
|
|
10
|
+
beneficiary?: string;
|
|
11
|
+
/** @description The deadline for the order (unix seconds) */
|
|
12
|
+
deadline?: number;
|
|
13
|
+
/** @description The nonce of the order. Random if omitted. */
|
|
14
|
+
nonce?: string;
|
|
15
|
+
/** @description Optional permit signature for the src token. Defaults to "0x". */
|
|
16
|
+
permit?: string;
|
|
17
|
+
/** @description Partner string. Passed to the server to resolve partner fee details. */
|
|
18
|
+
partner?: string;
|
|
19
|
+
/** @description Partner fee in basis points (bps), 50bps=0.5% */
|
|
20
|
+
partnerFeeBps?: number;
|
|
21
|
+
/** @description Partner address */
|
|
22
|
+
partnerAddress?: string;
|
|
23
|
+
/** @description Take surplus flag */
|
|
24
|
+
partnerTakesSurplus?: boolean;
|
|
25
|
+
/** @description Whether the surplus should be capped. True by default. */
|
|
26
|
+
capSurplus?: boolean;
|
|
27
|
+
/** @description Metadata for the order, hex string */
|
|
28
|
+
metadata?: string;
|
|
29
|
+
/** @description Designates the Order as partially fillable instead of fill-or-kill. Default false. */
|
|
30
|
+
partiallyFillable?: boolean;
|
|
31
|
+
|
|
32
|
+
/** @description DeltaRoute from getDeltaPriceV2 — either priceV2.route or any priceV2.alternatives[i] */
|
|
33
|
+
route: DeltaRoute;
|
|
34
|
+
/** @description Order side. SELL or BUY. */
|
|
35
|
+
side: 'SELL' | 'BUY';
|
|
36
|
+
/** @description Slippage in basis points (bps). 10000 = 100%, 50 = 0.5%. Default 0. */
|
|
37
|
+
slippage?: number;
|
|
38
|
+
/** @description If passed, the server will use this as SELL destAmount (as BUY srcAmount) and expectedAmount */
|
|
39
|
+
limitAmount?: string;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
type BuildDeltaOrderV2 = (
|
|
43
|
+
buildOrderParams: BuildDeltaOrderV2Params,
|
|
44
|
+
requestParams?: RequestParameters
|
|
45
|
+
) => Promise<BuiltDeltaOrderV2>;
|
|
46
|
+
|
|
47
|
+
export type BuildDeltaOrderV2Functions = {
|
|
48
|
+
/** @description Build a Delta v2 order from a DeltaRoute via the server endpoint, ready to sign and post. */
|
|
49
|
+
buildDeltaOrderV2: BuildDeltaOrderV2;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export const constructBuildDeltaOrderV2 = (
|
|
53
|
+
options: ConstructFetchInput
|
|
54
|
+
): BuildDeltaOrderV2Functions => {
|
|
55
|
+
const { apiURL = API_URL, chainId, fetcher } = options;
|
|
56
|
+
const buildUrl = `${apiURL}/delta/v2/orders/build` as const;
|
|
57
|
+
|
|
58
|
+
const buildDeltaOrderV2: BuildDeltaOrderV2 = async (params, requestParams) =>
|
|
59
|
+
fetcher<BuiltDeltaOrderV2>({
|
|
60
|
+
url: buildUrl,
|
|
61
|
+
method: 'POST',
|
|
62
|
+
data: {
|
|
63
|
+
chainId,
|
|
64
|
+
side: params.side,
|
|
65
|
+
route: params.route,
|
|
66
|
+
owner: params.owner,
|
|
67
|
+
beneficiary: params.beneficiary,
|
|
68
|
+
deadline: params.deadline,
|
|
69
|
+
nonce: params.nonce,
|
|
70
|
+
permit: params.permit,
|
|
71
|
+
slippage: params.slippage,
|
|
72
|
+
limitAmount: params.limitAmount,
|
|
73
|
+
metadata: params.metadata,
|
|
74
|
+
partiallyFillable: params.partiallyFillable,
|
|
75
|
+
partner: params.partner,
|
|
76
|
+
partnerAddress: params.partnerAddress,
|
|
77
|
+
partnerFeeBps: params.partnerFeeBps,
|
|
78
|
+
partnerTakesSurplus: params.partnerTakesSurplus,
|
|
79
|
+
capSurplus: params.capSurplus,
|
|
80
|
+
orderType: 'Order',
|
|
81
|
+
},
|
|
82
|
+
requestParams,
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
return { buildDeltaOrderV2 };
|
|
86
|
+
};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { API_URL } from '../../constants';
|
|
2
|
+
import type { ConstructFetchInput, RequestParameters } from '../../types';
|
|
3
|
+
import type { BuiltDeltaOrderV2, DeltaRoute } from './types';
|
|
4
|
+
export type { BuiltDeltaOrderV2 } from './types';
|
|
5
|
+
|
|
6
|
+
export type BuildExternalDeltaOrderV2Params = {
|
|
7
|
+
/** @description The address of the order owner */
|
|
8
|
+
owner: string;
|
|
9
|
+
/** @description The address of the external handler contract */
|
|
10
|
+
handler: string;
|
|
11
|
+
/** @description Protocol-specific encoded bytes for the external handler */
|
|
12
|
+
data: string;
|
|
13
|
+
/** @description The address of the order beneficiary. Defaults to owner. */
|
|
14
|
+
beneficiary?: string;
|
|
15
|
+
/** @description The deadline for the order (unix seconds) */
|
|
16
|
+
deadline?: number;
|
|
17
|
+
/** @description The nonce of the order. Random if omitted. */
|
|
18
|
+
nonce?: string;
|
|
19
|
+
/** @description Optional permit signature for the src token. Defaults to "0x". */
|
|
20
|
+
permit?: string;
|
|
21
|
+
/** @description Partner string. Passed to the server to resolve partner fee details. */
|
|
22
|
+
partner?: string;
|
|
23
|
+
/** @description Partner fee in basis points (bps), 50bps=0.5% */
|
|
24
|
+
partnerFeeBps?: number;
|
|
25
|
+
/** @description Partner address */
|
|
26
|
+
partnerAddress?: string;
|
|
27
|
+
/** @description Take surplus flag */
|
|
28
|
+
partnerTakesSurplus?: boolean;
|
|
29
|
+
/** @description Whether the surplus should be capped. True by default. */
|
|
30
|
+
capSurplus?: boolean;
|
|
31
|
+
/** @description Metadata for the order, hex string */
|
|
32
|
+
metadata?: string;
|
|
33
|
+
/** @description Designates the Order as partially fillable. Default false. */
|
|
34
|
+
partiallyFillable?: boolean;
|
|
35
|
+
|
|
36
|
+
/** @description DeltaRoute from getDeltaPriceV2 */
|
|
37
|
+
route: DeltaRoute;
|
|
38
|
+
/** @description Order side. SELL or BUY. */
|
|
39
|
+
side: 'SELL' | 'BUY';
|
|
40
|
+
/** @description Slippage in basis points (bps). Default 0. */
|
|
41
|
+
slippage?: number;
|
|
42
|
+
/** @description If passed, the server will use this as SELL destAmount (as BUY srcAmount) and expectedAmount */
|
|
43
|
+
limitAmount?: string;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
type BuildExternalDeltaOrderV2 = (
|
|
47
|
+
buildOrderParams: BuildExternalDeltaOrderV2Params,
|
|
48
|
+
requestParams?: RequestParameters
|
|
49
|
+
) => Promise<BuiltDeltaOrderV2>;
|
|
50
|
+
|
|
51
|
+
export type BuildExternalDeltaOrderV2Functions = {
|
|
52
|
+
/** @description Build a Delta v2 External Order from a DeltaRoute via the server endpoint, ready to sign and post. */
|
|
53
|
+
buildExternalDeltaOrderV2: BuildExternalDeltaOrderV2;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export const constructBuildExternalDeltaOrderV2 = (
|
|
57
|
+
options: ConstructFetchInput
|
|
58
|
+
): BuildExternalDeltaOrderV2Functions => {
|
|
59
|
+
const { apiURL = API_URL, chainId, fetcher } = options;
|
|
60
|
+
const buildUrl = `${apiURL}/delta/v2/orders/build` as const;
|
|
61
|
+
|
|
62
|
+
const buildExternalDeltaOrderV2: BuildExternalDeltaOrderV2 = async (
|
|
63
|
+
params,
|
|
64
|
+
requestParams
|
|
65
|
+
) =>
|
|
66
|
+
fetcher<BuiltDeltaOrderV2>({
|
|
67
|
+
url: buildUrl,
|
|
68
|
+
method: 'POST',
|
|
69
|
+
data: {
|
|
70
|
+
chainId,
|
|
71
|
+
side: params.side,
|
|
72
|
+
route: params.route,
|
|
73
|
+
owner: params.owner,
|
|
74
|
+
handler: params.handler,
|
|
75
|
+
data: params.data,
|
|
76
|
+
beneficiary: params.beneficiary,
|
|
77
|
+
deadline: params.deadline,
|
|
78
|
+
nonce: params.nonce,
|
|
79
|
+
permit: params.permit,
|
|
80
|
+
slippage: params.slippage,
|
|
81
|
+
limitAmount: params.limitAmount,
|
|
82
|
+
metadata: params.metadata,
|
|
83
|
+
partiallyFillable: params.partiallyFillable,
|
|
84
|
+
partner: params.partner,
|
|
85
|
+
partnerAddress: params.partnerAddress,
|
|
86
|
+
partnerFeeBps: params.partnerFeeBps,
|
|
87
|
+
partnerTakesSurplus: params.partnerTakesSurplus,
|
|
88
|
+
capSurplus: params.capSurplus,
|
|
89
|
+
orderType: 'ExternalOrder',
|
|
90
|
+
},
|
|
91
|
+
requestParams,
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
return { buildExternalDeltaOrderV2 };
|
|
95
|
+
};
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { API_URL } from '../../constants';
|
|
2
|
+
import type { ConstructFetchInput, RequestParameters } from '../../types';
|
|
3
|
+
import type { BuiltDeltaOrderV2, DeltaRoute } from './types';
|
|
4
|
+
export type { BuiltDeltaOrderV2 } from './types';
|
|
5
|
+
|
|
6
|
+
type BuildTWAPDeltaOrderV2Base = {
|
|
7
|
+
/** @description The address of the order owner */
|
|
8
|
+
owner: string;
|
|
9
|
+
/** @description The address of the order beneficiary. Defaults to owner. */
|
|
10
|
+
beneficiary?: string;
|
|
11
|
+
/** @description The deadline for the order (unix seconds) */
|
|
12
|
+
deadline?: number;
|
|
13
|
+
/** @description The nonce of the order. Random if omitted. */
|
|
14
|
+
nonce?: string;
|
|
15
|
+
/** @description Optional permit signature for the src token. Defaults to "0x". */
|
|
16
|
+
permit?: string;
|
|
17
|
+
/** @description Partner string. Passed to the server to resolve partner fee details. */
|
|
18
|
+
partner?: string;
|
|
19
|
+
/** @description Seconds between slice executions (min 60) */
|
|
20
|
+
interval: number;
|
|
21
|
+
/** @description Number of slices (min 2) */
|
|
22
|
+
numSlices: number;
|
|
23
|
+
/** @description Slippage in basis points (bps). 10000 = 100%, 50 = 0.5%. Default 0. */
|
|
24
|
+
slippage?: number;
|
|
25
|
+
/** @description DeltaRoute from getDeltaPriceV2 for a single slice */
|
|
26
|
+
route: DeltaRoute;
|
|
27
|
+
/** @description Partner fee in basis points (bps) */
|
|
28
|
+
partnerFeeBps?: number;
|
|
29
|
+
/** @description Partner address */
|
|
30
|
+
partnerAddress?: string;
|
|
31
|
+
/** @description Take surplus flag */
|
|
32
|
+
partnerTakesSurplus?: boolean;
|
|
33
|
+
/** @description Whether the surplus should be capped. True by default. */
|
|
34
|
+
capSurplus?: boolean;
|
|
35
|
+
/** @description Metadata for the order, hex string */
|
|
36
|
+
metadata?: string;
|
|
37
|
+
/** @description Designates the Order as partially fillable. Default false. */
|
|
38
|
+
partiallyFillable?: boolean;
|
|
39
|
+
/** @description If passed, the server will use this as SELL destAmount (as BUY srcAmount) and expectedAmount for each slice */
|
|
40
|
+
limitAmount?: string;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export type BuildTWAPSellDeltaOrderV2Params = BuildTWAPDeltaOrderV2Base & {
|
|
44
|
+
onChainOrderType: 'TWAPOrder';
|
|
45
|
+
/** @description Total source token amount across all slices. route.origin.input.amount must equal floor(totalSrcAmount / numSlices). */
|
|
46
|
+
totalSrcAmount: string;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export type BuildTWAPBuyDeltaOrderV2Params = BuildTWAPDeltaOrderV2Base & {
|
|
50
|
+
onChainOrderType: 'TWAPBuyOrder';
|
|
51
|
+
/** @description Total destination token amount to buy across all slices. route.origin.output.amount must equal floor(totalDestAmount / numSlices). */
|
|
52
|
+
totalDestAmount: string;
|
|
53
|
+
/** @description Maximum source token amount willing to spend across all slices. */
|
|
54
|
+
maxSrcAmount: string;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export type BuildTWAPDeltaOrderV2Params =
|
|
58
|
+
| BuildTWAPSellDeltaOrderV2Params
|
|
59
|
+
| BuildTWAPBuyDeltaOrderV2Params;
|
|
60
|
+
|
|
61
|
+
type BuildTWAPDeltaOrderV2 = (
|
|
62
|
+
buildOrderParams: BuildTWAPDeltaOrderV2Params,
|
|
63
|
+
requestParams?: RequestParameters
|
|
64
|
+
) => Promise<BuiltDeltaOrderV2>;
|
|
65
|
+
|
|
66
|
+
export type BuildTWAPDeltaOrderV2Functions = {
|
|
67
|
+
/** @description Build a Delta v2 TWAP Order (sell or buy) from a DeltaRoute via the server endpoint, ready to sign and post. */
|
|
68
|
+
buildTWAPDeltaOrderV2: BuildTWAPDeltaOrderV2;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export const constructBuildTWAPDeltaOrderV2 = (
|
|
72
|
+
options: ConstructFetchInput
|
|
73
|
+
): BuildTWAPDeltaOrderV2Functions => {
|
|
74
|
+
const { apiURL = API_URL, chainId, fetcher } = options;
|
|
75
|
+
const buildUrl = `${apiURL}/delta/v2/orders/build` as const;
|
|
76
|
+
|
|
77
|
+
const buildTWAPDeltaOrderV2: BuildTWAPDeltaOrderV2 = async (
|
|
78
|
+
params,
|
|
79
|
+
requestParams
|
|
80
|
+
) => {
|
|
81
|
+
const commonBody = {
|
|
82
|
+
chainId,
|
|
83
|
+
route: params.route,
|
|
84
|
+
owner: params.owner,
|
|
85
|
+
beneficiary: params.beneficiary,
|
|
86
|
+
deadline: params.deadline,
|
|
87
|
+
nonce: params.nonce,
|
|
88
|
+
permit: params.permit,
|
|
89
|
+
slippage: params.slippage,
|
|
90
|
+
limitAmount: params.limitAmount,
|
|
91
|
+
metadata: params.metadata,
|
|
92
|
+
partiallyFillable: params.partiallyFillable,
|
|
93
|
+
partner: params.partner,
|
|
94
|
+
partnerAddress: params.partnerAddress,
|
|
95
|
+
partnerFeeBps: params.partnerFeeBps,
|
|
96
|
+
partnerTakesSurplus: params.partnerTakesSurplus,
|
|
97
|
+
capSurplus: params.capSurplus,
|
|
98
|
+
interval: params.interval,
|
|
99
|
+
numSlices: params.numSlices,
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
if (params.onChainOrderType === 'TWAPOrder') {
|
|
103
|
+
return fetcher<BuiltDeltaOrderV2>({
|
|
104
|
+
url: buildUrl,
|
|
105
|
+
method: 'POST',
|
|
106
|
+
data: {
|
|
107
|
+
...commonBody,
|
|
108
|
+
side: 'SELL',
|
|
109
|
+
orderType: 'TWAPOrder',
|
|
110
|
+
totalSrcAmount: params.totalSrcAmount,
|
|
111
|
+
},
|
|
112
|
+
requestParams,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return fetcher<BuiltDeltaOrderV2>({
|
|
117
|
+
url: buildUrl,
|
|
118
|
+
method: 'POST',
|
|
119
|
+
data: {
|
|
120
|
+
...commonBody,
|
|
121
|
+
side: 'BUY',
|
|
122
|
+
orderType: 'TWAPBuyOrder',
|
|
123
|
+
totalDestAmount: params.totalDestAmount,
|
|
124
|
+
maxSrcAmount: params.maxSrcAmount,
|
|
125
|
+
},
|
|
126
|
+
requestParams,
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
return { buildTWAPDeltaOrderV2 };
|
|
131
|
+
};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { API_URL } from '../../constants';
|
|
2
|
+
import type {
|
|
3
|
+
ConstructProviderFetchInput,
|
|
4
|
+
RequestParameters,
|
|
5
|
+
} from '../../types';
|
|
6
|
+
import { constructGetDeltaContract } from '../delta/getDeltaContract';
|
|
7
|
+
import {
|
|
8
|
+
buildCancelDeltaOrderSignableData,
|
|
9
|
+
type CancelDeltaOrderData,
|
|
10
|
+
} from '../delta/helpers/buildCancelDeltaOrderData';
|
|
11
|
+
|
|
12
|
+
type SuccessResponse = { success: true };
|
|
13
|
+
|
|
14
|
+
type CancelDeltaOrderRequestParams = {
|
|
15
|
+
orderIds: string[];
|
|
16
|
+
signature: string;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export type SignCancelDeltaOrderRequestV2 = (
|
|
20
|
+
params: CancelDeltaOrderData,
|
|
21
|
+
requestParams?: RequestParameters
|
|
22
|
+
) => Promise<string>;
|
|
23
|
+
|
|
24
|
+
export type PostCancelDeltaOrderRequestV2 = (
|
|
25
|
+
params: CancelDeltaOrderRequestParams,
|
|
26
|
+
requestParams?: RequestParameters
|
|
27
|
+
) => Promise<SuccessResponse>;
|
|
28
|
+
|
|
29
|
+
export type CancelDeltaOrderV2 = (
|
|
30
|
+
params: CancelDeltaOrderData,
|
|
31
|
+
requestParams?: RequestParameters
|
|
32
|
+
) => Promise<SuccessResponse>;
|
|
33
|
+
|
|
34
|
+
export type CancelDeltaOrderV2Functions = {
|
|
35
|
+
signCancelDeltaOrderRequestV2: SignCancelDeltaOrderRequestV2;
|
|
36
|
+
postCancelDeltaOrderRequestV2: PostCancelDeltaOrderRequestV2;
|
|
37
|
+
/** @description Cancel one or more Delta orders via the v2 endpoint */
|
|
38
|
+
cancelDeltaOrdersV2: CancelDeltaOrderV2;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const constructCancelDeltaOrderV2 = (
|
|
42
|
+
options: Pick<
|
|
43
|
+
ConstructProviderFetchInput<any, 'signTypedDataCall'>,
|
|
44
|
+
'contractCaller' | 'fetcher' | 'apiURL' | 'chainId'
|
|
45
|
+
>
|
|
46
|
+
): CancelDeltaOrderV2Functions => {
|
|
47
|
+
const apiURL = options.apiURL ?? API_URL;
|
|
48
|
+
|
|
49
|
+
const { getDeltaContract } = constructGetDeltaContract(options);
|
|
50
|
+
|
|
51
|
+
const signCancelDeltaOrderRequestV2: SignCancelDeltaOrderRequestV2 = async (
|
|
52
|
+
params,
|
|
53
|
+
requestParams
|
|
54
|
+
) => {
|
|
55
|
+
const ParaswapDelta = await getDeltaContract(requestParams);
|
|
56
|
+
if (!ParaswapDelta) {
|
|
57
|
+
throw new Error(`Delta is not available on chain ${options.chainId}`);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const typedData = buildCancelDeltaOrderSignableData({
|
|
61
|
+
orderInput: params,
|
|
62
|
+
paraswapDeltaAddress: ParaswapDelta,
|
|
63
|
+
chainId: options.chainId,
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
return options.contractCaller.signTypedDataCall(typedData);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const postCancelDeltaOrderRequestV2: PostCancelDeltaOrderRequestV2 = async (
|
|
70
|
+
params,
|
|
71
|
+
requestParams
|
|
72
|
+
) => {
|
|
73
|
+
const cancelUrl = `${apiURL}/delta/v2/orders/cancel` as const;
|
|
74
|
+
|
|
75
|
+
return options.fetcher<SuccessResponse>({
|
|
76
|
+
url: cancelUrl,
|
|
77
|
+
method: 'POST',
|
|
78
|
+
data: params,
|
|
79
|
+
requestParams,
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const cancelDeltaOrdersV2: CancelDeltaOrderV2 = async (
|
|
84
|
+
{ orderIds },
|
|
85
|
+
requestParams
|
|
86
|
+
) => {
|
|
87
|
+
const signature = await signCancelDeltaOrderRequestV2(
|
|
88
|
+
{ orderIds },
|
|
89
|
+
requestParams
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
return postCancelDeltaOrderRequestV2(
|
|
93
|
+
{ orderIds, signature },
|
|
94
|
+
requestParams
|
|
95
|
+
);
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
return {
|
|
99
|
+
signCancelDeltaOrderRequestV2,
|
|
100
|
+
postCancelDeltaOrderRequestV2,
|
|
101
|
+
cancelDeltaOrdersV2,
|
|
102
|
+
};
|
|
103
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { API_URL } from '../../constants';
|
|
2
|
+
import type { ConstructFetchInput, RequestParameters } from '../../types';
|
|
3
|
+
|
|
4
|
+
export type AgentList = string[];
|
|
5
|
+
|
|
6
|
+
type AgentsListV2Response = AgentList;
|
|
7
|
+
|
|
8
|
+
type GetAgentsListV2 = (
|
|
9
|
+
requestParams?: RequestParameters
|
|
10
|
+
) => Promise<AgentList>;
|
|
11
|
+
|
|
12
|
+
export type GetAgentsListV2Functions = {
|
|
13
|
+
/** @description List agents available on the current chain. */
|
|
14
|
+
getAgentsListV2: GetAgentsListV2;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const constructGetAgentsListV2 = ({
|
|
18
|
+
apiURL = API_URL,
|
|
19
|
+
chainId,
|
|
20
|
+
fetcher,
|
|
21
|
+
}: ConstructFetchInput): GetAgentsListV2Functions => {
|
|
22
|
+
const baseUrl = `${apiURL}/delta/v2/agents/list/${chainId}` as const;
|
|
23
|
+
|
|
24
|
+
const getAgentsListV2: GetAgentsListV2 = async (requestParams) => {
|
|
25
|
+
const data = await fetcher<AgentsListV2Response>({
|
|
26
|
+
url: baseUrl,
|
|
27
|
+
method: 'GET',
|
|
28
|
+
requestParams,
|
|
29
|
+
});
|
|
30
|
+
return data;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
return { getAgentsListV2 };
|
|
34
|
+
};
|