@steerprotocol/sdk 1.19.16 → 1.19.18
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/cjs/base/vault/single-asset/simulateSwap.js +43 -17
- package/dist/cjs/base/vault/single-asset/simulateSwap.js.map +1 -1
- package/dist/cjs/base/vault/single-asset/singleAssetDeposit.js +24 -21
- package/dist/cjs/base/vault/single-asset/singleAssetDeposit.js.map +1 -1
- package/dist/cjs/const/abis/quoter.js +1337 -1
- package/dist/cjs/const/abis/quoter.js.map +1 -1
- package/dist/cjs/const/amm/configs/protocols/machinex.js +3 -0
- package/dist/cjs/const/amm/configs/protocols/machinex.js.map +1 -1
- package/dist/cjs/const/amm/configs/protocols/quickswap.js +3 -0
- package/dist/cjs/const/amm/configs/protocols/quickswap.js.map +1 -1
- package/dist/cjs/const/amm/configs/protocols/retro.js +3 -0
- package/dist/cjs/const/amm/configs/protocols/retro.js.map +1 -1
- package/dist/cjs/const/amm/configs/protocols/sushi.js +3 -0
- package/dist/cjs/const/amm/configs/protocols/sushi.js.map +1 -1
- package/dist/cjs/const/amm/utils/contracts.js +6 -0
- package/dist/cjs/const/amm/utils/contracts.js.map +1 -1
- package/dist/cjs/const/deployments/peaq.js +8 -0
- package/dist/cjs/const/deployments/peaq.js.map +1 -1
- package/dist/cjs/const/deployments/polygon.js +2 -2
- package/dist/cjs/const/index.js.map +1 -1
- package/dist/cjs/const/network.js +9 -0
- package/dist/cjs/const/network.js.map +1 -1
- package/dist/cjs/const/protocol.js +18 -1
- package/dist/cjs/const/protocol.js.map +1 -1
- package/dist/cjs/const/quoter.js +412 -25
- package/dist/cjs/const/quoter.js.map +1 -1
- package/dist/esm/base/vault/single-asset/simulateSwap.js +43 -17
- package/dist/esm/base/vault/single-asset/simulateSwap.js.map +1 -1
- package/dist/esm/base/vault/single-asset/singleAssetDeposit.js +24 -21
- package/dist/esm/base/vault/single-asset/singleAssetDeposit.js.map +1 -1
- package/dist/esm/const/abis/quoter.js +1336 -0
- package/dist/esm/const/abis/quoter.js.map +1 -1
- package/dist/esm/const/amm/configs/protocols/machinex.js +3 -0
- package/dist/esm/const/amm/configs/protocols/machinex.js.map +1 -1
- package/dist/esm/const/amm/configs/protocols/quickswap.js +3 -0
- package/dist/esm/const/amm/configs/protocols/quickswap.js.map +1 -1
- package/dist/esm/const/amm/configs/protocols/retro.js +3 -0
- package/dist/esm/const/amm/configs/protocols/retro.js.map +1 -1
- package/dist/esm/const/amm/configs/protocols/sushi.js +3 -0
- package/dist/esm/const/amm/configs/protocols/sushi.js.map +1 -1
- package/dist/esm/const/amm/utils/contracts.js +5 -0
- package/dist/esm/const/amm/utils/contracts.js.map +1 -1
- package/dist/esm/const/deployments/peaq.js +8 -0
- package/dist/esm/const/deployments/peaq.js.map +1 -1
- package/dist/esm/const/deployments/polygon.js +2 -2
- package/dist/esm/const/index.js.map +1 -1
- package/dist/esm/const/network.js +7 -0
- package/dist/esm/const/network.js.map +1 -1
- package/dist/esm/const/protocol.js +16 -0
- package/dist/esm/const/protocol.js.map +1 -1
- package/dist/esm/const/quoter.js +412 -32
- package/dist/esm/const/quoter.js.map +1 -1
- package/dist/types/base/VaultClient.d.ts +1 -1
- package/dist/types/base/vault/single-asset/simulateSwap.d.ts.map +1 -1
- package/dist/types/base/vault/single-asset/singleAssetDeposit.d.ts +1 -1
- package/dist/types/base/vault/single-asset/singleAssetDeposit.d.ts.map +1 -1
- package/dist/types/base/vault/single-asset/types.d.ts +2 -0
- package/dist/types/base/vault/single-asset/types.d.ts.map +1 -1
- package/dist/types/const/abis/quoter.d.ts +226 -0
- package/dist/types/const/abis/quoter.d.ts.map +1 -1
- package/dist/types/const/amm/configs/protocols/machinex.d.ts.map +1 -1
- package/dist/types/const/amm/configs/protocols/quickswap.d.ts.map +1 -1
- package/dist/types/const/amm/configs/protocols/retro.d.ts.map +1 -1
- package/dist/types/const/amm/configs/protocols/sushi.d.ts.map +1 -1
- package/dist/types/const/amm/utils/contracts.d.ts +2 -0
- package/dist/types/const/amm/utils/contracts.d.ts.map +1 -1
- package/dist/types/const/deployments/peaq.d.ts.map +1 -1
- package/dist/types/const/index.d.ts.map +1 -1
- package/dist/types/const/network.d.ts +2 -0
- package/dist/types/const/network.d.ts.map +1 -1
- package/dist/types/const/protocol.d.ts +2 -0
- package/dist/types/const/protocol.d.ts.map +1 -1
- package/dist/types/const/quoter.d.ts +451 -12
- package/dist/types/const/quoter.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/esm/const/quoter.js
CHANGED
|
@@ -1,34 +1,414 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
1
|
+
import { getContract } from 'viem';
|
|
2
|
+
import { Protocol } from "./chain";
|
|
3
|
+
import { getProtocolTypeByBeacon } from "./amm/utils/beacon";
|
|
4
|
+
import { isAlgebraProtocol, isAlgebraIntegralProtocol, isThickV2Protocol, isShadowProtocol } from "./protocol";
|
|
5
|
+
import { UniswapV3QuoterABI, QuickSwapQuoterV2, QuoterV2Thick, QuoterV2AlgebgraIntegral, QuoterV2AlgebgraIntegral21, QuoterV2Shadow } from "./abis/quoter";
|
|
6
|
+
import { getProtocolContractAddresses } from './amm';
|
|
7
|
+
/**
|
|
8
|
+
* Factory class for creating QuoterV2 contract instances with the appropriate ABI
|
|
9
|
+
* based on the protocol type detected from beacon names.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { createPublicClient, http, parseEther } from 'viem';
|
|
14
|
+
* import { polygon } from 'viem/chains';
|
|
15
|
+
* import { QuoterV2Factory } from './quoter';
|
|
16
|
+
*
|
|
17
|
+
* // Create a viem client
|
|
18
|
+
* const client = createPublicClient({
|
|
19
|
+
* chain: polygon,
|
|
20
|
+
* transport: http()
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* // Configure network with quoter addresses
|
|
24
|
+
* const networkConfig = {
|
|
25
|
+
* quoterV2: {
|
|
26
|
+
* 'QuickSwap': '0x...',
|
|
27
|
+
* 'Uniswap': '0x...',
|
|
28
|
+
* 'ThickV2': '0x...',
|
|
29
|
+
* 'Shadow': '0x...',
|
|
30
|
+
* 'KatanaIntegral': '0x...'
|
|
31
|
+
* }
|
|
32
|
+
* };
|
|
33
|
+
*
|
|
34
|
+
* const factory = new QuoterV2Factory(networkConfig);
|
|
35
|
+
*
|
|
36
|
+
* // Example 1: Uniswap V3 style (fee-based)
|
|
37
|
+
* const { quoter: uniQuoter, params: uniParams } = factory.createQuoterWithParams('uniswap', client, {
|
|
38
|
+
* tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',
|
|
39
|
+
* tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',
|
|
40
|
+
* amountIn: parseEther('1'),
|
|
41
|
+
* fee: 3000,
|
|
42
|
+
* sqrtPriceLimitX96: 0n
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* // Example 2: QuickSwap (Algebra style)
|
|
46
|
+
* const { quoter: quickQuoter, params: quickParams } = factory.createQuoterWithParams('quickswap', client, {
|
|
47
|
+
* tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',
|
|
48
|
+
* tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',
|
|
49
|
+
* amountIn: parseEther('1'),
|
|
50
|
+
* limitSqrtPrice: 0n
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* // Example 3: Thick V2 (tick spacing)
|
|
54
|
+
* const { quoter: thickQuoter, params: thickParams } = factory.createQuoterWithParams('thickv2', client, {
|
|
55
|
+
* tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',
|
|
56
|
+
* tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',
|
|
57
|
+
* amountIn: parseEther('1'),
|
|
58
|
+
* tickSpacing: 60,
|
|
59
|
+
* sqrtPriceLimitX96: 0n
|
|
60
|
+
* });
|
|
61
|
+
*
|
|
62
|
+
* // Example 4: Katana Integral (with deployer)
|
|
63
|
+
* const { quoter: katanaQuoter, params: katanaParams } = factory.createQuoterWithParams('katanaintegral', client, {
|
|
64
|
+
* tokenIn: '0xA0b86a33E6f73c7C6789b65f71C1ab8EbAbD3A01',
|
|
65
|
+
* tokenOut: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',
|
|
66
|
+
* amountIn: parseEther('1'),
|
|
67
|
+
* deployer: '0x...',
|
|
68
|
+
* limitSqrtPrice: 0n
|
|
69
|
+
* });
|
|
70
|
+
*
|
|
71
|
+
* // Use the quoter contracts
|
|
72
|
+
* const uniResult = await uniQuoter.read.quoteExactInputSingle([uniParams]);
|
|
73
|
+
* const quickResult = await quickQuoter.read.quoteExactInputSingle([quickParams]);
|
|
74
|
+
* const thickResult = await thickQuoter.read.quoteExactInputSingle([thickParams]);
|
|
75
|
+
* const katanaResult = await katanaQuoter.read.quoteExactInputSingle([katanaParams]);
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export class QuoterV2Factory {
|
|
79
|
+
constructor(networkConfig) {
|
|
80
|
+
this.networkConfig = networkConfig;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Creates quote parameters for the quoteExactInputSingle function based on the protocol type.
|
|
84
|
+
*
|
|
85
|
+
* @param beaconName - The beacon identifier to determine the protocol type
|
|
86
|
+
* @param params - The input parameters for the quote
|
|
87
|
+
* @returns Formatted parameters object for the specific protocol's quoteExactInputSingle function
|
|
88
|
+
* @throws Error if protocol type is not supported
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const factory = new QuoterV2Factory(networkConfig);
|
|
93
|
+
*
|
|
94
|
+
* // For Uniswap V3
|
|
95
|
+
* const uniParams = factory.getQuoteParams('uniswap', {
|
|
96
|
+
* tokenIn: '0x...',
|
|
97
|
+
* tokenOut: '0x...',
|
|
98
|
+
* amountIn: parseEther('1'),
|
|
99
|
+
* fee: 3000,
|
|
100
|
+
* sqrtPriceLimitX96: 0n
|
|
101
|
+
* });
|
|
102
|
+
*
|
|
103
|
+
* // For QuickSwap (Algebra)
|
|
104
|
+
* const quickParams = factory.getQuoteParams('quickswap', {
|
|
105
|
+
* tokenIn: '0x...',
|
|
106
|
+
* tokenOut: '0x...',
|
|
107
|
+
* amountIn: parseEther('1'),
|
|
108
|
+
* limitSqrtPrice: 0n
|
|
109
|
+
* });
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
getQuoteParams(protocol, params) {
|
|
113
|
+
// Validate parameters first
|
|
114
|
+
validateQuoteParams(protocol, params);
|
|
115
|
+
if (!protocol) {
|
|
116
|
+
throw Error('Protocol not found');
|
|
117
|
+
}
|
|
118
|
+
// Check for Algebra Integral v2.1 vaults (newer version with deployer)
|
|
119
|
+
if (this.isAlgebraIntegral21Vault(protocol)) {
|
|
120
|
+
const p = params;
|
|
121
|
+
return {
|
|
122
|
+
tokenIn: p.tokenIn,
|
|
123
|
+
tokenOut: p.tokenOut,
|
|
124
|
+
deployer: p.deployer,
|
|
125
|
+
amountIn: p.amountIn,
|
|
126
|
+
limitSqrtPrice: p.limitSqrtPrice || 0n
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
// Check for Shadow protocol vaults
|
|
130
|
+
if (isShadowProtocol(protocol)) {
|
|
131
|
+
const p = params;
|
|
132
|
+
return {
|
|
133
|
+
tokenIn: p.tokenIn,
|
|
134
|
+
tokenOut: p.tokenOut,
|
|
135
|
+
amountIn: p.amountIn,
|
|
136
|
+
tickSpacing: p.tickSpacing,
|
|
137
|
+
sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
// Check for Algebra Integral vaults (older version)
|
|
141
|
+
if (isAlgebraIntegralProtocol(protocol)) {
|
|
142
|
+
const p = params;
|
|
143
|
+
return {
|
|
144
|
+
tokenIn: p.tokenIn,
|
|
145
|
+
tokenOut: p.tokenOut,
|
|
146
|
+
amountIn: p.amountIn,
|
|
147
|
+
limitSqrtPrice: p.limitSqrtPrice || 0n
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
// Check for Algebra-based protocols (QuickSwap, etc.)
|
|
151
|
+
if (protocol && isAlgebraProtocol(protocol)) {
|
|
152
|
+
const p = params;
|
|
153
|
+
return {
|
|
154
|
+
tokenIn: p.tokenIn,
|
|
155
|
+
tokenOut: p.tokenOut,
|
|
156
|
+
amountIn: p.amountIn,
|
|
157
|
+
limitSqrtPrice: p.limitSqrtPrice || 0n
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
// Check for Thick V2 protocols
|
|
161
|
+
if (isThickV2Protocol(protocol)) {
|
|
162
|
+
const p = params;
|
|
163
|
+
return {
|
|
164
|
+
tokenIn: p.tokenIn,
|
|
165
|
+
tokenOut: p.tokenOut,
|
|
166
|
+
amountIn: p.amountIn,
|
|
167
|
+
tickSpacing: p.tickSpacing,
|
|
168
|
+
sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
// Default to Uniswap V3 style (fee-based)
|
|
172
|
+
const p = params;
|
|
173
|
+
return {
|
|
174
|
+
tokenIn: p.tokenIn,
|
|
175
|
+
tokenOut: p.tokenOut,
|
|
176
|
+
amountIn: p.amountIn,
|
|
177
|
+
fee: p.fee,
|
|
178
|
+
sqrtPriceLimitX96: p.sqrtPriceLimitX96 || 0n
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Creates a QuoterV2 contract instance with the appropriate ABI for the given beacon.
|
|
183
|
+
*
|
|
184
|
+
* @param beaconName - The beacon identifier to determine the protocol type
|
|
185
|
+
* @param client - The viem client for contract interactions
|
|
186
|
+
* @returns A viem contract instance with the appropriate ABI
|
|
187
|
+
* @throws Error if quoter address is not found for the protocol
|
|
188
|
+
*/
|
|
189
|
+
createQuoterV2(protocol, client) {
|
|
190
|
+
const quoterV2Address = this.getQuoterV2Address(protocol);
|
|
191
|
+
if (!quoterV2Address) {
|
|
192
|
+
throw new Error(`QuoterV2 address not found for protocol: ${protocol}`);
|
|
193
|
+
}
|
|
194
|
+
const abi = this.getQuoterAbi(protocol);
|
|
195
|
+
return getContract({
|
|
196
|
+
address: quoterV2Address,
|
|
197
|
+
abi,
|
|
198
|
+
client
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Convenience function that creates both the quoter contract and properly formatted quote parameters.
|
|
203
|
+
*
|
|
204
|
+
* @param beaconName - The beacon identifier to determine the protocol type
|
|
205
|
+
* @param client - The viem client for contract interactions
|
|
206
|
+
* @param params - The input parameters for the quote
|
|
207
|
+
* @returns Object containing the quoter contract and formatted parameters
|
|
208
|
+
* @throws Error if quoter address is not found for the protocol
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```typescript
|
|
212
|
+
* const factory = new QuoterV2Factory(networkConfig);
|
|
213
|
+
*
|
|
214
|
+
* const { quoter, params } = factory.createQuoterWithParams('quickswap', client, {
|
|
215
|
+
* tokenIn: '0x...',
|
|
216
|
+
* tokenOut: '0x...',
|
|
217
|
+
* amountIn: parseEther('1'),
|
|
218
|
+
* limitSqrtPrice: 0n
|
|
219
|
+
* });
|
|
220
|
+
*
|
|
221
|
+
* // Use directly
|
|
222
|
+
* const result = await quoter.read.quoteExactInputSingle([params]);
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
createQuoterWithParams(protocol, client, params) {
|
|
226
|
+
const quoter = this.createQuoterV2(protocol, client);
|
|
227
|
+
const formattedParams = this.getQuoteParams(protocol, params);
|
|
228
|
+
return {
|
|
229
|
+
quoter,
|
|
230
|
+
params: formattedParams
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Gets the appropriate QuoterV2 ABI based on the beacon name and protocol.
|
|
235
|
+
*
|
|
236
|
+
* @param protocol - The detected protocol type
|
|
237
|
+
* @returns The appropriate ABI array
|
|
238
|
+
*/
|
|
239
|
+
getQuoterAbi(protocol) {
|
|
240
|
+
if (!protocol) {
|
|
241
|
+
throw Error('Protocol not avaiable');
|
|
242
|
+
}
|
|
243
|
+
// Check for Algebra Integral v2.1 vaults (newer version)
|
|
244
|
+
if (this.isAlgebraIntegral21Vault(protocol)) {
|
|
245
|
+
return QuoterV2AlgebgraIntegral21;
|
|
246
|
+
}
|
|
247
|
+
// Check for Shadow protocol vaults
|
|
248
|
+
if (isShadowProtocol(protocol)) {
|
|
249
|
+
return QuoterV2Shadow;
|
|
250
|
+
}
|
|
251
|
+
// Check for Algebra Integral vaults (older version)
|
|
252
|
+
if (isAlgebraIntegralProtocol(protocol)) {
|
|
253
|
+
return QuoterV2AlgebgraIntegral;
|
|
254
|
+
}
|
|
255
|
+
// Check for Lynex protocol (special case)
|
|
256
|
+
if (protocol === Protocol.Lynex) {
|
|
257
|
+
// Note: Lynex currently uses the same ABI as QuickSwap in this implementation
|
|
258
|
+
// If Lynex has a different ABI, add it to the ABIs in quoter.ts as QuoterV2Lynex
|
|
259
|
+
// and import it at the top of this file
|
|
260
|
+
return QuickSwapQuoterV2;
|
|
261
|
+
}
|
|
262
|
+
// Check for Algebra-based protocols
|
|
263
|
+
if (protocol && isAlgebraProtocol(protocol)) {
|
|
264
|
+
return QuickSwapQuoterV2;
|
|
265
|
+
}
|
|
266
|
+
// Check for Thick V2 protocols
|
|
267
|
+
if (isThickV2Protocol(protocol)) {
|
|
268
|
+
return QuoterV2Thick;
|
|
269
|
+
}
|
|
270
|
+
// Default to standard Uniswap V3 QuoterV2 ABI
|
|
271
|
+
return UniswapV3QuoterABI;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Gets the QuoterV2 address for the given protocol from the network configuration.
|
|
275
|
+
*
|
|
276
|
+
* @param protocol - The protocol type
|
|
277
|
+
* @returns The quoter address or undefined if not found
|
|
278
|
+
*/
|
|
279
|
+
getQuoterV2Address(protocol) {
|
|
280
|
+
if (!protocol) {
|
|
281
|
+
return undefined;
|
|
282
|
+
}
|
|
283
|
+
const contractAddresses = getProtocolContractAddresses(protocol, this.networkConfig.name, 'QuoterV2');
|
|
284
|
+
if (!protocol || !contractAddresses) {
|
|
285
|
+
return undefined;
|
|
286
|
+
}
|
|
287
|
+
return contractAddresses.quoterV2Address;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Checks if the beacon represents an Algebra Integral v2.1 vault.
|
|
291
|
+
*
|
|
292
|
+
* @param beaconName - The beacon identifier
|
|
293
|
+
* @returns True if it's an Algebra Integral v2.1 vault
|
|
294
|
+
*/
|
|
295
|
+
isAlgebraIntegral21Vault(protocol) {
|
|
296
|
+
return protocol === Protocol.KatanaIntegral;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Helper function to get QuoterV2 address for a protocol from network config.
|
|
301
|
+
*
|
|
302
|
+
* @param protocol - The protocol to get the quoter address for
|
|
303
|
+
* @param networkConfig - The network configuration object
|
|
304
|
+
* @returns The quoter address or undefined if not found
|
|
305
|
+
*
|
|
306
|
+
* @example
|
|
307
|
+
* ```typescript
|
|
308
|
+
* const quoterAddress = getQuoterV2Address(Protocol.QuickSwap, networkConfig);
|
|
309
|
+
* if (quoterAddress) {
|
|
310
|
+
* // Use the quoter address
|
|
311
|
+
* }
|
|
312
|
+
* ```
|
|
313
|
+
*/
|
|
314
|
+
/**
|
|
315
|
+
* Type guard to check if parameters are for Uniswap V3 style quoter
|
|
316
|
+
*/
|
|
317
|
+
export function isUniswapQuoteParams(params) {
|
|
318
|
+
return 'fee' in params;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Type guard to check if parameters are for Algebra style quoter
|
|
322
|
+
*/
|
|
323
|
+
export function isAlgebraQuoteParams(params) {
|
|
324
|
+
return 'limitSqrtPrice' in params;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Type guard to check if parameters are for Thick V2 style quoter
|
|
328
|
+
*/
|
|
329
|
+
export function isThickQuoteParams(params) {
|
|
330
|
+
return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Type guard to check if parameters are for Algebra Integral v2.1 style quoter
|
|
334
|
+
*/
|
|
335
|
+
export function isAlgebraIntegral21QuoteParams(params) {
|
|
336
|
+
return 'deployer' in params;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Type guard to check if parameters are for Shadow style quoter
|
|
340
|
+
*/
|
|
341
|
+
export function isShadowQuoteParams(params) {
|
|
342
|
+
return 'tickSpacing' in params && 'sqrtPriceLimitX96' in params;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Validates quote parameters based on the protocol type detected from beacon name
|
|
346
|
+
*
|
|
347
|
+
* @param beaconName - The beacon identifier to determine the protocol type
|
|
348
|
+
* @param params - The parameters to validate
|
|
349
|
+
* @throws Error if parameters don't match the expected protocol type
|
|
350
|
+
*/
|
|
351
|
+
export function validateQuoteParams(protocol, params) {
|
|
352
|
+
if (!protocol) {
|
|
353
|
+
throw Error('Protocol not found');
|
|
354
|
+
}
|
|
355
|
+
// Validate required fields
|
|
356
|
+
if (!params.tokenIn || !params.tokenOut || !params.amountIn) {
|
|
357
|
+
throw new Error('Missing required parameters: tokenIn, tokenOut, and amountIn are required');
|
|
358
|
+
}
|
|
359
|
+
// Check for Algebra Integral v2.1 vaults (newer version with deployer)
|
|
360
|
+
if (protocol === Protocol.KatanaIntegral) {
|
|
361
|
+
if (!isAlgebraIntegral21QuoteParams(params)) {
|
|
362
|
+
throw new Error('AlgebraIntegral21QuoteParams required: must include deployer field');
|
|
363
|
+
}
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
// Check for Shadow protocol vaults
|
|
367
|
+
if (protocol && isShadowProtocol(protocol)) {
|
|
368
|
+
if (!isShadowQuoteParams(params) && !isThickQuoteParams(params)) {
|
|
369
|
+
throw new Error('ShadowQuoteParams required: must include tickSpacing field');
|
|
370
|
+
}
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
// Check for Thick V2 protocols
|
|
374
|
+
if (protocol && isThickV2Protocol(protocol)) {
|
|
375
|
+
if (!isThickQuoteParams(params)) {
|
|
376
|
+
throw new Error('ThickQuoteParams required: must include tickSpacing field');
|
|
377
|
+
}
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
// Check for Algebra-based protocols
|
|
381
|
+
if (protocol && isAlgebraProtocol(protocol)) {
|
|
382
|
+
if (!isAlgebraQuoteParams(params)) {
|
|
383
|
+
throw new Error('AlgebraQuoteParams required: limitSqrtPrice field expected');
|
|
384
|
+
}
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
// Default to Uniswap V3 style validation
|
|
388
|
+
if (!isUniswapQuoteParams(params)) {
|
|
389
|
+
throw new Error('UniswapQuoteParams required: must include fee field');
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Gets the expected parameter type for a given beacon name
|
|
394
|
+
*
|
|
395
|
+
* @param beaconName - The beacon identifier
|
|
396
|
+
* @returns String describing the expected parameter type
|
|
397
|
+
*/
|
|
398
|
+
export function getExpectedParamType(beaconName) {
|
|
399
|
+
const protocol = getProtocolTypeByBeacon(beaconName);
|
|
400
|
+
if (beaconName.toLowerCase().includes('katanaintegral') || protocol === Protocol.KatanaIntegral) {
|
|
401
|
+
return 'AlgebraIntegral21QuoteParams (requires: tokenIn, tokenOut, amountIn, deployer, limitSqrtPrice?)';
|
|
402
|
+
}
|
|
403
|
+
if (protocol && isShadowProtocol(protocol)) {
|
|
404
|
+
return 'ShadowQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';
|
|
405
|
+
}
|
|
406
|
+
if (protocol && isThickV2Protocol(protocol)) {
|
|
407
|
+
return 'ThickQuoteParams (requires: tokenIn, tokenOut, amountIn, tickSpacing, sqrtPriceLimitX96?)';
|
|
408
|
+
}
|
|
409
|
+
if (protocol && isAlgebraProtocol(protocol)) {
|
|
410
|
+
return 'AlgebraQuoteParams (requires: tokenIn, tokenOut, amountIn, limitSqrtPrice?)';
|
|
411
|
+
}
|
|
412
|
+
return 'UniswapQuoteParams (requires: tokenIn, tokenOut, amountIn, fee, sqrtPriceLimitX96?)';
|
|
33
413
|
}
|
|
34
414
|
//# sourceMappingURL=quoter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quoter.js","sourceRoot":"","sources":["../../../src/const/quoter.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"quoter.js","sourceRoot":"","sources":["../../../src/const/quoter.ts"],"names":[],"mappings":"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"}
|
|
@@ -507,7 +507,7 @@ export declare class VaultClient extends SubgraphClient {
|
|
|
507
507
|
*/
|
|
508
508
|
prepareSingleAssetDepositTx(params: SingleAssetDepositParams): Promise<{
|
|
509
509
|
data: {
|
|
510
|
-
address:
|
|
510
|
+
address: string | undefined;
|
|
511
511
|
abi: ({
|
|
512
512
|
type: string;
|
|
513
513
|
inputs: never[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulateSwap.d.ts","sourceRoot":"","sources":["../../../../../src/base/vault/single-asset/simulateSwap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"simulateSwap.d.ts","sourceRoot":"","sources":["../../../../../src/base/vault/single-asset/simulateSwap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,YAAY,EAAE,MAAM,MAAM,CAAC;AAIlD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAsFhD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAIjE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CA4BnE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,UAAU,EAAE,OAAO,CAAC;IACpB,qBAAqB;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,8BAA8B;IAC9B,YAAY,EAAE,SAAS,CAAC;IACxB,8BAA8B;IAC9B,cAAc,EAAE,sBAAsB,CAAC;IACvC,yEAAyE;IACzE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAgHlD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleAssetDeposit.d.ts","sourceRoot":"","sources":["../../../../../src/base/vault/single-asset/singleAssetDeposit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAItE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAK/C,OAAO,KAAK,EAGV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;GAEG;AACH,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY;IAG7C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,cAAc,CACzB,MAAM,EAAE,wBAAwB,EAChC,WAAW,EAAE,KAAK,MAAM,EAAE,GACzB,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"singleAssetDeposit.d.ts","sourceRoot":"","sources":["../../../../../src/base/vault/single-asset/singleAssetDeposit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAItE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAK/C,OAAO,KAAK,EAGV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;GAEG;AACH,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY;IAG7C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,cAAc,CACzB,MAAM,EAAE,wBAAwB,EAChC,WAAW,EAAE,KAAK,MAAM,EAAE,GACzB,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAuJpD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACU,OAAO,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAgDpF;;;;;;OAMG;IACU,gBAAgB,CAAC,MAAM,EAAE,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0D9D;;;;;OAKG;IACI,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,GAAG,IAAI;CA6BrE"}
|
|
@@ -98,6 +98,8 @@ export interface SimulateSwapParams {
|
|
|
98
98
|
fee: number;
|
|
99
99
|
/** Quoter contract address (optional - will use default if not provided) */
|
|
100
100
|
quoterAddress?: Address;
|
|
101
|
+
/*** Tick spacing */
|
|
102
|
+
tickSpacing: number;
|
|
101
103
|
}
|
|
102
104
|
/**
|
|
103
105
|
* Response from swap simulation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/base/vault/single-asset/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D;;GAEG;AACH,oBAAY,OAAO;IACjB,SAAS,IAAI;IACb,OAAO,IAAI;IACX,kBAAkB,IAAI;IACtB,WAAW,IAAI;IACf,eAAe,IAAI;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,qDAAqD;IACrD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,mDAAmD;IACnD,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,0BAA0B;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,kBAAkB;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,mDAAmD;IACnD,0BAA0B,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,0BAA0B;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,wBAAwB;IACxB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,kFAAkF;IAClF,SAAS,EAAE,OAAO,CAAC;IACnB,mDAAmD;IACnD,UAAU,EAAE,OAAO,CAAC;IACpB,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,aAAa,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/base/vault/single-asset/types.ts"],"names":[],"mappings":"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"}
|