@velora-dex/sdk 9.4.2 → 9.5.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 (51) hide show
  1. package/dist/examples/wagmi.d.ts.map +1 -1
  2. package/dist/index.d.ts +11 -5
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/methods/delta/buildDeltaOrder.d.ts +2 -2
  5. package/dist/methods/delta/buildDeltaOrder.d.ts.map +1 -1
  6. package/dist/methods/delta/buildExternalDeltaOrder.d.ts +2 -2
  7. package/dist/methods/delta/buildExternalDeltaOrder.d.ts.map +1 -1
  8. package/dist/methods/delta/buildTWAPDeltaOrder.d.ts +65 -0
  9. package/dist/methods/delta/buildTWAPDeltaOrder.d.ts.map +1 -0
  10. package/dist/methods/delta/deltaTokenModule.d.ts +7 -1
  11. package/dist/methods/delta/deltaTokenModule.d.ts.map +1 -1
  12. package/dist/methods/delta/helpers/buildTWAPOrderData.d.ts +74 -0
  13. package/dist/methods/delta/helpers/buildTWAPOrderData.d.ts.map +1 -0
  14. package/dist/methods/delta/helpers/misc.d.ts +10 -2
  15. package/dist/methods/delta/helpers/misc.d.ts.map +1 -1
  16. package/dist/methods/delta/helpers/types.d.ts +47 -6
  17. package/dist/methods/delta/helpers/types.d.ts.map +1 -1
  18. package/dist/methods/delta/index.d.ts +17 -1
  19. package/dist/methods/delta/index.d.ts.map +1 -1
  20. package/dist/methods/delta/postTWAPDeltaOrder.d.ts +16 -0
  21. package/dist/methods/delta/postTWAPDeltaOrder.d.ts.map +1 -0
  22. package/dist/methods/delta/preSignTWAPDeltaOrder.d.ts +20 -0
  23. package/dist/methods/delta/preSignTWAPDeltaOrder.d.ts.map +1 -0
  24. package/dist/methods/delta/signTWAPDeltaOrder.d.ts +9 -0
  25. package/dist/methods/delta/signTWAPDeltaOrder.d.ts.map +1 -0
  26. package/dist/sdk/partial.d.ts +3 -1
  27. package/dist/sdk/partial.d.ts.map +1 -1
  28. package/dist/sdk.cjs.development.js +986 -133
  29. package/dist/sdk.cjs.development.js.map +1 -1
  30. package/dist/sdk.cjs.production.min.js +1 -1
  31. package/dist/sdk.cjs.production.min.js.map +1 -1
  32. package/dist/sdk.esm.js +982 -134
  33. package/dist/sdk.esm.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/index.ts +63 -0
  36. package/src/methods/delta/buildDeltaOrder.ts +2 -2
  37. package/src/methods/delta/buildExternalDeltaOrder.ts +2 -2
  38. package/src/methods/delta/buildTWAPDeltaOrder.ts +187 -0
  39. package/src/methods/delta/deltaTokenModule.ts +231 -3
  40. package/src/methods/delta/helpers/buildTWAPOrderData.ts +233 -0
  41. package/src/methods/delta/helpers/misc.ts +39 -3
  42. package/src/methods/delta/helpers/types.ts +59 -9
  43. package/src/methods/delta/index.ts +80 -1
  44. package/src/methods/delta/postTWAPDeltaOrder.ts +57 -0
  45. package/src/methods/delta/preSignTWAPDeltaOrder.ts +170 -0
  46. package/src/methods/delta/signTWAPDeltaOrder.ts +32 -0
  47. package/src/sdk/partial.ts +3 -1
  48. package/src/constants.js +0 -3
  49. package/src/gas.js +0 -1
  50. package/src/index.js +0 -73
  51. package/src/types.js +0 -1
