@velora-dex/sdk 9.5.3 → 9.5.4-dev.0

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 (84) 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/examples/wagmi.d.ts.map +1 -1
  6. package/dist/index.d.ts +18 -4
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/methods/delta/cancelDeltaOrder.d.ts.map +1 -1
  9. package/dist/methods/delta/getDeltaOrders.d.ts +4 -4
  10. package/dist/methods/delta/getDeltaOrders.d.ts.map +1 -1
  11. package/dist/methods/delta/getDeltaPrice.d.ts +1 -1
  12. package/dist/methods/delta/getDeltaPrice.d.ts.map +1 -1
  13. package/dist/methods/delta/helpers/types.d.ts +11 -4
  14. package/dist/methods/delta/helpers/types.d.ts.map +1 -1
  15. package/dist/methods/delta/postDeltaOrder.d.ts +3 -3
  16. package/dist/methods/delta/postDeltaOrder.d.ts.map +1 -1
  17. package/dist/methods/deltaV2/buildDeltaOrderV2.d.ts +44 -0
  18. package/dist/methods/deltaV2/buildDeltaOrderV2.d.ts.map +1 -0
  19. package/dist/methods/deltaV2/buildExternalDeltaOrderV2.d.ts +48 -0
  20. package/dist/methods/deltaV2/buildExternalDeltaOrderV2.d.ts.map +1 -0
  21. package/dist/methods/deltaV2/buildTWAPDeltaOrderV2.d.ts +59 -0
  22. package/dist/methods/deltaV2/buildTWAPDeltaOrderV2.d.ts.map +1 -0
  23. package/dist/methods/deltaV2/cancelDeltaOrderV2.d.ts +21 -0
  24. package/dist/methods/deltaV2/cancelDeltaOrderV2.d.ts.map +1 -0
  25. package/dist/methods/deltaV2/getAgentsListV2.d.ts +10 -0
  26. package/dist/methods/deltaV2/getAgentsListV2.d.ts.map +1 -0
  27. package/dist/methods/deltaV2/getBridgeRoutes.d.ts +20 -0
  28. package/dist/methods/deltaV2/getBridgeRoutes.d.ts.map +1 -0
  29. package/dist/methods/deltaV2/getDeltaOrdersV2.d.ts +33 -0
  30. package/dist/methods/deltaV2/getDeltaOrdersV2.d.ts.map +1 -0
  31. package/dist/methods/deltaV2/getDeltaPriceV2.d.ts +46 -0
  32. package/dist/methods/deltaV2/getDeltaPriceV2.d.ts.map +1 -0
  33. package/dist/methods/deltaV2/index.d.ts +59 -0
  34. package/dist/methods/deltaV2/index.d.ts.map +1 -0
  35. package/dist/methods/deltaV2/isTokenSupportedInDeltaV2.d.ts +8 -0
  36. package/dist/methods/deltaV2/isTokenSupportedInDeltaV2.d.ts.map +1 -0
  37. package/dist/methods/deltaV2/postDeltaOrderV2.d.ts +28 -0
  38. package/dist/methods/deltaV2/postDeltaOrderV2.d.ts.map +1 -0
  39. package/dist/methods/deltaV2/postExternalDeltaOrderV2.d.ts +11 -0
  40. package/dist/methods/deltaV2/postExternalDeltaOrderV2.d.ts.map +1 -0
  41. package/dist/methods/deltaV2/postTWAPDeltaOrderV2.d.ts +16 -0
  42. package/dist/methods/deltaV2/postTWAPDeltaOrderV2.d.ts.map +1 -0
  43. package/dist/methods/deltaV2/types.d.ts +163 -0
  44. package/dist/methods/deltaV2/types.d.ts.map +1 -0
  45. package/dist/sdk/full.d.ts +2 -0
  46. package/dist/sdk/full.d.ts.map +1 -1
  47. package/dist/sdk/simple.d.ts +10 -0
  48. package/dist/sdk/simple.d.ts.map +1 -1
  49. package/dist/sdk.cjs.development.js +1072 -242
  50. package/dist/sdk.cjs.development.js.map +1 -1
  51. package/dist/sdk.cjs.production.min.js +1 -1
  52. package/dist/sdk.cjs.production.min.js.map +1 -1
  53. package/dist/sdk.esm.js +1056 -243
  54. package/dist/sdk.esm.js.map +1 -1
  55. package/dist/types.d.ts +8 -0
  56. package/dist/types.d.ts.map +1 -1
  57. package/package.json +1 -1
  58. package/src/examples/deltaV2.ts +200 -0
  59. package/src/examples/helpers/deltaV2.ts +29 -0
  60. package/src/index.js +18 -0
  61. package/src/index.ts +148 -0
  62. package/src/methods/delta/cancelDeltaOrder.ts +4 -1
  63. package/src/methods/delta/getDeltaOrders.ts +6 -5
  64. package/src/methods/delta/getDeltaPrice.ts +1 -1
  65. package/src/methods/delta/helpers/types.ts +22 -12
  66. package/src/methods/delta/postDeltaOrder.ts +4 -4
  67. package/src/methods/delta/postTWAPDeltaOrder.ts +1 -1
  68. package/src/methods/deltaV2/buildDeltaOrderV2.ts +86 -0
  69. package/src/methods/deltaV2/buildExternalDeltaOrderV2.ts +95 -0
  70. package/src/methods/deltaV2/buildTWAPDeltaOrderV2.ts +131 -0
  71. package/src/methods/deltaV2/cancelDeltaOrderV2.ts +103 -0
  72. package/src/methods/deltaV2/getAgentsListV2.ts +34 -0
  73. package/src/methods/deltaV2/getBridgeRoutes.ts +82 -0
  74. package/src/methods/deltaV2/getDeltaOrdersV2.ts +119 -0
  75. package/src/methods/deltaV2/getDeltaPriceV2.ts +108 -0
  76. package/src/methods/deltaV2/index.ts +303 -0
  77. package/src/methods/deltaV2/isTokenSupportedInDeltaV2.ts +52 -0
  78. package/src/methods/deltaV2/postDeltaOrderV2.ts +65 -0
  79. package/src/methods/deltaV2/postExternalDeltaOrderV2.ts +45 -0
  80. package/src/methods/deltaV2/postTWAPDeltaOrderV2.ts +63 -0
  81. package/src/methods/deltaV2/types.ts +189 -0
  82. package/src/sdk/full.ts +8 -0
  83. package/src/sdk/simple.ts +56 -0
  84. package/src/types.ts +9 -0
