@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,226 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var api_exports = {};
20
+ __export(api_exports, {
21
+ GearboxRewardsApi: () => GearboxRewardsApi
22
+ });
23
+ module.exports = __toCommonJS(api_exports);
24
+ var import_viem = require("viem");
25
+ var import_iFarmingPool = require("../../abi/iFarmingPool.js");
26
+ var import_common_utils = require("../../common-utils/index.js");
27
+ var import_sdk = require("../../sdk/index.js");
28
+ var import_merkl_api = require("./merkl-api.js");
29
+ class GearboxRewardsApi {
30
+ constructor() {
31
+ }
32
+ static async getLmRewardsV3({
33
+ pools,
34
+ tokensList,
35
+ provider,
36
+ account,
37
+ reportError
38
+ }) {
39
+ const poolByStakedDiesel = Object.values(pools).reduce((acc, p) => {
40
+ p.stakedDieselToken.forEach((t) => {
41
+ if (t) acc[t] = p.address;
42
+ });
43
+ p.stakedDieselToken_old.forEach((t) => {
44
+ if (t) acc[t] = p.address;
45
+ });
46
+ return acc;
47
+ }, {});
48
+ const stakedDieselTokens = Object.keys(poolByStakedDiesel);
49
+ const farmInfoCalls = stakedDieselTokens.map((address) => ({
50
+ address,
51
+ abi: import_iFarmingPool.iFarmingPoolAbi,
52
+ functionName: "farmInfo",
53
+ args: []
54
+ }));
55
+ const rewardTokenCalls = stakedDieselTokens.map((address) => ({
56
+ address,
57
+ abi: POOL_REWARDS_ABI,
58
+ functionName: "rewardsToken",
59
+ args: []
60
+ }));
61
+ const farmedCalls = stakedDieselTokens.map((address) => ({
62
+ address,
63
+ abi: import_iFarmingPool.iFarmingPoolAbi,
64
+ functionName: "farmed",
65
+ args: [account]
66
+ }));
67
+ const [response] = await Promise.allSettled([
68
+ provider.multicall({
69
+ allowFailure: false,
70
+ contracts: [...farmInfoCalls, ...rewardTokenCalls, ...farmedCalls],
71
+ batchSize: 0
72
+ })
73
+ ]);
74
+ const safeResponse = GearboxRewardsApi.extractFulfilled(response, reportError, "v3Rewards") || [];
75
+ const farmInfoCallsEnd = farmInfoCalls.length;
76
+ const farmInfo = safeResponse.slice(
77
+ 0,
78
+ farmInfoCallsEnd
79
+ );
80
+ const rewardTokenCallsEnd = farmInfoCallsEnd + rewardTokenCalls.length;
81
+ const rewardTokens = safeResponse.slice(
82
+ farmInfoCallsEnd,
83
+ rewardTokenCallsEnd
84
+ );
85
+ const farmedCallsEnd = rewardTokenCallsEnd + farmedCalls.length;
86
+ const farmedList = safeResponse.slice(
87
+ rewardTokenCallsEnd,
88
+ farmedCallsEnd
89
+ );
90
+ const gearboxLmRewards = stakedDieselTokens.map(
91
+ (address, i) => {
92
+ const pool = poolByStakedDiesel[address];
93
+ const info = farmInfo[i];
94
+ const rewardToken = rewardTokens[i]?.toLowerCase();
95
+ const farmed = farmedList[i];
96
+ if (!pool || !info || !rewardToken) return void 0;
97
+ return {
98
+ pool,
99
+ poolToken: address,
100
+ rewardToken,
101
+ rewardTokenDecimals: tokensList[rewardToken]?.decimals || 18,
102
+ rewardTokenSymbol: tokensList[rewardToken]?.symbol || "unknown",
103
+ amount: farmed ?? 0n,
104
+ type: "stakedV3"
105
+ };
106
+ }
107
+ );
108
+ const { zero, nonZero } = gearboxLmRewards.reduce(
109
+ (acc, r) => {
110
+ if (r && r.amount > 0n) {
111
+ acc.nonZero.push(r);
112
+ } else if (r) {
113
+ acc.zero.push(r);
114
+ }
115
+ return acc;
116
+ },
117
+ { nonZero: [], zero: [] }
118
+ );
119
+ return [...nonZero, zero];
120
+ }
121
+ static async getLmRewardsMerkle({
122
+ pools,
123
+ account,
124
+ network,
125
+ reportError
126
+ }) {
127
+ const [merkleXYZLMResponse] = await Promise.allSettled([
128
+ import_merkl_api.MerkleXYZApi.fetchWithFallback(
129
+ import_merkl_api.MerkleXYZApi.getUserRewardsUrl({
130
+ params: {
131
+ chainId: import_sdk.chains[network].id,
132
+ user: (0, import_viem.getAddress)(account)
133
+ }
134
+ })
135
+ )
136
+ ]);
137
+ const merkleXYZLm = GearboxRewardsApi.extractFulfilled(
138
+ merkleXYZLMResponse,
139
+ reportError,
140
+ "merkleXYZLm"
141
+ )?.data;
142
+ const poolByItsToken = Object.values(pools).reduce((acc, p) => {
143
+ p.stakedDieselToken.forEach((t) => {
144
+ if (t) acc[t] = p.address;
145
+ });
146
+ p.stakedDieselToken_old.forEach((t) => {
147
+ if (t) acc[t] = p.address;
148
+ });
149
+ acc[p.dieselToken] = p.address;
150
+ return acc;
151
+ }, {});
152
+ const extraRewards = (merkleXYZLm || []).reduce((acc, chainRewards) => {
153
+ chainRewards.rewards.forEach((reward) => {
154
+ const rewardToken = reward.token.address.toLowerCase();
155
+ reward.breakdowns.forEach((reason) => {
156
+ const poolToken = ((reason.reason || "").split("_").find((part) => part.startsWith("0x")) || "").toLowerCase();
157
+ const pool = poolByItsToken[poolToken];
158
+ const total = (0, import_sdk.toBigInt)(reason.amount || 0);
159
+ const claimed = (0, import_sdk.toBigInt)(reason.claimed || 0);
160
+ const claimable = import_common_utils.BigIntMath.max(total - claimed, 0n);
161
+ const key = [pool, poolToken, rewardToken].join("_");
162
+ if (pool && claimable > 0n) {
163
+ const prevAmount = acc[key]?.amount || 0n;
164
+ acc[key] = {
165
+ pool,
166
+ poolToken,
167
+ rewardToken,
168
+ rewardTokenSymbol: reward.token.symbol,
169
+ rewardTokenDecimals: reward.token.decimals || 18,
170
+ amount: prevAmount + claimable,
171
+ type: "extraMerkle"
172
+ };
173
+ }
174
+ });
175
+ });
176
+ return acc;
177
+ }, {});
178
+ return Object.values(extraRewards);
179
+ }
180
+ static extractFulfilled(r, reportError, description) {
181
+ if (r.status === "fulfilled") {
182
+ return r.value;
183
+ } else {
184
+ if (reportError) {
185
+ reportError(r.reason, description);
186
+ } else {
187
+ console.error(r.reason);
188
+ }
189
+ return void 0;
190
+ }
191
+ }
192
+ static async claimLmRewardsV3({
193
+ reward,
194
+ signer,
195
+ account
196
+ }) {
197
+ const pool = (0, import_viem.getContract)({
198
+ address: reward.poolToken,
199
+ abi: import_iFarmingPool.iFarmingPoolAbi,
200
+ client: signer
201
+ });
202
+ return pool.write.claim({
203
+ account,
204
+ chain: signer.chain
205
+ });
206
+ }
207
+ }
208
+ const POOL_REWARDS_ABI = [
209
+ {
210
+ inputs: [],
211
+ name: "rewardsToken",
212
+ outputs: [
213
+ {
214
+ internalType: "contract IERC20",
215
+ name: "",
216
+ type: "address"
217
+ }
218
+ ],
219
+ stateMutability: "view",
220
+ type: "function"
221
+ }
222
+ ];
223
+ // Annotate the CommonJS export names for ESM import in node:
224
+ 0 && (module.exports = {
225
+ GearboxRewardsApi
226
+ });
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var apy_exports = {};
20
+ __export(apy_exports, {
21
+ GearboxRewardsApy: () => GearboxRewardsApy
22
+ });
23
+ module.exports = __toCommonJS(apy_exports);
24
+ var import_common_utils = require("../../common-utils/index.js");
25
+ var import_sdk = require("../../sdk/index.js");
26
+ const PERCENTAGE_FACTOR_1KK = import_sdk.PERCENTAGE_DECIMALS * import_sdk.PERCENTAGE_FACTOR;
27
+ const ONE = PERCENTAGE_FACTOR_1KK * 10n;
28
+ class GearboxRewardsApy {
29
+ constructor() {
30
+ }
31
+ static getPoolExtraAPY_V3({
32
+ rewardPoolsInfo,
33
+ stakedDieselToken,
34
+ ...restProps
35
+ }) {
36
+ const { version } = restProps.pool;
37
+ const isV3 = version >= 300 && version < 400;
38
+ if (!isV3 || !stakedDieselToken) return [];
39
+ const info = rewardPoolsInfo[stakedDieselToken];
40
+ if (!info) return [];
41
+ const extra = (Array.isArray(info) ? info : [info]).map(
42
+ (inf) => GearboxRewardsApy.getPoolSingleExtraLmAPY_V3({
43
+ ...restProps,
44
+ stakedDieselToken,
45
+ rewardPoolsInfo: inf
46
+ })
47
+ );
48
+ return extra;
49
+ }
50
+ static getPoolSingleExtraLmAPY_V3({
51
+ stakedDieselToken,
52
+ pool,
53
+ prices,
54
+ rewardPoolsInfo,
55
+ rewardPoolsSupply,
56
+ tokensList,
57
+ currentTimestamp
58
+ }) {
59
+ const { underlyingToken, dieselRateRay } = pool;
60
+ const safeSupply = rewardPoolsSupply[stakedDieselToken] ?? 0n;
61
+ const { decimals: underlyingDecimals = 18 } = tokensList[underlyingToken] || {};
62
+ const underlyingPrice = prices[underlyingToken] ?? 0n;
63
+ const dieselPrice = underlyingPrice * dieselRateRay / import_sdk.RAY;
64
+ const rewardAddress = rewardPoolsInfo?.token || "";
65
+ const { decimals: rewardDecimals = 18 } = tokensList[rewardAddress] || {};
66
+ const rewardPrice = prices[rewardAddress] ?? 0n;
67
+ const r = GearboxRewardsApy.calculateAPY_V3({
68
+ currentTimestamp,
69
+ info: rewardPoolsInfo,
70
+ supply: {
71
+ amount: safeSupply,
72
+ decimals: underlyingDecimals,
73
+ price: dieselPrice
74
+ },
75
+ reward: {
76
+ price: rewardPrice,
77
+ decimals: rewardDecimals
78
+ }
79
+ }) / Number(import_sdk.PERCENTAGE_FACTOR);
80
+ return {
81
+ token: stakedDieselToken,
82
+ balance: null,
83
+ apy: r,
84
+ rewardToken: rewardAddress,
85
+ rewardTokenSymbol: rewardPoolsInfo.symbol
86
+ };
87
+ }
88
+ static calculateAPY_V3({
89
+ info,
90
+ supply,
91
+ reward,
92
+ currentTimestamp
93
+ }) {
94
+ const finished = info.finished <= currentTimestamp;
95
+ if (finished) return 0;
96
+ if (supply.amount <= 0n) return 0;
97
+ if (supply.price === 0n || reward.price === 0n) return 0;
98
+ if (info.duration === 0n) return 0;
99
+ const supplyMoney = import_common_utils.PriceUtils.calcTotalPrice(
100
+ supply.price,
101
+ supply.amount,
102
+ supply.decimals
103
+ );
104
+ const rewardMoney = import_common_utils.PriceUtils.calcTotalPrice(
105
+ reward.price,
106
+ info.reward,
107
+ reward.decimals
108
+ );
109
+ const durationRatio = (0, import_sdk.toBigInt)(import_sdk.SECONDS_PER_YEAR) * import_sdk.WAD / info.duration;
110
+ const apyBn = rewardMoney * ONE / supplyMoney * durationRatio / import_sdk.WAD;
111
+ return Math.round(Number(apyBn) / 10);
112
+ }
113
+ static getCAExtraAPY_V3({
114
+ rewardInfo,
115
+ assets,
116
+ ...restProps
117
+ }) {
118
+ const extra = assets.reduce(
119
+ (acc, asset) => {
120
+ const { token } = asset;
121
+ const info = rewardInfo[token || ""];
122
+ if (!info || info.length === 0) return acc;
123
+ const extra2 = info.map(
124
+ (inf) => GearboxRewardsApy.getCASingleExtraAPY_V3({
125
+ ...restProps,
126
+ asset,
127
+ rewardInfo: inf
128
+ })
129
+ );
130
+ acc.push(...extra2);
131
+ return acc;
132
+ },
133
+ []
134
+ );
135
+ return extra;
136
+ }
137
+ static getCASingleExtraAPY_V3({
138
+ asset,
139
+ prices,
140
+ rewardInfo,
141
+ supply,
142
+ tokensList,
143
+ currentTimestamp
144
+ }) {
145
+ const { token, balance } = asset;
146
+ const safeSupply = supply[token] ?? 0n;
147
+ const { decimals: tokenDecimals = 18 } = tokensList[token] || {};
148
+ const tokenPrice = prices[token] ?? 0n;
149
+ const rewardAddress = rewardInfo?.token || "";
150
+ const { decimals: rewardDecimals = 18 } = tokensList[rewardAddress] || {};
151
+ const rewardPrice = prices[rewardAddress] ?? 0n;
152
+ const r = GearboxRewardsApy.calculateAPY_V3({
153
+ currentTimestamp,
154
+ info: rewardInfo,
155
+ supply: {
156
+ amount: typeof safeSupply === "bigint" ? safeSupply : safeSupply.balance,
157
+ decimals: tokenDecimals,
158
+ price: tokenPrice
159
+ },
160
+ reward: {
161
+ price: rewardPrice,
162
+ decimals: rewardDecimals
163
+ }
164
+ }) / Number(import_sdk.PERCENTAGE_FACTOR);
165
+ return {
166
+ token,
167
+ balance,
168
+ apy: r,
169
+ rewardToken: rewardAddress,
170
+ rewardTokenSymbol: rewardInfo.symbol
171
+ };
172
+ }
173
+ }
174
+ // Annotate the CommonJS export names for ESM import in node:
175
+ 0 && (module.exports = {
176
+ GearboxRewardsApy
177
+ });
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var common_exports = {};
16
+ module.exports = __toCommonJS(common_exports);
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var extra_apy_exports = {};
30
+ __export(extra_apy_exports, {
31
+ GearboxRewardsExtraApy: () => GearboxRewardsExtraApy,
32
+ getKeyForPoolPointsInfo: () => getKeyForPoolPointsInfo
33
+ });
34
+ module.exports = __toCommonJS(extra_apy_exports);
35
+ var import_axios = __toESM(require("axios"));
36
+ var import_common_utils = require("../../common-utils/index.js");
37
+ var import_sdk = require("../../sdk/index.js");
38
+ function getKeyForPoolPointsInfo(i) {
39
+ return [
40
+ i.pool,
41
+ i.token,
42
+ i.symbol,
43
+ i.duration,
44
+ i.name,
45
+ i.type,
46
+ i.estimation,
47
+ i.condition
48
+ ].join("-");
49
+ }
50
+ class GearboxRewardsExtraApy {
51
+ constructor() {
52
+ }
53
+ static async getTotalTokensOnProtocol({
54
+ tokensToCheck,
55
+ tokensList,
56
+ network
57
+ }) {
58
+ const list = [...new Set(tokensToCheck)];
59
+ const res = await Promise.allSettled(
60
+ list.map(
61
+ (t) => GearboxRewardsExtraApy.getTokenTotal(t, network, tokensList)
62
+ )
63
+ );
64
+ return res.map((r, i) => [
65
+ list[i],
66
+ r
67
+ ]);
68
+ }
69
+ static async getTokenTotal(token, network, tokensList) {
70
+ const chainId = import_sdk.chains[network]?.id;
71
+ const url = `https://charts-server.fly.dev/api/getBalanceAt?asset=${token}&chainId=${chainId}`;
72
+ const result = await import_axios.default.get(url);
73
+ const balance = result.data.result.reduce(
74
+ (sum, r) => r.effective_balance + sum,
75
+ 0
76
+ );
77
+ const { decimals = 18 } = tokensList[token] || {};
78
+ return { token, balance: (0, import_sdk.toBN)(String(balance), decimals) };
79
+ }
80
+ static getPointsByPool({
81
+ poolRewards,
82
+ totalTokenBalances,
83
+ pools,
84
+ tokensList
85
+ }) {
86
+ const r = pools.reduce((acc, p) => {
87
+ const pointsInfo = poolRewards[p.address] || [];
88
+ const poolPointsList = pointsInfo.reduce(
89
+ (acc2, pointsInfo2) => {
90
+ const { address: tokenAddress } = tokensList[pointsInfo2.token] || {};
91
+ const tokenBalance = totalTokenBalances[tokenAddress || ""];
92
+ const points = GearboxRewardsExtraApy.getPoolTokenPoints(
93
+ tokenBalance,
94
+ p,
95
+ tokensList,
96
+ pointsInfo2
97
+ );
98
+ if (points !== null) {
99
+ acc2.push({
100
+ key: getKeyForPoolPointsInfo(pointsInfo2),
101
+ info: pointsInfo2,
102
+ points
103
+ });
104
+ }
105
+ return acc2;
106
+ },
107
+ []
108
+ );
109
+ acc[p.address] = poolPointsList;
110
+ return acc;
111
+ }, {});
112
+ return r;
113
+ }
114
+ static getPoolTokenPoints(tokenBalanceInPool, pool, tokensList, pointsInfo) {
115
+ if (pool.expectedLiquidity <= 0) return 0n;
116
+ if (pointsInfo.estimation === "relative" && !tokenBalanceInPool)
117
+ return null;
118
+ const { decimals = 18 } = tokensList[pointsInfo.token] || {};
119
+ const targetFactor = 10n ** BigInt(decimals);
120
+ const defaultPoints = pointsInfo.amount * targetFactor / import_sdk.PERCENTAGE_FACTOR;
121
+ if (pointsInfo.estimation === "absolute") return defaultPoints;
122
+ const { decimals: underlyingDecimals = 18 } = tokensList[pool.underlyingToken] || {};
123
+ const underlyingFactor = 10n ** BigInt(underlyingDecimals);
124
+ const points = (tokenBalanceInPool?.balance || 0n) * defaultPoints / (pool.expectedLiquidity * targetFactor / underlyingFactor);
125
+ return import_common_utils.BigIntMath.min(points, defaultPoints);
126
+ }
127
+ }
128
+ // Annotate the CommonJS export names for ESM import in node:
129
+ 0 && (module.exports = {
130
+ GearboxRewardsExtraApy,
131
+ getKeyForPoolPointsInfo
132
+ });
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var rewards_exports = {};
17
+ module.exports = __toCommonJS(rewards_exports);
18
+ __reExport(rewards_exports, require("./api.js"), module.exports);
19
+ __reExport(rewards_exports, require("./apy.js"), module.exports);
20
+ __reExport(rewards_exports, require("./extra-apy.js"), module.exports);
21
+ __reExport(rewards_exports, require("./merkl-api.js"), module.exports);
22
+ // Annotate the CommonJS export names for ESM import in node:
23
+ 0 && (module.exports = {
24
+ ...require("./api.js"),
25
+ ...require("./apy.js"),
26
+ ...require("./extra-apy.js"),
27
+ ...require("./merkl-api.js")
28
+ });
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var merkl_api_exports = {};
30
+ __export(merkl_api_exports, {
31
+ MerkleXYZApi: () => MerkleXYZApi
32
+ });
33
+ module.exports = __toCommonJS(merkl_api_exports);
34
+ var import_axios = __toESM(require("axios"));
35
+ class MerkleXYZApi {
36
+ constructor() {
37
+ }
38
+ static defaultDomain = "https://api.merkl.xyz";
39
+ static angleDomain = "https://api-merkl.angle.money";
40
+ static fetchWithFallback = async (getUrl) => {
41
+ try {
42
+ return await import_axios.default.get(getUrl(MerkleXYZApi.defaultDomain));
43
+ } catch {
44
+ return await import_axios.default.get(getUrl(MerkleXYZApi.angleDomain));
45
+ }
46
+ };
47
+ static getUserRewardsUrl = (options) => (domain) => `${domain}/v4/users/${options.params.user}/rewards?chainId=${options.params.chainId}`;
48
+ }
49
+ // Annotate the CommonJS export names for ESM import in node:
50
+ 0 && (module.exports = {
51
+ MerkleXYZApi
52
+ });