@steerprotocol/sdk 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +54 -0
  2. package/dist/cjs/base/StakingClient.js +328 -10
  3. package/dist/cjs/base/StakingClient.js.map +1 -1
  4. package/dist/cjs/base/VaultClient.js +57 -118
  5. package/dist/cjs/base/VaultClient.js.map +1 -1
  6. package/dist/cjs/base/vault/deposit/index.js +484 -0
  7. package/dist/cjs/base/vault/deposit/index.js.map +1 -0
  8. package/dist/cjs/base/vault/deposit/types.js +3 -0
  9. package/dist/cjs/base/vault/deposit/types.js.map +1 -0
  10. package/dist/cjs/base/vault/utils.js +432 -0
  11. package/dist/cjs/base/vault/utils.js.map +1 -0
  12. package/dist/cjs/base/vault/withdraw/index.js +155 -0
  13. package/dist/cjs/base/vault/withdraw/index.js.map +1 -0
  14. package/dist/cjs/base/vault/withdraw/types.js +3 -0
  15. package/dist/cjs/base/vault/withdraw/types.js.map +1 -0
  16. package/dist/cjs/client.js +5 -0
  17. package/dist/cjs/client.js.map +1 -1
  18. package/dist/cjs/const/chain.js +96 -0
  19. package/dist/cjs/const/chain.js.map +1 -0
  20. package/dist/cjs/const/network.js +801 -0
  21. package/dist/cjs/const/network.js.map +1 -0
  22. package/dist/cjs/const/protocol.js +84 -0
  23. package/dist/cjs/const/protocol.js.map +1 -0
  24. package/dist/esm/base/StakingClient.js +328 -10
  25. package/dist/esm/base/StakingClient.js.map +1 -1
  26. package/dist/esm/base/VaultClient.js +57 -118
  27. package/dist/esm/base/VaultClient.js.map +1 -1
  28. package/dist/esm/base/vault/deposit/index.js +480 -0
  29. package/dist/esm/base/vault/deposit/index.js.map +1 -0
  30. package/dist/esm/base/vault/deposit/types.js +2 -0
  31. package/dist/esm/base/vault/deposit/types.js.map +1 -0
  32. package/dist/esm/base/vault/utils.js +425 -0
  33. package/dist/esm/base/vault/utils.js.map +1 -0
  34. package/dist/esm/base/vault/withdraw/index.js +151 -0
  35. package/dist/esm/base/vault/withdraw/index.js.map +1 -0
  36. package/dist/esm/base/vault/withdraw/types.js +2 -0
  37. package/dist/esm/base/vault/withdraw/types.js.map +1 -0
  38. package/dist/esm/client.js +5 -0
  39. package/dist/esm/client.js.map +1 -1
  40. package/dist/esm/const/chain.js +93 -0
  41. package/dist/esm/const/chain.js.map +1 -0
  42. package/dist/esm/const/network.js +797 -0
  43. package/dist/esm/const/network.js.map +1 -0
  44. package/dist/esm/const/protocol.js +74 -0
  45. package/dist/esm/const/protocol.js.map +1 -0
  46. package/dist/types/base/StakingClient.d.ts +170 -7
  47. package/dist/types/base/StakingClient.d.ts.map +1 -1
  48. package/dist/types/base/VaultClient.d.ts +81 -16
  49. package/dist/types/base/VaultClient.d.ts.map +1 -1
  50. package/dist/types/base/vault/deposit/index.d.ts +74 -0
  51. package/dist/types/base/vault/deposit/index.d.ts.map +1 -0
  52. package/dist/types/base/vault/deposit/types.d.ts +42 -0
  53. package/dist/types/base/vault/deposit/types.d.ts.map +1 -0
  54. package/dist/types/base/vault/utils.d.ts +26 -0
  55. package/dist/types/base/vault/utils.d.ts.map +1 -0
  56. package/dist/types/base/vault/withdraw/index.d.ts +45 -0
  57. package/dist/types/base/vault/withdraw/index.d.ts.map +1 -0
  58. package/dist/types/base/vault/withdraw/types.d.ts +13 -0
  59. package/dist/types/base/vault/withdraw/types.d.ts.map +1 -0
  60. package/dist/types/client.d.ts +3 -0
  61. package/dist/types/client.d.ts.map +1 -1
  62. package/dist/types/const/chain.d.ts +88 -0
  63. package/dist/types/const/chain.d.ts.map +1 -0
  64. package/dist/types/const/network.d.ts +26 -0
  65. package/dist/types/const/network.d.ts.map +1 -0
  66. package/dist/types/const/protocol.d.ts +26 -0
  67. package/dist/types/const/protocol.d.ts.map +1 -0
  68. package/dist/types/types.d.ts +101 -1
  69. package/dist/types/types.d.ts.map +1 -1
  70. package/package.json +14 -13
