@defisaver/positions-sdk 2.1.11 → 2.1.13-dev-plasma-fluid

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 (114) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/CLAUDE.md +32 -0
  4. package/README.md +64 -64
  5. package/cjs/aaveV3/index.js +1 -1
  6. package/cjs/config/contracts.d.ts +12 -0
  7. package/cjs/config/contracts.js +7 -3
  8. package/cjs/contracts.d.ts +100947 -134653
  9. package/cjs/fluid/index.js +44 -23
  10. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  11. package/cjs/markets/aave/marketAssets.js +1 -1
  12. package/cjs/markets/fluid/index.d.ts +46 -0
  13. package/cjs/markets/fluid/index.js +436 -1
  14. package/cjs/services/priceService.js +1 -1
  15. package/cjs/services/viem.d.ts +2 -3254
  16. package/cjs/staking/staking.d.ts +1 -1
  17. package/cjs/staking/staking.js +17 -14
  18. package/cjs/types/fluid.d.ts +30 -1
  19. package/cjs/types/fluid.js +31 -1
  20. package/esm/aaveV3/index.js +1 -1
  21. package/esm/config/contracts.d.ts +12 -0
  22. package/esm/config/contracts.js +7 -3
  23. package/esm/contracts.d.ts +100947 -134653
  24. package/esm/fluid/index.js +45 -24
  25. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  26. package/esm/markets/aave/marketAssets.js +1 -1
  27. package/esm/markets/fluid/index.d.ts +46 -0
  28. package/esm/markets/fluid/index.js +415 -1
  29. package/esm/services/priceService.js +2 -2
  30. package/esm/services/viem.d.ts +2 -3254
  31. package/esm/staking/staking.d.ts +1 -1
  32. package/esm/staking/staking.js +17 -14
  33. package/esm/types/fluid.d.ts +30 -1
  34. package/esm/types/fluid.js +30 -0
  35. package/package.json +47 -47
  36. package/src/aaveV2/index.ts +240 -240
  37. package/src/aaveV3/index.ts +614 -614
  38. package/src/aaveV3/merit.ts +97 -97
  39. package/src/aaveV3/merkl.ts +74 -74
  40. package/src/claiming/aaveV3.ts +154 -154
  41. package/src/claiming/compV3.ts +22 -22
  42. package/src/claiming/index.ts +12 -12
  43. package/src/claiming/king.ts +66 -66
  44. package/src/claiming/morphoBlue.ts +118 -118
  45. package/src/claiming/spark.ts +225 -225
  46. package/src/compoundV2/index.ts +244 -244
  47. package/src/compoundV3/index.ts +274 -274
  48. package/src/config/contracts.ts +1255 -1251
  49. package/src/constants/index.ts +10 -10
  50. package/src/contracts.ts +120 -120
  51. package/src/curveUsd/index.ts +254 -254
  52. package/src/eulerV2/index.ts +324 -324
  53. package/src/exchange/index.ts +25 -25
  54. package/src/fluid/index.ts +1694 -1668
  55. package/src/helpers/aaveHelpers/index.ts +187 -187
  56. package/src/helpers/compoundHelpers/index.ts +283 -283
  57. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  58. package/src/helpers/eulerHelpers/index.ts +222 -222
  59. package/src/helpers/fluidHelpers/index.ts +326 -326
  60. package/src/helpers/index.ts +10 -10
  61. package/src/helpers/liquityV2Helpers/index.ts +82 -82
  62. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  63. package/src/helpers/makerHelpers/index.ts +52 -52
  64. package/src/helpers/morphoBlueHelpers/index.ts +396 -396
  65. package/src/helpers/sparkHelpers/index.ts +158 -158
  66. package/src/index.ts +47 -47
  67. package/src/liquity/index.ts +159 -159
  68. package/src/liquityV2/index.ts +657 -657
  69. package/src/llamaLend/index.ts +305 -305
  70. package/src/maker/index.ts +223 -223
  71. package/src/markets/aave/index.ts +116 -116
  72. package/src/markets/aave/marketAssets.ts +54 -54
  73. package/src/markets/compound/index.ts +238 -238
  74. package/src/markets/compound/marketsAssets.ts +97 -97
  75. package/src/markets/curveUsd/index.ts +69 -69
  76. package/src/markets/euler/index.ts +26 -26
  77. package/src/markets/fluid/index.ts +2900 -2460
  78. package/src/markets/index.ts +25 -25
  79. package/src/markets/liquityV2/index.ts +102 -102
  80. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  81. package/src/markets/llamaLend/index.ts +235 -235
  82. package/src/markets/morphoBlue/index.ts +895 -895
  83. package/src/markets/spark/index.ts +29 -29
  84. package/src/markets/spark/marketAssets.ts +12 -12
  85. package/src/moneymarket/moneymarketCommonService.ts +80 -80
  86. package/src/morphoBlue/index.ts +274 -274
  87. package/src/portfolio/index.ts +570 -570
  88. package/src/services/priceService.ts +159 -159
  89. package/src/services/utils.ts +115 -115
  90. package/src/services/viem.ts +34 -34
  91. package/src/setup.ts +8 -8
  92. package/src/spark/index.ts +456 -456
  93. package/src/staking/eligibility.ts +53 -53
  94. package/src/staking/index.ts +1 -1
  95. package/src/staking/staking.ts +177 -172
  96. package/src/types/aave.ts +189 -189
  97. package/src/types/claiming.ts +109 -109
  98. package/src/types/common.ts +107 -107
  99. package/src/types/compound.ts +136 -136
  100. package/src/types/curveUsd.ts +123 -123
  101. package/src/types/euler.ts +175 -175
  102. package/src/types/fluid.ts +483 -452
  103. package/src/types/index.ts +13 -13
  104. package/src/types/liquity.ts +30 -30
  105. package/src/types/liquityV2.ts +126 -126
  106. package/src/types/llamaLend.ts +159 -159
  107. package/src/types/maker.ts +63 -63
  108. package/src/types/merit.ts +1 -1
  109. package/src/types/merkl.ts +70 -70
  110. package/src/types/morphoBlue.ts +194 -194
  111. package/src/types/portfolio.ts +60 -60
  112. package/src/types/spark.ts +133 -133
  113. package/src/umbrella/index.ts +69 -69
  114. package/src/umbrella/umbrellaUtils.ts +29 -29
