@gearbox-protocol/sdk 13.3.0-next.3 → 13.3.1

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 (216) hide show
  1. package/dist/cjs/common-utils/charts/credit-manager-payload.js +16 -0
  2. package/dist/cjs/common-utils/charts/credit-manager.js +134 -0
  3. package/dist/cjs/common-utils/charts/credit-session.js +257 -0
  4. package/dist/cjs/common-utils/charts/credit-sessions-payload.js +16 -0
  5. package/dist/cjs/common-utils/charts/graph-payload.js +16 -0
  6. package/dist/cjs/common-utils/charts/index.js +36 -0
  7. package/dist/cjs/common-utils/charts/pool-payload.js +16 -0
  8. package/dist/cjs/common-utils/charts/pool.js +199 -0
  9. package/dist/cjs/common-utils/charts/token-data.js +91 -0
  10. package/dist/cjs/common-utils/index.js +4 -0
  11. package/dist/cjs/common-utils/static/index.js +28 -0
  12. package/dist/cjs/common-utils/static/migration-config.js +16 -0
  13. package/dist/cjs/common-utils/static/pool-config.js +16 -0
  14. package/dist/cjs/common-utils/static/strategy.js +16 -0
  15. package/dist/cjs/common-utils/static/trading-pair.js +16 -0
  16. package/dist/cjs/common-utils/utils/{assetsMath.js → assets-math.js} +13 -13
  17. package/dist/cjs/common-utils/utils/{bigintMath.js → bigint-math.js} +3 -3
  18. package/dist/cjs/common-utils/utils/creditAccount/{calcHealthFactor.js → calc-health-factor.js} +9 -9
  19. package/dist/cjs/common-utils/utils/creditAccount/{calcOverallAPY.js → calc-overall-apy.js} +8 -8
  20. package/dist/cjs/common-utils/utils/creditAccount/{calcQuotaBorrowRate.js → calc-quota-borrow-rate.js} +3 -3
  21. package/dist/cjs/common-utils/utils/creditAccount/{calcRelativeBaseBorrowRate.js → calc-relative-base-borrow-rate.js} +3 -3
  22. package/dist/cjs/common-utils/utils/creditAccount/debt.js +4 -4
  23. package/dist/cjs/common-utils/utils/creditAccount/{getTimeToLiquidation.js → get-time-to-liquidation.js} +3 -3
  24. package/dist/cjs/common-utils/utils/creditAccount/index.js +16 -16
  25. package/dist/cjs/common-utils/utils/creditAccount/{liquidationPrice.js → liquidation-price.js} +3 -3
  26. package/dist/cjs/common-utils/utils/creditAccount/{quotaUtils.js → quota-utils.js} +8 -8
  27. package/dist/cjs/common-utils/utils/creditAccount/sort.js +3 -3
  28. package/dist/cjs/common-utils/utils/index.js +6 -8
  29. package/dist/cjs/common-utils/utils/{priceMath.js → price-math.js} +3 -3
  30. package/dist/cjs/dev/AccountOpener.js +5 -45
  31. package/dist/cjs/plugins/zappers/ZappersPlugin.js +144 -0
  32. package/dist/cjs/{sdk/market/ZapperRegister.js → plugins/zappers/extraZappers.js} +6 -110
  33. package/dist/cjs/plugins/zappers/index.js +26 -0
  34. package/dist/cjs/plugins/zappers/package.json +1 -0
  35. package/dist/cjs/rewards/apy/index.js +24 -0
  36. package/dist/cjs/rewards/apy/output-details.js +16 -0
  37. package/dist/cjs/rewards/apy/output.js +16 -0
  38. package/dist/cjs/rewards/index.js +24 -0
  39. package/dist/cjs/rewards/package.json +1 -0
  40. package/dist/cjs/rewards/rewards/api.js +226 -0
  41. package/dist/cjs/rewards/rewards/apy.js +177 -0
  42. package/dist/cjs/rewards/rewards/common.js +16 -0
  43. package/dist/cjs/rewards/rewards/extra-apy.js +132 -0
  44. package/dist/cjs/rewards/rewards/index.js +28 -0
  45. package/dist/cjs/rewards/rewards/merkl-api.js +52 -0
  46. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +104 -462
  47. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +5 -16
  48. package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -1
  49. package/dist/cjs/sdk/base/TokensMeta.js +32 -255
  50. package/dist/cjs/sdk/base/index.js +0 -2
  51. package/dist/cjs/sdk/chain/chains.js +1 -2
  52. package/dist/cjs/sdk/constants/index.js +2 -0
  53. package/dist/cjs/sdk/{base/token-types.js → constants/phantom-tokens.js} +3 -9
  54. package/dist/cjs/sdk/market/MarketRegister.js +2 -2
  55. package/dist/cjs/sdk/market/MarketSuite.js +0 -6
  56. package/dist/cjs/sdk/market/index.js +1 -3
  57. package/dist/cjs/sdk/market/pool/PoolSuite.js +0 -3
  58. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +2 -17
  59. package/dist/cjs/sdk/market/pool/index.js +0 -4
  60. package/dist/cjs/sdk/pools/AbstractPoolService.js +137 -0
  61. package/dist/cjs/{abi/iStateSerializer.js → sdk/pools/PoolServiceV310.js} +8 -14
  62. package/dist/cjs/sdk/pools/createPoolService.js +35 -0
  63. package/dist/cjs/sdk/pools/index.js +4 -2
  64. package/dist/cjs/sdk/utils/AddressMap.js +1 -1
  65. package/dist/cjs/sdk/utils/viem/sendRawTx.js +0 -16
  66. package/dist/esm/common-utils/charts/credit-manager.js +115 -0
  67. package/dist/esm/common-utils/charts/credit-session.js +233 -0
  68. package/dist/esm/common-utils/charts/credit-sessions-payload.js +0 -0
  69. package/dist/esm/common-utils/charts/graph-payload.js +0 -0
  70. package/dist/esm/common-utils/charts/index.js +8 -0
  71. package/dist/esm/common-utils/charts/pool-payload.js +0 -0
  72. package/dist/esm/common-utils/charts/pool.js +179 -0
  73. package/dist/esm/common-utils/charts/token-data.js +67 -0
  74. package/dist/esm/common-utils/index.js +2 -0
  75. package/dist/esm/common-utils/static/index.js +4 -0
  76. package/dist/esm/common-utils/static/migration-config.js +0 -0
  77. package/dist/esm/common-utils/static/pool-config.js +0 -0
  78. package/dist/esm/common-utils/static/strategy.js +0 -0
  79. package/dist/esm/common-utils/static/trading-pair.js +0 -0
  80. package/dist/esm/common-utils/utils/{assetsMath.js → assets-math.js} +2 -2
  81. package/dist/esm/common-utils/utils/creditAccount/{calcHealthFactor.js → calc-health-factor.js} +2 -2
  82. package/dist/esm/common-utils/utils/creditAccount/{calcOverallAPY.js → calc-overall-apy.js} +1 -1
  83. package/dist/esm/common-utils/utils/creditAccount/debt.js +2 -2
  84. package/dist/esm/common-utils/utils/creditAccount/index.js +8 -8
  85. package/dist/esm/common-utils/utils/creditAccount/{quotaUtils.js → quota-utils.js} +1 -1
  86. package/dist/esm/common-utils/utils/creditAccount/sort.js +1 -1
  87. package/dist/esm/common-utils/utils/index.js +3 -4
  88. package/dist/esm/dev/AccountOpener.js +6 -47
  89. package/dist/esm/plugins/zappers/ZappersPlugin.js +126 -0
  90. package/dist/esm/{sdk/market/ZapperRegister.js → plugins/zappers/extraZappers.js} +2 -109
  91. package/dist/esm/plugins/zappers/index.js +3 -0
  92. package/dist/esm/plugins/zappers/package.json +1 -0
  93. package/dist/esm/plugins/zappers/types.js +0 -0
  94. package/dist/esm/rewards/apy/index.js +2 -0
  95. package/dist/esm/rewards/apy/output-details.js +0 -0
  96. package/dist/esm/rewards/apy/output.js +0 -0
  97. package/dist/esm/rewards/index.js +2 -0
  98. package/dist/esm/rewards/package.json +1 -0
  99. package/dist/esm/rewards/rewards/api.js +204 -0
  100. package/dist/esm/rewards/rewards/apy.js +160 -0
  101. package/dist/esm/rewards/rewards/common.js +0 -0
  102. package/dist/esm/rewards/rewards/extra-apy.js +101 -0
  103. package/dist/esm/rewards/rewards/index.js +4 -0
  104. package/dist/esm/rewards/rewards/merkl-api.js +18 -0
  105. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +104 -462
  106. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +5 -16
  107. package/dist/esm/sdk/base/ChainContractsRegister.js +1 -1
  108. package/dist/esm/sdk/base/TokensMeta.js +32 -261
  109. package/dist/esm/sdk/base/index.js +0 -1
  110. package/dist/esm/sdk/chain/chains.js +1 -2
  111. package/dist/esm/sdk/constants/index.js +1 -0
  112. package/dist/esm/sdk/{base/token-types.js → constants/phantom-tokens.js} +0 -4
  113. package/dist/esm/sdk/market/MarketRegister.js +2 -2
  114. package/dist/esm/sdk/market/MarketSuite.js +0 -6
  115. package/dist/esm/sdk/market/index.js +0 -1
  116. package/dist/esm/sdk/market/pool/PoolSuite.js +0 -3
  117. package/dist/esm/sdk/market/pool/PoolV310Contract.js +2 -17
  118. package/dist/esm/sdk/market/pool/index.js +0 -2
  119. package/dist/esm/sdk/pools/AbstractPoolService.js +113 -0
  120. package/dist/esm/sdk/pools/PoolServiceV310.js +6 -0
  121. package/dist/esm/sdk/pools/createPoolService.js +11 -0
  122. package/dist/esm/sdk/pools/index.js +2 -1
  123. package/dist/esm/sdk/utils/AddressMap.js +1 -1
  124. package/dist/esm/sdk/utils/viem/sendRawTx.js +1 -19
  125. package/dist/types/common-utils/charts/credit-manager-payload.d.ts +50 -0
  126. package/dist/types/common-utils/charts/credit-manager.d.ts +48 -0
  127. package/dist/types/common-utils/charts/credit-session.d.ts +111 -0
  128. package/dist/types/common-utils/charts/credit-sessions-payload.d.ts +111 -0
  129. package/dist/types/common-utils/charts/graph-payload.d.ts +10 -0
  130. package/dist/types/common-utils/charts/index.d.ts +8 -0
  131. package/dist/types/common-utils/charts/pool-payload.d.ts +111 -0
  132. package/dist/types/common-utils/charts/pool.d.ts +91 -0
  133. package/dist/types/common-utils/charts/token-data.d.ts +20 -0
  134. package/dist/types/common-utils/index.d.ts +2 -0
  135. package/dist/types/common-utils/static/index.d.ts +4 -0
  136. package/dist/types/common-utils/static/migration-config.d.ts +10 -0
  137. package/dist/types/common-utils/static/pool-config.d.ts +11 -0
  138. package/dist/types/common-utils/static/strategy.d.ts +78 -0
  139. package/dist/types/common-utils/static/trading-pair.d.ts +15 -0
  140. package/dist/types/common-utils/utils/creditAccount/index.d.ts +8 -8
  141. package/dist/types/common-utils/utils/index.d.ts +3 -4
  142. package/dist/types/plugins/zappers/ZappersPlugin.d.ts +18 -0
  143. package/dist/types/plugins/zappers/extraZappers.d.ts +6 -0
  144. package/dist/types/plugins/zappers/index.d.ts +3 -0
  145. package/dist/types/plugins/zappers/types.d.ts +12 -0
  146. package/dist/types/rewards/apy/index.d.ts +2 -0
  147. package/dist/types/rewards/apy/output-details.d.ts +96 -0
  148. package/dist/types/rewards/apy/output.d.ts +22 -0
  149. package/dist/types/rewards/index.d.ts +2 -0
  150. package/dist/types/rewards/rewards/api.d.ts +49 -0
  151. package/dist/types/rewards/rewards/apy.d.ts +41 -0
  152. package/dist/types/rewards/rewards/common.d.ts +16 -0
  153. package/dist/types/rewards/rewards/extra-apy.d.ts +30 -0
  154. package/dist/types/rewards/rewards/index.d.ts +4 -0
  155. package/dist/types/rewards/rewards/merkl-api.d.ts +45 -0
  156. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +27 -123
  157. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  158. package/dist/types/sdk/accounts/types.d.ts +8 -108
  159. package/dist/types/sdk/base/TokensMeta.d.ts +18 -34
  160. package/dist/types/sdk/base/index.d.ts +0 -1
  161. package/dist/types/sdk/base/types.d.ts +1 -0
  162. package/dist/types/sdk/chain/chains.d.ts +1 -1
  163. package/dist/types/sdk/constants/index.d.ts +1 -0
  164. package/dist/types/sdk/constants/phantom-tokens.d.ts +2 -0
  165. package/dist/types/sdk/market/MarketRegister.d.ts +2 -2
  166. package/dist/types/sdk/market/MarketSuite.d.ts +0 -3
  167. package/dist/types/sdk/market/index.d.ts +0 -1
  168. package/dist/types/sdk/market/pool/PoolSuite.d.ts +0 -2
  169. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +2 -6
  170. package/dist/types/sdk/market/pool/index.d.ts +0 -2
  171. package/dist/types/sdk/pools/AbstractPoolService.d.ts +9 -0
  172. package/dist/types/sdk/pools/PoolServiceV310.d.ts +4 -0
  173. package/dist/types/sdk/pools/createPoolService.d.ts +3 -0
  174. package/dist/types/sdk/pools/index.d.ts +2 -1
  175. package/dist/types/sdk/pools/types.d.ts +63 -84
  176. package/dist/types/sdk/utils/AddressMap.d.ts +1 -1
  177. package/dist/types/sdk/utils/viem/sendRawTx.d.ts +1 -5
  178. package/package.json +6 -1
  179. package/dist/cjs/abi/310/iSecuritizeDegenNFT.js +0 -263
  180. package/dist/cjs/abi/310/iSecuritizeKYCFactory.js +0 -278
  181. package/dist/cjs/common-utils/utils/endpoints.js +0 -65
  182. package/dist/cjs/sdk/market/pool/SecuritizeKYCFactory.js +0 -97
  183. package/dist/cjs/sdk/pools/PoolService.js +0 -391
  184. package/dist/esm/abi/310/iSecuritizeDegenNFT.js +0 -239
  185. package/dist/esm/abi/310/iSecuritizeKYCFactory.js +0 -254
  186. package/dist/esm/abi/iStateSerializer.js +0 -12
  187. package/dist/esm/common-utils/utils/endpoints.js +0 -41
  188. package/dist/esm/sdk/market/pool/SecuritizeKYCFactory.js +0 -73
  189. package/dist/esm/sdk/pools/PoolService.js +0 -371
  190. package/dist/types/abi/310/iSecuritizeDegenNFT.d.ts +0 -324
  191. package/dist/types/abi/310/iSecuritizeKYCFactory.d.ts +0 -322
  192. package/dist/types/abi/iStateSerializer.d.ts +0 -11
  193. package/dist/types/common-utils/utils/endpoints.d.ts +0 -27
  194. package/dist/types/sdk/base/token-types.d.ts +0 -33
  195. package/dist/types/sdk/market/ZapperRegister.d.ts +0 -17
  196. package/dist/types/sdk/market/pool/SecuritizeKYCFactory.d.ts +0 -345
  197. package/dist/types/sdk/market/types.d.ts +0 -10
  198. package/dist/types/sdk/pools/PoolService.d.ts +0 -14
  199. /package/dist/cjs/{sdk/market → plugins/zappers}/types.js +0 -0
  200. /package/dist/esm/{sdk/market/types.js → common-utils/charts/credit-manager-payload.js} +0 -0
  201. /package/dist/esm/common-utils/utils/{bigintMath.js → bigint-math.js} +0 -0
  202. /package/dist/esm/common-utils/utils/creditAccount/{calcQuotaBorrowRate.js → calc-quota-borrow-rate.js} +0 -0
  203. /package/dist/esm/common-utils/utils/creditAccount/{calcRelativeBaseBorrowRate.js → calc-relative-base-borrow-rate.js} +0 -0
  204. /package/dist/esm/common-utils/utils/creditAccount/{getTimeToLiquidation.js → get-time-to-liquidation.js} +0 -0
  205. /package/dist/esm/common-utils/utils/creditAccount/{liquidationPrice.js → liquidation-price.js} +0 -0
  206. /package/dist/esm/common-utils/utils/{priceMath.js → price-math.js} +0 -0
  207. /package/dist/types/common-utils/utils/{assetsMath.d.ts → assets-math.d.ts} +0 -0
  208. /package/dist/types/common-utils/utils/{bigintMath.d.ts → bigint-math.d.ts} +0 -0
  209. /package/dist/types/common-utils/utils/creditAccount/{calcHealthFactor.d.ts → calc-health-factor.d.ts} +0 -0
  210. /package/dist/types/common-utils/utils/creditAccount/{calcOverallAPY.d.ts → calc-overall-apy.d.ts} +0 -0
  211. /package/dist/types/common-utils/utils/creditAccount/{calcQuotaBorrowRate.d.ts → calc-quota-borrow-rate.d.ts} +0 -0
  212. /package/dist/types/common-utils/utils/creditAccount/{calcRelativeBaseBorrowRate.d.ts → calc-relative-base-borrow-rate.d.ts} +0 -0
  213. /package/dist/types/common-utils/utils/creditAccount/{getTimeToLiquidation.d.ts → get-time-to-liquidation.d.ts} +0 -0
  214. /package/dist/types/common-utils/utils/creditAccount/{liquidationPrice.d.ts → liquidation-price.d.ts} +0 -0
  215. /package/dist/types/common-utils/utils/creditAccount/{quotaUtils.d.ts → quota-utils.d.ts} +0 -0
  216. /package/dist/types/common-utils/utils/{priceMath.d.ts → price-math.d.ts} +0 -0
