@steerprotocol/sdk 0.1.4 → 1.0.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 (35) hide show
  1. package/dist/cjs/base/SmartRewards.js +465 -0
  2. package/dist/cjs/base/SmartRewards.js.map +1 -0
  3. package/dist/cjs/base/SubgraphClient.js.map +1 -1
  4. package/dist/cjs/base/VaultClient.js +87 -0
  5. package/dist/cjs/base/VaultClient.js.map +1 -1
  6. package/dist/cjs/client.js +37 -0
  7. package/dist/cjs/client.js.map +1 -1
  8. package/dist/cjs/const/abis/UniswapPool.js +5 -0
  9. package/dist/cjs/const/abis/UniswapPool.js.map +1 -0
  10. package/dist/cjs/index.js +59 -0
  11. package/dist/cjs/index.js.map +1 -1
  12. package/dist/esm/base/SmartRewards.js +461 -0
  13. package/dist/esm/base/SmartRewards.js.map +1 -0
  14. package/dist/esm/base/SubgraphClient.js.map +1 -1
  15. package/dist/esm/base/VaultClient.js +87 -0
  16. package/dist/esm/base/VaultClient.js.map +1 -1
  17. package/dist/esm/client.js +37 -0
  18. package/dist/esm/client.js.map +1 -1
  19. package/dist/esm/const/abis/UniswapPool.js +2 -0
  20. package/dist/esm/const/abis/UniswapPool.js.map +1 -0
  21. package/dist/esm/index.js +59 -0
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/types/base/SmartRewards.d.ts +278 -0
  24. package/dist/types/base/SmartRewards.d.ts.map +1 -0
  25. package/dist/types/base/SubgraphClient.d.ts +1 -1
  26. package/dist/types/base/SubgraphClient.d.ts.map +1 -1
  27. package/dist/types/base/VaultClient.d.ts +2 -0
  28. package/dist/types/base/VaultClient.d.ts.map +1 -1
  29. package/dist/types/client.d.ts +39 -0
  30. package/dist/types/client.d.ts.map +1 -1
  31. package/dist/types/const/abis/UniswapPool.d.ts +36 -0
  32. package/dist/types/const/abis/UniswapPool.d.ts.map +1 -0
  33. package/dist/types/index.d.ts +59 -0
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/package.json +23 -3
@@ -0,0 +1,461 @@
1
+ import { subgraphs } from '../const/subgraph';
2
+ import { formatUnits } from 'viem';
3
+ export class SmartRewards {
4
+ constructor(client, publicClient, walletClient) {
5
+ this.client = client;
6
+ this.publicClient = publicClient;
7
+ this.walletClient = walletClient;
8
+ }
9
+ async getCampaigns(chainId) {
10
+ const campaigns = await this.client.campaigns({
11
+ filter: {
12
+ chainId,
13
+ },
14
+ });
15
+ return {
16
+ data: (campaigns.data?.campaigns.edges.map((edge) => ({
17
+ ...edge.node,
18
+ vaults: edge.node.vaults?.map(vault => ({
19
+ ...vault,
20
+ beaconName: vault.beaconName || '',
21
+ name: vault.name || '',
22
+ protocol: vault.protocol || '',
23
+ protocolBaseType: vault.protocolBaseType || '',
24
+ targetProtocol: vault.targetProtocol || ''
25
+ })) || []
26
+ })) || []),
27
+ status: campaigns.status,
28
+ success: true,
29
+ };
30
+ }
31
+ /**
32
+ * Retrieves claim proofs for a user that can be used to claim rewards
33
+ * @param user - Address of the user to get proofs for
34
+ * @param chainId - Chain ID where the claims exist
35
+ * @param campaignId - Optional campaign ID to filter claims
36
+ * @returns Promise resolving to claim proof data with pagination support
37
+ */
38
+ async getClaimProofs(user, chainId, campaignId) {
39
+ try {
40
+ const response = await this.client.claimProofs({
41
+ user,
42
+ filter: {
43
+ chainId,
44
+ campaignId
45
+ }
46
+ });
47
+ if (!response.data?.claimProofs) {
48
+ return {
49
+ data: null,
50
+ status: response.status,
51
+ success: true
52
+ };
53
+ }
54
+ const transformedResponse = {
55
+ totalCount: response.data.claimProofs.totalCount,
56
+ pageInfo: {
57
+ hasNextPage: response.data.claimProofs.pageInfo.hasNextPage,
58
+ endCursor: response.data.claimProofs.pageInfo.endCursor || undefined
59
+ },
60
+ edges: response.data.claimProofs.edges.map(edge => ({
61
+ cursor: edge.cursor,
62
+ node: {
63
+ ...edge.node,
64
+ proof: edge.node.proof?.filter((p) => p !== null) || []
65
+ }
66
+ }))
67
+ };
68
+ return {
69
+ data: transformedResponse,
70
+ status: response.status,
71
+ success: true
72
+ };
73
+ }
74
+ catch (error) {
75
+ return {
76
+ data: null,
77
+ status: 500,
78
+ success: false,
79
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
80
+ };
81
+ }
82
+ }
83
+ /**
84
+ * Retrieves historical claim data for a specific pool
85
+ * @param chainId - Chain ID where the pool exists
86
+ * @param pool - Address or identifier of the pool
87
+ * @param user - Optional user address to filter claims
88
+ * @returns Promise resolving to paginated claim history data
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * // Get all claims for a pool
93
+ * const allClaims = await smartRewards.getClaimRewardsByPool(1, poolAddress);
94
+ *
95
+ * // Get claims for a specific user in a pool
96
+ * const userClaims = await smartRewards.getClaimRewardsByPool(1, poolAddress, userAddress);
97
+ * ```
98
+ */
99
+ async getClaimRewardsByPool(chainId, pool, user) {
100
+ try {
101
+ const response = await this.client.claimRewards({
102
+ poolId: pool,
103
+ chainId,
104
+ filter: user ? { user } : undefined
105
+ });
106
+ if (!response.data?.claimRewards) {
107
+ return {
108
+ data: null,
109
+ status: response.status,
110
+ success: true
111
+ };
112
+ }
113
+ const transformedResponse = {
114
+ totalCount: response.data.claimRewards.totalCount,
115
+ pageInfo: {
116
+ hasNextPage: response.data.claimRewards.pageInfo.hasNextPage,
117
+ endCursor: response.data.claimRewards.pageInfo.endCursor
118
+ },
119
+ edges: response.data.claimRewards.edges.map(edge => ({
120
+ cursor: edge.cursor,
121
+ node: {
122
+ ...edge.node,
123
+ timestamp: Number(edge.node.timestamp)
124
+ }
125
+ }))
126
+ };
127
+ return {
128
+ data: transformedResponse,
129
+ status: response.status,
130
+ success: true
131
+ };
132
+ }
133
+ catch (error) {
134
+ return {
135
+ data: null,
136
+ status: 500,
137
+ success: false,
138
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
139
+ };
140
+ }
141
+ }
142
+ /**
143
+ * Gets a comprehensive summary of a user's reward status
144
+ * @param user - Address of the user
145
+ * @param chainId - Chain ID to check rewards on
146
+ * @param campaignId - Optional campaign ID to filter rewards
147
+ * @param decimals - Number of decimals for formatting (default: 18)
148
+ * @returns Promise resolving to reward summary with both native and formatted values
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const summary = await smartRewards.getRewardSummary(userAddress, chainId);
153
+ * console.log('Total earned:', summary.data.totalEarned.formatted);
154
+ * console.log('Available to claim:', summary.data.claimable.formatted);
155
+ * ```
156
+ */
157
+ async getRewardSummary(user, chainId, campaignId, decimals = 18) {
158
+ try {
159
+ // Get claimable rewards
160
+ const claimProofs = await this.getClaimProofs(user, chainId, campaignId);
161
+ const claimableAmount = claimProofs.data?.edges.reduce((sum, edge) => sum + BigInt(edge.node.amount.split('.')[0]), 0n) || 0n;
162
+ // Get claimed rewards
163
+ const claimedRewards = await this.getClaimRewardsByPool(chainId, campaignId?.toString() || '', user);
164
+ const claimedAmount = claimedRewards.data?.edges.reduce((sum, edge) => sum + BigInt(edge.node.amount.split('.')[0]), 0n) || 0n;
165
+ // Calculate totals
166
+ const totalEarned = claimableAmount + claimedAmount;
167
+ const summary = {
168
+ totalEarned: {
169
+ native: totalEarned,
170
+ formatted: formatUnits(totalEarned, decimals)
171
+ },
172
+ totalClaimed: {
173
+ native: claimedAmount,
174
+ formatted: formatUnits(claimedAmount, decimals)
175
+ },
176
+ claimable: {
177
+ native: claimableAmount,
178
+ formatted: formatUnits(claimableAmount, decimals)
179
+ }
180
+ };
181
+ return {
182
+ data: summary,
183
+ status: 200,
184
+ success: true
185
+ };
186
+ }
187
+ catch (error) {
188
+ return {
189
+ data: null,
190
+ status: 500,
191
+ success: false,
192
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
193
+ };
194
+ }
195
+ }
196
+ async getSmartRewarderContracts() {
197
+ try {
198
+ const response = await this.client.smartRewarderContracts();
199
+ return {
200
+ data: response.data?.smartRewarderContracts || [],
201
+ status: response.status,
202
+ success: true
203
+ };
204
+ }
205
+ catch (error) {
206
+ return {
207
+ data: null,
208
+ status: 500,
209
+ success: false,
210
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
211
+ };
212
+ }
213
+ }
214
+ /**
215
+ * Claims rewards from the smart rewarder contract
216
+ * @param params - Parameters required for claiming rewards
217
+ * @returns Promise resolving to transaction hash if successful
218
+ *
219
+ * @remarks
220
+ * This method handles the low-level interaction with the smart contract.
221
+ * For a higher-level interface, consider using {@link claimCampaignRewards} instead.
222
+ *
223
+ * @example
224
+ * ```typescript
225
+ * // Get claim proofs
226
+ * const claimProofs = await smartRewards.getClaimProofs(userAddress, chainId, campaignId);
227
+ *
228
+ * // Get smart rewarder contract
229
+ * const rewarders = await smartRewards.getSmartRewarderContracts();
230
+ * const rewarder = rewarders.data?.find(r => r.chainId === chainId);
231
+ *
232
+ * if (claimProofs.data && rewarder) {
233
+ * // Prepare claim data
234
+ * const claimData = smartRewards.prepareClaimData(claimProofs.data);
235
+ * claimData.rewarderAddress = rewarder.address as Address;
236
+ *
237
+ * // Claim rewards
238
+ * const tx = await smartRewards.claimReward(claimData);
239
+ * }
240
+ * ```
241
+ *
242
+ * @throws Will throw an error if no wallet account is found
243
+ * @throws Will throw an error if contract simulation fails
244
+ */
245
+ async claimReward(params) {
246
+ try {
247
+ const account = await this.walletClient.getAddresses();
248
+ if (!account[0])
249
+ throw new Error('No account found');
250
+ const { request } = await this.publicClient.simulateContract({
251
+ address: params.rewarderAddress,
252
+ abi: [{
253
+ type: 'function',
254
+ inputs: [
255
+ { name: 'users', internalType: 'address[]', type: 'address[]' },
256
+ { name: 'campaignIds', internalType: 'uint256[]', type: 'uint256[]' },
257
+ { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' },
258
+ { name: 'proofs', internalType: 'bytes32[][]', type: 'bytes32[][]' }
259
+ ],
260
+ name: 'claim',
261
+ outputs: [],
262
+ stateMutability: 'nonpayable'
263
+ }],
264
+ functionName: 'claim',
265
+ args: [
266
+ params.users,
267
+ params.campaignIds,
268
+ params.amounts,
269
+ params.proofs
270
+ ],
271
+ account: account[0]
272
+ });
273
+ const hash = await this.walletClient.writeContract(request);
274
+ return {
275
+ data: hash,
276
+ status: 200,
277
+ success: true
278
+ };
279
+ }
280
+ catch (error) {
281
+ return {
282
+ data: null,
283
+ status: 500,
284
+ success: false,
285
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
286
+ };
287
+ }
288
+ }
289
+ /**
290
+ * Helper function to prepare claim data from claim proofs
291
+ * @param proofs - The claim proofs response from getClaimProofs
292
+ * @returns ClaimRewardParams object ready for use with claimReward
293
+ *
294
+ * @remarks
295
+ * This helper function transforms the claim proofs into the format required by the smart contract.
296
+ * Note that the returned object's rewarderAddress is empty and must be set before using with claimReward.
297
+ *
298
+ * @example
299
+ * ```typescript
300
+ * // Get claim proofs and rewarder contract
301
+ * const proofs = await smartRewards.getClaimProofs(userAddress, chainId);
302
+ * const rewarders = await smartRewards.getSmartRewarderContracts();
303
+ * const rewarder = rewarders.data?.find(r => r.chainId === chainId);
304
+ *
305
+ * if (proofs.data && rewarder) {
306
+ * // Prepare the claim data
307
+ * const claimData = smartRewards.prepareClaimData(proofs.data);
308
+ *
309
+ * // Set the rewarder address (required)
310
+ * claimData.rewarderAddress = rewarder.address as Address;
311
+ *
312
+ * // Now the data is ready for claiming
313
+ * const tx = await smartRewards.claimReward(claimData);
314
+ * }
315
+ * ```
316
+ */
317
+ prepareClaimData(proofs) {
318
+ return {
319
+ users: proofs.edges.map(edge => edge.node.user),
320
+ campaignIds: proofs.edges.map(edge => BigInt(edge.node.campaignId)),
321
+ amounts: proofs.edges.map(edge => BigInt(edge.node.amount.split('.')[0])),
322
+ proofs: proofs.edges.map(edge => edge.node.proof),
323
+ rewarderAddress: '' // This needs to be set by the caller
324
+ };
325
+ }
326
+ /**
327
+ * Convenience function to handle the entire claim process
328
+ * @param userAddress The address of the user claiming rewards
329
+ * @param chainId The chain ID where the campaign exists
330
+ * @param campaignId Optional campaign ID to filter claims
331
+ * @returns Transaction hash if successful, or error details if failed
332
+ */
333
+ async claimCampaignRewards(userAddress, chainId, campaignId) {
334
+ try {
335
+ // Get claim proofs
336
+ const claimProofsResponse = await this.getClaimProofs(userAddress, chainId, campaignId);
337
+ if (!claimProofsResponse.data || claimProofsResponse.data.edges.length === 0) {
338
+ return {
339
+ data: null,
340
+ status: 400,
341
+ success: false,
342
+ error: 'No claim proofs found'
343
+ };
344
+ }
345
+ // Get smart rewarder contract
346
+ const rewarderResponse = await this.getSmartRewarderContracts();
347
+ const rewarder = rewarderResponse.data?.find(r => r.chainId === chainId);
348
+ if (!rewarder) {
349
+ return {
350
+ data: null,
351
+ status: 400,
352
+ success: false,
353
+ error: `No smart rewarder contract found for chain ${chainId}`
354
+ };
355
+ }
356
+ // Prepare claim data
357
+ const claimData = this.prepareClaimData(claimProofsResponse.data);
358
+ claimData.rewarderAddress = rewarder.address;
359
+ // Execute claim
360
+ return await this.claimReward(claimData);
361
+ }
362
+ catch (error) {
363
+ return {
364
+ data: null,
365
+ status: 500,
366
+ success: false,
367
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
368
+ };
369
+ }
370
+ }
371
+ /**
372
+ * Prepares the claim rewards campaign object with all necessary data for contract interaction
373
+ * @param userAddress The address of the user claiming rewards
374
+ * @param chainId The chain ID where the campaign exists
375
+ * @param campaignId Optional campaign ID to filter claims
376
+ * @returns Promise resolving to an object containing all necessary data for claiming rewards
377
+ *
378
+ * @example
379
+ * ```typescript
380
+ * // Get the prepared claim data
381
+ * const claimData = await smartRewards.prepareClaimRewardsCampaign(userAddress, chainId, campaignId);
382
+ *
383
+ * if (claimData.success) {
384
+ * // Use the data with your own contract interaction methods
385
+ * const { address, abi, functionName, args } = claimData.data;
386
+ * // Execute the contract call using your preferred method
387
+ * }
388
+ * ```
389
+ */
390
+ async prepareClaimRewardsCampaign(userAddress, chainId, campaignId) {
391
+ try {
392
+ // Get claim proofs
393
+ const claimProofsResponse = await this.getClaimProofs(userAddress, chainId, campaignId);
394
+ if (!claimProofsResponse.data || claimProofsResponse.data.edges.length === 0) {
395
+ return {
396
+ data: null,
397
+ status: 400,
398
+ success: false,
399
+ error: 'No claim proofs found'
400
+ };
401
+ }
402
+ // Get smart rewarder contract
403
+ const rewarderResponse = await this.getSmartRewarderContracts();
404
+ const rewarder = rewarderResponse.data?.find(r => r.chainId === chainId);
405
+ if (!rewarder) {
406
+ return {
407
+ data: null,
408
+ status: 400,
409
+ success: false,
410
+ error: `No smart rewarder contract found for chain ${chainId}`
411
+ };
412
+ }
413
+ // Prepare claim data
414
+ const claimData = this.prepareClaimData(claimProofsResponse.data);
415
+ // Prepare the complete contract interaction data
416
+ return {
417
+ data: {
418
+ address: rewarder.address,
419
+ abi: [{
420
+ type: 'function',
421
+ inputs: [
422
+ { name: 'users', internalType: 'address[]', type: 'address[]' },
423
+ { name: 'campaignIds', internalType: 'uint256[]', type: 'uint256[]' },
424
+ { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' },
425
+ { name: 'proofs', internalType: 'bytes32[][]', type: 'bytes32[][]' }
426
+ ],
427
+ name: 'claim',
428
+ outputs: [],
429
+ stateMutability: 'nonpayable'
430
+ }],
431
+ functionName: 'claim',
432
+ args: [
433
+ claimData.users,
434
+ claimData.campaignIds,
435
+ claimData.amounts,
436
+ claimData.proofs
437
+ ]
438
+ },
439
+ status: 200,
440
+ success: true
441
+ };
442
+ }
443
+ catch (error) {
444
+ return {
445
+ data: null,
446
+ status: 500,
447
+ success: false,
448
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
449
+ };
450
+ }
451
+ }
452
+ /**
453
+ * Checks if a chain is supported by checking if it has a subgraph URL
454
+ * @param chainId The chain ID to check
455
+ * @returns boolean indicating if the chain is supported
456
+ */
457
+ supportsChain(chainId) {
458
+ return Object.keys(subgraphs).includes(chainId.toString());
459
+ }
460
+ }
461
+ //# sourceMappingURL=SmartRewards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmartRewards.js","sourceRoot":"","sources":["../../../src/base/SmartRewards.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SubgraphClient.js","sourceRoot":"","sources":["../../../src/base/SubgraphClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,OAAgB,cAAc;IAGlC,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,oBAAoB,CAClC,KAAa,EACb,SAA+B;QAE/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;gBACxC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK;oBACL,SAAS;iBACV,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAErC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAS;gBACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,IAAS;gBACf,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;aACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,cAAc,CAAC,OAAe;QACtC,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,OAAe;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF"}
1
+ {"version":3,"file":"SubgraphClient.js","sourceRoot":"","sources":["../../../src/base/SubgraphClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,OAAgB,cAAc;IAGlC,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,oBAAoB,CAClC,KAAa,EACb,SAAmC;QAEnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;gBACxC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK;oBACL,SAAS;iBACV,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAErC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAS;gBACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,IAAS;gBACf,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;aACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,cAAc,CAAC,OAAe;QACtC,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,OAAe;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { SubgraphClient } from './SubgraphClient';
2
2
  import { abis } from '../const/deployments/abis';
3
+ import { UniswapV3PoolABI } from '../const/abis/UniswapPool';
3
4
  const VAULT_ABI = abis.QuickSwapUniv3MultiPositionLiquidityManager;
4
5
  const PERIPHERY_ABI = abis.SteerPeriphery;
5
6
  export class VaultClient extends SubgraphClient {
@@ -81,6 +82,70 @@ export class VaultClient extends SubgraphClient {
81
82
  };
82
83
  }
83
84
  }
85
+ async getDepositRatio(vaultAddress) {
86
+ try {
87
+ // Get vault details to check balances and decimals
88
+ const vaultDetails = await this.publicClient.readContract({
89
+ address: vaultAddress,
90
+ abi: PERIPHERY_ABI,
91
+ functionName: 'vaultDetailsByAddress',
92
+ args: [vaultAddress]
93
+ });
94
+ const token0Balance = vaultDetails.token0Balance;
95
+ const token1Balance = vaultDetails.token1Balance;
96
+ const token0Decimals = vaultDetails.token0Decimals;
97
+ const token1Decimals = vaultDetails.token1Decimals;
98
+ // Case 1: No liquidity in the vault
99
+ if (token0Balance === 0n && token1Balance === 0n) {
100
+ // Get the pool contract to fetch current price
101
+ const pool = await this.pool(vaultAddress);
102
+ if (!pool.data)
103
+ throw new Error('Failed to retrieve pool for ratio calculation');
104
+ // Get current sqrtPriceX96
105
+ const [sqrtPriceX96] = await this.publicClient.readContract({
106
+ address: pool.data,
107
+ abi: UniswapV3PoolABI,
108
+ functionName: 'slot0'
109
+ });
110
+ // Calculate price = (sqrtPriceX96^2) / 2^192
111
+ const price = (sqrtPriceX96 * sqrtPriceX96) / (2n ** 192n);
112
+ // Adjust for decimal differences
113
+ const decimalAdjustment = 10n ** BigInt(token1Decimals - token0Decimals);
114
+ const nativeTokenRatio = price / decimalAdjustment;
115
+ return {
116
+ data: nativeTokenRatio,
117
+ status: 200,
118
+ success: true
119
+ };
120
+ }
121
+ // Case 2: Vault has liquidity
122
+ // If token1Balance is 0, return token0Balance
123
+ if (token1Balance === 0n) {
124
+ return {
125
+ data: token0Balance,
126
+ status: 200,
127
+ success: true
128
+ };
129
+ }
130
+ // Calculate ratio = token0Balance / token1Balance
131
+ // Adjust for decimal precision
132
+ const decimalAdjustment = 10n ** BigInt(token1Decimals - token0Decimals);
133
+ const ratio = (token0Balance * decimalAdjustment) / token1Balance;
134
+ return {
135
+ data: ratio,
136
+ status: 200,
137
+ success: true
138
+ };
139
+ }
140
+ catch (error) {
141
+ return {
142
+ data: null,
143
+ status: 500,
144
+ success: false,
145
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
146
+ };
147
+ }
148
+ }
84
149
  /**
85
150
  * Withdraws tokens from a vault
86
151
  * @param params The withdrawal parameters
@@ -308,5 +373,27 @@ export class VaultClient extends SubgraphClient {
308
373
  };
309
374
  }
310
375
  }
376
+ async pool(vaultAddress) {
377
+ try {
378
+ const pool = await this.publicClient.readContract({
379
+ address: vaultAddress,
380
+ abi: VAULT_ABI,
381
+ functionName: 'pool',
382
+ });
383
+ return {
384
+ data: pool,
385
+ status: 200,
386
+ success: true,
387
+ };
388
+ }
389
+ catch (error) {
390
+ return {
391
+ data: null,
392
+ status: 500,
393
+ success: false,
394
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
395
+ };
396
+ }
397
+ }
311
398
  }
312
399
  //# sourceMappingURL=VaultClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VaultClient.js","sourceRoot":"","sources":["../../../src/base/VaultClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VaultClient.js","sourceRoot":"","sources":["../../../src/base/VaultClient.ts"],"names":[],"mappings":"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"}