@@ -0,0 +1,170 @@
1
+ import { hashTypedData } from 'viem/utils';
2
+ import type {
3
+ ConstructProviderFetchInput,
4
+ RequestParameters,
5
+ TxSendOverrides,
6
+ } from '../../types';
7
+ import {
8
+ produceTWAPOrderTypedData,
9
+ SignableTWAPOrderData,
10
+ } from './helpers/buildTWAPOrderData';
11
+ import { sanitizeTWAPOrderData } 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 { TWAPDeltaOrder, TWAPBuyDeltaOrder } from './helpers/types';
17
+ import { TypedDataField } from '../common/orders/buildOrderData';
18
+
19
+ type HashTWAPDeltaOrderTypedData = (
20
+ signableOrderData: SignableTWAPOrderData
21
+ ) => string;
22
+
23
+ type HashTWAPDeltaOrder = {
24
+ (
25
+ orderData: TWAPDeltaOrder,
26
+ onChainOrderType: 'TWAPOrder',
27
+ requestParams?: RequestParameters
28
+ ): Promise<string>;
29
+
30
+ (
31
+ orderData: TWAPBuyDeltaOrder,
32
+ onChainOrderType: 'TWAPBuyOrder',
33
+ requestParams?: RequestParameters
34
+ ): Promise<string>;
35
+ };
36
+
37
+ export type SetTWAPDeltaOrderPreSignature<T> = (
38
+ orderHash: string,
39
+ overrides?: TxSendOverrides,
40
+ requestParams?: RequestParameters
41
+ ) => Promise<T>;
42
+
43
+ export type PreSignTWAPDeltaOrder<T> = (
44
+ signableOrderData: SignableTWAPOrderData,
45
+ overrides?: TxSendOverrides,
46
+ requestParams?: RequestParameters
47
+ ) => Promise<T>;
48
+
49
+ export type PreSignTWAPDeltaOrderFunctions<T> = {
50
+ hashTWAPDeltaOrderTypedData: HashTWAPDeltaOrderTypedData;
51
+ hashTWAPDeltaOrder: HashTWAPDeltaOrder;
52
+ setTWAPDeltaOrderPreSignature: SetTWAPDeltaOrderPreSignature<T>;
53
+ preSignTWAPDeltaOrder: PreSignTWAPDeltaOrder<T>;
54
+ };
55
+
56
+ type AvailableMethods = ExtractAbiMethodNames<typeof PreSignatureModuleAbi>;
57
+
58
+ export const constructPreSignTWAPDeltaOrder = <T>(
59
+ options: ConstructProviderFetchInput<T, 'transactCall'>
60
+ ): PreSignTWAPDeltaOrderFunctions<T> => {
61
+ const hashTWAPDeltaOrderTypedData: HashTWAPDeltaOrderTypedData = (
62
+ typedData
63
+ ) => {
64
+ const typedDataOnly = {
65
+ ...typedData,
66
+ data: sanitizeTWAPOrderData(typedData.data),
67
+ } as SignableTWAPOrderData;
68
+
69
+ const orderHash = produceTWAPOrderHash(typedDataOnly);
70
+
71
+ return orderHash;
72
+ };
73
+
74
+ const { getDeltaContract } = constructGetDeltaContract(options);
75
+
76
+ const hashTWAPDeltaOrder: HashTWAPDeltaOrder = async (
77
+ orderData,
78
+ onChainOrderType,
79
+ requestParams
80
+ ) => {
81
+ const ParaswapDelta = await getDeltaContract(requestParams);
82
+ if (!ParaswapDelta) {
83
+ throw new Error(`Delta is not available on chain ${options.chainId}`);
84
+ }
85
+
86
+ // TwapOrder (SELL)
87
+ if (onChainOrderType === 'TWAPOrder' && 'totalSrcAmount' in orderData) {
88
+ const typedData = produceTWAPOrderTypedData({
89
+ orderInput: orderData,
90
+ chainId: options.chainId,
91
+ paraswapDeltaAddress: ParaswapDelta,
92
+ onChainOrderType,
93
+ });
94
+ return hashTWAPDeltaOrderTypedData(typedData);
95
+ }
96
+
97
+ // TWAPBuyOrder (BUY)
98
+ if (onChainOrderType === 'TWAPBuyOrder' && 'maxSrcAmount' in orderData) {
99
+ const typedData = produceTWAPOrderTypedData({
100
+ orderInput: orderData,
101
+ chainId: options.chainId,
102
+ paraswapDeltaAddress: ParaswapDelta,
103
+ onChainOrderType,
104
+ });
105
+ return hashTWAPDeltaOrderTypedData(typedData);
106
+ }
107
+
108
+ throw new Error(
109
+ `Invalid order data for onChainOrderType ${onChainOrderType}`
110
+ );
111
+ };
112
+
113
+ const setTWAPDeltaOrderPreSignature: SetTWAPDeltaOrderPreSignature<
114
+ T
115
+ > = async (orderHash, overrides = {}, requestParams) => {
116
+ const ParaswapDelta = await getDeltaContract(requestParams);
117
+ if (!ParaswapDelta) {
118
+ throw new Error(`Delta is not available on chain ${options.chainId}`);
119
+ }
120
+
121
+ const res = await options.contractCaller.transactCall<AvailableMethods>({
122
+ address: ParaswapDelta,
123
+ abi: PreSignatureModuleAbi,
124
+ contractMethod: 'setPreSignature',
125
+ args: [orderHash, true],
126
+ overrides,
127
+ });
128
+
129
+ return res;
130
+ };
131
+
132
+ const preSignTWAPDeltaOrder: PreSignTWAPDeltaOrder<T> = async (
133
+ signableOrderData,
134
+ overrides = {},
135
+ requestParams
136
+ ) => {
137
+ const orderHash = hashTWAPDeltaOrderTypedData(signableOrderData);
138
+ const res = await setTWAPDeltaOrderPreSignature(
139
+ orderHash,
140
+ overrides,
141
+ requestParams
142
+ );
143
+ return res;
144
+ };
145
+
146
+ return {
147
+ hashTWAPDeltaOrderTypedData,
148
+ hashTWAPDeltaOrder,
149
+ setTWAPDeltaOrderPreSignature,
150
+ preSignTWAPDeltaOrder,
151
+ };
152
+ };
153
+
154
+ export function produceTWAPOrderHash(typedData: SignableTWAPOrderData): string {
155
+ const types = typedData.types as Record<
156
+ 'TWAPOrder' | 'TWAPBuyOrder' | 'Bridge',
157
+ TypedDataField[]
158
+ >;
159
+ return hashTypedData({
160
+ domain: {
161
+ name: typedData.domain.name,
162
+ version: typedData.domain.version,
163
+ chainId: typedData.domain.chainId,
164
+ verifyingContract: typedData.domain.verifyingContract as `0x${string}`,
165
+ },
166
+ types,
167
+ primaryType: findPrimaryType(types),
168
+ message: typedData.data,
169
+ });
170
+ }
@@ -0,0 +1,32 @@
1
+ import type { ConstructProviderFetchInput } from '../../types';
2
+ import { SignableTWAPOrderData } from './helpers/buildTWAPOrderData';
3
+ import { sanitizeTWAPOrderData } from './helpers/misc';
4
+
5
+ type SignTWAPDeltaOrder = (
6
+ signableOrderData: SignableTWAPOrderData
7
+ ) => Promise<string>;
8
+
9
+ export type SignTWAPDeltaOrderFunctions = {
10
+ signTWAPDeltaOrder: SignTWAPDeltaOrder;
11
+ };
12
+
13
+ export const constructSignTWAPDeltaOrder = (
14
+ options: Pick<
15
+ ConstructProviderFetchInput<any, 'signTypedDataCall'>,
16
+ 'contractCaller'
17
+ >
18
+ ): SignTWAPDeltaOrderFunctions => {
19
+ const signTWAPDeltaOrder: SignTWAPDeltaOrder = async (typedData) => {
20
+ const typedDataOnly = {
21
+ ...typedData,
22
+ data: sanitizeTWAPOrderData(typedData.data),
23
+ } as SignableTWAPOrderData;
24
+ const signature = await options.contractCaller.signTypedDataCall(
25
+ typedDataOnly
26
+ );
27
+
28
+ return signature;
29
+ };
30
+
31
+ return { signTWAPDeltaOrder };
32
+ };
@@ -15,6 +15,7 @@ import type { ApproveTokenForDeltaFunctions } from '../methods/delta/approveForD
15
15
  import type { PreSignDeltaOrderFunctions } from '../methods/delta/preSignDeltaOrder';
