@gearbox-protocol/sdk 3.0.0-next.5 → 3.0.0-next.51

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 (269) 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 +10 -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 +31 -6
  15. package/lib/core/creditAccount.js +101 -37
  16. package/lib/core/creditAccount.spec.js +693 -10
  17. package/lib/core/creditManager.d.ts +22 -8
  18. package/lib/core/creditManager.js +86 -30
  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/strategy.js +2 -2
  29. package/lib/core/trade.d.ts +5 -23
  30. package/lib/core/trade.js +4 -61
  31. package/lib/core/transactions.d.ts +50 -3
  32. package/lib/core/transactions.js +136 -105
  33. package/lib/index.d.ts +3 -0
  34. package/lib/index.js +3 -0
  35. package/lib/parsers/abstractParser.js +1 -2
  36. package/lib/parsers/creditFacadeParser.d.ts +2 -1
  37. package/lib/parsers/creditFacadeParser.js +17 -5
  38. package/lib/parsers/creditFacadeParser.spec.js +2 -3
  39. package/lib/parsers/curveAdapterParser.js +2 -3
  40. package/lib/parsers/txParser.d.ts +4 -4
  41. package/lib/parsers/txParser.js +9 -3
  42. package/lib/parsers/uniV2AdapterParser.js +2 -2
  43. package/lib/parsers/uniV3AdapterParser.js +3 -3
  44. package/lib/pathfinder/core.d.ts +4 -4
  45. package/lib/pathfinder/pathOptions.d.ts +2 -1
  46. package/lib/pathfinder/pathOptions.js +20 -1
  47. package/lib/pathfinder/pathOptions.spec.js +2 -2
  48. package/lib/pathfinder/pathfinder.js +4 -3
  49. package/lib/pathfinder/pathfinder.spec.js +3 -1
  50. package/lib/payload/creditAccount.d.ts +2 -2
  51. package/lib/payload/gauge.d.ts +12 -0
  52. package/lib/payload/pool.d.ts +6 -1
  53. package/lib/types/IAirdropDistributor.sol/IAirdropDistributor.d.ts +124 -0
  54. package/lib/types/IAirdropDistributor.sol/IAirdropDistributorEvents.d.ts +73 -0
  55. package/lib/types/IAirdropDistributor.sol/index.d.ts +2 -0
  56. package/lib/types/IContractsRegister.sol/IContractsRegister.d.ts +128 -0
  57. package/lib/types/IContractsRegister.sol/IContractsRegisterEvents.d.ts +50 -0
  58. package/lib/types/IContractsRegister.sol/index.d.ts +2 -0
  59. package/lib/types/IConvexToken.d.ts +9 -1
  60. package/lib/types/IConvexV1BaseRewardPoolAdapter.d.ts +17 -1
  61. package/lib/types/{IConvexV1BoosterAdapter.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.d.ts} +19 -4
  62. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.d.ts +43 -0
  63. package/lib/types/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
  64. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3.d.ts +716 -0
  65. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.d.ts +275 -0
  66. package/lib/types/ICreditConfiguratorV3.sol/index.d.ts +2 -0
  67. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Extended.d.ts +7 -11
  68. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3.d.ts +165 -20
  69. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3Events.d.ts +5 -7
  70. package/lib/types/ICreditFacadeV3Multicall.d.ts +35 -12
  71. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3.d.ts +273 -39
  72. package/lib/types/IDataCompressorV2_10.d.ts +43 -9
  73. package/lib/types/IDataCompressorV3_00.d.ts +140 -10
  74. package/lib/types/IDegenDistributor.sol/IDegenDistributor.d.ts +96 -0
  75. package/lib/types/IDegenDistributor.sol/IDegenDistributorEvents.d.ts +53 -0
  76. package/lib/types/IDegenDistributor.sol/index.d.ts +2 -0
  77. package/lib/types/{draft-IERC20Permit.sol/IERC20Permit.d.ts → IERC20Permit.d.ts} +1 -1
  78. package/lib/types/IERC20ZapperDeposits.d.ts +117 -0
  79. package/lib/types/IETHZapperDeposits.d.ts +66 -0
  80. package/lib/types/IGasPricer.d.ts +44 -0
  81. package/lib/types/IGasPricer.js +2 -0
  82. package/lib/types/IGearStakingV3.sol/IGearStakingV3.d.ts +408 -0
  83. package/lib/types/IGearStakingV3.sol/IGearStakingV3.js +2 -0
  84. package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.d.ts +117 -0
  85. package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.js +2 -0
  86. package/lib/types/IGearStakingV3.sol/index.d.ts +2 -0
  87. package/lib/types/IGearStakingV3.sol/index.js +2 -0
  88. package/lib/types/{ILidoV1Adapter.sol/ILidoV1Adapter.d.ts → ILidoV1Adapter.d.ts} +5 -40
  89. package/lib/types/ILidoV1Adapter.js +2 -0
  90. package/lib/types/IOffchainOracle.d.ts +58 -0
  91. package/lib/types/IOffchainOracle.js +2 -0
  92. package/lib/types/IPoolV3.sol/IPoolV3.d.ts +43 -11
  93. package/lib/types/IPoolV3.sol/index.d.ts +0 -1
  94. package/lib/types/IRouter.d.ts +11 -1
  95. package/lib/types/IWETHGateway.d.ts +90 -0
  96. package/lib/types/IWETHGateway.js +2 -0
  97. package/lib/types/IZapper.d.ts +130 -0
  98. package/lib/types/IZapper.js +2 -0
  99. package/lib/types/IwstETHGateway.sol/IwstETHGateWay.d.ts +70 -0
  100. package/lib/types/IwstETHGateway.sol/IwstETHGateWay.js +2 -0
  101. package/lib/types/IwstETHGateway.sol/index.d.ts +1 -0
  102. package/lib/types/IwstETHGateway.sol/index.js +2 -0
  103. package/lib/types/factories/AddressProvider__factory.d.ts +1 -1
  104. package/lib/types/factories/AddressProvider__factory.js +1 -1
  105. package/lib/types/factories/Balances.sol/BalanceOps__factory.d.ts +1 -1
  106. package/lib/types/factories/Balances.sol/BalanceOps__factory.js +1 -1
  107. package/lib/types/factories/Claimable__factory.d.ts +1 -1
  108. package/lib/types/factories/Claimable__factory.js +1 -1
  109. package/lib/types/factories/Errors__factory.d.ts +1 -1
  110. package/lib/types/factories/Errors__factory.js +1 -1
  111. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.d.ts +63 -0
  112. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.js +88 -0
  113. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.d.ts +119 -0
  114. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.js +161 -0
  115. package/lib/types/factories/IAirdropDistributor.sol/index.d.ts +2 -0
  116. package/lib/types/factories/IAirdropDistributor.sol/index.js +10 -0
  117. package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.d.ts +28 -0
  118. package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.js +45 -0
  119. package/lib/types/factories/{IAToken__factory.d.ts → IContractsRegister.sol/IContractsRegister__factory.d.ts} +49 -113
  120. package/lib/types/factories/{IAToken__factory.js → IContractsRegister.sol/IContractsRegister__factory.js} +49 -130
  121. package/lib/types/factories/IContractsRegister.sol/index.d.ts +2 -0
  122. package/lib/types/factories/IContractsRegister.sol/index.js +10 -0
  123. package/lib/types/factories/IConvexToken__factory.d.ts +10 -0
  124. package/lib/types/factories/IConvexToken__factory.js +13 -0
  125. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.d.ts +20 -0
  126. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.js +26 -0
  127. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.d.ts +23 -0
  128. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.js +38 -0
  129. package/lib/types/factories/{IConvexV1BoosterAdapter__factory.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.d.ts} +16 -1
  130. package/lib/types/factories/{IConvexV1BoosterAdapter__factory.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.js} +19 -0
  131. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
  132. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.js +10 -0
  133. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.d.ts +273 -0
  134. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.js +357 -0
  135. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.d.ts +605 -0
  136. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.js +785 -0
  137. package/lib/types/factories/ICreditConfiguratorV3.sol/index.d.ts +2 -0
  138. package/lib/types/factories/ICreditConfiguratorV3.sol/index.js +10 -0
  139. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.d.ts +0 -4
  140. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.js +0 -5
  141. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.d.ts +1 -6
  142. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.js +1 -7
  143. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.d.ts +144 -13
  144. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.js +185 -15
  145. package/lib/types/factories/ICreditFacadeV3Multicall__factory.d.ts +35 -5
  146. package/lib/types/factories/ICreditFacadeV3Multicall__factory.js +43 -5
  147. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.d.ts +199 -25
  148. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.js +252 -28
  149. package/lib/types/factories/IDataCompressorV2_10__factory.d.ts +110 -12
  150. package/lib/types/factories/IDataCompressorV2_10__factory.js +138 -14
  151. package/lib/types/factories/IDataCompressorV3_00__factory.d.ts +400 -16
  152. package/lib/types/factories/IDataCompressorV3_00__factory.js +508 -19
  153. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributorEvents__factory.d.ts +38 -0
  154. package/lib/types/factories/{AaveV2_WrappedAToken.sol/IWrappedATokenEvents__factory.js → IDegenDistributor.sol/IDegenDistributorEvents__factory.js} +13 -25
  155. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.d.ts +84 -0
  156. package/lib/types/factories/{IPoolV3.sol/IPoolBase__factory.js → IDegenDistributor.sol/IDegenDistributor__factory.js} +46 -41
  157. package/lib/types/factories/IDegenDistributor.sol/index.d.ts +2 -0
  158. package/lib/types/factories/IDegenDistributor.sol/index.js +10 -0
  159. package/lib/types/factories/{draft-IERC20Permit.sol/IERC20Permit__factory.d.ts → IERC20Permit__factory.d.ts} +1 -1
  160. package/lib/types/factories/IERC20ZapperDeposits__factory.d.ts +120 -0
  161. package/lib/types/factories/IERC20ZapperDeposits__factory.js +165 -0
  162. package/lib/types/factories/IETHZapperDeposits__factory.d.ts +40 -0
  163. package/lib/types/factories/IETHZapperDeposits__factory.js +62 -0
  164. package/lib/types/factories/IGasPricer__factory.d.ts +22 -0
  165. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.js → IGasPricer__factory.js} +14 -8
  166. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3Events__factory.d.ts +113 -0
  167. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3Events__factory.js +152 -0
  168. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.d.ts +504 -0
  169. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.js +660 -0
  170. package/lib/types/factories/IGearStakingV3.sol/index.d.ts +2 -0
  171. package/lib/types/factories/IGearStakingV3.sol/index.js +10 -0
  172. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.d.ts → ILidoV1Adapter__factory.d.ts} +1 -35
  173. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.js → ILidoV1Adapter__factory.js} +0 -44
  174. package/lib/types/factories/IOffchainOracle__factory.d.ts +48 -0
  175. package/lib/types/factories/IOffchainOracle__factory.js +72 -0
  176. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.d.ts +62 -14
  177. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.js +79 -17
  178. package/lib/types/factories/IPoolV3.sol/index.d.ts +0 -1
  179. package/lib/types/factories/IPoolV3.sol/index.js +1 -3
  180. package/lib/types/factories/IRouter__factory.d.ts +14 -0
  181. package/lib/types/factories/IRouter__factory.js +19 -0
  182. package/lib/types/factories/IWETHGateway__factory.d.ts +58 -0
  183. package/lib/types/factories/IWETHGateway__factory.js +83 -0
  184. package/lib/types/factories/{WERC20ZapperBase__factory.d.ts → IZapper__factory.d.ts} +57 -61
  185. package/lib/types/factories/{WERC20ZapperBase__factory.js → IZapper__factory.js} +65 -71
  186. package/lib/types/factories/{ZapperBase__factory.d.ts → IwstETHGateway.sol/IwstETHGateWay__factory.d.ts} +22 -34
  187. package/lib/types/factories/{ZapperBase__factory.js → IwstETHGateway.sol/IwstETHGateWay__factory.js} +22 -39
  188. package/lib/types/factories/IwstETHGateway.sol/index.d.ts +1 -0
  189. package/lib/types/factories/IwstETHGateway.sol/index.js +8 -0
  190. package/lib/types/factories/SafeERC20__factory.d.ts +1 -1
  191. package/lib/types/factories/SafeERC20__factory.js +1 -1
  192. package/lib/types/factories/index.d.ts +15 -12
  193. package/lib/types/factories/index.js +25 -23
  194. package/lib/types/index.d.ts +56 -38
  195. package/lib/types/index.js +42 -32
  196. package/lib/utils/formatter.d.ts +0 -3
  197. package/lib/utils/formatter.js +1 -67
  198. package/lib/utils/math.d.ts +2 -0
  199. package/lib/utils/math.js +2 -0
  200. package/lib/utils/types.d.ts +1 -0
  201. package/lib/watchers/creditAccountWatcher.d.ts +3 -2
  202. package/lib/watchers/creditAccountWatcher.js +19 -13
  203. package/lib/watchers/creditAccountWatcher.spec.js +18 -18
  204. package/lib/watchers/creditManagerWatcher.d.ts +5 -3
  205. package/lib/watchers/creditManagerWatcher.js +32 -10
  206. package/lib/watchers/creditManagerWatcher.spec.js +12 -4
  207. package/package.json +10 -9
  208. package/contracts/IRouter.sol +0 -100
  209. package/lib/core/pool/index.d.ts +0 -1
  210. package/lib/core/pool/index.js +0 -17
  211. package/lib/types/AaveV2_WrappedAToken.sol/IWrappedATokenEvents.d.ts +0 -60
  212. package/lib/types/AaveV2_WrappedAToken.sol/WrappedAToken.d.ts +0 -332
  213. package/lib/types/AaveV2_WrappedAToken.sol/index.d.ts +0 -2
  214. package/lib/types/ERC20.d.ts +0 -198
  215. package/lib/types/IAToken.d.ts +0 -182
  216. package/lib/types/ILendingPool.d.ts +0 -140
  217. package/lib/types/ILidoV1Adapter.sol/ILidoV1AdapterEvents.d.ts +0 -39
  218. package/lib/types/ILidoV1Adapter.sol/ILidoV1AdapterExceptions.d.ts +0 -27
  219. package/lib/types/ILidoV1Adapter.sol/index.d.ts +0 -3
  220. package/lib/types/IPoolV3.sol/IPoolBase.d.ts +0 -102
  221. package/lib/types/WATokenZapper.d.ts +0 -134
  222. package/lib/types/WERC20ZapperBase.d.ts +0 -134
  223. package/lib/types/WETHZapper.d.ts +0 -122
  224. package/lib/types/WstETHZapper.d.ts +0 -134
  225. package/lib/types/ZapperBase.d.ts +0 -70
  226. package/lib/types/draft-IERC20Permit.sol/index.d.ts +0 -1
  227. package/lib/types/factories/AaveV2_WrappedAToken.sol/IWrappedATokenEvents__factory.d.ts +0 -48
  228. package/lib/types/factories/AaveV2_WrappedAToken.sol/WrappedAToken__factory.d.ts +0 -397
  229. package/lib/types/factories/AaveV2_WrappedAToken.sol/WrappedAToken__factory.js +0 -535
  230. package/lib/types/factories/AaveV2_WrappedAToken.sol/index.d.ts +0 -2
  231. package/lib/types/factories/AaveV2_WrappedAToken.sol/index.js +0 -10
  232. package/lib/types/factories/ERC20__factory.d.ts +0 -239
  233. package/lib/types/factories/ERC20__factory.js +0 -328
  234. package/lib/types/factories/ILendingPool__factory.d.ts +0 -134
  235. package/lib/types/factories/ILendingPool__factory.js +0 -183
  236. package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.d.ts +0 -18
  237. package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.d.ts +0 -12
  238. package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.js +0 -24
  239. package/lib/types/factories/ILidoV1Adapter.sol/index.d.ts +0 -3
  240. package/lib/types/factories/ILidoV1Adapter.sol/index.js +0 -12
  241. package/lib/types/factories/IPoolV3.sol/IPoolBase__factory.d.ts +0 -80
  242. package/lib/types/factories/WATokenZapper__factory.d.ts +0 -161
  243. package/lib/types/factories/WATokenZapper__factory.js +0 -227
  244. package/lib/types/factories/WETHZapper__factory.d.ts +0 -138
  245. package/lib/types/factories/WETHZapper__factory.js +0 -198
  246. package/lib/types/factories/WstETHZapper__factory.d.ts +0 -161
  247. package/lib/types/factories/WstETHZapper__factory.js +0 -227
  248. package/lib/types/factories/draft-IERC20Permit.sol/index.d.ts +0 -1
  249. package/lib/types/factories/draft-IERC20Permit.sol/index.js +0 -8
  250. /package/lib/{types/AaveV2_WrappedAToken.sol/IWrappedATokenEvents.js → payload/gauge.js} +0 -0
  251. /package/lib/types/{AaveV2_WrappedAToken.sol/WrappedAToken.js → IAirdropDistributor.sol/IAirdropDistributor.js} +0 -0
  252. /package/lib/types/{AaveV2_WrappedAToken.sol/index.js → IAirdropDistributor.sol/IAirdropDistributorEvents.js} +0 -0
  253. /package/lib/types/{ILidoV1Adapter.sol → IAirdropDistributor.sol}/index.js +0 -0
  254. /package/lib/types/{ERC20.js → IContractsRegister.sol/IContractsRegister.js} +0 -0
  255. /package/lib/types/{IAToken.js → IContractsRegister.sol/IContractsRegisterEvents.js} +0 -0
  256. /package/lib/types/{draft-IERC20Permit.sol → IContractsRegister.sol}/index.js +0 -0
  257. /package/lib/types/{IConvexV1BoosterAdapter.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.js} +0 -0
  258. /package/lib/types/{ILendingPool.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.js} +0 -0
  259. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1Adapter.js → IConvexV1BoosterAdapter.sol/index.js} +0 -0
  260. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterEvents.js → ICreditConfiguratorV3.sol/ICreditConfiguratorV3.js} +0 -0
  261. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions.js → ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.js} +0 -0
  262. /package/lib/types/{IPoolV3.sol/IPoolBase.js → ICreditConfiguratorV3.sol/index.js} +0 -0
  263. /package/lib/types/{WATokenZapper.js → IDegenDistributor.sol/IDegenDistributor.js} +0 -0
  264. /package/lib/types/{WERC20ZapperBase.js → IDegenDistributor.sol/IDegenDistributorEvents.js} +0 -0
  265. /package/lib/types/{WETHZapper.js → IDegenDistributor.sol/index.js} +0 -0
  266. /package/lib/types/{draft-IERC20Permit.sol/IERC20Permit.js → IERC20Permit.js} +0 -0
  267. /package/lib/types/{WstETHZapper.js → IERC20ZapperDeposits.js} +0 -0
  268. /package/lib/types/{ZapperBase.js → IETHZapperDeposits.js} +0 -0
  269. /package/lib/types/factories/{draft-IERC20Permit.sol/IERC20Permit__factory.js → IERC20Permit__factory.js} +0 -0
