@gearbox-protocol/sdk 3.0.0-next.6 → 3.0.0-next.61

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 (470) hide show
  1. package/contracts/IAirdropDistributor.sol +55 -0
  2. package/contracts/IDegenDistributor.sol +28 -0
  3. package/contracts/IOffchainOracle.sol +17 -0
  4. package/contracts/IWETHGateway.sol +33 -0
  5. package/contracts/IwstETHGateway.sol +24 -0
  6. package/contracts/index.sol +26 -3
  7. package/lib/apy/curveAPY.js +2 -1
  8. package/lib/apy/index.d.ts +2 -2
  9. package/lib/apy/yearnAPY.js +1 -1
  10. package/lib/config.d.ts +0 -1
  11. package/lib/config.js +1 -2
  12. package/lib/core/assets.d.ts +4 -4
  13. package/lib/core/assets.js +28 -17
  14. package/lib/core/creditAccount.d.ts +32 -8
  15. package/lib/core/creditAccount.js +101 -44
  16. package/lib/core/creditAccount.spec.js +693 -10
  17. package/lib/core/creditManager.d.ts +23 -9
  18. package/lib/core/creditManager.js +97 -31
  19. package/lib/core/events.js +14 -14
  20. package/lib/core/gauge.d.ts +26 -0
  21. package/lib/core/gauge.js +63 -0
  22. package/lib/core/gaugeMath.d.ts +40 -0
  23. package/lib/core/gaugeMath.js +108 -0
  24. package/lib/core/gaugeMath.spec.d.ts +1 -0
  25. package/lib/core/gaugeMath.spec.js +388 -0
  26. package/lib/core/{pool/data.d.ts → pool.d.ts} +18 -10
  27. package/lib/core/{pool/data.js → pool.js} +69 -24
  28. package/lib/core/rewardClaimer.d.ts +2 -2
  29. package/lib/core/strategy.js +2 -2
  30. package/lib/core/trade.d.ts +14 -32
  31. package/lib/core/trade.js +33 -82
  32. package/lib/core/transactions.d.ts +65 -3
  33. package/lib/core/transactions.js +162 -105
  34. package/lib/index.d.ts +3 -0
  35. package/lib/index.js +3 -0
  36. package/lib/parsers/abstractParser.js +1 -2
  37. package/lib/parsers/convexBaseRewardPoolAdapterParser.js +10 -8
  38. package/lib/parsers/convexBaseRewardPoolAdapterParser.spec.js +9 -6
  39. package/lib/parsers/convexBoosterAdapterParser.js +6 -6
  40. package/lib/parsers/convexBoosterAdapterParser.spec.js +4 -4
  41. package/lib/parsers/creditFacadeParser.d.ts +2 -1
  42. package/lib/parsers/creditFacadeParser.js +25 -5
  43. package/lib/parsers/creditFacadeParser.spec.js +2 -3
  44. package/lib/parsers/curveAdapterParser.js +10 -11
  45. package/lib/parsers/curveAdapterParser.spec.js +6 -2
  46. package/lib/parsers/lidoAdapterParser.js +3 -2
  47. package/lib/parsers/lidoAdapterParser.spec.js +2 -2
  48. package/lib/parsers/txParser.d.ts +4 -4
  49. package/lib/parsers/txParser.js +9 -3
  50. package/lib/parsers/uniV2AdapterParser.js +5 -4
  51. package/lib/parsers/uniV2AdapterParser.spec.js +3 -2
  52. package/lib/parsers/uniV3AdapterParser.js +9 -7
  53. package/lib/parsers/uniV3AdapterParser.spec.js +3 -2
  54. package/lib/parsers/wstETHAdapterParser.js +6 -4
  55. package/lib/parsers/wstETHAdapterParser.spec.js +4 -4
  56. package/lib/parsers/yearnAdapterParser.spec.js +4 -4
  57. package/lib/parsers/yearnV2AdapterParser.js +13 -3
  58. package/lib/pathfinder/core.d.ts +11 -9
  59. package/lib/pathfinder/pathOptions.d.ts +2 -1
  60. package/lib/pathfinder/pathOptions.js +20 -1
  61. package/lib/pathfinder/pathOptions.spec.js +2 -2
  62. package/lib/pathfinder/pathfinder.d.ts +37 -10
  63. package/lib/pathfinder/pathfinder.js +46 -33
  64. package/lib/pathfinder/pathfinder.spec.js +7 -3
  65. package/lib/payload/creditAccount.d.ts +3 -4
  66. package/lib/payload/gauge.d.ts +12 -0
  67. package/lib/payload/pool.d.ts +6 -1
  68. package/lib/types/IAaveV2_LendingPoolAdapter.d.ts +171 -0
  69. package/lib/types/IAaveV2_WrappedATokenAdapter.d.ts +290 -0
  70. package/lib/types/IAirdropDistributor.sol/IAirdropDistributor.d.ts +124 -0
  71. package/lib/types/IAirdropDistributor.sol/IAirdropDistributorEvents.d.ts +73 -0
  72. package/lib/types/IAirdropDistributor.sol/index.d.ts +2 -0
  73. package/lib/types/IBalancerV2Vault.sol/IBalancerV2Vault.d.ts +308 -0
  74. package/lib/types/IBalancerV2Vault.sol/IBalancerV2VaultGetters.d.ts +112 -0
  75. package/lib/types/IBalancerV2Vault.sol/index.d.ts +2 -0
  76. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter.d.ts +466 -0
  77. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents.d.ts +43 -0
  78. package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterEvents.d.ts → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions.d.ts} +6 -18
  79. package/lib/types/IBalancerV2VaultAdapter.sol/index.d.ts +3 -0
  80. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter.d.ts +216 -0
  81. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions.d.ts +27 -0
  82. package/lib/types/ICompoundV2_CTokenAdapter.sol/index.d.ts +2 -0
  83. package/lib/types/IContractsRegister.sol/IContractsRegister.d.ts +128 -0
  84. package/lib/types/IContractsRegister.sol/IContractsRegisterEvents.d.ts +50 -0
  85. package/lib/types/IContractsRegister.sol/index.d.ts +2 -0
  86. package/lib/types/IConvexToken.d.ts +9 -1
  87. package/lib/types/IConvexV1BaseRewardPoolAdapter.d.ts +46 -30
  88. package/lib/types/{IConvexV1BoosterAdapter.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.d.ts} +40 -21
  89. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.d.ts +43 -0
  90. package/lib/types/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
  91. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3.d.ts +716 -0
  92. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.d.ts +275 -0
  93. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.js +2 -0
  94. package/lib/types/ICreditConfiguratorV3.sol/index.d.ts +2 -0
  95. package/lib/types/ICreditConfiguratorV3.sol/index.js +2 -0
  96. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Extended.d.ts +7 -11
  97. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3.d.ts +201 -94
  98. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3Events.d.ts +31 -33
  99. package/lib/types/ICreditFacadeV3Multicall.d.ts +91 -60
  100. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3.d.ts +360 -98
  101. package/lib/types/ICurveV1Adapter.d.ts +41 -105
  102. package/lib/types/ICurveV1_2AssetsAdapter.d.ts +41 -105
  103. package/lib/types/ICurveV1_3AssetsAdapter.d.ts +41 -105
  104. package/lib/types/ICurveV1_4AssetsAdapter.d.ts +41 -105
  105. package/lib/types/IDataCompressorV2_10.d.ts +44 -36
  106. package/lib/types/IDataCompressorV3_00.d.ts +141 -37
  107. package/lib/types/IDegenDistributor.sol/IDegenDistributor.d.ts +96 -0
  108. package/lib/types/IDegenDistributor.sol/IDegenDistributor.js +2 -0
  109. package/lib/types/IDegenDistributor.sol/IDegenDistributorEvents.d.ts +53 -0
  110. package/lib/types/IDegenDistributor.sol/IDegenDistributorEvents.js +2 -0
  111. package/lib/types/IDegenDistributor.sol/index.d.ts +2 -0
  112. package/lib/types/IDegenDistributor.sol/index.js +2 -0
  113. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2.d.ts +339 -0
  114. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2.js +2 -0
  115. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Events.d.ts +61 -0
  116. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Events.js +2 -0
  117. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Exceptions.d.ts +27 -0
  118. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Exceptions.js +2 -0
  119. package/lib/types/IDegenNFTV2.sol/index.d.ts +3 -0
  120. package/lib/types/IDegenNFTV2.sol/index.js +2 -0
  121. package/lib/types/IERC165.d.ts +42 -0
  122. package/lib/types/IERC165.js +2 -0
  123. package/lib/types/{draft-IERC20Permit.sol/IERC20Permit.d.ts → IERC20Permit.d.ts} +1 -1
  124. package/lib/types/IERC20Permit.js +2 -0
  125. package/lib/types/IERC20ZapperDeposits.d.ts +117 -0
  126. package/lib/types/IERC20ZapperDeposits.js +2 -0
  127. package/lib/types/IERC4626Adapter.d.ts +238 -0
  128. package/lib/types/IERC4626Adapter.js +2 -0
  129. package/lib/types/IERC721.d.ts +220 -0
  130. package/lib/types/IERC721.js +2 -0
  131. package/lib/types/IERC721Metadata.d.ts +244 -0
  132. package/lib/types/IERC721Metadata.js +2 -0
  133. package/lib/types/IETHZapperDeposits.d.ts +66 -0
  134. package/lib/types/IETHZapperDeposits.js +2 -0
  135. package/lib/types/IGasPricer.d.ts +44 -0
  136. package/lib/types/IGasPricer.js +2 -0
  137. package/lib/types/IGaugeV3.sol/IGaugeV3.d.ts +366 -0
  138. package/lib/types/IGaugeV3.sol/IGaugeV3.js +2 -0
  139. package/lib/types/IGaugeV3.sol/IGaugeV3Events.d.ts +114 -0
  140. package/lib/types/IGaugeV3.sol/IGaugeV3Events.js +2 -0
  141. package/lib/types/IGaugeV3.sol/index.d.ts +2 -0
  142. package/lib/types/IGaugeV3.sol/index.js +2 -0
  143. package/lib/types/IGearStakingV3.sol/IGearStakingV3.d.ts +408 -0
  144. package/lib/types/IGearStakingV3.sol/IGearStakingV3.js +2 -0
  145. package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.d.ts +117 -0
  146. package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.js +2 -0
  147. package/lib/types/IGearStakingV3.sol/index.d.ts +2 -0
  148. package/lib/types/IGearStakingV3.sol/index.js +2 -0
  149. package/lib/types/{ILidoV1Adapter.sol/ILidoV1Adapter.d.ts → ILidoV1Adapter.d.ts} +13 -48
  150. package/lib/types/ILidoV1Adapter.js +2 -0
  151. package/lib/types/ILinearInterestRateModelV3.d.ts +120 -0
  152. package/lib/types/ILinearInterestRateModelV3.js +2 -0
  153. package/lib/types/IOffchainOracle.d.ts +58 -0
  154. package/lib/types/IOffchainOracle.js +2 -0
  155. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3.d.ts +473 -0
  156. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3.js +2 -0
  157. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events.d.ts +113 -0
  158. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events.js +2 -0
  159. package/lib/types/IPoolQuotaKeeperV3.sol/index.d.ts +2 -0
  160. package/lib/types/IPoolQuotaKeeperV3.sol/index.js +2 -0
  161. package/lib/types/IPoolV3.sol/IPoolV3.d.ts +43 -11
  162. package/lib/types/IPoolV3.sol/index.d.ts +0 -1
  163. package/lib/types/IPriceFeed.sol/IPriceFeed.d.ts +109 -0
  164. package/lib/types/IPriceFeed.sol/IPriceFeed.js +2 -0
  165. package/lib/types/IPriceFeed.sol/IUpdatablePriceFeed.d.ts +133 -0
  166. package/lib/types/IPriceFeed.sol/IUpdatablePriceFeed.js +2 -0
  167. package/lib/types/IPriceFeed.sol/index.d.ts +2 -0
  168. package/lib/types/IPriceFeed.sol/index.js +2 -0
  169. package/lib/types/IPriceOracle.sol/IPriceOracleV2.d.ts +166 -0
  170. package/lib/types/IPriceOracle.sol/IPriceOracleV2.js +2 -0
  171. package/lib/types/IPriceOracle.sol/IPriceOracleV2Events.d.ts +43 -0
  172. package/lib/types/IPriceOracle.sol/IPriceOracleV2Events.js +2 -0
  173. package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions.d.ts → IPriceOracle.sol/IPriceOracleV2Exceptions.d.ts} +3 -3
  174. package/lib/types/IPriceOracle.sol/IPriceOracleV2Exceptions.js +2 -0
  175. package/lib/types/IPriceOracle.sol/IPriceOracleV2Ext.d.ts +182 -0
  176. package/lib/types/IPriceOracle.sol/IPriceOracleV2Ext.js +2 -0
  177. package/lib/types/IPriceOracle.sol/index.d.ts +4 -0
  178. package/lib/types/IPriceOracle.sol/index.js +2 -0
  179. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3.d.ts +272 -0
  180. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3.js +2 -0
  181. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3Events.d.ts +79 -0
  182. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3Events.js +2 -0
  183. package/lib/types/IPriceOracleV3.sol/index.d.ts +2 -0
  184. package/lib/types/IPriceOracleV3.sol/index.js +2 -0
  185. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2Adapter.d.ts +10 -9
  186. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3Adapter.d.ts +27 -21
  187. package/lib/types/IVotingContractV3.d.ts +74 -0
  188. package/lib/types/IVotingContractV3.js +2 -0
  189. package/lib/types/IWETHGateway.d.ts +90 -0
  190. package/lib/types/IWETHGateway.js +2 -0
  191. package/lib/types/IYearnV2Adapter.d.ts +22 -22
  192. package/lib/types/IZapper.d.ts +125 -0
  193. package/lib/types/IZapper.js +2 -0
  194. package/lib/types/IwstETHGateway.sol/IwstETHGateWay.d.ts +70 -0
  195. package/lib/types/IwstETHGateway.sol/IwstETHGateWay.js +2 -0
  196. package/lib/types/IwstETHGateway.sol/index.d.ts +1 -0
  197. package/lib/types/IwstETHGateway.sol/index.js +2 -0
  198. package/lib/types/IwstETHV1Adapter.d.ts +17 -17
  199. package/lib/types/factories/AddressProvider__factory.d.ts +1 -1
  200. package/lib/types/factories/AddressProvider__factory.js +1 -1
  201. package/lib/types/factories/Balances.sol/BalanceOps__factory.d.ts +1 -1
  202. package/lib/types/factories/Balances.sol/BalanceOps__factory.js +1 -1
  203. package/lib/types/factories/Claimable__factory.d.ts +1 -1
  204. package/lib/types/factories/Claimable__factory.js +1 -1
  205. package/lib/types/factories/Errors__factory.d.ts +1 -1
  206. package/lib/types/factories/Errors__factory.js +1 -1
  207. package/lib/types/factories/IAaveV2_LendingPoolAdapter__factory.d.ts +158 -0
  208. package/lib/types/factories/IAaveV2_LendingPoolAdapter__factory.js +215 -0
  209. package/lib/types/factories/IAaveV2_WrappedATokenAdapter__factory.d.ts +252 -0
  210. package/lib/types/factories/IAaveV2_WrappedATokenAdapter__factory.js +341 -0
  211. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.d.ts +63 -0
  212. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.js +88 -0
  213. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.d.ts +119 -0
  214. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.js +161 -0
  215. package/lib/types/factories/IAirdropDistributor.sol/index.d.ts +2 -0
  216. package/lib/types/factories/IAirdropDistributor.sol/index.js +10 -0
  217. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2VaultGetters__factory.d.ts +78 -0
  218. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2VaultGetters__factory.js +111 -0
  219. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2Vault__factory.d.ts +360 -0
  220. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2Vault__factory.js +475 -0
  221. package/lib/types/factories/IBalancerV2Vault.sol/index.d.ts +2 -0
  222. package/lib/types/factories/IBalancerV2Vault.sol/index.js +10 -0
  223. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents__factory.d.ts +23 -0
  224. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents__factory.js +38 -0
  225. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions__factory.d.ts +12 -0
  226. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions__factory.js} +4 -4
  227. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter__factory.d.ts +514 -0
  228. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter__factory.js +675 -0
  229. package/lib/types/factories/IBalancerV2VaultAdapter.sol/index.d.ts +3 -0
  230. package/lib/types/factories/IBalancerV2VaultAdapter.sol/index.js +12 -0
  231. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter__factory.d.ts +196 -0
  232. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter__factory.js +267 -0
  233. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions__factory.d.ts +16 -0
  234. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.js → ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions__factory.js} +6 -8
  235. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/index.d.ts +2 -0
  236. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/index.js +10 -0
  237. package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.d.ts +28 -0
  238. package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.js +45 -0
  239. package/lib/types/factories/IContractsRegister.sol/IContractsRegister__factory.d.ts +134 -0
  240. package/lib/types/factories/IContractsRegister.sol/IContractsRegister__factory.js +186 -0
  241. package/lib/types/factories/IContractsRegister.sol/index.d.ts +2 -0
  242. package/lib/types/factories/IContractsRegister.sol/index.js +10 -0
  243. package/lib/types/factories/IConvexToken__factory.d.ts +10 -0
  244. package/lib/types/factories/IConvexToken__factory.js +13 -0
  245. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.d.ts +38 -6
  246. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.js +48 -6
  247. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.d.ts +23 -0
  248. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.js +38 -0
  249. package/lib/types/factories/{IConvexV1BoosterAdapter__factory.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.d.ts} +26 -3
  250. package/lib/types/factories/{IConvexV1BoosterAdapter__factory.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.js} +31 -2
  251. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
  252. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.js +10 -0
  253. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.d.ts +273 -0
  254. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.js +357 -0
  255. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.d.ts +605 -0
  256. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.js +785 -0
  257. package/lib/types/factories/ICreditConfiguratorV3.sol/index.d.ts +2 -0
  258. package/lib/types/factories/ICreditConfiguratorV3.sol/index.js +10 -0
  259. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.d.ts +0 -4
  260. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.js +0 -5
  261. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.d.ts +19 -24
  262. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.js +21 -27
  263. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.d.ts +151 -72
  264. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.js +189 -85
  265. package/lib/types/factories/ICreditFacadeV3Multicall__factory.d.ts +77 -43
  266. package/lib/types/factories/ICreditFacadeV3Multicall__factory.js +96 -54
  267. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.d.ts +339 -147
  268. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.js +427 -180
  269. package/lib/types/factories/ICurveV1Adapter__factory.d.ts +13 -71
  270. package/lib/types/factories/ICurveV1Adapter__factory.js +14 -91
  271. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.d.ts +13 -71
  272. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.js +14 -91
  273. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.d.ts +13 -71
  274. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.js +14 -91
  275. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.d.ts +13 -71
  276. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.js +14 -91
  277. package/lib/types/factories/IDataCompressorV2_10__factory.d.ts +110 -54
  278. package/lib/types/factories/IDataCompressorV2_10__factory.js +138 -68
  279. package/lib/types/factories/IDataCompressorV3_00__factory.d.ts +379 -79
  280. package/lib/types/factories/IDataCompressorV3_00__factory.js +481 -100
  281. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributorEvents__factory.d.ts +38 -0
  282. package/lib/types/factories/{AaveV2_WrappedAToken.sol/IWrappedATokenEvents__factory.js → IDegenDistributor.sol/IDegenDistributorEvents__factory.js} +13 -25
  283. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.d.ts +84 -0
  284. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.js +117 -0
  285. package/lib/types/factories/IDegenDistributor.sol/index.d.ts +2 -0
  286. package/lib/types/factories/IDegenDistributor.sol/index.js +10 -0
  287. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Events__factory.d.ts +38 -0
  288. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Events__factory.js +58 -0
  289. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Exceptions__factory.d.ts +24 -0
  290. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Exceptions__factory.js +39 -0
  291. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.d.ts → IDegenNFTV2.sol/IDegenNFTV2__factory.d.ts} +190 -180
  292. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.js → IDegenNFTV2.sol/IDegenNFTV2__factory.js} +212 -195
  293. package/lib/types/factories/IDegenNFTV2.sol/index.d.ts +3 -0
  294. package/lib/types/factories/IDegenNFTV2.sol/index.js +12 -0
  295. package/lib/types/factories/IERC165__factory.d.ts +22 -0
  296. package/lib/types/factories/IERC165__factory.js +38 -0
  297. package/lib/types/factories/{draft-IERC20Permit.sol/IERC20Permit__factory.d.ts → IERC20Permit__factory.d.ts} +1 -1
  298. package/lib/types/factories/IERC20ZapperDeposits__factory.d.ts +120 -0
  299. package/lib/types/factories/IERC20ZapperDeposits__factory.js +165 -0
  300. package/lib/types/factories/IERC4626Adapter__factory.d.ts +220 -0
  301. package/lib/types/factories/IERC4626Adapter__factory.js +297 -0
  302. package/lib/types/factories/IERC721Metadata__factory.d.ts +262 -0
  303. package/lib/types/factories/IERC721Metadata__factory.js +349 -0
  304. package/lib/types/factories/IERC721__factory.d.ts +228 -0
  305. package/lib/types/factories/IERC721__factory.js +304 -0
  306. package/lib/types/factories/IETHZapperDeposits__factory.d.ts +40 -0
  307. package/lib/types/factories/IETHZapperDeposits__factory.js +62 -0
  308. package/lib/types/factories/IGasPricer__factory.d.ts +22 -0
  309. package/lib/types/factories/IGasPricer__factory.js +38 -0
  310. package/lib/types/factories/IGaugeV3.sol/IGaugeV3Events__factory.d.ts +118 -0
  311. package/lib/types/factories/IGaugeV3.sol/IGaugeV3Events__factory.js +157 -0
  312. package/lib/types/factories/IGaugeV3.sol/IGaugeV3__factory.d.ts +342 -0
  313. package/lib/types/factories/IGaugeV3.sol/IGaugeV3__factory.js +448 -0
  314. package/lib/types/factories/IGaugeV3.sol/index.d.ts +2 -0
  315. package/lib/types/factories/IGaugeV3.sol/index.js +10 -0
  316. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.d.ts → IGearStakingV3.sol/IGearStakingV3Events__factory.d.ts} +33 -63
  317. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.js → IGearStakingV3.sol/IGearStakingV3Events__factory.js} +34 -70
  318. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.d.ts +504 -0
  319. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.js +660 -0
  320. package/lib/types/factories/IGearStakingV3.sol/index.d.ts +2 -0
  321. package/lib/types/factories/IGearStakingV3.sol/index.js +10 -0
  322. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.d.ts → ILidoV1Adapter__factory.d.ts} +7 -37
  323. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.js → ILidoV1Adapter__factory.js} +8 -46
  324. package/lib/types/factories/ILinearInterestRateModelV3__factory.d.ts +98 -0
  325. package/lib/types/factories/ILinearInterestRateModelV3__factory.js +136 -0
  326. package/lib/types/factories/IOffchainOracle__factory.d.ts +48 -0
  327. package/lib/types/factories/IOffchainOracle__factory.js +72 -0
  328. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events__factory.d.ts +103 -0
  329. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events__factory.js +140 -0
  330. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3__factory.d.ts +441 -0
  331. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3__factory.js +580 -0
  332. package/lib/types/factories/IPoolQuotaKeeperV3.sol/index.d.ts +2 -0
  333. package/lib/types/factories/IPoolQuotaKeeperV3.sol/index.js +10 -0
  334. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.d.ts +62 -14
  335. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.js +79 -17
  336. package/lib/types/factories/IPoolV3.sol/index.d.ts +0 -1
  337. package/lib/types/factories/IPoolV3.sol/index.js +1 -3
  338. package/lib/types/factories/{IPoolV3.sol/IPoolBase__factory.d.ts → IPriceFeed.sol/IPriceFeed__factory.d.ts} +39 -35
  339. package/lib/types/factories/{IPoolV3.sol/IPoolBase__factory.js → IPriceFeed.sol/IPriceFeed__factory.js} +40 -35
  340. package/lib/types/factories/IPriceFeed.sol/IUpdatablePriceFeed__factory.d.ts +104 -0
  341. package/lib/types/factories/IPriceFeed.sol/IUpdatablePriceFeed__factory.js +143 -0
  342. package/lib/types/factories/IPriceFeed.sol/index.d.ts +2 -0
  343. package/lib/types/factories/IPriceFeed.sol/index.js +10 -0
  344. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Events__factory.d.ts +23 -0
  345. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Events__factory.js +38 -0
  346. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Exceptions__factory.d.ts +20 -0
  347. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Exceptions__factory.js +34 -0
  348. package/lib/types/factories/{IAToken__factory.d.ts → IPriceOracle.sol/IPriceOracleV2Ext__factory.d.ts} +98 -99
  349. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Ext__factory.js +267 -0
  350. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2__factory.d.ts +183 -0
  351. package/lib/types/factories/{IAToken__factory.js → IPriceOracle.sol/IPriceOracleV2__factory.js} +94 -112
  352. package/lib/types/factories/IPriceOracle.sol/index.d.ts +4 -0
  353. package/lib/types/factories/IPriceOracle.sol/index.js +14 -0
  354. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3Events__factory.d.ts +78 -0
  355. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3Events__factory.js +106 -0
  356. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3__factory.d.ts +326 -0
  357. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3__factory.js +433 -0
  358. package/lib/types/factories/IPriceOracleV3.sol/index.d.ts +2 -0
  359. package/lib/types/factories/IPriceOracleV3.sol/index.js +10 -0
  360. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.d.ts +5 -1
  361. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.js +6 -1
  362. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.d.ts +12 -4
  363. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.js +14 -4
  364. package/lib/types/factories/IVotingContractV3__factory.d.ts +44 -0
  365. package/lib/types/factories/IVotingContractV3__factory.js +65 -0
  366. package/lib/types/factories/IWETHGateway__factory.d.ts +58 -0
  367. package/lib/types/factories/IWETHGateway__factory.js +83 -0
  368. package/lib/types/factories/IYearnV2Adapter__factory.d.ts +21 -13
  369. package/lib/types/factories/IYearnV2Adapter__factory.js +27 -15
  370. package/lib/types/factories/{WERC20ZapperBase__factory.d.ts → IZapper__factory.d.ts} +52 -64
  371. package/lib/types/factories/{WERC20ZapperBase__factory.js → IZapper__factory.js} +58 -74
  372. package/lib/types/factories/{ZapperBase__factory.d.ts → IwstETHGateway.sol/IwstETHGateWay__factory.d.ts} +22 -34
  373. package/lib/types/factories/{ZapperBase__factory.js → IwstETHGateway.sol/IwstETHGateWay__factory.js} +22 -39
  374. package/lib/types/factories/IwstETHGateway.sol/index.d.ts +1 -0
  375. package/lib/types/factories/IwstETHGateway.sol/index.js +8 -0
  376. package/lib/types/factories/IwstETHV1Adapter__factory.d.ts +12 -4
  377. package/lib/types/factories/IwstETHV1Adapter__factory.js +16 -4
  378. package/lib/types/factories/SafeERC20__factory.d.ts +1 -1
  379. package/lib/types/factories/SafeERC20__factory.js +1 -1
  380. package/lib/types/factories/index.d.ts +33 -14
  381. package/lib/types/factories/index.js +51 -26
  382. package/lib/types/factories/{IRouter__factory.d.ts → interfaces/IRouter__factory.d.ts} +75 -6
  383. package/lib/types/factories/{IRouter__factory.js → interfaces/IRouter__factory.js} +96 -6
  384. package/lib/types/factories/interfaces/index.d.ts +1 -0
  385. package/lib/types/factories/interfaces/index.js +8 -0
  386. package/lib/types/index.d.ts +146 -54
  387. package/lib/types/index.js +117 -50
  388. package/lib/types/{IRouter.d.ts → interfaces/IRouter.d.ts} +48 -35
  389. package/lib/types/interfaces/IRouter.js +2 -0
  390. package/lib/types/interfaces/index.d.ts +1 -0
  391. package/lib/types/interfaces/index.js +2 -0
  392. package/lib/utils/formatter.d.ts +0 -3
  393. package/lib/utils/formatter.js +1 -67
  394. package/lib/utils/math.d.ts +2 -0
  395. package/lib/utils/math.js +2 -0
  396. package/lib/utils/types.d.ts +1 -0
  397. package/lib/watchers/creditAccountWatcher.d.ts +3 -2
  398. package/lib/watchers/creditAccountWatcher.js +19 -13
  399. package/lib/watchers/creditAccountWatcher.spec.js +18 -18
  400. package/lib/watchers/creditManagerWatcher.d.ts +5 -3
  401. package/lib/watchers/creditManagerWatcher.js +32 -10
  402. package/lib/watchers/creditManagerWatcher.spec.js +12 -4
  403. package/package.json +10 -9
  404. package/contracts/IRouter.sol +0 -100
  405. package/lib/core/pool/index.d.ts +0 -1
  406. package/lib/core/pool/index.js +0 -17
  407. package/lib/types/AaveV2_WrappedAToken.sol/IWrappedATokenEvents.d.ts +0 -60
  408. package/lib/types/AaveV2_WrappedAToken.sol/WrappedAToken.d.ts +0 -332
  409. package/lib/types/AaveV2_WrappedAToken.sol/index.d.ts +0 -2
  410. package/lib/types/ERC20.d.ts +0 -198
  411. package/lib/types/IAToken.d.ts +0 -182
  412. package/lib/types/ILendingPool.d.ts +0 -140
  413. package/lib/types/ILidoV1Adapter.sol/index.d.ts +0 -3
  414. package/lib/types/IPoolV3.sol/IPoolBase.d.ts +0 -102
  415. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3.d.ts +0 -370
  416. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.d.ts +0 -133
  417. package/lib/types/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  418. package/lib/types/WATokenZapper.d.ts +0 -134
  419. package/lib/types/WERC20ZapperBase.d.ts +0 -134
  420. package/lib/types/WETHZapper.d.ts +0 -122
  421. package/lib/types/WstETHZapper.d.ts +0 -134
  422. package/lib/types/ZapperBase.d.ts +0 -70
  423. package/lib/types/draft-IERC20Permit.sol/index.d.ts +0 -1
  424. package/lib/types/factories/AaveV2_WrappedAToken.sol/IWrappedATokenEvents__factory.d.ts +0 -48
  425. package/lib/types/factories/AaveV2_WrappedAToken.sol/WrappedAToken__factory.d.ts +0 -397
  426. package/lib/types/factories/AaveV2_WrappedAToken.sol/WrappedAToken__factory.js +0 -535
  427. package/lib/types/factories/AaveV2_WrappedAToken.sol/index.d.ts +0 -2
  428. package/lib/types/factories/AaveV2_WrappedAToken.sol/index.js +0 -10
  429. package/lib/types/factories/ERC20__factory.d.ts +0 -239
  430. package/lib/types/factories/ERC20__factory.js +0 -328
  431. package/lib/types/factories/ILendingPool__factory.d.ts +0 -134
  432. package/lib/types/factories/ILendingPool__factory.js +0 -183
  433. package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.d.ts +0 -18
  434. package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.d.ts +0 -12
  435. package/lib/types/factories/ILidoV1Adapter.sol/index.d.ts +0 -3
  436. package/lib/types/factories/ILidoV1Adapter.sol/index.js +0 -12
  437. package/lib/types/factories/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  438. package/lib/types/factories/IWithdrawalManagerV3.sol/index.js +0 -10
  439. package/lib/types/factories/WATokenZapper__factory.d.ts +0 -161
  440. package/lib/types/factories/WATokenZapper__factory.js +0 -227
  441. package/lib/types/factories/WETHZapper__factory.d.ts +0 -138
  442. package/lib/types/factories/WETHZapper__factory.js +0 -198
  443. package/lib/types/factories/WstETHZapper__factory.d.ts +0 -161
  444. package/lib/types/factories/WstETHZapper__factory.js +0 -227
  445. package/lib/types/factories/draft-IERC20Permit.sol/index.d.ts +0 -1
  446. package/lib/types/factories/draft-IERC20Permit.sol/index.js +0 -8
  447. /package/lib/{types/AaveV2_WrappedAToken.sol/IWrappedATokenEvents.js → payload/gauge.js} +0 -0
  448. /package/lib/types/{AaveV2_WrappedAToken.sol/WrappedAToken.js → IAaveV2_LendingPoolAdapter.js} +0 -0
  449. /package/lib/types/{AaveV2_WrappedAToken.sol/index.js → IAaveV2_WrappedATokenAdapter.js} +0 -0
  450. /package/lib/types/{ERC20.js → IAirdropDistributor.sol/IAirdropDistributor.js} +0 -0
  451. /package/lib/types/{IAToken.js → IAirdropDistributor.sol/IAirdropDistributorEvents.js} +0 -0
  452. /package/lib/types/{ILidoV1Adapter.sol → IAirdropDistributor.sol}/index.js +0 -0
  453. /package/lib/types/{IConvexV1BoosterAdapter.js → IBalancerV2Vault.sol/IBalancerV2Vault.js} +0 -0
  454. /package/lib/types/{ILendingPool.js → IBalancerV2Vault.sol/IBalancerV2VaultGetters.js} +0 -0
  455. /package/lib/types/{IWithdrawalManagerV3.sol → IBalancerV2Vault.sol}/index.js +0 -0
  456. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1Adapter.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter.js} +0 -0
  457. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterEvents.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents.js} +0 -0
  458. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions.js} +0 -0
  459. /package/lib/types/{draft-IERC20Permit.sol → IBalancerV2VaultAdapter.sol}/index.js +0 -0
  460. /package/lib/types/{IPoolV3.sol/IPoolBase.js → ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter.js} +0 -0
  461. /package/lib/types/{IRouter.js → ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions.js} +0 -0
  462. /package/lib/types/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3.js → ICompoundV2_CTokenAdapter.sol/index.js} +0 -0
  463. /package/lib/types/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.js → IContractsRegister.sol/IContractsRegister.js} +0 -0
  464. /package/lib/types/{WATokenZapper.js → IContractsRegister.sol/IContractsRegisterEvents.js} +0 -0
  465. /package/lib/types/{WERC20ZapperBase.js → IContractsRegister.sol/index.js} +0 -0
  466. /package/lib/types/{WETHZapper.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.js} +0 -0
  467. /package/lib/types/{WstETHZapper.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.js} +0 -0
  468. /package/lib/types/{ZapperBase.js → IConvexV1BoosterAdapter.sol/index.js} +0 -0
  469. /package/lib/types/{draft-IERC20Permit.sol/IERC20Permit.js → ICreditConfiguratorV3.sol/ICreditConfiguratorV3.js} +0 -0
  470. /package/lib/types/factories/{draft-IERC20Permit.sol/IERC20Permit__factory.js → IERC20Permit__factory.js} +0 -0