package/.mocharc.json CHANGED
@@ -1,4 +1,4 @@
1
- {
2
- "require": "ts-node/register",
3
- "extension": ["ts"]
4
- }
1
+ {
2
+ "require": "ts-node/register",
3
+ "extension": ["ts"]
4
+ }
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- v20.17.0
1
+ v20.17.0
package/CLAUDE.md ADDED
@@ -0,0 +1,32 @@
1
+ # DeFiSaver Positions SDK
2
+
3
+ TypeScript SDK for DeFi positions tracking and management.
4
+
5
+ ## Commands
6
+
7
+ ```bash
8
+ # Development
9
+ npm run dev # Watch mode compilation
10
+ npm run build # Lint and build both CJS and ESM
11
+ npm run build:cjs # Build CommonJS
12
+ npm run build:esm # Build ES modules
13
+
14
+ # Linting
15
+ npm run lint # Lint and fix
16
+ npm run lint-check # Lint without fixing
17
+
18
+ # Testing
19
+ npm run test # Run all tests
20
+ npm run test-single # Run single test (use --name=filename)
21
+ npm run test:debugger # Run tests with debugger
22
+
23
+ # Versioning
24
+ npm run version-bump # Commit and bump patch version
25
+ ```
26
+
27
+ ## Project Structure
28
+
29
+ - `src/` - TypeScript source code
30
+ - `tests/` - Test files
31
+ - `esm/` - ES module build output
32
+ - `cjs/` - CommonJS build output
package/README.md CHANGED
@@ -1,64 +1,64 @@
1
- # DeFi Saver Positions SDK
2
-
3
- Supported protocols:
4
- - [Maker](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/maker)
5
- - [Spark](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/spark)
6
- - [CrvUSD](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/curveUsd)
7
- - [Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV2)
8
- - [Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV3)
9
- - [Compound V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV2)
10
- - [Compound V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV3)
11
- - [Liquity](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/liquity)
12
-
13
- ## Setup
14
- Supported Node version is v10.
15
-
16
- - run `npm install` (first time)
17
- - run `npm run build`
18
-
19
- `build` command will generate contracts and build ejs and esm folders
20
-
21
- ## How to use
22
- [All available imports](https://github.com/defisaver/defisaver-positions-sdk/blob/main/src/index.ts)
23
-
24
- This is a Compound V3 example, and every other protocol is similar
25
- ```js
26
- import { compoundV3 } from '@defisaver/positions-sdk';
27
-
28
-
29
- // every protocol has market data and user data getters
30
- const {
31
- getCompoundV3MarketsData,
32
- getCompoundV3AccountData,
33
- } = compoundV3;
34
-
35
- const provider = 'Your RPC provider';
36
-
37
- const user = '0x123...';
38
-
39
- const { assetsData } = await getCompoundV3MarketsData(
40
- provider, // rpc for the network you are using (note: can be tenderly or any other testnet rpc)
41
- 1, // network
42
- selectedMarket, // market object like in /src/markets/compound/index.ts
43
- provider, // this must be mainnet rpc - used for getting prices onchain and calculating apys
44
- );
45
-
46
- const userData = await getCompoundV3AccountData(
47
- provider,
48
- 1, // network
49
- userAddress, // EOA or DSProxy
50
- '', // proxy address of the user, or just empty string if checking for EOA
51
- {
52
- selectedMarket, // market object as in /src/markets/compound/index.ts
53
- assetsData,
54
- }
55
- );
56
- ```
57
-
58
- More examples found [here](https://github.com/defisaver/defisaver-positions-sdk/tree/main/tests)
59
-
60
- ## Testing
61
-
62
- `npm run test` - Run all tests
63
-
64
- `npm run test-single --name=your_test_name` - Run single test for specified name e.g. for MyTest.js test name is MyTest
1
+ # DeFi Saver Positions SDK
2
+
3
+ Supported protocols:
4
+ - [Maker](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/maker)
5
+ - [Spark](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/spark)
6
+ - [CrvUSD](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/curveUsd)
7
+ - [Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV2)
8
+ - [Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV3)
9
+ - [Compound V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV2)
10
+ - [Compound V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV3)
11
+ - [Liquity](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/liquity)
12
+
13
+ ## Setup
14
+ Supported Node version is v10.
15
+
16
+ - run `npm install` (first time)
17
+ - run `npm run build`
18
+
19
+ `build` command will generate contracts and build ejs and esm folders
20
+
21
+ ## How to use
22
+ [All available imports](https://github.com/defisaver/defisaver-positions-sdk/blob/main/src/index.ts)
23
+
24
+ This is a Compound V3 example, and every other protocol is similar
25
+ ```js
26
+ import { compoundV3 } from '@defisaver/positions-sdk';
27
+
28
+
29
+ // every protocol has market data and user data getters
30
+ const {
31
+ getCompoundV3MarketsData,
32
+ getCompoundV3AccountData,
33
+ } = compoundV3;
34
+
35
+ const provider = 'Your RPC provider';
36
+
37
+ const user = '0x123...';
38
+
39
+ const { assetsData } = await getCompoundV3MarketsData(
40
+ provider, // rpc for the network you are using (note: can be tenderly or any other testnet rpc)
41
+ 1, // network
42
+ selectedMarket, // market object like in /src/markets/compound/index.ts
43
+ provider, // this must be mainnet rpc - used for getting prices onchain and calculating apys
44
+ );
45
+
46
+ const userData = await getCompoundV3AccountData(
47
+ provider,
48
+ 1, // network
49
+ userAddress, // EOA or DSProxy
50
+ '', // proxy address of the user, or just empty string if checking for EOA
51
+ {
52
+ selectedMarket, // market object as in /src/markets/compound/index.ts
53
+ assetsData,
54
+ }
55
+ );
56
+ ```
57
+
58
+ More examples found [here](https://github.com/defisaver/defisaver-positions-sdk/tree/main/tests)
59
+
60
+ ## Testing
61
+
62
+ `npm run test` - Run all tests
63
+
64
+ `npm run test-single --name=your_test_name` - Run single test for specified name e.g. for MyTest.js test name is MyTest
@@ -166,7 +166,7 @@ function _getAaveV3MarketData(provider_1, network_1, market_1) {
166
166
  const rewardForMarket = rewardInfo === null || rewardInfo === void 0 ? void 0 : rewardInfo[_market.underlyingTokenAddress];
167
167
  const isStakingAsset = staking_1.STAKING_ASSETS.includes(_market.symbol);
168
168
  if (isStakingAsset) {
169
- const yieldApy = yield (0, staking_1.getStakingApy)(_market.symbol);
169
+ const yieldApy = yield (0, staking_1.getStakingApy)(_market.symbol, network);
170
170
  _market.supplyIncentives.push({
171
171
  apy: yieldApy,
172
172
  token: _market.symbol,
@@ -71006,6 +71006,9 @@ export declare const ETHPriceFeed: {
71006
71006
  readonly "42161": {
71007
71007
  readonly address: "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612";
71008
71008
  };
71009
+ readonly "9745": {
71010
+ readonly address: "0x43A7dd2125266c5c4c26EB86cd61241132426Fe7";
71011
+ };
71009
71012
  };
71010
71013
  };
71011
71014
  export declare const BTCPriceFeed: {
@@ -71415,6 +71418,9 @@ export declare const BTCPriceFeed: {
71415
71418
  readonly "42161": {
71416
71419
  readonly address: "0x6ce185860a4963106506C203335A2910413708e9";
71417
71420
  };
71421
+ readonly "9745": {
71422
+ readonly address: "0x3Bc5434dd1Fc6a1B68625e0269B9818cDd9E21B5";
71423
+ };
71418
71424
  };
71419
71425
  };
71420
71426
  export declare const USDCPriceFeed: {
@@ -75037,6 +75043,9 @@ export declare const DFSFeedRegistry: {
75037
75043
  readonly "42161": {
75038
75044
  readonly address: "0x158E27De8B5E5bC3FA1C6D5b365a291c54f6b0Fd";
75039
75045
  };
75046
+ readonly "9745": {
75047
+ readonly address: "0x2226836ec16FF5974dFD8DF740CD461B42FAffD5";
75048
+ };
75040
75049
  };
75041
75050
  };
75042
75051
  export declare const LlamaLendView: {
@@ -81995,6 +82004,9 @@ export declare const FluidView: {
81995
82004
  readonly "8453": {
81996
82005
  readonly address: "0x6cd4D6af4F292817eA2A2311F099dF26cd015028";
81997
82006
  };
82007
+ readonly "9745": {
82008
+ readonly address: "0x27C0BAe2338cE28097122393faF90375B9395dd1";
82009
+ };
81998
82010
  readonly "42161": {
81999
82011
  readonly address: "0xf9e6d5568887ac8eC6fA33B7eefD2A176A958e71";
82000
82012
  };
@@ -989,7 +989,8 @@ exports.ETHPriceFeed = {
989
989
  "1": { "address": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" },
990
990
  "10": { "address": "0x13e3Ee699D1909E989722E753853AE30b17e08c5" },
991
991
  "8453": { "address": "0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70" },
992
- "42161": { "address": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612" }
992
+ "42161": { "address": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612" },
993
+ "9745": { "address": "0x43A7dd2125266c5c4c26EB86cd61241132426Fe7" },
993
994
  },
994
995
  };
995
996
  exports.BTCPriceFeed = {
@@ -998,7 +999,8 @@ exports.BTCPriceFeed = {
998
999
  "1": { "address": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c" },
999
1000
  "10": { "address": "0xD702DD976Fb76Fffc2D3963D037dfDae5b04E593" },
1000
1001
  "8453": { "address": "0x64c911996D3c6aC71f9b455B1E8E7266BcbD848F" },
1001
- "42161": { "address": "0x6ce185860a4963106506C203335A2910413708e9" }
1002
+ "42161": { "address": "0x6ce185860a4963106506C203335A2910413708e9" },
1003
+ "9745": { "address": "0x3Bc5434dd1Fc6a1B68625e0269B9818cDd9E21B5" }
1002
1004
  },
1003
1005
  };
1004
1006
  exports.USDCPriceFeed = {
@@ -1066,7 +1068,8 @@ exports.DFSFeedRegistry = {
1066
1068
  "abi": [{ "inputs": [], "name": "NonContractCall", "type": "error" }, { "inputs": [], "name": "SenderNotAdmin", "type": "error" }, { "inputs": [], "name": "SenderNotOwner", "type": "error" }, { "inputs": [], "name": "adminVault", "outputs": [{ "internalType": "contract AdminVault", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }], "name": "aggregators", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "base", "type": "address" }, { "internalType": "address", "name": "quote", "type": "address" }], "name": "getFeed", "outputs": [{ "internalType": "address", "name": "aggregator", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "kill", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "base", "type": "address" }, { "internalType": "address", "name": "quote", "type": "address" }], "name": "latestRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "base", "type": "address" }, { "internalType": "address", "name": "quote", "type": "address" }, { "internalType": "address", "name": "aggregator", "type": "address" }], "name": "setFeed", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address[]", "name": "bases", "type": "address[]" }, { "internalType": "address[]", "name": "quotes", "type": "address[]" }, { "internalType": "address[]", "name": "aggregator", "type": "address[]" }], "name": "setFeeds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }], "name": "withdrawStuckFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }],
1067
1069
  "networks": {
1068
1070
  "8453": { "address": "0x7dFF34190d0307fC234fc7E8C152C9715083eB02" },
1069
- "42161": { "address": "0x158E27De8B5E5bC3FA1C6D5b365a291c54f6b0Fd" }
1071
+ "42161": { "address": "0x158E27De8B5E5bC3FA1C6D5b365a291c54f6b0Fd" },
1072
+ "9745": { "address": "0x2226836ec16FF5974dFD8DF740CD461B42FAffD5" }
1070
1073
  }
1071
1074
  };
1072
1075
  exports.LlamaLendView = {
@@ -1126,6 +1129,7 @@ exports.FluidView = {
1126
1129
  "networks": {
1127
1130
  "1": { "address": "0xc8df052bD7A8d76a34c09e758Dff3c6298C0115c" },
1128
1131
  "8453": { "address": "0x6cd4D6af4F292817eA2A2311F099dF26cd015028" },
1132
+ "9745": { "address": "0x27C0BAe2338cE28097122393faF90375B9395dd1" },
1129
1133
  "42161": { "address": "0xf9e6d5568887ac8eC6fA33B7eefD2A176A958e71" }
1130
1134
  }
1131
1135
  };