@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.
Files changed (86) hide show
  1. package/dist/examples/deltaV2.d.ts +2 -0
  2. package/dist/examples/deltaV2.d.ts.map +1 -0
  3. package/dist/examples/helpers/deltaV2.d.ts +5 -0
  4. package/dist/examples/helpers/deltaV2.d.ts.map +1 -0
  5. package/dist/index.d.ts +18 -4
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/methods/delta/cancelDeltaOrder.d.ts.map +1 -1
  8. package/dist/methods/delta/getDeltaOrders.d.ts +4 -4
  9. package/dist/methods/delta/getDeltaOrders.d.ts.map +1 -1
  10. package/dist/methods/delta/getDeltaPrice.d.ts +1 -1
  11. package/dist/methods/delta/getDeltaPrice.d.ts.map +1 -1
  12. package/dist/methods/delta/helpers/orders.d.ts +16 -1
  13. package/dist/methods/delta/helpers/orders.d.ts.map +1 -1
  14. package/dist/methods/delta/helpers/types.d.ts +49 -5
  15. package/dist/methods/delta/helpers/types.d.ts.map +1 -1
  16. package/dist/methods/delta/postDeltaOrder.d.ts +3 -3
  17. package/dist/methods/delta/postDeltaOrder.d.ts.map +1 -1
  18. package/dist/methods/deltaV2/buildDeltaOrderV2.d.ts +44 -0
  19. package/dist/methods/deltaV2/buildDeltaOrderV2.d.ts.map +1 -0
  20. package/dist/methods/deltaV2/buildExternalDeltaOrderV2.d.ts +48 -0
  21. package/dist/methods/deltaV2/buildExternalDeltaOrderV2.d.ts.map +1 -0
  22. package/dist/methods/deltaV2/buildTWAPDeltaOrderV2.d.ts +59 -0
  23. package/dist/methods/deltaV2/buildTWAPDeltaOrderV2.d.ts.map +1 -0
  24. package/dist/methods/deltaV2/cancelDeltaOrderV2.d.ts +21 -0
  25. package/dist/methods/deltaV2/cancelDeltaOrderV2.d.ts.map +1 -0
  26. package/dist/methods/deltaV2/getAgentsListV2.d.ts +10 -0
  27. package/dist/methods/deltaV2/getAgentsListV2.d.ts.map +1 -0
  28. package/dist/methods/deltaV2/getBridgeRoutes.d.ts +20 -0
  29. package/dist/methods/deltaV2/getBridgeRoutes.d.ts.map +1 -0
  30. package/dist/methods/deltaV2/getDeltaOrdersV2.d.ts +33 -0
  31. package/dist/methods/deltaV2/getDeltaOrdersV2.d.ts.map +1 -0
  32. package/dist/methods/deltaV2/getDeltaPriceV2.d.ts +46 -0
  33. package/dist/methods/deltaV2/getDeltaPriceV2.d.ts.map +1 -0
  34. package/dist/methods/deltaV2/index.d.ts +59 -0
  35. package/dist/methods/deltaV2/index.d.ts.map +1 -0
  36. package/dist/methods/deltaV2/isTokenSupportedInDeltaV2.d.ts +8 -0
  37. package/dist/methods/deltaV2/isTokenSupportedInDeltaV2.d.ts.map +1 -0
  38. package/dist/methods/deltaV2/postDeltaOrderV2.d.ts +28 -0
  39. package/dist/methods/deltaV2/postDeltaOrderV2.d.ts.map +1 -0
  40. package/dist/methods/deltaV2/postExternalDeltaOrderV2.d.ts +11 -0
  41. package/dist/methods/deltaV2/postExternalDeltaOrderV2.d.ts.map +1 -0
  42. package/dist/methods/deltaV2/postTWAPDeltaOrderV2.d.ts +16 -0
  43. package/dist/methods/deltaV2/postTWAPDeltaOrderV2.d.ts.map +1 -0
  44. package/dist/methods/deltaV2/types.d.ts +163 -0
  45. package/dist/methods/deltaV2/types.d.ts.map +1 -0
  46. package/dist/sdk/full.d.ts +2 -0
  47. package/dist/sdk/full.d.ts.map +1 -1
  48. package/dist/sdk/simple.d.ts +10 -0
  49. package/dist/sdk/simple.d.ts.map +1 -1
  50. package/dist/sdk.cjs.development.js +1091 -242
  51. package/dist/sdk.cjs.development.js.map +1 -1
  52. package/dist/sdk.cjs.production.min.js +1 -1
  53. package/dist/sdk.cjs.production.min.js.map +1 -1
  54. package/dist/sdk.esm.js +1075 -243
  55. package/dist/sdk.esm.js.map +1 -1
  56. package/dist/types.d.ts +8 -0
  57. package/dist/types.d.ts.map +1 -1
  58. package/package.json +1 -1
  59. package/src/examples/deltaV2.ts +200 -0
  60. package/src/examples/helpers/deltaV2.ts +29 -0
  61. package/src/index.js +18 -0
  62. package/src/index.ts +153 -0
  63. package/src/methods/delta/cancelDeltaOrder.ts +4 -1
  64. package/src/methods/delta/getDeltaOrders.ts +6 -5
  65. package/src/methods/delta/getDeltaPrice.ts +1 -1
  66. package/src/methods/delta/helpers/orders.ts +26 -0
  67. package/src/methods/delta/helpers/types.ts +62 -13
  68. package/src/methods/delta/postDeltaOrder.ts +4 -4
  69. package/src/methods/delta/postTWAPDeltaOrder.ts +1 -1
  70. package/src/methods/deltaV2/buildDeltaOrderV2.ts +86 -0
  71. package/src/methods/deltaV2/buildExternalDeltaOrderV2.ts +95 -0
  72. package/src/methods/deltaV2/buildTWAPDeltaOrderV2.ts +131 -0
  73. package/src/methods/deltaV2/cancelDeltaOrderV2.ts +103 -0
  74. package/src/methods/deltaV2/getAgentsListV2.ts +34 -0
  75. package/src/methods/deltaV2/getBridgeRoutes.ts +82 -0
  76. package/src/methods/deltaV2/getDeltaOrdersV2.ts +119 -0
  77. package/src/methods/deltaV2/getDeltaPriceV2.ts +108 -0
  78. package/src/methods/deltaV2/index.ts +303 -0
  79. package/src/methods/deltaV2/isTokenSupportedInDeltaV2.ts +52 -0
  80. package/src/methods/deltaV2/postDeltaOrderV2.ts +65 -0
  81. package/src/methods/deltaV2/postExternalDeltaOrderV2.ts +45 -0
  82. package/src/methods/deltaV2/postTWAPDeltaOrderV2.ts +63 -0
  83. package/src/methods/deltaV2/types.ts +189 -0
  84. package/src/sdk/full.ts +8 -0
  85. package/src/sdk/simple.ts +56 -0
  86. 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: 'MARKET' | 'LIMIT';
292
+ type: DeltaOrderType;
256
293
  };
257
294
 
258
- export type DeltaAuction<T extends OnChainOrderType = OnChainOrderType> =
259
- T extends T
260
- ? Prettify<
261
- DeltaAuctionBase & {
262
- onChainOrderType: T;
263
- order: OnChainOrderMap[T];
264
- } & BridgeAuctionFiledsMap[T]
265
- >
266
- : never;
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 The amount that user should expect to get */
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 OnChainOrderType = 'Order'> = {
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?: 'MARKET' | 'LIMIT';
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}/${search}` as const;
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}/${search}` as const;
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
+ };