@@ -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
+ };
@@ -0,0 +1,82 @@
1
+ import { API_URL } from '../../constants';
2
+ import { constructSearchString } from '../../helpers/misc';
3
+ import type { ConstructFetchInput, RequestParameters } from '../../types';
4
+ import type { BridgeProtocolResponse } from '../delta/getBridgeInfo';
5
+ import type { BridgeRoute } from './types';
6
+
7
+ type GetBridgeRoutesParams = {
8
+ /** @description Include tokens that can be swapped on destChain after bridge. Default is true. */
9
+ allowBridgeAndSwap?: boolean;
10
+ /** @description Include only the specified bridges. Default is all bridges. */
11
+ bridges?: string[];
12
+ };
13
+
14
+ type BridgeRoutesQuery = {
15
+ allowBridgeAndSwap?: boolean;
16
+ bridges?: string;
17
+ };
18
+
19
+ type BridgeRoutesResponse = { routes: BridgeRoute[] };
20
+
21
+ type GetBridgeRoutes = (
22
+ params?: GetBridgeRoutesParams,
23
+ requestParams?: RequestParameters
24
+ ) => Promise<BridgeRoute[]>;
25
+
26
+ type GetBridgeProtocolsV2 = (
27
+ requestParams?: RequestParameters
28
+ ) => Promise<BridgeProtocolResponse[]>;
29
+
30
+ type BridgeProtocolsV2Response = {
31
+ bridgeProtocols: BridgeProtocolResponse[];
32
+ };
33
+
34
+ export type GetBridgeRoutesFunctions = {
35
+ /** @description Fetch supported bridge routes as a flat array (v2 replacement for bridge-info). */
36
+ getBridgeRoutes: GetBridgeRoutes;
37
+ /** @description Fetch supported bridge protocols (falls through to v1 controller on the v2 path). */
38
+ getBridgeProtocolsV2: GetBridgeProtocolsV2;
39
+ };
40
+
41
+ export const constructGetBridgeRoutes = ({
42
+ apiURL = API_URL,
43
+ fetcher,
44
+ }: ConstructFetchInput): GetBridgeRoutesFunctions => {
45
+ const deltaPricesUrl = `${apiURL}/delta/v2/prices` as const;
46
+
47
+ const getBridgeRoutes: GetBridgeRoutes = async (
48
+ params = {},
49
+ requestParams
50
+ ) => {
51
+ const { allowBridgeAndSwap, bridges } = params;
52
+
53
+ const search = constructSearchString<BridgeRoutesQuery>({
54
+ allowBridgeAndSwap,
55
+ bridges: bridges?.join(','),
56
+ });
57
+
58
+ const fetchURL = `${deltaPricesUrl}/bridge-routes${search}` as const;
59
+
60
+ const data = await fetcher<BridgeRoutesResponse>({
61
+ url: fetchURL,
62
+ method: 'GET',
63
+ requestParams,
64
+ });
65
+
66
+ return data.routes;
67
+ };
68
+
69
+ const getBridgeProtocolsV2: GetBridgeProtocolsV2 = async (requestParams) => {
70
+ const fetchURL = `${deltaPricesUrl}/bridge-protocols` as const;
71
+
72
+ const data = await fetcher<BridgeProtocolsV2Response>({
73
+ url: fetchURL,
74
+ method: 'GET',
75
+ requestParams,
76
+ });
77
+
78
+ return data.bridgeProtocols;
79
+ };
80
+
81
+ return { getBridgeRoutes, getBridgeProtocolsV2 };
82
+ };
@@ -0,0 +1,119 @@
1
+ import { API_URL } from '../../constants';
2
+ import { constructSearchString } from '../../helpers/misc';
3
+ import type {
4
+ Address,
5
+ ConstructFetchInput,
6
+ PaginatedResponse,
7
+ RequestParameters,
8
+ } from '../../types';
9
+ import type {
10
+ DeltaOrderType,
11
+ OnChainOrderType,
12
+ } from '../delta/helpers/types';
13
+ import type { DeltaOrderStatusV2, DeltaOrderV2Response } from './types';
14
+
15
+ type GetDeltaOrderByIdV2 = (
16
+ orderId: string,
17
+ requestParams?: RequestParameters
18
+ ) => Promise<DeltaOrderV2Response>;
19
+
20
+ type GetDeltaOrderByHashV2 = (
21
+ orderHash: string,
22
+ requestParams?: RequestParameters
23
+ ) => Promise<DeltaOrderV2Response>;
24
+
25
+ type OrdersV2Filter = {
26
+ /** @description `order.owner` to fetch Delta Orders for. */
27
+ userAddress: Address;
28
+ /** @description Pagination option. Default 1. */
29
+ page?: number;
30
+ /** @description Pagination option. Default 100, max 1000. */
31
+ limit?: number;
32
+ /** @description Filter by chainId. Omitted = orders across all chains. */
33
+ chainId?: number[];
34
+ /** @description Filter by integrator-facing status. */
35
+ status?: DeltaOrderStatusV2[];
36
+ /** @description Filter by order type. MARKET or LIMIT. */
37
+ type?: DeltaOrderType;
38
+ /** @description Filter by on-chain order type. */
39
+ onChainOrderType?: OnChainOrderType;
40
+ };
41
+
42
+ type OrderFiltersV2Query = Omit<OrdersV2Filter, 'chainId' | 'status'> & {
43
+ chainId?: string;
44
+ status?: string;
45
+ };
46
+
47
+ type GetDeltaOrdersV2 = (
48
+ options: OrdersV2Filter,
49
+ requestParams?: RequestParameters
50
+ ) => Promise<PaginatedResponse<DeltaOrderV2Response>>;
51
+
52
+ export type GetDeltaOrdersV2Functions = {
53
+ /** @description Fetch a single order by its UUID. */
54
+ getDeltaOrderByIdV2: GetDeltaOrderByIdV2;
55
+ /** @description Fetch a single order by its EIP-712 order hash. */
56
+ getDeltaOrderByHashV2: GetDeltaOrderByHashV2;
57
+ /** @description List Delta orders with the v2 pagination envelope. */
58
+ getDeltaOrdersV2: GetDeltaOrdersV2;
59
+ };
60
+
61
+ export const constructGetDeltaOrdersV2 = ({
62
+ apiURL = API_URL,
63
+ fetcher,
64
+ }: ConstructFetchInput): GetDeltaOrdersV2Functions => {
65
+ const baseUrl = `${apiURL}/delta/v2/orders` as const;
66
+
67
+ const getDeltaOrderByIdV2: GetDeltaOrderByIdV2 = async (
68
+ orderId,
69
+ requestParams
70
+ ) => {
71
+ const fetchURL = `${baseUrl}/${orderId}` as const;
72
+ return fetcher<DeltaOrderV2Response>({
73
+ url: fetchURL,
74
+ method: 'GET',
75
+ requestParams,
76
+ });
77
+ };
78
+
79
+ const getDeltaOrderByHashV2: GetDeltaOrderByHashV2 = async (
80
+ orderHash,
81
+ requestParams
82
+ ) => {
83
+ const fetchURL = `${baseUrl}/hash/${orderHash}` as const;
84
+ return fetcher<DeltaOrderV2Response>({
85
+ url: fetchURL,
86
+ method: 'GET',
87
+ requestParams,
88
+ });
89
+ };
90
+
91
+ const getDeltaOrdersV2: GetDeltaOrdersV2 = async (options, requestParams) => {
92
+ const chainIdString = options.chainId?.join(',');
93
+ const statusString = options.status?.join(',');
94
+
95
+ const search = constructSearchString<OrderFiltersV2Query>({
96
+ userAddress: options.userAddress,
97
+ page: options.page,
98
+ limit: options.limit,
99
+ type: options.type,
100
+ onChainOrderType: options.onChainOrderType,
101
+ chainId: chainIdString,
102
+ status: statusString,
103
+ });
104
+
105
+ const fetchURL = `${baseUrl}${search}` as const;
106
+
107
+ return fetcher<PaginatedResponse<DeltaOrderV2Response>>({
108
+ url: fetchURL,
109
+ method: 'GET',
110
+ requestParams,
111
+ });
112
+ };
113
+
114
+ return {
115
+ getDeltaOrderByIdV2,
116
+ getDeltaOrderByHashV2,
117
+ getDeltaOrdersV2,
118
+ };
119
+ };