16
16
  import type { PreSignExternalDeltaOrderFunctions } from '../methods/delta/preSignExternalDeltaOrder';
17
17
  import type { DeltaTokenModuleFunctions } from '../methods/delta/deltaTokenModule';
18
+ import type { PreSignTWAPDeltaOrderFunctions } from '../methods/delta/preSignTWAPDeltaOrder';
18
19
  import { API_URL, DEFAULT_VERSION } from '../constants';
19
20
 
20
21
  export type SDKConfig<TxResponse = any> = ConstructProviderFetchInput<
@@ -56,7 +57,8 @@ type InferWithTxResponse<
56
57
  ApproveTokenForDeltaFunctions<TxResponse>,
57
58
  PreSignDeltaOrderFunctions<TxResponse>,
58
59
  PreSignExternalDeltaOrderFunctions<TxResponse>,
59
- DeltaTokenModuleFunctions<TxResponse>
60
+ DeltaTokenModuleFunctions<TxResponse>,
61
+ PreSignTWAPDeltaOrderFunctions<TxResponse>
60
62
  ]
61
63
  // then merge IntersectionOfReturns<Funcs> with them recursively
62
64
  >
package/src/constants.js DELETED
@@ -1,3 +0,0 @@
1
- export { SwapSide, ContractMethod, ContractMethodV5, ContractMethodV6, } from '@paraswap/core';
2
- export const API_URL = 'https://api.paraswap.io';
3
- export const DEFAULT_VERSION = '6.2';
package/src/gas.js DELETED
@@ -1 +0,0 @@
1
- export {};
package/src/index.js DELETED
@@ -1,73 +0,0 @@
1
- import { constructApproveToken, } from './methods/swap/approve';
2
- import { constructGetBalances, isAllowance, } from './methods/swap/balance';
3
- import { constructGetSpender, } from './methods/swap/spender';
4
- import { constructGetAdapters, } from './methods/swap/adapters';
5
- import { constructGetRate, } from './methods/swap/rates';
6
- import { constructSwapTx } from './methods/swap/swapTx';
7
- import { constructGetTokens } from './methods/swap/token';
8
- import { constructBuildTx } from './methods/swap/transaction';
9
- import { constructBuildLimitOrder, } from './methods/limitOrders/buildOrder';
10
- import { constructSignLimitOrder, } from './methods/limitOrders/signOrder';
11
- import { constructCancelLimitOrder, } from './methods/limitOrders/cancelOrder';
12
- import { constructFillOrderDirectly, } from './methods/limitOrders/fillOrderDirectly';
13
- import { constructGetLimitOrders, } from './methods/limitOrders/getOrders';
14
- import { constructPostLimitOrder, } from './methods/limitOrders/postOrder';
15
- import { constructApproveTokenForLimitOrder, } from './methods/limitOrders/approveForOrder';
16
- import { constructGetLimitOrdersContract, } from './methods/limitOrders/getOrdersContract';
17
- import { constructBuildLimitOrderTx, } from './methods/limitOrders/transaction';
18
- import { constructBuildNFTOrder, } from './methods/nftOrders/buildOrder';
19
- import { constructSignNFTOrder, } from './methods/nftOrders/signOrder';
20
- import { constructCancelNFTOrder, } from './methods/nftOrders/cancelOrder';
21
- import { constructGetNFTOrders, } from './methods/nftOrders/getOrders';
22
- import { constructPostNFTOrder, } from './methods/nftOrders/postOrder';
23
- import { constructApproveTokenForNFTOrder, } from './methods/nftOrders/approveForOrder';
24
- import { constructGetNFTOrdersContract, } from './methods/nftOrders/getOrdersContract';
25
- import { constructBuildNFTOrderTx, } from './methods/nftOrders/transaction';
26
- import { constructEthersContractCaller, constructEthersV5ContractCaller, constructEthersV6ContractCaller, constructWeb3ContractCaller, constructViemContractCaller, txParamsToViemTxParams, constructAxiosFetcher, constructFetchFetcher, isFetcherError, constructToken, } from './helpers';
27
- import { constructBuildDeltaOrder, } from './methods/delta/buildDeltaOrder';
28
- import { constructPostDeltaOrder, } from './methods/delta/postDeltaOrder';
29
- import { constructSignDeltaOrder, } from './methods/delta/signDeltaOrder';
30
- import { constructPreSignDeltaOrder, } from './methods/delta/preSignDeltaOrder';
31
- import { constructGetDeltaContract, } from './methods/delta/getDeltaContract';
32
- import { constructGetDeltaPrice, } from './methods/delta/getDeltaPrice';
33
- import { constructGetDeltaOrders, } from './methods/delta/getDeltaOrders';
34
- import { constructApproveTokenForDelta, } from './methods/delta/approveForDelta';
35
- import { constructGetPartnerFee, } from './methods/delta/getPartnerFee';
36
- import { constructGetBridgeInfo, } from './methods/delta/getBridgeInfo';
37
- import { constructIsTokenSupportedInDelta, } from './methods/delta/isTokenSupportedInDelta';
38
- import { constructGetQuote, } from './methods/quote/getQuote';
39
- import { constructCancelDeltaOrder, } from './methods/delta/cancelDeltaOrder';
40
- import { constructDeltaTokenModule, } from './methods/delta/deltaTokenModule';
41
- export { constructSwapSDK } from './methods/swap';
42
- export { constructAllLimitOrdersHandlers, constructSubmitLimitOrder, } from './methods/limitOrders';
43
- export { constructAllDeltaOrdersHandlers, constructSubmitDeltaOrder, } from './methods/delta';
44
- export * from './constants';
45
- // can import these individually
46
- // and use in constructPartialSDK only what you need
47
- // unused should tree-shake
48
- export {
49
- // swap methods:
50
- constructApproveToken, constructGetBalances, // getAllowances is inside
51
- constructGetSpender, // this was getTokenTransferProxy
52
- constructGetTokens, constructBuildTx, constructGetAdapters, constructGetRate, constructSwapTx,
53
- // limitOrders methods:
54
- constructBuildLimitOrder, constructSignLimitOrder, constructCancelLimitOrder, constructFillOrderDirectly, constructGetLimitOrders, constructPostLimitOrder, constructApproveTokenForLimitOrder, constructGetLimitOrdersContract, constructBuildLimitOrderTx,
55
- // nftOrders methods
56
- constructBuildNFTOrder, constructSignNFTOrder, constructCancelNFTOrder, constructGetNFTOrders, constructPostNFTOrder, constructApproveTokenForNFTOrder, constructGetNFTOrdersContract, constructBuildNFTOrderTx,
57
- // Delta methods
58
- constructBuildDeltaOrder, constructPostDeltaOrder, constructSignDeltaOrder, constructPreSignDeltaOrder, constructGetDeltaContract, constructGetDeltaPrice, constructGetDeltaOrders, constructCancelDeltaOrder, constructDeltaTokenModule, constructApproveTokenForDelta,
59
- // Quote methods
60
- constructGetQuote,
61
- // different helpers
62
- constructGetPartnerFee, constructGetBridgeInfo, constructIsTokenSupportedInDelta, constructEthersContractCaller, // same as constructEthersV5ContractCaller for backwards compatibility
63
- constructEthersV5ContractCaller, constructEthersV6ContractCaller, constructWeb3ContractCaller, constructViemContractCaller, txParamsToViemTxParams, constructAxiosFetcher, constructFetchFetcher, isFetcherError, isAllowance, constructToken, };
64
- export { constructPartialSDK } from './sdk/partial';
65
- export { constructFullSDK } from './sdk/full';
66
- export { constructSimpleSDK, } from './sdk/simple';
67
- // bundled methods for limitOrders
68
- export * from './methods/limitOrders';
69
- export * from './methods/limitOrders/helpers/types';
70
- // bundled methods for nftOrders
71
- export * from './methods/nftOrders';
72
- export * from './methods/nftOrders/helpers/types';
73
- export { AssetType } from './methods/nftOrders/helpers/misc';
package/src/types.js DELETED
@@ -1 +0,0 @@
1
- export {};