@@ -1,8 +1,11 @@
1
+ import { MultiCall } from "../pathfinder/core";
1
2
  import { ChartsCreditManagerPayload, CreditManagerDataPayload, QuotaInfo } from "../payload/creditManager";
2
3
  import { LinearModel } from "../payload/pool";
3
- import { MultiCallStruct } from "../types/IRouter";
4
+ import { Asset } from "./assets";
5
+ import { PoolType } from "./pool";
4
6
  export declare class CreditManagerData {
5
7
  readonly address: string;
8
+ readonly type: PoolType;
6
9
  readonly underlyingToken: string;
7
10
  readonly pool: string;
8
11
  readonly creditFacade: string;
@@ -13,7 +16,8 @@ export declare class CreditManagerData {
13
16
  readonly isPaused: boolean;
14
17
  readonly forbiddenTokenMask: bigint;
15
18
  readonly maxEnabledTokensLength: number;
16
- readonly borrowRate: number;
19
+ readonly name: string;
20
+ readonly baseBorrowRate: number;
17
21
  readonly minDebt: bigint;
18
22
  readonly maxDebt: bigint;
19
23
  readonly availableToBorrow: bigint;
@@ -28,16 +32,26 @@ export declare class CreditManagerData {
28
32
  readonly supportedTokens: Record<string, true>;
29
33
  readonly adapters: Record<string, string>;
30
34
  readonly liquidationThresholds: Record<string, bigint>;
31
- readonly quotas: Array<QuotaInfo>;
35
+ readonly quotas: Record<string, QuotaInfo>;
32
36
  readonly interestModel: LinearModel;
33
37
  constructor(payload: CreditManagerDataPayload);
34
- encodeAddCollateral(accountAddress: string, tokenAddress: string, amount: bigint): MultiCallStruct;
35
- encodeIncreaseDebt(amount: bigint): MultiCallStruct;
36
- encodeDecreaseDebt(amount: bigint): MultiCallStruct;
37
- encodeEnableToken(token: string): MultiCallStruct;
38
- encodeDisableToken(token: string): MultiCallStruct;
39
- static withdrawAllAndUnwrap_Convex(address: string, claim: boolean): MultiCallStruct;
40
38
  get id(): string;
39
+ isQuoted(token: string): boolean;
40
+ encodeAddCollateralV2(tokenAddress: string, amount: bigint): MultiCall;
41
+ encodeAddCollateralV3(tokenAddress: string, amount: bigint): MultiCall;
42
+ encodeAddCollateralWithPermitV3(tokenAddress: string, amount: bigint, deadline: bigint, v: bigint | number, r: string, s: string): MultiCall;
43
+ encodeIncreaseDebtV2(amount: bigint): MultiCall;
44
+ encodeIncreaseDebtV3(amount: bigint): MultiCall;
45
+ encodeDecreaseDebtV2(amount: bigint): MultiCall;
46
+ encodeDecreaseDebtV3(amount: bigint): MultiCall;
47
+ encodeEnableTokenV2(token: string): MultiCall;
48
+ encodeEnableTokenV3(token: string): MultiCall;
49
+ encodeDisableTokenV2(token: string): MultiCall;
50
+ encodeDisableTokenV3(token: string): MultiCall;
51
+ encodeRevertIfReceivedLessThanV2(assets: Array<Asset>): MultiCall;
52
+ encodeUpdateQuotaV3(token: string, quotaChange: bigint, minQuota: bigint): MultiCall;
53
+ encodeWithdrawCollateralV3(token: string, amount: bigint, to: string): MultiCall;
54
+ static withdrawAllAndUnwrap_Convex(address: string, claim: boolean): MultiCall;
41
55
  }
42
56
  export declare class ChartsCreditManagerData {
43
57
  readonly id: string;
@@ -4,8 +4,10 @@ exports.ChartsCreditManagerData = exports.CreditManagerData = void 0;
4
4
  const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
5
5
  const txParser_1 = require("../parsers/txParser");
6
6
  const types_1 = require("../types");
7
+ const pool_1 = require("./pool");
7
8
  class CreditManagerData {
8
9
  address;
10
+ type;
9
11
  underlyingToken;
10
12
  pool;
11
13
  creditFacade; // V2 only: address of creditFacade
@@ -16,7 +18,8 @@ class CreditManagerData {
16
18
  isPaused;
17
19
  forbiddenTokenMask; // V2 only: mask which forbids some particular tokens
18
20
  maxEnabledTokensLength;
19
- borrowRate;
21
+ name;
22
+ baseBorrowRate;
20
23
  minDebt;
21
24
  maxDebt;
22
25
  availableToBorrow;
@@ -36,6 +39,8 @@ class CreditManagerData {
36
39
  constructor(payload) {
37
40
  this.address = payload.addr.toLowerCase();
38
41
  this.underlyingToken = payload.underlying.toLowerCase();
42
+ this.type = pool_1.PoolData.getPoolType(payload.name || "");
43
+ this.name = payload.name;
39
44
  this.pool = payload.pool.toLowerCase();
40
45
  this.creditFacade = payload.creditFacade.toLowerCase();
41
46
  this.creditConfigurator = payload.creditConfigurator.toLowerCase();
@@ -45,7 +50,7 @@ class CreditManagerData {
45
50
  this.isPaused = payload.isPaused;
46
51
  this.forbiddenTokenMask = (0, sdk_gov_1.toBigInt)(payload.forbiddenTokenMask);
47
52
  this.maxEnabledTokensLength = payload.maxEnabledTokensLength;
48
- this.borrowRate = Number(((0, sdk_gov_1.toBigInt)(payload.baseBorrowRate) *
53
+ this.baseBorrowRate = Number(((0, sdk_gov_1.toBigInt)(payload.baseBorrowRate) *
49
54
  ((0, sdk_gov_1.toBigInt)(payload.feeInterest) + sdk_gov_1.PERCENTAGE_FACTOR) *
50
55
  sdk_gov_1.PERCENTAGE_DECIMALS) /
51
56
  sdk_gov_1.RAY);
@@ -74,14 +79,17 @@ class CreditManagerData {
74
79
  acc[address.toLowerCase()] = (0, sdk_gov_1.toBigInt)(threshold);
75
80
  return acc;
76
81
  }, {});
77
- this.quotas = payload.quotas.map(q => ({
78
- token: q.token.toLowerCase(),
79
- rate: q.rate,
80
- quotaIncreaseFee: q.quotaIncreaseFee,
81
- totalQuoted: (0, sdk_gov_1.toBigInt)(q.totalQuoted),
82
- limit: (0, sdk_gov_1.toBigInt)(q.limit),
83
- isActive: q.isActive,
84
- }));
82
+ this.quotas = Object.fromEntries(payload.quotas.map(q => [
83
+ q.token.toLowerCase(),
84
+ {
85
+ token: q.token.toLowerCase(),
86
+ rate: Number((0, sdk_gov_1.toBigInt)(q.rate) * sdk_gov_1.PERCENTAGE_DECIMALS),
87
+ quotaIncreaseFee: q.quotaIncreaseFee,
88
+ totalQuoted: (0, sdk_gov_1.toBigInt)(q.totalQuoted),
89
+ limit: (0, sdk_gov_1.toBigInt)(q.limit),
90
+ isActive: q.isActive,
91
+ },
92
+ ]));
85
93
  this.interestModel = {
86
94
  interestModel: payload.lirm.interestModel.toLowerCase(),
87
95
  U_1: payload.lirm.U_1,
@@ -91,65 +99,123 @@ class CreditManagerData {
91
99
  R_slope2: payload.lirm.R_slope2,
92
100
  R_slope3: payload.lirm.R_slope3,
93
101
  version: payload?.lirm?.version?.toNumber(),
102
+ isBorrowingMoreU2Forbidden: payload?.lirm?.isBorrowingMoreU2Forbidden,
94
103
  };
95
104
  txParser_1.TxParser.addCreditManager(this.address, this.version);
96
105
  if (this.creditFacade !== "" && this.creditFacade !== sdk_gov_1.ADDRESS_0X0) {
97
- txParser_1.TxParser.addCreditFacade(this.creditFacade, sdk_gov_1.tokenSymbolByAddress[this.underlyingToken]);
106
+ txParser_1.TxParser.addCreditFacade(this.creditFacade, sdk_gov_1.tokenSymbolByAddress[this.underlyingToken], this.version);
98
107
  txParser_1.TxParser.addAdapters(payload.adapters.map(a => ({
99
108
  adapter: a.adapter,
100
109
  contract: a.targetContract,
101
110
  })));
102
111
  }
103
112
  }
104
- encodeAddCollateral(accountAddress, tokenAddress, amount) {
105
- if (this.version === 1)
106
- throw new Error("Multicall is eligible only for version 2");
113
+ get id() {
114
+ return this.address;
115
+ }
116
+ isQuoted(token) {
117
+ return !!this.quotas[token];
118
+ }
119
+ encodeAddCollateralV2(tokenAddress, amount) {
107
120
  return {
108
121
  target: this.creditFacade,
109
- callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("addCollateral", [accountAddress, tokenAddress, amount]),
122
+ callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("addCollateral", [tokenAddress, amount]),
110
123
  };
111
124
  }
112
- encodeIncreaseDebt(amount) {
113
- if (this.version === 1)
114
- throw new Error("Multicall is eligible only for version 2");
125
+ encodeAddCollateralV3(tokenAddress, amount) {
126
+ return {
127
+ target: this.creditFacade,
128
+ callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("addCollateral", [tokenAddress, amount]),
129
+ };
130
+ }
131
+ encodeAddCollateralWithPermitV3(tokenAddress, amount, deadline, v, r, s) {
132
+ return {
133
+ target: this.creditFacade,
134
+ callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("addCollateralWithPermit", [tokenAddress, amount, deadline, v, r, s]),
135
+ };
136
+ }
137
+ encodeIncreaseDebtV2(amount) {
115
138
  return {
116
139
  target: this.creditFacade,
117
140
  callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("increaseDebt", [amount]),
118
141
  };
119
142
  }
120
- encodeDecreaseDebt(amount) {
121
- if (this.version === 1)
122
- throw new Error("Multicall is eligible only for version 2");
143
+ encodeIncreaseDebtV3(amount) {
144
+ return {
145
+ target: this.creditFacade,
146
+ callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("increaseDebt", [amount]),
147
+ };
148
+ }
149
+ encodeDecreaseDebtV2(amount) {
123
150
  return {
124
151
  target: this.creditFacade,
125
152
  callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("decreaseDebt", [amount]),
126
153
  };
127
154
  }
128
- encodeEnableToken(token) {
129
- if (this.version === 1)
130
- throw new Error("Multicall is eligible only for version 2");
155
+ encodeDecreaseDebtV3(amount) {
156
+ return {
157
+ target: this.creditFacade,
158
+ callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("decreaseDebt", [amount]),
159
+ };
160
+ }
161
+ encodeEnableTokenV2(token) {
131
162
  return {
132
163
  target: this.creditFacade,
133
164
  callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("enableToken", [token]),
134
165
  };
135
166
  }
136
- encodeDisableToken(token) {
137
- if (this.version === 1)
138
- throw new Error("Multicall is eligible only for version 2");
167
+ encodeEnableTokenV3(token) {
168
+ return {
169
+ target: this.creditFacade,
170
+ callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("enableToken", [token]),
171
+ };
172
+ }
173
+ encodeDisableTokenV2(token) {
139
174
  return {
140
175
  target: this.creditFacade,
141
176
  callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("disableToken", [token]),
142
177
  };
143
178
  }
179
+ encodeDisableTokenV3(token) {
180
+ return {
181
+ target: this.creditFacade,
182
+ callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("disableToken", [token]),
183
+ };
184
+ }
185
+ encodeRevertIfReceivedLessThanV2(assets) {
186
+ return {
187
+ target: this.creditFacade,
188
+ callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("revertIfReceivedLessThan", [assets]),
189
+ };
190
+ }
191
+ // encodeRevertIfReceivedLessThanV3(assets: Array<Asset>): MultiCall {
192
+ // return {
193
+ // target: this.creditFacade,
194
+ // callData:
195
+ // ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData(
196
+ // "revertIfReceivedLessThan",
197
+ // [assets.map(a => ({ token: a.token, amount: a.balance }))],
198
+ // ),
199
+ // };
200
+ // }
201
+ encodeUpdateQuotaV3(token, quotaChange, minQuota) {
202
+ return {
203
+ target: this.creditFacade,
204
+ callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("updateQuota", [token, quotaChange, minQuota]),
205
+ };
206
+ }
207
+ encodeWithdrawCollateralV3(token, amount, to) {
208
+ return {
209
+ target: this.creditFacade,
210
+ callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("withdrawCollateral", [token, amount, to]),
211
+ };
212
+ }
144
213
  static withdrawAllAndUnwrap_Convex(address, claim) {
145
214
  return {
146
215
  target: address,
147
- callData: types_1.IConvexV1BaseRewardPoolAdapter__factory.createInterface().encodeFunctionData("withdrawAllAndUnwrap", [claim]),
216
+ callData: types_1.IConvexV1BaseRewardPoolAdapter__factory.createInterface().encodeFunctionData("withdrawDiffAndUnwrap", [1, claim]),
148
217
  };
149
218
  }
150
- get id() {
151
- return this.address;
152
- }
153
219
  }
154
220
  exports.CreditManagerData = CreditManagerData;
155
221
  class ChartsCreditManagerData {
@@ -124,7 +124,7 @@ class EventAddLiquidity extends eventOrTx_1.EVMEvent {
124
124
  }
125
125
  toString() {
126
126
  const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
127
- return `Pool ${(0, contractsRegister_1.getContractName)(this.pool)}: Deposit ${(0, formatter_1.formatBN)(this.amount, decimals)} ${symbol}`;
127
+ return `Pool ${(0, contractsRegister_1.getContractName)(this.pool)}: Deposit ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol}`;
128
128
  }
129
129
  }
130
130
  exports.EventAddLiquidity = EventAddLiquidity;
@@ -142,7 +142,7 @@ class EventRemoveLiquidity extends eventOrTx_1.EVMEvent {
142
142
  }
143
143
  toString() {
144
144
  const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.dieselToken);
145
- return `Pool ${(0, contractsRegister_1.getContractName)(this.pool)}: withdraw ${(0, formatter_1.formatBN)(this.amount, decimals)} ${symbol}`;
145
+ return `Pool ${(0, contractsRegister_1.getContractName)(this.pool)}: withdraw ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol}`;
146
146
  }
147
147
  }
148
148
  exports.EventRemoveLiquidity = EventRemoveLiquidity;
@@ -158,7 +158,7 @@ class EventOpenCreditAccount extends eventOrTx_1.EVMEvent {
158
158
  }
159
159
  toString() {
160
160
  const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
161
- return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: opened with debt ${(0, formatter_1.formatBN)(this.amount, decimals)} ${symbol}`;
161
+ return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: opened with debt ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol}`;
162
162
  }
163
163
  }
164
164
  exports.EventOpenCreditAccount = EventOpenCreditAccount;
@@ -187,7 +187,7 @@ class EventLiquidateCreditAccount extends eventOrTx_1.EVMEvent {
187
187
  }
188
188
  toString() {
189
189
  const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
190
- return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: was liquidated. ${(0, formatter_1.formatBN)(this.amount, decimals)} ${symbol} were paid back as remaining funds`;
190
+ return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: was liquidated. ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol} were paid back as remaining funds`;
191
191
  }
192
192
  }
193
193
  exports.EventLiquidateCreditAccount = EventLiquidateCreditAccount;
@@ -216,7 +216,7 @@ class EventAddCollateral extends eventOrTx_1.EVMEvent {
216
216
  }
217
217
  toString() {
218
218
  const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.addedToken);
219
- return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: added ${(0, formatter_1.formatBN)(this.amount, decimals)} ${symbol} as collateral`;
219
+ return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: added ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol} as collateral`;
220
220
  }
221
221
  }
222
222
  exports.EventAddCollateral = EventAddCollateral;
@@ -232,7 +232,7 @@ class EventIncreaseBorrowAmount extends eventOrTx_1.EVMEvent {
232
232
  }
233
233
  toString() {
234
234
  const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
235
- return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: borrowed amount was increased for ${(0, formatter_1.formatBN)(this.amount, decimals)} ${symbol}`;
235
+ return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: borrowed amount was increased for ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol}`;
236
236
  }
237
237
  }
238
238
  exports.EventIncreaseBorrowAmount = EventIncreaseBorrowAmount;
@@ -248,7 +248,7 @@ class EventDecreaseBorrowAmount extends eventOrTx_1.EVMEvent {
248
248
  }
249
249
  toString() {
250
250
  const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
251
- return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: borrowed amount was decreased for ${(0, formatter_1.formatBN)(this.amount, decimals)} ${symbol}`;
251
+ return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: borrowed amount was decreased for ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol}`;
252
252
  }
253
253
  }
254
254
  exports.EventDecreaseBorrowAmount = EventDecreaseBorrowAmount;
@@ -288,10 +288,10 @@ class EventCMNewParameters extends eventOrTx_1.EVMEvent {
288
288
  const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
289
289
  let msg = `Credit manager ${(0, contractsRegister_1.getContractName)(this.creditManager)} updated: `;
290
290
  if (this.minAmount !== this.prevMinAmount) {
291
- msg += `min amount: ${(0, formatter_1.formatBN)(this.prevMinAmount, decimals)} => ${(0, formatter_1.formatBN)(this.minAmount, decimals)} ${symbol}, `;
291
+ msg += `min amount: ${(0, sdk_gov_1.formatBN)(this.prevMinAmount, decimals)} => ${(0, sdk_gov_1.formatBN)(this.minAmount, decimals)} ${symbol}, `;
292
292
  }
293
293
  if (this.maxAmount !== this.prevMaxAmount) {
294
- msg += `max amount: ${(0, formatter_1.formatBN)(this.prevMaxAmount, decimals)} => ${(0, formatter_1.formatBN)(this.maxAmount, decimals)} ${symbol}, `;
294
+ msg += `max amount: ${(0, sdk_gov_1.formatBN)(this.prevMaxAmount, decimals)} => ${(0, sdk_gov_1.formatBN)(this.maxAmount, decimals)} ${symbol}, `;
295
295
  }
296
296
  if (this.maxLeverage !== this.prevMaxLeverage) {
297
297
  msg += `max leverage: ${this.prevMaxLeverage / Number(sdk_gov_1.LEVERAGE_DECIMALS) + 1} => ${this.maxLeverage / Number(sdk_gov_1.LEVERAGE_DECIMALS) + 1}, `;
@@ -501,8 +501,8 @@ class EventNewExpectedLiquidityLimit extends eventOrTx_1.EVMEvent {
501
501
  toString() {
502
502
  const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
503
503
  return this.prevLimit === 0n
504
- ? `Pool ${(0, contractsRegister_1.getContractName)(this.pool)} updated: expected liquidity limit was set to ${(0, formatter_1.formatBN)(this.newLimit, decimals)} ${symbol}`
505
- : `Pool ${(0, contractsRegister_1.getContractName)(this.pool)} updated: expected liquidity limit was ${this.newLimit > this.prevLimit ? "increased" : "decreased"}: ${(0, formatter_1.formatBN)(this.prevLimit, decimals)} ${symbol} => ${(0, formatter_1.formatBN)(this.newLimit, decimals)} ${symbol}`;
504
+ ? `Pool ${(0, contractsRegister_1.getContractName)(this.pool)} updated: expected liquidity limit was set to ${(0, sdk_gov_1.formatBN)(this.newLimit, decimals)} ${symbol}`
505
+ : `Pool ${(0, contractsRegister_1.getContractName)(this.pool)} updated: expected liquidity limit was ${this.newLimit > this.prevLimit ? "increased" : "decreased"}: ${(0, sdk_gov_1.formatBN)(this.prevLimit, decimals)} ${symbol} => ${(0, sdk_gov_1.formatBN)(this.newLimit, decimals)} ${symbol}`;
506
506
  }
507
507
  }
508
508
  exports.EventNewExpectedLiquidityLimit = EventNewExpectedLiquidityLimit;
@@ -680,10 +680,10 @@ class EventLimitsUpdated extends eventOrTx_1.EVMEvent {
680
680
  const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
681
681
  let msg = `Credit manager ${(0, contractsRegister_1.getContractName)(this.creditManager)} updated: `;
682
682
  if (this.minBorrowedAmount !== this.prevMinBorrowedAmount) {
683
- msg += `min amount: ${(0, formatter_1.formatBN)(this.prevMinBorrowedAmount, decimals)} => ${(0, formatter_1.formatBN)(this.minBorrowedAmount, decimals)} ${symbol}, `;
683
+ msg += `min amount: ${(0, sdk_gov_1.formatBN)(this.prevMinBorrowedAmount, decimals)} => ${(0, sdk_gov_1.formatBN)(this.minBorrowedAmount, decimals)} ${symbol}, `;
684
684
  }
685
685
  if (this.maxBorrowedAmount !== this.prevMaxBorrowedAmount) {
686
- msg += `max amount: ${(0, formatter_1.formatBN)(this.prevMaxBorrowedAmount, decimals)} => ${(0, formatter_1.formatBN)(this.maxBorrowedAmount, decimals)} ${symbol}, `;
686
+ msg += `max amount: ${(0, sdk_gov_1.formatBN)(this.prevMaxBorrowedAmount, decimals)} => ${(0, sdk_gov_1.formatBN)(this.maxBorrowedAmount, decimals)} ${symbol}, `;
687
687
  }
688
688
  return msg.slice(0, msg.length - 2);
689
689
  }
@@ -838,7 +838,7 @@ class EventLimitPerBlockUpdated extends eventOrTx_1.EVMEvent {
838
838
  }
839
839
  toString() {
840
840
  const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.token);
841
- return `Credit manager ${(0, contractsRegister_1.getContractName)(this.creditManager)}: Limit Per Block Updated ${(0, formatter_1.formatBN)(this.prevLimit, decimals)} => ${(0, formatter_1.formatBN)(this.limit, decimals)} ${symbol}`;
841
+ return `Credit manager ${(0, contractsRegister_1.getContractName)(this.creditManager)}: Limit Per Block Updated ${(0, sdk_gov_1.formatBN)(this.prevLimit, decimals)} => ${(0, sdk_gov_1.formatBN)(this.limit, decimals)} ${symbol}`;
842
842
  }
843
843
  }
844
844
  exports.EventLimitPerBlockUpdated = EventLimitPerBlockUpdated;
@@ -0,0 +1,26 @@
1
+ import { GaugeDataPayload, GaugeQuotaParams, GaugeStakingDataPayload } from "../payload/gauge";
2
+ export declare class GaugeData {
3
+ readonly address: string;
4
+ readonly pool: string;
5
+ readonly poolUnderlying: string;
6
+ readonly name: string;
7
+ readonly symbol: string;
8
+ readonly currentEpoch: number;
9
+ readonly epochFrozen: boolean;
10
+ readonly quotaParams: Record<string, GaugeQuotaParams>;
11
+ constructor(payload: GaugeDataPayload);
12
+ }
13
+ interface WithDrawableGaugeItem {
14
+ amount: bigint;
15
+ epochsLeft: number;
16
+ }
17
+ export declare class GaugeStakingData {
18
+ readonly availableBalance: bigint;
19
+ readonly totalBalance: bigint;
20
+ readonly epoch: number;
21
+ readonly withdrawableNow: bigint;
22
+ readonly withdrawableInEpochsTotal: bigint;
23
+ readonly withdrawableInEpochs: Array<WithDrawableGaugeItem>;
24
+ constructor(payload: GaugeStakingDataPayload);
25
+ }
26
+ export {};
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GaugeStakingData = exports.GaugeData = void 0;
4
+ const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
5
+ class GaugeData {
6
+ address;
7
+ pool;
8
+ poolUnderlying;
9
+ name;
10
+ symbol;
11
+ currentEpoch;
12
+ epochFrozen;
13
+ quotaParams;
14
+ constructor(payload) {
15
+ this.address = payload.addr.toLowerCase();
16
+ this.pool = payload.pool.toLowerCase();
17
+ this.poolUnderlying = payload.underlying.toLowerCase();
18
+ this.name = payload.name;
19
+ this.symbol = payload.symbol;
20
+ this.currentEpoch = payload.currentEpoch;
21
+ this.epochFrozen = payload.epochFrozen;
22
+ this.quotaParams = Object.fromEntries(payload.quotaParams.map((q) => [
23
+ q.token.toLowerCase(),
24
+ {
25
+ token: q.token.toLowerCase(),
26
+ isActive: q.isActive,
27
+ rate: Number((0, sdk_gov_1.toBigInt)(q.rate) * sdk_gov_1.PERCENTAGE_DECIMALS),
28
+ minRate: Number((0, sdk_gov_1.toBigInt)(q.minRate) * sdk_gov_1.PERCENTAGE_DECIMALS),
29
+ maxRate: Number((0, sdk_gov_1.toBigInt)(q.maxRate) * sdk_gov_1.PERCENTAGE_DECIMALS),
30
+ quotaIncreaseFee: q.quotaIncreaseFee,
31
+ totalQuoted: (0, sdk_gov_1.toBigInt)(q.totalQuoted),
32
+ limit: (0, sdk_gov_1.toBigInt)(q.limit),
33
+ totalVotesLpSide: (0, sdk_gov_1.toBigInt)(q.totalVotesLpSide),
34
+ totalVotesCaSide: (0, sdk_gov_1.toBigInt)(q.totalVotesCaSide),
35
+ stakerVotesLpSide: (0, sdk_gov_1.toBigInt)(q.stakerVotesLpSide),
36
+ stakerVotesCaSide: (0, sdk_gov_1.toBigInt)(q.stakerVotesCaSide),
37
+ },
38
+ ]));
39
+ }
40
+ }
41
+ exports.GaugeData = GaugeData;
42
+ class GaugeStakingData {
43
+ availableBalance;
44
+ totalBalance;
45
+ epoch;
46
+ withdrawableNow;
47
+ withdrawableInEpochsTotal;
48
+ withdrawableInEpochs;
49
+ constructor(payload) {
50
+ this.availableBalance = (0, sdk_gov_1.toBigInt)(payload.availableBalance);
51
+ this.totalBalance = (0, sdk_gov_1.toBigInt)(payload.totalBalance);
52
+ this.epoch = payload.epoch;
53
+ this.withdrawableNow = (0, sdk_gov_1.toBigInt)(payload.withdrawableAmounts.withdrawableNow);
54
+ const { total, list } = payload.withdrawableAmounts.withdrawableInEpochs.reduce(({ total, list }, a, i) => {
55
+ const bn = (0, sdk_gov_1.toBigInt)(a);
56
+ list.push({ amount: bn, epochsLeft: i + 1 });
57
+ return { total: total + bn, list };
58
+ }, { total: 0n, list: [] });
59
+ this.withdrawableInEpochsTotal = total;
60
+ this.withdrawableInEpochs = list;
61
+ }
62
+ }
63
+ exports.GaugeStakingData = GaugeStakingData;
@@ -0,0 +1,40 @@
1
+ import { GaugeQuotaParams } from "../payload/gauge";
2
+ export type BaseVoteType = "raise" | "lower";
3
+ export type VoteType = BaseVoteType | "remove";
4
+ export interface BaseVote {
5
+ amount: bigint;
6
+ type: BaseVoteType;
7
+ }
8
+ export interface Vote {
9
+ amount: bigint;
10
+ type: VoteType;
11
+ }
12
+ export interface SingleVoteState {
13
+ available: bigint;
14
+ vote?: BaseVote;
15
+ voteCalls: Array<Vote>;
16
+ }
17
+ export interface VoteProps {
18
+ state: Omit<SingleVoteState, "voteCalls">;
19
+ change?: Vote;
20
+ }
21
+ interface UnvoteProps {
22
+ initialVote?: BaseVote;
23
+ balanceAfter: bigint;
24
+ nextVoteType: BaseVoteType;
25
+ voteAfter?: Omit<SingleVoteState, "available">;
26
+ }
27
+ export interface GetGaugeApyProps {
28
+ quota: Pick<GaugeQuotaParams, "totalVotesCaSide" | "totalVotesLpSide" | "stakerVotesCaSide" | "stakerVotesLpSide" | "minRate" | "maxRate"> | undefined;
29
+ vote?: BaseVote;
30
+ voteAfter?: Omit<SingleVoteState, "available">;
31
+ }
32
+ export declare class GaugeMath {
33
+ static vote({ change, ...rest }: VoteProps): SingleVoteState | undefined;
34
+ private static addVotes;
35
+ private static removeVotes;
36
+ static revertVote({ balanceAfter, initialVote, nextVoteType, voteAfter, }: UnvoteProps): bigint | undefined;
37
+ static getBaseVote: (v: GaugeQuotaParams) => BaseVote | undefined;
38
+ static getGaugeApy({ quota, voteAfter, vote }: GetGaugeApyProps): number | null;
39
+ }
40
+ export {};
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GaugeMath = void 0;
4
+ const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
5
+ const math_1 = require("../utils/math");
6
+ class GaugeMath {
7
+ static vote({ change, ...rest }) {
8
+ if (change?.type === "remove") {
9
+ return this.removeVotes({ ...rest, change });
10
+ }
11
+ if (change) {
12
+ return this.addVotes({
13
+ ...rest,
14
+ change: { ...change, type: change.type },
15
+ });
16
+ }
17
+ return { ...rest.state, voteCalls: [] };
18
+ }
19
+ static addVotes({ state, change }) {
20
+ const { available, vote } = state;
21
+ if (!vote) {
22
+ return {
23
+ available: available - change.amount,
24
+ vote: change,
25
+ voteCalls: [change],
26
+ };
27
+ }
28
+ if (vote.type === change.type) {
29
+ return {
30
+ available: available - change.amount,
31
+ vote: { ...change, amount: vote.amount + change.amount },
32
+ voteCalls: [change],
33
+ };
34
+ }
35
+ const remove = { type: "remove", amount: vote.amount };
36
+ return {
37
+ available: available + vote.amount - change.amount,
38
+ vote: { ...change, amount: change.amount },
39
+ voteCalls: [remove, change],
40
+ };
41
+ }
42
+ static removeVotes({ state, change }) {
43
+ const { available, vote } = state;
44
+ if (!vote)
45
+ return { ...state, voteCalls: [] };
46
+ const safeChange = math_1.BigIntMath.min(vote.amount, change.amount);
47
+ const afterVote = vote.amount - safeChange;
48
+ return {
49
+ available: available + safeChange,
50
+ vote: { ...vote, amount: afterVote },
51
+ voteCalls: [{ ...change, amount: safeChange }],
52
+ };
53
+ }
54
+ static revertVote({ balanceAfter, initialVote, nextVoteType, voteAfter, }) {
55
+ // on vote type change unvote previous vote
56
+ const prevUnvoted = !initialVote || initialVote.type === nextVoteType
57
+ ? balanceAfter
58
+ : balanceAfter + initialVote.amount;
59
+ if (!voteAfter)
60
+ return prevUnvoted;
61
+ // change call is always last, remove is always first
62
+ const [first, last = first] = voteAfter.voteCalls;
63
+ const removePart = first?.type === "remove" ? first?.amount || 0n : 0n;
64
+ const addPart = last?.type !== "remove" ? last?.amount || 0n : 0n;
65
+ // revert current changes
66
+ return prevUnvoted + addPart - removePart;
67
+ }
68
+ static getBaseVote = (v) => {
69
+ const voteDown = v.stakerVotesCaSide;
70
+ const voteUp = v.stakerVotesLpSide;
71
+ if (!voteDown && !voteUp)
72
+ return undefined;
73
+ if (voteDown > 0) {
74
+ return { type: "lower", amount: voteDown };
75
+ }
76
+ if (voteUp > 0) {
77
+ return { type: "raise", amount: voteUp };
78
+ }
79
+ return undefined;
80
+ };
81
+ // rate = (minRate *(votesFormin + yourvotesformin) +maxRate*(votesFormax +yourvotesformax)/( votesForMin + votesForMax+yourvotes)
82
+ static getGaugeApy({ quota, voteAfter, vote }) {
83
+ if (!quota)
84
+ return null;
85
+ const first = voteAfter?.voteCalls?.[0];
86
+ const last = voteAfter?.voteCalls?.[1] || first;
87
+ const isRemove = first?.type === "remove";
88
+ const removeCaPart = isRemove && vote?.type === "lower" ? first?.amount || 0n : 0n;
89
+ const removeLpPart = isRemove && vote?.type === "raise" ? first?.amount || 0n : 0n;
90
+ const caPart = last?.type === "lower" ? last?.amount || 0n : 0n;
91
+ const lpPart = last?.type === "raise" ? last?.amount || 0n : 0n;
92
+ const caImpact = (0, sdk_gov_1.toBigInt)(quota.minRate) *
93
+ (quota.totalVotesCaSide + caPart - removeCaPart);
94
+ const lpImpact = (0, sdk_gov_1.toBigInt)(quota.maxRate) *
95
+ (quota.totalVotesLpSide + lpPart - removeLpPart);
96
+ const total = quota.totalVotesCaSide +
97
+ quota.totalVotesLpSide +
98
+ caPart +
99
+ lpPart -
100
+ removeCaPart -
101
+ removeLpPart;
102
+ if (total === 0n)
103
+ return quota.minRate;
104
+ const r = (caImpact + lpImpact) / total;
105
+ return Number(r);
106
+ }
107
+ }
108
+ exports.GaugeMath = GaugeMath;
@@ -0,0 +1 @@
1
+ export {};