@steerprotocol/sdk 1.2.0 → 1.4.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.
- package/README.md +54 -0
- package/dist/cjs/base/StakingClient.js +345 -0
- package/dist/cjs/base/StakingClient.js.map +1 -0
- package/dist/cjs/base/VaultClient.js +57 -118
- package/dist/cjs/base/VaultClient.js.map +1 -1
- package/dist/cjs/base/vault/deposit/index.js +484 -0
- package/dist/cjs/base/vault/deposit/index.js.map +1 -0
- package/dist/cjs/base/vault/deposit/types.js +3 -0
- package/dist/cjs/base/vault/deposit/types.js.map +1 -0
- package/dist/cjs/base/vault/utils.js +432 -0
- package/dist/cjs/base/vault/utils.js.map +1 -0
- package/dist/cjs/base/vault/withdraw/index.js +155 -0
- package/dist/cjs/base/vault/withdraw/index.js.map +1 -0
- package/dist/cjs/base/vault/withdraw/types.js +3 -0
- package/dist/cjs/base/vault/withdraw/types.js.map +1 -0
- package/dist/cjs/const/chain.js +96 -0
- package/dist/cjs/const/chain.js.map +1 -0
- package/dist/cjs/const/network.js +801 -0
- package/dist/cjs/const/network.js.map +1 -0
- package/dist/cjs/const/protocol.js +55 -0
- package/dist/cjs/const/protocol.js.map +1 -0
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/base/StakingClient.js +341 -0
- package/dist/esm/base/StakingClient.js.map +1 -0
- package/dist/esm/base/VaultClient.js +57 -118
- package/dist/esm/base/VaultClient.js.map +1 -1
- package/dist/esm/base/vault/deposit/index.js +480 -0
- package/dist/esm/base/vault/deposit/index.js.map +1 -0
- package/dist/esm/base/vault/deposit/types.js +2 -0
- package/dist/esm/base/vault/deposit/types.js.map +1 -0
- package/dist/esm/base/vault/utils.js +425 -0
- package/dist/esm/base/vault/utils.js.map +1 -0
- package/dist/esm/base/vault/withdraw/index.js +151 -0
- package/dist/esm/base/vault/withdraw/index.js.map +1 -0
- package/dist/esm/base/vault/withdraw/types.js +2 -0
- package/dist/esm/base/vault/withdraw/types.js.map +1 -0
- package/dist/esm/const/chain.js +93 -0
- package/dist/esm/const/chain.js.map +1 -0
- package/dist/esm/const/network.js +797 -0
- package/dist/esm/const/network.js.map +1 -0
- package/dist/esm/const/protocol.js +47 -0
- package/dist/esm/const/protocol.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/types/base/StakingClient.d.ts +81 -0
- package/dist/types/base/StakingClient.d.ts.map +1 -0
- package/dist/types/base/VaultClient.d.ts +81 -16
- package/dist/types/base/VaultClient.d.ts.map +1 -1
- package/dist/types/base/vault/deposit/index.d.ts +74 -0
- package/dist/types/base/vault/deposit/index.d.ts.map +1 -0
- package/dist/types/base/vault/deposit/types.d.ts +42 -0
- package/dist/types/base/vault/deposit/types.d.ts.map +1 -0
- package/dist/types/base/vault/utils.d.ts +26 -0
- package/dist/types/base/vault/utils.d.ts.map +1 -0
- package/dist/types/base/vault/withdraw/index.d.ts +45 -0
- package/dist/types/base/vault/withdraw/index.d.ts.map +1 -0
- package/dist/types/base/vault/withdraw/types.d.ts +13 -0
- package/dist/types/base/vault/withdraw/types.d.ts.map +1 -0
- package/dist/types/const/chain.d.ts +88 -0
- package/dist/types/const/chain.d.ts.map +1 -0
- package/dist/types/const/network.d.ts +26 -0
- package/dist/types/const/network.d.ts.map +1 -0
- package/dist/types/const/protocol.d.ts +12 -0
- package/dist/types/const/protocol.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +101 -1
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +14 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VaultClient.js","sourceRoot":"","sources":["../../../src/base/VaultClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VaultClient.js","sourceRoot":"","sources":["../../../src/base/VaultClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,480 @@
|
|
|
1
|
+
import { Rounding, Token } from "@uniswap/sdk-core";
|
|
2
|
+
import { Pool as PoolV3 } from "@uniswap/v3-sdk";
|
|
3
|
+
import { Decimal } from 'decimal.js';
|
|
4
|
+
import { UniswapV3PoolABI } from '../../../const/abis/UniswapPool';
|
|
5
|
+
import { abis } from '../../../const/deployments/abis';
|
|
6
|
+
import { getContractAddressByChainIdAndContractName } from '../../../const/network';
|
|
7
|
+
import { isAlgebraDirectionProtocol, isAlgebraIntegralProtocol, isAlgebraProtocol, isPoolSharkProtocol } from '../../../const/protocol';
|
|
8
|
+
import { getGlobalState, getGlobalStateAlgebraIntegral, getGlobalStatePoolShark, getProtocolTypeByBeacon, getSlot0 } from '../utils';
|
|
9
|
+
const VAULT_ABI = abis.QuickSwapUniv3MultiPositionLiquidityManager;
|
|
10
|
+
const PERIPHERY_ABI = abis.SteerPeriphery;
|
|
11
|
+
export class VaultDepositClient {
|
|
12
|
+
constructor(publicClient, walletClient) {
|
|
13
|
+
this.publicClient = publicClient;
|
|
14
|
+
this.walletClient = walletClient;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Deposits tokens into a vault
|
|
18
|
+
* @param params The deposit parameters
|
|
19
|
+
*/
|
|
20
|
+
async deposit(params) {
|
|
21
|
+
try {
|
|
22
|
+
const account = await this.walletClient.getAddresses();
|
|
23
|
+
if (!account[0])
|
|
24
|
+
throw new Error('No account found');
|
|
25
|
+
// Calculate min amounts based on slippage
|
|
26
|
+
const amount0Min = params.amount0Desired * BigInt(Math.floor((1 - params.slippage) * 1000)) / 1000n;
|
|
27
|
+
const amount1Min = params.amount1Desired * BigInt(Math.floor((1 - params.slippage) * 1000)) / 1000n;
|
|
28
|
+
const { request } = await this.publicClient.simulateContract({
|
|
29
|
+
address: params.vaultAddress,
|
|
30
|
+
abi: PERIPHERY_ABI,
|
|
31
|
+
functionName: 'deposit',
|
|
32
|
+
args: [
|
|
33
|
+
params.vaultAddress,
|
|
34
|
+
params.amount0Desired,
|
|
35
|
+
params.amount1Desired,
|
|
36
|
+
amount0Min,
|
|
37
|
+
amount1Min,
|
|
38
|
+
params.to ?? account[0]
|
|
39
|
+
],
|
|
40
|
+
account: account[0],
|
|
41
|
+
});
|
|
42
|
+
const hash = await this.walletClient.writeContract(request);
|
|
43
|
+
return {
|
|
44
|
+
data: hash,
|
|
45
|
+
status: 200,
|
|
46
|
+
success: true,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
return {
|
|
51
|
+
data: null,
|
|
52
|
+
status: 500,
|
|
53
|
+
success: false,
|
|
54
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Prepares the transaction data for depositing tokens into a vault without executing it
|
|
60
|
+
* @param params The deposit parameters
|
|
61
|
+
*/
|
|
62
|
+
async prepareDepositTx(params) {
|
|
63
|
+
try {
|
|
64
|
+
const account = await this.walletClient.getAddresses();
|
|
65
|
+
if (!account[0])
|
|
66
|
+
throw new Error('No account found');
|
|
67
|
+
// Calculate min amounts based on slippage
|
|
68
|
+
const amount0Min = params.amount0Desired * BigInt(Math.floor((1 - params.slippage) * 1000)) / 1000n;
|
|
69
|
+
const amount1Min = params.amount1Desired * BigInt(Math.floor((1 - params.slippage) * 1000)) / 1000n;
|
|
70
|
+
// Prepare the complete contract interaction data
|
|
71
|
+
return {
|
|
72
|
+
data: {
|
|
73
|
+
address: params.vaultAddress,
|
|
74
|
+
abi: [{
|
|
75
|
+
type: 'function',
|
|
76
|
+
inputs: [
|
|
77
|
+
{ name: 'vault', internalType: 'address', type: 'address' },
|
|
78
|
+
{ name: 'amount0Desired', internalType: 'uint256', type: 'uint256' },
|
|
79
|
+
{ name: 'amount1Desired', internalType: 'uint256', type: 'uint256' },
|
|
80
|
+
{ name: 'amount0Min', internalType: 'uint256', type: 'uint256' },
|
|
81
|
+
{ name: 'amount1Min', internalType: 'uint256', type: 'uint256' },
|
|
82
|
+
{ name: 'to', internalType: 'address', type: 'address' }
|
|
83
|
+
],
|
|
84
|
+
name: 'deposit',
|
|
85
|
+
outputs: [],
|
|
86
|
+
stateMutability: 'nonpayable'
|
|
87
|
+
}],
|
|
88
|
+
functionName: 'deposit',
|
|
89
|
+
args: [
|
|
90
|
+
params.vaultAddress,
|
|
91
|
+
params.amount0Desired,
|
|
92
|
+
params.amount1Desired,
|
|
93
|
+
amount0Min,
|
|
94
|
+
amount1Min,
|
|
95
|
+
params.to ?? account[0]
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
status: 200,
|
|
99
|
+
success: true
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
return {
|
|
104
|
+
data: null,
|
|
105
|
+
status: 500,
|
|
106
|
+
success: false,
|
|
107
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred'
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Gets the deposit ratio for a vault
|
|
113
|
+
* @param vaultAddress The vault address
|
|
114
|
+
*/
|
|
115
|
+
async getDepositRatio(vaultAddress, zeroForOne) {
|
|
116
|
+
try {
|
|
117
|
+
// Try to get vault details, first attempt with regular vault
|
|
118
|
+
let vaultDetails;
|
|
119
|
+
let isAlgebraVault = false;
|
|
120
|
+
const chainId = await this.publicClient.getChainId();
|
|
121
|
+
const steerPeripheryAddress = getContractAddressByChainIdAndContractName(chainId, 'SteerPeriphery');
|
|
122
|
+
if (!steerPeripheryAddress)
|
|
123
|
+
throw new Error('SteerPeriphery address not found');
|
|
124
|
+
try {
|
|
125
|
+
// First try regular vault
|
|
126
|
+
vaultDetails = await this.publicClient.readContract({
|
|
127
|
+
address: steerPeripheryAddress,
|
|
128
|
+
abi: PERIPHERY_ABI,
|
|
129
|
+
functionName: 'vaultDetailsByAddress',
|
|
130
|
+
args: [vaultAddress]
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
// If regular vault fails, try Algebra vault
|
|
135
|
+
vaultDetails = await this.publicClient.readContract({
|
|
136
|
+
address: steerPeripheryAddress,
|
|
137
|
+
abi: PERIPHERY_ABI,
|
|
138
|
+
functionName: 'algebraVaultDetailsByAddress',
|
|
139
|
+
args: [vaultAddress]
|
|
140
|
+
});
|
|
141
|
+
isAlgebraVault = true;
|
|
142
|
+
}
|
|
143
|
+
const token0Balance = vaultDetails.token0Balance;
|
|
144
|
+
const token1Balance = vaultDetails.token1Balance;
|
|
145
|
+
const token0Decimals = vaultDetails.token0Decimals;
|
|
146
|
+
const token1Decimals = vaultDetails.token1Decimals;
|
|
147
|
+
let ratio;
|
|
148
|
+
// Case 1: No liquidity in the vault
|
|
149
|
+
if (token0Balance === 0n && token1Balance === 0n) {
|
|
150
|
+
// Get pool instance to calculate price
|
|
151
|
+
const chainId = await this.publicClient.getChainId();
|
|
152
|
+
// Get the pool address
|
|
153
|
+
const pool = await this.getPool(vaultAddress);
|
|
154
|
+
if (!pool.data)
|
|
155
|
+
throw new Error('Failed to retrieve pool for ratio calculation');
|
|
156
|
+
// Determine the protocol
|
|
157
|
+
const protocol = getProtocolTypeByBeacon(vaultDetails.vaultType);
|
|
158
|
+
if (!protocol)
|
|
159
|
+
throw new Error('Unsupported protocol type');
|
|
160
|
+
console.log('Protocol detected:', protocol);
|
|
161
|
+
// Get pool instance with the correct protocol type
|
|
162
|
+
const poolInstanceResponse = await this.getPoolInstance({
|
|
163
|
+
vaultAddress,
|
|
164
|
+
chain: { id: chainId },
|
|
165
|
+
isAlgebraPool: isAlgebraProtocol(protocol),
|
|
166
|
+
isPoolSharkPool: isPoolSharkProtocol(protocol),
|
|
167
|
+
isAlgebraIntegralPool: isAlgebraIntegralProtocol(protocol),
|
|
168
|
+
isAlgebraDirectionPool: isAlgebraDirectionProtocol(protocol),
|
|
169
|
+
});
|
|
170
|
+
if (!poolInstanceResponse.success || !poolInstanceResponse.data) {
|
|
171
|
+
throw new Error('Failed to get pool instance for price calculation');
|
|
172
|
+
}
|
|
173
|
+
const poolInstance = poolInstanceResponse.data;
|
|
174
|
+
// Get price based on zeroForOne
|
|
175
|
+
const price = zeroForOne ?
|
|
176
|
+
poolInstance.priceOf(poolInstance.token0) :
|
|
177
|
+
poolInstance.priceOf(poolInstance.token0).invert();
|
|
178
|
+
// Convert price to string using Decimal for maximum precision
|
|
179
|
+
ratio = price.toSignificant(undefined, undefined, Rounding.ROUND_DOWN);
|
|
180
|
+
}
|
|
181
|
+
// Case 2: Vault has liquidity
|
|
182
|
+
else {
|
|
183
|
+
// Convert bigint values to Decimal instances for precise calculation
|
|
184
|
+
// Convert bigints to strings first to avoid type errors
|
|
185
|
+
const token0Bal = new Decimal(token0Balance.toString());
|
|
186
|
+
const token1Bal = new Decimal(token1Balance.toString());
|
|
187
|
+
const token0Dec = new Decimal(10).pow(Number(token1Decimals));
|
|
188
|
+
const token1Dec = new Decimal(10).pow(Number(token0Decimals));
|
|
189
|
+
// Calculate adjusted balances
|
|
190
|
+
const token0Adjusted = token0Bal.div(token0Dec);
|
|
191
|
+
const token1Adjusted = token1Bal.div(token1Dec);
|
|
192
|
+
// Calculate ratio based on token balances
|
|
193
|
+
// If zeroForOne is true: ratio = token1/token0
|
|
194
|
+
// If zeroForOne is false: ratio = token0/token1
|
|
195
|
+
ratio = zeroForOne ?
|
|
196
|
+
token1Adjusted.div(token0Adjusted).toString() : // token1/token0 ratio
|
|
197
|
+
token0Adjusted.div(token1Adjusted).toString(); // token0/token1 ratio
|
|
198
|
+
}
|
|
199
|
+
return {
|
|
200
|
+
data: {
|
|
201
|
+
ratio,
|
|
202
|
+
token0Balance,
|
|
203
|
+
token1Balance,
|
|
204
|
+
token0Decimals,
|
|
205
|
+
token1Decimals,
|
|
206
|
+
vaultDetails,
|
|
207
|
+
isAlgebraVault
|
|
208
|
+
},
|
|
209
|
+
status: 200,
|
|
210
|
+
success: true
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
return {
|
|
215
|
+
data: null,
|
|
216
|
+
status: 500,
|
|
217
|
+
success: false,
|
|
218
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred'
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Gets the pool address for a vault
|
|
224
|
+
* @param vaultAddress The vault address
|
|
225
|
+
*/
|
|
226
|
+
async getPool(vaultAddress) {
|
|
227
|
+
try {
|
|
228
|
+
const pool = await this.publicClient.readContract({
|
|
229
|
+
address: vaultAddress,
|
|
230
|
+
abi: VAULT_ABI,
|
|
231
|
+
functionName: 'pool',
|
|
232
|
+
});
|
|
233
|
+
return {
|
|
234
|
+
data: pool,
|
|
235
|
+
status: 200,
|
|
236
|
+
success: true,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
return {
|
|
241
|
+
data: null,
|
|
242
|
+
status: 500,
|
|
243
|
+
success: false,
|
|
244
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Gets a pool instance for a vault
|
|
250
|
+
* @param params The pool instance parameters
|
|
251
|
+
*/
|
|
252
|
+
async getPoolInstance(params) {
|
|
253
|
+
console.log('Fetching pool instance...');
|
|
254
|
+
try {
|
|
255
|
+
const poolData = await this.preparePoolData(params.vaultAddress);
|
|
256
|
+
console.log('Pool data fetched:', poolData);
|
|
257
|
+
if (!poolData.success || !poolData.data) {
|
|
258
|
+
throw new Error('Failed to fetch pool data');
|
|
259
|
+
}
|
|
260
|
+
let slot0Response;
|
|
261
|
+
// Handle different protocol types
|
|
262
|
+
if (params.isAlgebraIntegralPool) {
|
|
263
|
+
// For Algebra Integral pools
|
|
264
|
+
slot0Response = await getGlobalStateAlgebraIntegral(this.publicClient, poolData.data.id, params.isAlgebraDirectionPool);
|
|
265
|
+
}
|
|
266
|
+
else if (params.isPoolSharkPool) {
|
|
267
|
+
// For PoolShark pools
|
|
268
|
+
const poolSharkResponse = await getGlobalStatePoolShark(this.publicClient, poolData.data.id);
|
|
269
|
+
if (poolSharkResponse.success && poolSharkResponse.data) {
|
|
270
|
+
slot0Response = {
|
|
271
|
+
success: true,
|
|
272
|
+
status: 200,
|
|
273
|
+
data: {
|
|
274
|
+
sqrtPriceX96: poolSharkResponse.data.pool.price,
|
|
275
|
+
tick: poolSharkResponse.data.pool.tickAtPrice,
|
|
276
|
+
observationIndex: 0,
|
|
277
|
+
observationCardinality: 0,
|
|
278
|
+
observationCardinalityNext: 0,
|
|
279
|
+
feeProtocol: 0,
|
|
280
|
+
unlocked: poolSharkResponse.data.unlocked === 1,
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
slot0Response = poolSharkResponse;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
if (params.isAlgebraPool) {
|
|
289
|
+
// For Algebra pools
|
|
290
|
+
slot0Response = await getGlobalState(this.publicClient, poolData.data.id, params.isAlgebraDirectionPool);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
// For standard Uniswap V3 pools
|
|
294
|
+
slot0Response = await getSlot0(this.publicClient, poolData.data.id);
|
|
295
|
+
}
|
|
296
|
+
if (!slot0Response.success || !slot0Response.data) {
|
|
297
|
+
throw new Error('Failed to read pool state');
|
|
298
|
+
}
|
|
299
|
+
const slot0 = slot0Response.data;
|
|
300
|
+
const token0 = new Token(params.chain.id, poolData.data.token0.id, Number(poolData.data.token0.decimals), poolData.data.token0.symbol, poolData.data.token0.name);
|
|
301
|
+
const token1 = new Token(params.chain.id, poolData.data.token1.id, Number(poolData.data.token1.decimals), poolData.data.token1.symbol, poolData.data.token1.name);
|
|
302
|
+
// Get liquidity
|
|
303
|
+
const liquidity = await this.getPoolLiquidity(poolData.data.id);
|
|
304
|
+
if (!liquidity.success || !liquidity.data) {
|
|
305
|
+
throw new Error('Failed to fetch pool liquidity');
|
|
306
|
+
}
|
|
307
|
+
let price;
|
|
308
|
+
if (params.isAlgebraPool && !params.isAlgebraIntegralPool) {
|
|
309
|
+
price = slot0Response?.data?.price;
|
|
310
|
+
}
|
|
311
|
+
else if (params.isAlgebraIntegralPool) {
|
|
312
|
+
price = slot0Response?.data?.price;
|
|
313
|
+
}
|
|
314
|
+
else if (params.isPoolSharkPool) {
|
|
315
|
+
price = slot0Response?.data?.tick?.price;
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
price = slot0Response?.data?.sqrtPriceX96;
|
|
319
|
+
}
|
|
320
|
+
if (!price) {
|
|
321
|
+
throw new Error('Failed to get pool price');
|
|
322
|
+
}
|
|
323
|
+
return {
|
|
324
|
+
data: new PoolV3(token0, token1, poolData.data.feeTier, price.toString(), liquidity.data.toString(), slot0.tick),
|
|
325
|
+
status: 200,
|
|
326
|
+
success: true
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
catch (error) {
|
|
330
|
+
console.error('Error creating pool instance:', error);
|
|
331
|
+
return {
|
|
332
|
+
data: null,
|
|
333
|
+
status: 500,
|
|
334
|
+
success: false,
|
|
335
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred'
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Gets the pool liquidity
|
|
341
|
+
* @param poolAddress The pool address
|
|
342
|
+
*/
|
|
343
|
+
async getPoolLiquidity(poolAddress) {
|
|
344
|
+
try {
|
|
345
|
+
const liquidity = await this.publicClient.readContract({
|
|
346
|
+
address: poolAddress,
|
|
347
|
+
abi: UniswapV3PoolABI,
|
|
348
|
+
functionName: 'liquidity'
|
|
349
|
+
});
|
|
350
|
+
return {
|
|
351
|
+
data: liquidity,
|
|
352
|
+
status: 200,
|
|
353
|
+
success: true
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
return {
|
|
358
|
+
data: null,
|
|
359
|
+
status: 500,
|
|
360
|
+
success: false,
|
|
361
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred'
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Gets the corresponding token amount based on the provided token amount and ratio
|
|
367
|
+
* @param vaultAddress The vault address
|
|
368
|
+
* @param amount The amount of token to calculate the corresponding amount for
|
|
369
|
+
* @param zeroForOne If true, calculates token1 amount for given token0, if false calculates token0 amount for given token1
|
|
370
|
+
*/
|
|
371
|
+
async getCorrespondingTokenAmount(vaultAddress, amount, zeroForOne) {
|
|
372
|
+
try {
|
|
373
|
+
// Get the deposit ratio for the vault
|
|
374
|
+
const ratioResponse = await this.getDepositRatio(vaultAddress, zeroForOne);
|
|
375
|
+
if (!ratioResponse.success || !ratioResponse.data) {
|
|
376
|
+
throw new Error('Failed to get deposit ratio');
|
|
377
|
+
}
|
|
378
|
+
const { ratio, token0Decimals, token1Decimals } = ratioResponse.data;
|
|
379
|
+
// Calculate the decimal adjustment based on token decimals
|
|
380
|
+
const decimalDiff = zeroForOne
|
|
381
|
+
? token1Decimals - token0Decimals
|
|
382
|
+
: token0Decimals - token1Decimals;
|
|
383
|
+
// Convert all values to Decimal for precise calculation
|
|
384
|
+
const amountDecimal = new Decimal(amount.toString());
|
|
385
|
+
const ratioDecimal = new Decimal(ratio);
|
|
386
|
+
const adjustmentDecimal = new Decimal(10).pow(Number(decimalDiff));
|
|
387
|
+
// Perform calculation using Decimal.js
|
|
388
|
+
const result = amountDecimal.times(ratioDecimal).times(adjustmentDecimal).div(new Decimal(10).pow(18));
|
|
389
|
+
// Convert result back to bigint, rounding down to nearest integer
|
|
390
|
+
const correspondingAmount = BigInt(result.floor().toFixed(0));
|
|
391
|
+
return {
|
|
392
|
+
data: correspondingAmount,
|
|
393
|
+
status: 200,
|
|
394
|
+
success: true
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
catch (error) {
|
|
398
|
+
return {
|
|
399
|
+
data: null,
|
|
400
|
+
status: 500,
|
|
401
|
+
success: false,
|
|
402
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred'
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Prepares pool data from vault details
|
|
408
|
+
* @param vaultAddress The vault address
|
|
409
|
+
*/
|
|
410
|
+
async preparePoolData(vaultAddress) {
|
|
411
|
+
try {
|
|
412
|
+
// Try to get vault details, first attempt with regular vault
|
|
413
|
+
let vaultDetails;
|
|
414
|
+
const chainId = await this.publicClient.getChainId();
|
|
415
|
+
const steerPeripheryAddress = getContractAddressByChainIdAndContractName(chainId, 'SteerPeriphery');
|
|
416
|
+
if (!steerPeripheryAddress)
|
|
417
|
+
throw new Error('SteerPeriphery address not found');
|
|
418
|
+
try {
|
|
419
|
+
// First try regular vault
|
|
420
|
+
vaultDetails = await this.publicClient.readContract({
|
|
421
|
+
address: steerPeripheryAddress,
|
|
422
|
+
abi: PERIPHERY_ABI,
|
|
423
|
+
functionName: 'vaultDetailsByAddress',
|
|
424
|
+
args: [vaultAddress]
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
catch (error) {
|
|
428
|
+
// If regular vault fails, try Algebra vault
|
|
429
|
+
vaultDetails = await this.publicClient.readContract({
|
|
430
|
+
address: steerPeripheryAddress,
|
|
431
|
+
abi: PERIPHERY_ABI,
|
|
432
|
+
functionName: 'algebraVaultDetailsByAddress',
|
|
433
|
+
args: [vaultAddress]
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
// Get the pool contract to fetch tick spacing
|
|
437
|
+
const pool = await this.getPool(vaultAddress);
|
|
438
|
+
if (!pool.data)
|
|
439
|
+
throw new Error('Failed to retrieve pool');
|
|
440
|
+
// Get tick spacing
|
|
441
|
+
const tickSpacing = await this.publicClient.readContract({
|
|
442
|
+
address: pool.data,
|
|
443
|
+
abi: UniswapV3PoolABI,
|
|
444
|
+
functionName: 'tickSpacing'
|
|
445
|
+
});
|
|
446
|
+
const poolData = {
|
|
447
|
+
id: pool.data,
|
|
448
|
+
token0: {
|
|
449
|
+
id: vaultDetails.token0,
|
|
450
|
+
decimals: vaultDetails.token0Decimals.toString(),
|
|
451
|
+
symbol: vaultDetails.token0Symbol,
|
|
452
|
+
name: vaultDetails.token0Symbol,
|
|
453
|
+
},
|
|
454
|
+
token1: {
|
|
455
|
+
id: vaultDetails.token1,
|
|
456
|
+
decimals: vaultDetails.token1Decimals.toString(),
|
|
457
|
+
symbol: vaultDetails.token1Symbol,
|
|
458
|
+
name: vaultDetails.token1Symbol,
|
|
459
|
+
},
|
|
460
|
+
chainId: await this.publicClient.getChainId(),
|
|
461
|
+
feeTier: 3000, // Fixed fee tier as specified
|
|
462
|
+
tickSpacing,
|
|
463
|
+
};
|
|
464
|
+
return {
|
|
465
|
+
data: poolData,
|
|
466
|
+
status: 200,
|
|
467
|
+
success: true,
|
|
468
|
+
};
|
|
469
|
+
}
|
|
470
|
+
catch (error) {
|
|
471
|
+
return {
|
|
472
|
+
data: null,
|
|
473
|
+
status: 500,
|
|
474
|
+
success: false,
|
|
475
|
+
error: error instanceof Error ? error.message : 'Unknown error occurred',
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/vault/deposit/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/base/vault/deposit/types.ts"],"names":[],"mappings":""}
|