package/README.md CHANGED
@@ -36,6 +36,60 @@ const steerClient = new SteerClient({
36
36
  const response = await steerClient.getData<YourDataType>('endpoint');
37
37
  ```
38
38
 
39
+ ## Staking Client
40
+
41
+ The StakingClient provides functionality for interacting with Steer Finance staking pools. It supports both single and dual reward staking pools.
42
+
43
+ ### Features
44
+
45
+ - Fetch available staking pools
46
+ - Stake and withdraw tokens
47
+ - Claim rewards
48
+ - Check earned rewards and balances
49
+ - Calculate APR for staking pools
50
+ - Support for both single and dual reward pools
51
+
52
+ ### Example Usage
53
+
54
+ ```typescript
55
+ // Initialize the staking client
56
+ const stakingClient = steerClient.staking;
57
+
58
+ // Get all staking pools
59
+ const pools = await stakingClient.getStakingPools();
60
+
61
+ // Get pools for a specific chain
62
+ const polygonPools = await stakingClient.getStakingPools(137); // Polygon chain ID
63
+
64
+ // Stake tokens
65
+ await stakingClient.stake({
66
+ stakingPool: '0x...', // staking pool address
67
+ amount: 1000000000000000000n // amount in wei
68
+ });
69
+
70
+ // Check earned rewards
71
+ const earned = await stakingClient.earned('0x...', '0x...'); // pool address, account address
72
+ console.log('Earned rewards:', earned.data);
73
+
74
+ // Calculate APR
75
+ const apr = stakingClient.calculateAPR(
76
+ pool,
77
+ rewardTokenPriceUSD,
78
+ totalStakedUSD
79
+ );
80
+ ```
81
+
82
+ ### Available Methods
83
+
84
+ - `getStakingPools(chainId?: number, protocol?: string)`: Fetch available staking pools
85
+ - `stake(params: StakeParams)`: Stake tokens in a pool
86
+ - `withdraw(params: WithdrawParams)`: Withdraw tokens from a pool
87
+ - `getReward(params: GetRewardParams)`: Claim rewards
88
+ - `earned(stakingPool: Address, account: Address)`: Get earned rewards
89
+ - `totalSupply(stakingPool: Address)`: Get total staked tokens
90
+ - `balanceOf(stakingPool: Address, account: Address)`: Get staked balance
91
+ - `calculateAPR(pool: StakingPool, rewardTokenPriceUSD: number, totalStakedUSD: number)`: Calculate current pool APR
92
+
39
93
  ## Requirements
40
94
 
41
95
  - Node.js >= 18.0.0
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StakingClient = void 0;
4
4
  const SubgraphClient_1 = require("./SubgraphClient");
5
+ const withdraw_1 = require("./vault/withdraw");
6
+ const protocol_1 = require("../const/protocol");
7
+ const decimal_js_1 = require("decimal.js");
5
8
  // ABIs for staking contracts
6
9
  const SINGLE_REWARD_ABI = [
7
10
  {
@@ -78,31 +81,44 @@ const DUAL_REWARD_ABI = [
78
81
  "type": "function"
79
82
  }
80
83
  ];
84
+ const ERC20_ABI = [
85
+ {
86
+ "inputs": [],
87
+ "name": "decimals",
88
+ "outputs": [{ "type": "uint8" }],
89
+ "stateMutability": "view",
90
+ "type": "function"
91
+ }
92
+ ];
81
93
  class StakingClient extends SubgraphClient_1.SubgraphClient {
82
94
  constructor(client) {
83
95
  super(client);
84
96
  this.stakingPoolsEndpoint = 'https://9i52h964s3.execute-api.us-east-1.amazonaws.com/dev/staking-pools';
85
97
  this.publicClient = client;
86
98
  this.walletClient = client;
99
+ this.withdrawClient = new withdraw_1.VaultWithdrawClient(client, client);
87
100
  }
88
101
  /**
89
- * Fetches staking pool data from the API
90
- * @param chainId Optional chain ID to filter pools
91
- * @param protocol Optional protocol name to filter pools
102
+ * Fetches and filters staking pools based on provided criteria
103
+ * @param filter Optional filter object to filter the pools
92
104
  */
93
- async getStakingPools(chainId, protocol) {
105
+ async getStakingPools(filter) {
94
106
  try {
95
107
  const response = await fetch(this.stakingPoolsEndpoint);
96
108
  if (!response.ok) {
97
109
  throw new Error('Failed to fetch staking pools');
98
110
  }
99
- let pools = await response.json();
111
+ const rawPools = (await response.json()).pools;
112
+ // Convert and validate protocols in the response
113
+ let pools = rawPools
114
+ .filter((pool) => (0, protocol_1.isValidStakingProtocol)(pool.protocol))
115
+ .map((pool) => ({
116
+ ...pool,
117
+ protocol: (0, protocol_1.normalizeProtocol)(pool.protocol)
118
+ }));
100
119
  // Apply filters if provided
101
- if (chainId) {
102
- pools = pools.filter(pool => pool.chainId === chainId);
103
- }
104
- if (protocol) {
105
- pools = pools.filter(pool => pool.protocol === protocol);
120
+ if (filter) {
121
+ pools = this.filterPools(pools, filter);
106
122
  }
107
123
  return {
108
124
  data: pools,
@@ -119,6 +135,86 @@ class StakingClient extends SubgraphClient_1.SubgraphClient {
119
135
  };
120
136
  }
121
137
  }
138
+ /**
139
+ * Gets only currently active staking pools
140
+ * @param chainId Optional chain ID to filter pools
141
+ * @param protocol Optional protocol name to filter pools
142
+ */
143
+ async getLiveStakingPools(chainId, protocol) {
144
+ return this.getStakingPools({
145
+ chainId,
146
+ protocol,
147
+ isLive: true,
148
+ includeExpired: false
149
+ });
150
+ }
151
+ /**
152
+ * Gets all dual rewards staking pools
153
+ * @param chainId Optional chain ID to filter pools
154
+ * @param protocol Optional protocol name to filter pools
155
+ * @param isLive Optional flag to only get live pools
156
+ */
157
+ async getDualRewardsStakingPools(chainId, protocol, isLive) {
158
+ return this.getStakingPools({
159
+ chainId,
160
+ protocol,
161
+ isLive,
162
+ isDualRewards: true
163
+ });
164
+ }
165
+ /**
166
+ * Gets high yield staking pools based on minimum daily emissions
167
+ * @param minDailyEmissionA Minimum daily emission for reward A
168
+ * @param minDailyEmissionB Optional minimum daily emission for reward B
169
+ * @param chainId Optional chain ID to filter pools
170
+ */
171
+ async getHighYieldStakingPools(minDailyEmissionA, minDailyEmissionB, chainId) {
172
+ return this.getStakingPools({
173
+ chainId,
174
+ minDailyEmissionA,
175
+ minDailyEmissionB,
176
+ isLive: true
177
+ });
178
+ }
179
+ /**
180
+ * Internal helper to filter pools based on criteria
181
+ */
182
+ filterPools(pools, filter) {
183
+ return pools.filter(pool => {
184
+ // Chain ID filter
185
+ if (filter.chainId !== undefined && pool.chainId !== filter.chainId) {
186
+ return false;
187
+ }
188
+ // Protocol filter
189
+ if (filter.protocol !== undefined && pool.protocol !== filter.protocol) {
190
+ return false;
191
+ }
192
+ // Dual rewards filter
193
+ if (filter.isDualRewards !== undefined && pool.isDualFactory !== filter.isDualRewards) {
194
+ return false;
195
+ }
196
+ // Daily emission filters
197
+ if (filter.minDailyEmissionA !== undefined && pool.dailyEmissionRewardA < filter.minDailyEmissionA) {
198
+ return false;
199
+ }
200
+ if (filter.minDailyEmissionB !== undefined && pool.dailyEmissionRewardB !== undefined && pool.dailyEmissionRewardB < filter.minDailyEmissionB) {
201
+ return false;
202
+ }
203
+ // Live/Expired filter
204
+ if (filter.isLive !== undefined) {
205
+ const now = Math.floor(Date.now() / 1000);
206
+ const periodFinish = parseInt(pool.periodFinish);
207
+ const isPoolLive = periodFinish > now;
208
+ if (filter.isLive && !isPoolLive) {
209
+ return false;
210
+ }
211
+ if (!filter.includeExpired && !isPoolLive) {
212
+ return false;
213
+ }
214
+ }
215
+ return true;
216
+ });
217
+ }
122
218
  /**
123
219
  * Stakes tokens in a staking pool
124
220
  * @param params The staking parameters
@@ -340,6 +436,228 @@ class StakingClient extends SubgraphClient_1.SubgraphClient {
340
436
  }
341
437
  return apr;
342
438
  }
439
+ /**
440
+ * Calculates the USD value of tokens in a staking pool
441
+ * Handles both regular staking pools and Steer vaults
442
+ * @param params Parameters for token value calculation
443
+ */
444
+ async getSteerLpTokenValue(params) {
445
+ try {
446
+ // First, get the staking pool details
447
+ const pool = params.stakingPool;
448
+ const chainId = await this.publicClient.getChainId();
449
+ if (chainId !== pool.chainId) {
450
+ throw new Error(`Chain ID mismatch| expected ${pool.chainId} but got ${chainId}`);
451
+ }
452
+ // Handle Steer vault staking pools
453
+ if (pool.isSteerVault && pool.staking) {
454
+ if (!pool.vaultTokens) {
455
+ throw new Error('Vault tokens information not found');
456
+ }
457
+ // Get underlying token amounts from LP token
458
+ const tokensResponse = await this.withdrawClient.getTokensFromLp(pool.staking.address, params.amount);
459
+ if (!tokensResponse.success || !tokensResponse.data) {
460
+ throw new Error('Failed to get token amounts from LP');
461
+ }
462
+ // Get decimals for both tokens
463
+ const [token0Decimals, token1Decimals] = await Promise.all([
464
+ this.publicClient.readContract({
465
+ address: pool.vaultTokens.token0.address,
466
+ abi: ERC20_ABI,
467
+ functionName: 'decimals'
468
+ }),
469
+ this.publicClient.readContract({
470
+ address: pool.vaultTokens.token1.address,
471
+ abi: ERC20_ABI,
472
+ functionName: 'decimals'
473
+ })
474
+ ]);
475
+ // Use Decimal.js for precise calculations
476
+ const token0Amount = new decimal_js_1.Decimal(tokensResponse.data.token0Val.toString())
477
+ .div(new decimal_js_1.Decimal(10).pow(token0Decimals))
478
+ .mul(params.token0UsdPrice);
479
+ const token1Amount = new decimal_js_1.Decimal(tokensResponse.data.token1Val.toString())
480
+ .div(new decimal_js_1.Decimal(10).pow(token1Decimals))
481
+ .mul(params.token1UsdPrice);
482
+ const totalValueUsd = token0Amount.plus(token1Amount).toNumber();
483
+ const token0ValueUsd = token0Amount.toNumber();
484
+ const token1ValueUsd = token1Amount.toNumber();
485
+ return {
486
+ data: {
487
+ totalValueUsd,
488
+ token0Value: token0ValueUsd,
489
+ token1Value: token1ValueUsd
490
+ },
491
+ status: 200,
492
+ success: true
493
+ };
494
+ }
495
+ // Handle regular staking pools (non-Steer vault)
496
+ const stakingDecimals = await this.publicClient.readContract({
497
+ address: pool.staking.address,
498
+ abi: ERC20_ABI,
499
+ functionName: 'decimals'
500
+ });
501
+ const tokenValueUsd = new decimal_js_1.Decimal(params.amount.toString())
502
+ .div(new decimal_js_1.Decimal(10).pow(stakingDecimals))
503
+ .mul(params.token0UsdPrice)
504
+ .toNumber();
505
+ return {
506
+ data: {
507
+ totalValueUsd: tokenValueUsd,
508
+ tokenValue: tokenValueUsd
509
+ },
510
+ status: 200,
511
+ success: true
512
+ };
513
+ }
514
+ catch (error) {
515
+ return {
516
+ data: null,
517
+ status: 500,
518
+ success: false,
519
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
520
+ };
521
+ }
522
+ }
523
+ /**
524
+ * Gets the total staking amount in USD for a pool
525
+ * @param stakingPool The staking pool
526
+ * @param token0UsdPrice Price of token0 in USD
527
+ * @param token1UsdPrice Price of token1 in USD (required for Steer vaults)
528
+ */
529
+ async getTotalStakingAmountInUsd(stakingPool, token0UsdPrice, token1UsdPrice) {
530
+ try {
531
+ // Get total supply
532
+ const totalSupplyResponse = await this.totalSupply(stakingPool.stakingPool);
533
+ if (!totalSupplyResponse.success || !totalSupplyResponse.data) {
534
+ throw new Error('Failed to get total supply');
535
+ }
536
+ // Get value using getSteerLpTokenValue
537
+ const valueResponse = await this.getSteerLpTokenValue({
538
+ stakingPool,
539
+ amount: totalSupplyResponse.data,
540
+ token0UsdPrice,
541
+ token1UsdPrice: token1UsdPrice || token0UsdPrice
542
+ });
543
+ if (!valueResponse.success || !valueResponse.data) {
544
+ throw new Error('Failed to calculate token value');
545
+ }
546
+ return {
547
+ data: valueResponse.data.totalValueUsd,
548
+ status: 200,
549
+ success: true
550
+ };
551
+ }
552
+ catch (error) {
553
+ return {
554
+ data: null,
555
+ status: 500,
556
+ success: false,
557
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
558
+ };
559
+ }
560
+ }
561
+ /**
562
+ * Prepares the transaction data for staking tokens without executing it
563
+ * @param params The staking parameters
564
+ */
565
+ async prepareStakeTx(params) {
566
+ try {
567
+ return {
568
+ data: {
569
+ address: params.stakingPool,
570
+ abi: [{
571
+ type: 'function',
572
+ inputs: [
573
+ { name: 'amount', internalType: 'uint256', type: 'uint256' }
574
+ ],
575
+ name: 'stake',
576
+ outputs: [],
577
+ stateMutability: 'nonpayable'
578
+ }],
579
+ functionName: 'stake',
580
+ args: [params.amount]
581
+ },
582
+ status: 200,
583
+ success: true
584
+ };
585
+ }
586
+ catch (error) {
587
+ return {
588
+ data: null,
589
+ status: 500,
590
+ success: false,
591
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
592
+ };
593
+ }
594
+ }
595
+ /**
596
+ * Prepares the transaction data for withdrawing tokens without executing it
597
+ * @param params The withdrawal parameters
598
+ */
599
+ async prepareWithdrawTx(params) {
600
+ try {
601
+ return {
602
+ data: {
603
+ address: params.stakingPool,
604
+ abi: [{
605
+ type: 'function',
606
+ inputs: [
607
+ { name: 'amount', internalType: 'uint256', type: 'uint256' }
608
+ ],
609
+ name: 'withdraw',
610
+ outputs: [],
611
+ stateMutability: 'nonpayable'
612
+ }],
613
+ functionName: 'withdraw',
614
+ args: [params.amount]
615
+ },
616
+ status: 200,
617
+ success: true
618
+ };
619
+ }
620
+ catch (error) {
621
+ return {
622
+ data: null,
623
+ status: 500,
624
+ success: false,
625
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
626
+ };
627
+ }
628
+ }
629
+ /**
630
+ * Prepares the transaction data for claiming rewards without executing it
631
+ * @param params The reward claim parameters
632
+ */
633
+ async prepareGetRewardTx(params) {
634
+ try {
635
+ return {
636
+ data: {
637
+ address: params.stakingPool,
638
+ abi: [{
639
+ type: 'function',
640
+ inputs: [],
641
+ name: 'getReward',
642
+ outputs: [],
643
+ stateMutability: 'nonpayable'
644
+ }],
645
+ functionName: 'getReward',
646
+ args: []
647
+ },
648
+ status: 200,
649
+ success: true
650
+ };
651
+ }
652
+ catch (error) {
653
+ return {
654
+ data: null,
655
+ status: 500,
656
+ success: false,
657
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
658
+ };
659
+ }
660
+ }
343
661
  }
344
662
  exports.StakingClient = StakingClient;
345
663
  //# sourceMappingURL=StakingClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StakingClient.js","sourceRoot":"","sources":["../../../src/base/StakingClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StakingClient.js","sourceRoot":"","sources":["../../../src/base/StakingClient.ts"],"names":[],"mappings":"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"}