@velora-dex/sdk 9.4.2 → 9.4.3-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/wagmi.d.ts.map +1 -1
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/methods/delta/buildDeltaOrder.d.ts +2 -2
- package/dist/methods/delta/buildDeltaOrder.d.ts.map +1 -1
- package/dist/methods/delta/buildExternalDeltaOrder.d.ts +2 -2
- package/dist/methods/delta/buildExternalDeltaOrder.d.ts.map +1 -1
- package/dist/methods/delta/buildTWAPDeltaOrder.d.ts +65 -0
- package/dist/methods/delta/buildTWAPDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/deltaTokenModule.d.ts +7 -1
- package/dist/methods/delta/deltaTokenModule.d.ts.map +1 -1
- package/dist/methods/delta/helpers/buildTWAPOrderData.d.ts +74 -0
- package/dist/methods/delta/helpers/buildTWAPOrderData.d.ts.map +1 -0
- package/dist/methods/delta/helpers/misc.d.ts +10 -2
- package/dist/methods/delta/helpers/misc.d.ts.map +1 -1
- package/dist/methods/delta/helpers/types.d.ts +47 -6
- package/dist/methods/delta/helpers/types.d.ts.map +1 -1
- package/dist/methods/delta/index.d.ts +17 -1
- package/dist/methods/delta/index.d.ts.map +1 -1
- package/dist/methods/delta/postTWAPDeltaOrder.d.ts +16 -0
- package/dist/methods/delta/postTWAPDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/preSignTWAPDeltaOrder.d.ts +20 -0
- package/dist/methods/delta/preSignTWAPDeltaOrder.d.ts.map +1 -0
- package/dist/methods/delta/signTWAPDeltaOrder.d.ts +9 -0
- package/dist/methods/delta/signTWAPDeltaOrder.d.ts.map +1 -0
- package/dist/sdk/partial.d.ts +3 -1
- package/dist/sdk/partial.d.ts.map +1 -1
- package/dist/sdk.cjs.development.js +985 -132
- 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 +981 -133
- package/dist/sdk.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +63 -0
- package/src/methods/delta/buildDeltaOrder.ts +2 -2
- package/src/methods/delta/buildExternalDeltaOrder.ts +2 -2
- package/src/methods/delta/buildTWAPDeltaOrder.ts +187 -0
- package/src/methods/delta/deltaTokenModule.ts +229 -1
- package/src/methods/delta/helpers/buildTWAPOrderData.ts +233 -0
- package/src/methods/delta/helpers/misc.ts +39 -3
- package/src/methods/delta/helpers/types.ts +59 -9
- package/src/methods/delta/index.ts +80 -1
- package/src/methods/delta/postTWAPDeltaOrder.ts +57 -0
- package/src/methods/delta/preSignTWAPDeltaOrder.ts +170 -0
- package/src/methods/delta/signTWAPDeltaOrder.ts +32 -0
- package/src/sdk/partial.ts +3 -1
- package/src/constants.js +0 -3
- package/src/gas.js +0 -1
- package/src/index.js +0 -73
- 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 'ethersV5';
|
|
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
|
+
};
|
package/src/sdk/partial.ts
CHANGED
|
@@ -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
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 {};
|