@@ -1,8 +1,11 @@
1
1
  import { MultiCall } from "../pathfinder/core";
2
2
  import { ChartsCreditManagerPayload, CreditManagerDataPayload, QuotaInfo } from "../payload/creditManager";
3
3
  import { LinearModel } from "../payload/pool";
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): MultiCall;
35
- encodeIncreaseDebt(amount: bigint): MultiCall;
36
- encodeDecreaseDebt(amount: bigint): MultiCall;
37
- encodeEnableToken(token: string): MultiCall;
38
- encodeDisableToken(token: string): MultiCall;
39
- static withdrawAllAndUnwrap_Convex(address: string, claim: boolean): MultiCall;
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
+ encodeRevertIfReceivedLessThanV3(assets: Array<Asset>): MultiCall;
53
+ encodeUpdateQuotaV3(token: string, quotaChange: bigint, minQuota: bigint): 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,113 @@ 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) {
192
+ return {
193
+ target: this.creditFacade,
194
+ callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("revertIfReceivedLessThan", [assets.map(a => ({ token: a.token, amount: a.balance }))]),
195
+ };
196
+ }
197
+ encodeUpdateQuotaV3(token, quotaChange, minQuota) {
198
+ return {
199
+ target: this.creditFacade,
200
+ callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("updateQuota", [token, quotaChange, minQuota]),
201
+ };
202
+ }
144
203
  static withdrawAllAndUnwrap_Convex(address, claim) {
145
204
  return {
146
205
  target: address,
147
206
  callData: types_1.IConvexV1BaseRewardPoolAdapter__factory.createInterface().encodeFunctionData("withdrawAllAndUnwrap", [claim]),
148
207
  };
149
208
  }
150
- get id() {
151
- return this.address;
152
- }
153
209
  }
154
210
  exports.CreditManagerData = CreditManagerData;
155
211
  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 {};