@@ -0,0 +1,179 @@
1
+ import {
2
+ PERCENTAGE_DECIMALS,
3
+ PERCENTAGE_FACTOR,
4
+ rayToNumber,
5
+ toBigInt
6
+ } from "../../sdk/index.js";
7
+ class ChartsPoolData {
8
+ address;
9
+ underlyingToken;
10
+ dieselToken;
11
+ version;
12
+ name;
13
+ marketConfigurator;
14
+ addLiqCount;
15
+ addedLiquidity;
16
+ removeLiqCount;
17
+ removedLiquidity;
18
+ earned7D;
19
+ earned7DInUSD;
20
+ utilization;
21
+ dieselRate;
22
+ dieselRateRay;
23
+ depositAPY;
24
+ depositAPYRay;
25
+ borrowAPY;
26
+ borrowAPYRay;
27
+ lmAPY;
28
+ lmRewardAll;
29
+ availableLiquidity;
30
+ availableLiquidityChange;
31
+ availableLiquidityInUSD;
32
+ caLockedValue;
33
+ caLockedValueChange;
34
+ caLockedValueInUSD;
35
+ expectedLiquidity;
36
+ expectedLiquidityChange;
37
+ expectedLiquidityInUSD;
38
+ expectedLiqWeekAgo;
39
+ expectedLiquidityLimit;
40
+ expectedLiquidityLimitInUSD;
41
+ totalBorrowed;
42
+ totalBorrowedChange;
43
+ totalBorrowedInUSD;
44
+ debtWithInterest;
45
+ debtWithInterestChange;
46
+ debtWithInterestInUSD;
47
+ debtWithInterestOld;
48
+ oldAvailableLiquidity;
49
+ oldCALockedValue;
50
+ oldExpectedLiquidity;
51
+ oldTotalBorrowed;
52
+ withdrawFee;
53
+ depositAPY1DAverage;
54
+ depositAPY1DAverageChange;
55
+ depositAPY7DAverage;
56
+ depositAPY30DAverage;
57
+ oldUniqueLPs;
58
+ uniqueLPs;
59
+ uniqueLPsChange;
60
+ constructor(payload) {
61
+ this.address = (payload.addr || "").toLowerCase();
62
+ this.underlyingToken = (payload.underlyingToken || "").toLowerCase();
63
+ this.dieselToken = (payload.dieselToken || "").toLowerCase();
64
+ this.version = payload.version || 1;
65
+ this.name = payload.name || "";
66
+ this.marketConfigurator = (payload.market || "").toLowerCase();
67
+ this.earned7D = payload.earned7D || 0;
68
+ this.earned7DInUSD = payload.earned7DInUSD || 0;
69
+ this.dieselRate = rayToNumber(payload.dieselRate_RAY || 0);
70
+ this.dieselRateRay = toBigInt(payload.dieselRate_RAY || 0);
71
+ this.depositAPY = rayToNumber(payload.depositAPY_RAY || 0) * Number(PERCENTAGE_DECIMALS);
72
+ this.depositAPYRay = toBigInt(payload.depositAPY_RAY);
73
+ this.borrowAPY = rayToNumber(payload.borrowAPY_RAY || 0) * Number(PERCENTAGE_DECIMALS);
74
+ this.borrowAPYRay = toBigInt(payload.borrowAPY_RAY || 0);
75
+ this.lmAPY = (payload.lmAPY || 0) / Number(PERCENTAGE_DECIMALS);
76
+ this.lmRewardAll = (payload.lmRewardAll || []).map((r) => ({
77
+ apy: (r.apy || 0) / Number(PERCENTAGE_DECIMALS),
78
+ token: (r.token || "").toLowerCase()
79
+ }));
80
+ const expected = toBigInt(payload.expectedLiquidity || 0);
81
+ const available = toBigInt(payload.availableLiquidity || 0);
82
+ this.availableLiquidity = available;
83
+ this.oldAvailableLiquidity = toBigInt(payload.availableLiquidityOld || 0);
84
+ this.availableLiquidityChange = (payload.availableLiquidity10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
85
+ this.availableLiquidityInUSD = payload.availableLiquidityInUSD || 0;
86
+ this.utilization = ChartsPoolData.calculateUtilization(expected, available);
87
+ this.caLockedValue = payload.caLockedValue || 0;
88
+ this.oldCALockedValue = payload.caLockedValueOld || 0;
89
+ this.caLockedValueChange = (payload.caLockedValue10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
90
+ this.caLockedValueInUSD = payload.caLockedValueUSD || 0;
91
+ this.expectedLiquidity = toBigInt(payload.expectedLiquidity || 0);
92
+ this.oldExpectedLiquidity = toBigInt(payload.expectedLiquidityOld || 0);
93
+ this.expectedLiquidityChange = (payload.expectedLiquidity10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
94
+ this.expectedLiquidityInUSD = payload.expectedLiquidityInUSD || 0;
95
+ this.expectedLiqWeekAgo = payload.expectedLiqWeekAgo || 0;
96
+ this.expectedLiquidityLimit = toBigInt(payload.expectedLiquidityLimit || 0);
97
+ this.expectedLiquidityLimitInUSD = payload.expectedLiquidityLimitInUSD || 0;
98
+ this.totalBorrowed = toBigInt(payload.totalBorrowed || 0);
99
+ this.oldTotalBorrowed = toBigInt(payload.totalBorrowedOld || 0);
100
+ this.totalBorrowedChange = (payload.totalBorrowed10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
101
+ this.totalBorrowedInUSD = payload.totalBorrowedInUSD || 0;
102
+ this.debtWithInterest = toBigInt(payload.debtWithInterest || 0);
103
+ this.debtWithInterestOld = toBigInt(payload.debtWithInterestOld || 0);
104
+ this.debtWithInterestChange = (payload.debtWithInterest10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
105
+ this.debtWithInterestInUSD = payload.debtWithInterestInUSD || 0;
106
+ this.withdrawFee = payload.withdrawFee || 0;
107
+ this.addLiqCount = payload.addLiqCount || 0;
108
+ this.addedLiquidity = payload.addedLiquidity || 0;
109
+ this.removeLiqCount = payload.removeLiqCount || 0;
110
+ this.removedLiquidity = payload.removedLiquidity || 0;
111
+ this.depositAPY1DAverage = (payload.depositAPY1DAverage || 0) / Number(PERCENTAGE_DECIMALS);
112
+ this.depositAPY1DAverageChange = (payload.depositAPY1DAverage10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
113
+ this.depositAPY7DAverage = (payload.depositAPY7DAverage || 0) / Number(PERCENTAGE_DECIMALS);
114
+ this.depositAPY30DAverage = (payload.depositAPY30DAverage || 0) / Number(PERCENTAGE_DECIMALS);
115
+ this.uniqueLPs = payload.uniqueLPs || 0;
116
+ this.oldUniqueLPs = payload.uniqueLPsOld || 0;
117
+ this.uniqueLPsChange = (payload.uniqueLPs10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
118
+ }
119
+ static calculateUtilization(expected, available) {
120
+ if (expected === 0n) return 0;
121
+ const borrowed = expected - available;
122
+ const u = Number(borrowed * PERCENTAGE_FACTOR / expected) / Number(PERCENTAGE_DECIMALS);
123
+ return Math.max(0, u);
124
+ }
125
+ }
126
+ class UserPoolData {
127
+ id;
128
+ address;
129
+ dieselToken;
130
+ underlyingToken;
131
+ marketConfigurator;
132
+ depositAPY;
133
+ depositAPYRay;
134
+ lmRewardAll;
135
+ providedLiquidity;
136
+ providedLiquidityInUSD;
137
+ dieselBalance;
138
+ dieselBalanceInUSD;
139
+ userRewards;
140
+ pnlInNativeToken;
141
+ pnlInUSD;
142
+ addedLiq;
143
+ addLiqCount;
144
+ removeLiqCount;
145
+ removedLiq;
146
+ constructor(payload) {
147
+ this.id = (payload.pool || "").toLowerCase();
148
+ this.address = (payload.pool || "").toLowerCase();
149
+ this.underlyingToken = (payload.underlyingToken || "").toLowerCase();
150
+ this.dieselToken = (payload.dieselToken || "").toLowerCase();
151
+ this.marketConfigurator = (payload.market || "").toLowerCase();
152
+ this.depositAPY = rayToNumber(payload.depositAPY_RAY || 0) * Number(PERCENTAGE_DECIMALS);
153
+ this.depositAPYRay = toBigInt(payload.depositAPY_RAY || 0);
154
+ this.lmRewardAll = (payload.lmRewardAll || []).map((r) => ({
155
+ apy: (r.apy || 0) / Number(PERCENTAGE_DECIMALS),
156
+ token: (r.token || "").toLowerCase()
157
+ }));
158
+ this.providedLiquidity = toBigInt(payload.liqValue || 0);
159
+ this.providedLiquidityInUSD = payload.liqValueInUSD;
160
+ this.dieselBalance = toBigInt(payload.dieselBalanceBI || 0);
161
+ this.dieselBalanceInUSD = payload.dieselBalance;
162
+ this.userRewards = (payload.userRewards || []).map((r) => ({
163
+ token: (r.rewardToken || "").toLowerCase(),
164
+ pool: (r.pool || "").toLowerCase(),
165
+ lmRewards: toBigInt(r.lmRewards || 0),
166
+ lmRewardsInUSD: r.lmRewardsInUSD
167
+ }));
168
+ this.pnlInNativeToken = payload.liqPnlInNativeToken;
169
+ this.pnlInUSD = payload.liqPnlInUSD;
170
+ this.addedLiq = payload.addedLiq;
171
+ this.addLiqCount = payload.addLiqCount;
172
+ this.removeLiqCount = payload.removeLiqCount;
173
+ this.removedLiq = payload.removedLiq;
174
+ }
175
+ }
176
+ export {
177
+ ChartsPoolData,
178
+ UserPoolData
179
+ };
@@ -0,0 +1,67 @@
1
+ const HUMAN_READABLE_TITLES = {
2
+ USDC_e: "USDC.e",
3
+ dUSDC_eV3: "dUSDC.eV3",
4
+ sdUSDC_eV3: "sdUSDC.eV3",
5
+ sdWETHV3_OLD: "sdWETHV3 Old",
6
+ PT_rsETH_26SEP2024: "pt.rsETH(26.09.24)",
7
+ PT_sUSDe_26DEC2024: "pt.sUSDe(26.12.24)",
8
+ PT_eETH_26DEC2024: "pt.eETH(26.12.24)",
9
+ PT_ezETH_26DEC2024: "pt.ezETH(26.12.24)",
10
+ PT_eBTC_26DEC2024: "pt.eBTC(26.12.24)",
11
+ PT_LBTC_27MAR2025: "pt.LBTC(27.03.25)",
12
+ PT_cornLBTC_26DEC2024: "pt.c.LBTC(26.12.24)",
13
+ PT_corn_eBTC_27MAR2025: "pt.c.eBTC(27.03.25)",
14
+ PT_corn_pumpBTC_26DEC2024: "pt.c.pumpBTC(26.12.24)",
15
+ PT_sUSDe_27MAR2025: "pt.sUSDe(27.03.25)",
16
+ PT_sUSDe_29MAY2025: "pt.sUSDe(29.05.25)",
17
+ PT_beraSTONE_10APR2025: "pt.beraSTONE(10.04.25)",
18
+ PT_uptBTC_14AUG2025: "pt.uptBTC(14.08.25)",
19
+ PT_sUSDX_1SEP2025: "pt.sUSDX(1.09.25)",
20
+ PT_sUSDf_25SEP2025: "pt.sUSDf(25.09.25)",
21
+ "PT-sUSDf-29JAN2026": "pt.sUSDf(29.01.26)",
22
+ PT_USDf_29JAN2026: "pt.USDf(29.01.26)",
23
+ stkcvxllamathena_v3_1: "stkcvxllamathena",
24
+ stkcvxRLUSDUSDC_v3_1: "stkcvxRLUSDUSDC",
25
+ "PT-wstUSR-25SEP2025": "pt.wstUSR(25.09.25)",
26
+ "PT-yUSD-27NOV2025": "pt.yUSD(27.11.25)",
27
+ "PT-pUSDe-16OCT2025": "pt.pUSDe(16.10.25)",
28
+ "PT-USDe-15JAN2026": "pt.USDe(15.01.26)",
29
+ "PT-sUSDe-15JAN2026": "pt.sUSDe(15.01.26)",
30
+ "PT-syrupUSDT-29JAN2026": "pt.syrupUSDT(29.01.26)",
31
+ "PT-USDai-19MAR2026": "pt.USDai(19.03.26)",
32
+ "PT-sUSDai-19MAR2026": "pt.sUSDai(19.03.26)",
33
+ "LP-syrupUSDT-29JAN2026": "lp.syrupUSDT(29.01.26)",
34
+ ["0xab7d50fc2486a1ac06516e2ece9dadc95ba8cd20".toLowerCase()]: "cp0xLRT\xA0\u2192\xA0wstETH",
35
+ ["0x6252467c2fefb61cb55180282943139baeea36c5".toLowerCase()]: "rstETH\xA0\u2192\xA0wstETH",
36
+ ["0xd412ca00d177eba2843348f9c50dd17bfce32c40".toLowerCase()]: "pzETH\xA0\u2192\xA0wstETH",
37
+ ["0x26c98674e623647f11909791593fa3b6e9406c67".toLowerCase()]: "steak7LRT\xA0\u2192\xA0wstETH",
38
+ ["0x9fb930eacadad079683a4758424a53b9b3692775".toLowerCase()]: "Re7LRT\xA0\u2192\xA0wstETH",
39
+ ["0xd7f1A4e3aba92a9D20987C752Bd4a6cc759D7738".toLowerCase()]: "hgETH\xA0\u2192\xA0rsETH",
40
+ ["0xd2a72aa2d3f2815673f4bb887559c333d7f1f34f".toLowerCase()]: "mEDGE\xA0\u2192\xA0USDC",
41
+ ETHPlus: "ETH+"
42
+ };
43
+ class TokenData {
44
+ address;
45
+ title;
46
+ symbol;
47
+ name;
48
+ decimals;
49
+ icon;
50
+ isPhantom;
51
+ constructor(payload) {
52
+ const address = payload.addr.toLowerCase();
53
+ this.address = address;
54
+ this.title = HUMAN_READABLE_TITLES[payload.symbol] || HUMAN_READABLE_TITLES[address] || payload.title || payload.symbol;
55
+ this.symbol = payload.symbol;
56
+ this.name = payload.name;
57
+ this.decimals = payload.decimals;
58
+ this.icon = TokenData.getTokenIcon(payload.symbol);
59
+ this.isPhantom = payload.isPhantom ?? false;
60
+ }
61
+ static getTokenIcon(symbol) {
62
+ return `https://static.gearbox.finance/tokens/${symbol.toLowerCase()}.svg`;
63
+ }
64
+ }
65
+ export {
66
+ TokenData
67
+ };
@@ -1 +1,3 @@
1
+ export * from "./charts/index.js";
2
+ export * from "./static/index.js";
1
3
  export * from "./utils/index.js";
@@ -0,0 +1,4 @@
1
+ export * from "./migration-config.js";
2
+ export * from "./pool-config.js";
3
+ export * from "./strategy.js";
4
+ export * from "./trading-pair.js";
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
- import { BigIntMath } from "./bigintMath.js";
1
+ import { BigIntMath } from "./bigint-math.js";
2
2
  import { sortBalances } from "./creditAccount/sort.js";
3
- import { PriceUtils } from "./priceMath.js";
3
+ import { PriceUtils } from "./price-math.js";
4
4
  class AssetUtils {
5
5
  constructor() {
6
6
  }
@@ -2,8 +2,8 @@ import {
2
2
  PERCENTAGE_FACTOR,
3
3
  PRICE_DECIMALS
4
4
  } from "../../../sdk/index.js";
5
- import { BigIntMath } from "../bigintMath.js";
6
- import { PriceUtils } from "../priceMath.js";
5
+ import { BigIntMath } from "../bigint-math.js";
6
+ import { PriceUtils } from "../price-math.js";
7
7
  const MAX_UINT16 = 65535;
8
8
  function calcHealthFactor({
9
9
  assets,
@@ -2,7 +2,7 @@ import {
2
2
  PERCENTAGE_FACTOR,
3
3
  PRICE_DECIMALS
4
4
  } from "../../../sdk/index.js";
5
- import { PriceUtils } from "../priceMath.js";
5
+ import { PriceUtils } from "../price-math.js";
6
6
  function calcOverallAPY({
7
7
  caAssets,
8
8
  lpAPY,
@@ -3,8 +3,8 @@ import {
3
3
  PRICE_DECIMALS_POW,
4
4
  WAD_DECIMALS_POW
5
5
  } from "../../../sdk/index.js";
6
- import { BigIntMath } from "../bigintMath.js";
7
- import { PriceUtils } from "../priceMath.js";
6
+ import { BigIntMath } from "../bigint-math.js";
7
+ import { PriceUtils } from "../price-math.js";
8
8
  function calcMaxDebtIncrease(healthFactor, debt, underlyingLT, minHf = Number(PERCENTAGE_FACTOR)) {
9
9
  const result = debt * BigInt(healthFactor - minHf) / BigInt(minHf - underlyingLT);
10
10
  return BigIntMath.max(0n, result);
@@ -1,10 +1,10 @@
1
- export * from "./calcHealthFactor.js";
2
- export * from "./calcOverallAPY.js";
3
- export * from "./calcQuotaBorrowRate.js";
4
- export * from "./calcQuotaBorrowRate.js";
5
- export * from "./calcRelativeBaseBorrowRate.js";
1
+ export * from "./calc-health-factor.js";
2
+ export * from "./calc-overall-apy.js";
3
+ export * from "./calc-quota-borrow-rate.js";
4
+ export * from "./calc-quota-borrow-rate.js";
5
+ export * from "./calc-relative-base-borrow-rate.js";
6
6
  export * from "./debt.js";
7
- export * from "./getTimeToLiquidation.js";
8
- export * from "./liquidationPrice.js";
9
- export * from "./quotaUtils.js";
7
+ export * from "./get-time-to-liquidation.js";
8
+ export * from "./liquidation-price.js";
9
+ export * from "./quota-utils.js";
10
10
  export * from "./sort.js";
@@ -2,7 +2,7 @@ import {
2
2
  MIN_INT96,
3
3
  PERCENTAGE_FACTOR
4
4
  } from "../../../sdk/index.js";
5
- import { BigIntMath } from "../bigintMath.js";
5
+ import { BigIntMath } from "../bigint-math.js";
6
6
  function roundUpQuota(quotaChange) {
7
7
  return quotaChange !== MIN_INT96 ? quotaChange / PERCENTAGE_FACTOR * PERCENTAGE_FACTOR : quotaChange;
8
8
  }
@@ -1,5 +1,5 @@
1
1
  import { PRICE_DECIMALS } from "../../../sdk/index.js";
2
- import { PriceUtils } from "../priceMath.js";
2
+ import { PriceUtils } from "../price-math.js";
3
3
  function sortBalances(balances, prices, tokens) {
4
4
  return Object.entries(balances).sort(
5
5
  ([addr1, amount1], [addr2, amount2]) => {
@@ -1,5 +1,4 @@
1
- export * from "./assetsMath.js";
2
- export * from "./bigintMath.js";
1
+ export * from "./assets-math.js";
2
+ export * from "./bigint-math.js";
3
3
  export * from "./creditAccount/index.js";
4
- export * from "./endpoints.js";
5
- export * from "./priceMath.js";
4
+ export * from "./price-math.js";
@@ -6,7 +6,7 @@ import {
6
6
  parseEventLogs
7
7
  } from "viem";
8
8
  import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
9
- import { iCreditFacadeV310Abi } from "../abi/310/generated.js";
9
+ import { iCreditFacadeV310Abi, iPoolV310Abi } from "../abi/310/generated.js";
10
10
  import { ierc20Abi } from "../abi/iERC20.js";
11
11
  import {
12
12
  ADDRESS_0X0,
@@ -15,7 +15,6 @@ import {
15
15
  childLogger,
16
16
  MAX_UINT256,
17
17
  PERCENTAGE_FACTOR,
18
- PoolService,
19
18
  SDKConstruct,
20
19
  sendRawTx
21
20
  } from "../sdk/index.js";
@@ -44,7 +43,6 @@ class AccountOpener extends SDKConstruct {
44
43
  #minDebtMultiplier;
45
44
  #allowMint;
46
45
  #leverageDelta;
47
- #poolService;
48
46
  constructor(service, options_ = {}) {
49
47
  super(service.sdk);
50
48
  const {
@@ -70,7 +68,6 @@ class AccountOpener extends SDKConstruct {
70
68
  this.#poolDepositMultiplier = BigInt(poolDepositMultiplier);
71
69
  this.#minDebtMultiplier = BigInt(minDebtMultiplier);
72
70
  this.#leverageDelta = BigInt(leverageDelta);
73
- this.#poolService = new PoolService(service.sdk);
74
71
  this.#logger?.info(
75
72
  {
76
73
  borrower: privateKeyToAccount(this.borrowerKey).address,
@@ -108,10 +105,6 @@ class AccountOpener extends SDKConstruct {
108
105
  },
109
106
  "opening credit accounts"
110
107
  );
111
- await Promise.all([
112
- this.sdk.tokensMeta.loadTokenData(),
113
- this.sdk.marketRegister.loadZappers()
114
- ]);
115
108
  let deposits = [];
116
109
  if (depositIntoPools) {
117
110
  try {
@@ -463,34 +456,9 @@ class AccountOpener extends SDKConstruct {
463
456
  this.#logger?.debug(
464
457
  `depositor balance in underlying: ${this.sdk.tokensMeta.formatBN(pool.underlying, allowance, { symbol: true })}`
465
458
  );
466
- const tokensOut = this.#poolService.getDepositTokensOut(
467
- address,
468
- underlying
469
- );
470
- this.#logger?.debug(
471
- { tokensOut: tokensOut.map((t) => this.labelAddress(t)) },
472
- "deposit tokens out"
473
- );
474
- if (tokensOut.length === 0) {
475
- throw new Error(`no tokens out found for pool ${poolName}`);
476
- }
477
- const tokenOut = tokensOut[0];
478
- const metadata = this.#poolService.getDepositMetadata(
479
- address,
480
- underlying,
481
- tokenOut
482
- );
483
- this.logger?.debug(
484
- {
485
- underlying: this.labelAddress(underlying),
486
- tokenOut: this.labelAddress(tokenOut),
487
- ...metadata
488
- },
489
- "pool deposit metadata"
490
- );
491
459
  txHash = await this.#anvil.writeContract({
492
460
  account: depositor,
493
- address: metadata.approveTarget,
461
+ address: underlying,
494
462
  abi: ierc20Abi,
495
463
  functionName: "approve",
496
464
  args: [address, allowance],
@@ -507,21 +475,12 @@ class AccountOpener extends SDKConstruct {
507
475
  this.#logger?.debug(
508
476
  `depositor approved underlying for pool ${poolName}: ${txHash}`
509
477
  );
510
- const depositCall = this.#poolService.addLiquidity({
511
- collateral: { token: underlying, balance: amount },
512
- pool: address,
513
- wallet: depositor.address,
514
- meta: metadata
515
- });
516
- if (!depositCall) {
517
- throw new Error(`no deposit call could be created for ${poolName}`);
518
- }
519
478
  txHash = await this.#anvil.writeContract({
520
479
  account: depositor,
521
- address: depositCall.target,
522
- abi: depositCall.abi,
523
- functionName: depositCall.functionName,
524
- args: depositCall.args,
480
+ address,
481
+ abi: iPoolV310Abi,
482
+ functionName: "deposit",
483
+ args: [amount, depositor.address],
525
484
  chain: this.#anvil.chain
526
485
  });
527
486
  receipt = await this.#anvil.waitForTransactionReceipt({ hash: txHash });
@@ -0,0 +1,126 @@
1
+ import { peripheryCompressorAbi } from "../../abi/compressors/peripheryCompressor.js";
2
+ import {
3
+ AddressMap,
4
+ AP_PERIPHERY_COMPRESSOR,
5
+ BasePlugin,
6
+ hexEq,
7
+ VERSION_RANGE_310
8
+ } from "../../sdk/index.js";
9
+ class ZappersPlugin extends BasePlugin {
10
+ #zappers;
11
+ #extraZappers;
12
+ constructor(extraZappers = [], loadOnAttach = false) {
13
+ super(loadOnAttach);
14
+ this.#extraZappers = this.#addExtraZappers(extraZappers);
15
+ }
16
+ async load(force) {
17
+ if (!force && this.loaded) {
18
+ return this.state;
19
+ }
20
+ const [pcAddr] = this.sdk.addressProvider.mustGetLatest(
21
+ AP_PERIPHERY_COMPRESSOR,
22
+ VERSION_RANGE_310
23
+ );
24
+ this.sdk.logger?.debug(
25
+ `loading zappers with periphery compressor ${pcAddr}`
26
+ );
27
+ const markets = this.sdk.marketRegister.markets;
28
+ const resp = await this.client.multicall({
29
+ contracts: markets.map(
30
+ (m) => ({
31
+ abi: peripheryCompressorAbi,
32
+ address: pcAddr,
33
+ functionName: "getZappers",
34
+ args: [m.configurator.address, m.pool.pool.address]
35
+ })
36
+ ),
37
+ allowFailure: true,
38
+ batchSize: 0,
39
+ blockNumber: this.sdk.currentBlock
40
+ });
41
+ this.#zappers = new AddressMap(void 0, "zappers");
42
+ for (let i = 0; i < resp.length; i++) {
43
+ const { status, result, error } = resp[i];
44
+ const marketConfigurator = markets[i].configurator.address;
45
+ const pool = markets[i].pool.pool.address;
46
+ if (status === "success") {
47
+ this.#zappers.upsert(
48
+ pool,
49
+ result.map((z) => ({ ...z, pool }))
50
+ );
51
+ } else {
52
+ this.sdk.logger?.error(
53
+ `failed to load zapper for market configurator ${this.labelAddress(
54
+ marketConfigurator
55
+ )} and pool ${this.labelAddress(pool)}: ${error}`
56
+ );
57
+ }
58
+ }
59
+ this.#loadZapperTokens();
60
+ return this.state;
61
+ }
62
+ #addExtraZappers(extraZappers) {
63
+ const zappers = new AddressMap();
64
+ for (const z of extraZappers) {
65
+ const existing = zappers?.get(z.pool);
66
+ if (existing) {
67
+ const hasZapper = existing.some(
68
+ (zz) => hexEq(zz.baseParams.addr, z.baseParams.addr)
69
+ );
70
+ if (!hasZapper) {
71
+ existing.push(z);
72
+ }
73
+ } else {
74
+ zappers?.upsert(z.pool, [z]);
75
+ }
76
+ }
77
+ return zappers;
78
+ }
79
+ get extraZappers() {
80
+ if (!this.#extraZappers) {
81
+ console.error("extra zappers not attached");
82
+ return new AddressMap();
83
+ }
84
+ return this.#extraZappers;
85
+ }
86
+ get zappers() {
87
+ if (!this.#zappers) {
88
+ throw new Error("zappers plugin not attached");
89
+ }
90
+ return this.#zappers;
91
+ }
92
+ get loaded() {
93
+ return !!this.#zappers;
94
+ }
95
+ stateHuman(_) {
96
+ return this.zappers.values().flatMap(
97
+ (l) => l.flatMap((z) => ({
98
+ address: z.baseParams.addr,
99
+ contractType: z.baseParams.contractType,
100
+ version: Number(z.baseParams.version),
101
+ tokenIn: this.labelAddress(z.tokenIn.addr),
102
+ tokenOut: this.labelAddress(z.tokenOut.addr)
103
+ }))
104
+ );
105
+ }
106
+ get state() {
107
+ return {
108
+ zappers: this.zappers.asRecord()
109
+ };
110
+ }
111
+ hydrate(state) {
112
+ this.#zappers = new AddressMap(Object.entries(state.zappers), "zappers");
113
+ this.#loadZapperTokens();
114
+ }
115
+ #loadZapperTokens() {
116
+ const zappersTokens = this.zappers.values().flatMap((l) => l.flatMap((z) => [z.tokenIn, z.tokenOut]));
117
+ const extraZappersTokens = this.extraZappers.values().flatMap((l) => l.flatMap((z) => [z.tokenIn, z.tokenOut]));
118
+ for (const t of [...zappersTokens, ...extraZappersTokens]) {
119
+ this.sdk.tokensMeta.upsert(t.addr, t);
120
+ this.sdk.setAddressLabel(t.addr, t.symbol);
121
+ }
122
+ }
123
+ }
124
+ export {
125
+ ZappersPlugin
126
+ };