@gearbox-protocol/sdk 3.0.0-next.12 → 3.0.0-next.120

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 (646) hide show
  1. package/contracts/index.sol +32 -3
  2. package/lib/apy/convexAPY.d.ts +8 -7
  3. package/lib/apy/convexAPY.js +19 -8
  4. package/lib/apy/curveAPY.d.ts +49 -4
  5. package/lib/apy/curveAPY.js +20 -10
  6. package/lib/apy/defiLamaAPY.d.ts +3 -0
  7. package/lib/apy/defiLamaAPY.js +64 -0
  8. package/lib/apy/index.d.ts +5 -4
  9. package/lib/apy/index.js +5 -0
  10. package/lib/apy/lidoAPY.d.ts +4 -1
  11. package/lib/apy/lidoAPY.js +6 -3
  12. package/lib/apy/yearnAPY.d.ts +3 -3
  13. package/lib/apy/yearnAPY.js +14 -12
  14. package/lib/contracts/contractsRegister.d.ts +9 -4
  15. package/lib/contracts/contractsRegister.js +15 -0
  16. package/lib/core/assets.d.ts +2 -2
  17. package/lib/core/assets.js +4 -4
  18. package/lib/core/creditAccount.d.ts +74 -16
  19. package/lib/core/creditAccount.js +176 -64
  20. package/lib/core/creditAccount.spec.js +908 -17
  21. package/lib/core/creditManager.d.ts +18 -7
  22. package/lib/core/creditManager.js +61 -15
  23. package/lib/core/creditSession.d.ts +11 -1
  24. package/lib/core/creditSession.js +20 -2
  25. package/lib/core/endpoint.d.ts +13 -0
  26. package/lib/core/endpoint.js +31 -0
  27. package/lib/core/events.js +16 -16
  28. package/lib/core/gauge.d.ts +26 -0
  29. package/lib/core/gauge.js +63 -0
  30. package/lib/core/gaugeMath.d.ts +40 -0
  31. package/lib/core/gaugeMath.js +108 -0
  32. package/lib/core/gaugeMath.spec.js +388 -0
  33. package/lib/core/{pool/data.d.ts → pool.d.ts} +14 -8
  34. package/lib/core/{pool/data.js → pool.js} +39 -20
  35. package/lib/core/rewardConvex.js +2 -0
  36. package/lib/core/strategy.d.ts +18 -21
  37. package/lib/core/strategy.js +16 -36
  38. package/lib/core/trade.d.ts +11 -12
  39. package/lib/core/trade.js +36 -29
  40. package/lib/core/transactions.d.ts +110 -14
  41. package/lib/core/transactions.js +191 -108
  42. package/lib/index.d.ts +5 -2
  43. package/lib/index.js +5 -2
  44. package/lib/parsers/ERC20Parser.js +1 -1
  45. package/lib/parsers/aaveV2LendingPoolAdapterParser.d.ts +7 -0
  46. package/lib/parsers/aaveV2LendingPoolAdapterParser.js +21 -0
  47. package/lib/parsers/aaveV2WrappedATokenAdapterParser.d.ts +7 -0
  48. package/lib/parsers/aaveV2WrappedATokenAdapterParser.js +21 -0
  49. package/lib/parsers/abstractParser.d.ts +7 -5
  50. package/lib/parsers/abstractParser.js +4 -2
  51. package/lib/parsers/addressProviderParser.js +1 -1
  52. package/lib/parsers/balancerV2VaultParser.d.ts +7 -0
  53. package/lib/parsers/balancerV2VaultParser.js +34 -0
  54. package/lib/parsers/compoundV2CTokenAdapterParser.d.ts +7 -0
  55. package/lib/parsers/compoundV2CTokenAdapterParser.js +21 -0
  56. package/lib/parsers/convexBaseRewardPoolAdapterParser.js +11 -9
  57. package/lib/parsers/convexBaseRewardPoolAdapterParser.spec.js +9 -6
  58. package/lib/parsers/convexBoosterAdapterParser.js +7 -7
  59. package/lib/parsers/convexBoosterAdapterParser.spec.js +4 -4
  60. package/lib/parsers/convextRewardPoolParser.js +1 -1
  61. package/lib/parsers/creditFacadeParser.js +33 -6
  62. package/lib/parsers/creditFacadeParser.spec.js +2 -3
  63. package/lib/parsers/creditManagerParser.js +1 -1
  64. package/lib/parsers/curveAdapterParser.js +11 -12
  65. package/lib/parsers/curveAdapterParser.spec.js +6 -2
  66. package/lib/parsers/erc626AdapterParser.d.ts +7 -0
  67. package/lib/parsers/erc626AdapterParser.js +21 -0
  68. package/lib/parsers/lidoAdapterParser.js +4 -3
  69. package/lib/parsers/lidoAdapterParser.spec.js +2 -2
  70. package/lib/parsers/lidoSTETHParser.js +1 -1
  71. package/lib/parsers/poolParser.js +1 -1
  72. package/lib/parsers/priceOracleParser.js +1 -1
  73. package/lib/parsers/txParser.d.ts +17 -11
  74. package/lib/parsers/txParser.js +41 -4
  75. package/lib/parsers/uniV2AdapterParser.js +6 -5
  76. package/lib/parsers/uniV2AdapterParser.spec.js +3 -2
  77. package/lib/parsers/uniV3AdapterParser.js +10 -8
  78. package/lib/parsers/uniV3AdapterParser.spec.js +3 -2
  79. package/lib/parsers/wstETHAdapterParser.js +7 -5
  80. package/lib/parsers/wstETHAdapterParser.spec.js +4 -4
  81. package/lib/parsers/yearnAdapterParser.spec.js +4 -4
  82. package/lib/parsers/yearnV2AdapterParser.js +14 -4
  83. package/lib/pathfinder/core.d.ts +8 -9
  84. package/lib/pathfinder/index.d.ts +4 -0
  85. package/lib/{core/pool → pathfinder}/index.js +4 -1
  86. package/lib/pathfinder/pathOptions.d.ts +2 -1
  87. package/lib/pathfinder/pathOptions.js +28 -1
  88. package/lib/pathfinder/pathOptions.spec.js +2 -2
  89. package/lib/pathfinder/pathfinder.d.ts +46 -19
  90. package/lib/pathfinder/pathfinder.js +59 -48
  91. package/lib/pathfinder/pathfinder.spec.js +21 -4
  92. package/lib/pathfinder/utils.d.ts +35 -0
  93. package/lib/pathfinder/utils.js +182 -0
  94. package/lib/pathfinder/v1/core.d.ts +16 -0
  95. package/lib/pathfinder/v1/pathfinderv1.d.ts +46 -0
  96. package/lib/pathfinder/v1/pathfinderv1.js +155 -0
  97. package/lib/pathfinder/v1/pathfinderv1.spec.d.ts +1 -0
  98. package/lib/pathfinder/v1/pathfinderv1.spec.js +39 -0
  99. package/lib/payload/creditAccount.d.ts +3 -4
  100. package/lib/payload/creditManager.d.ts +3 -0
  101. package/lib/payload/creditSession.d.ts +11 -0
  102. package/lib/payload/gauge.d.ts +12 -0
  103. package/lib/payload/pool.d.ts +4 -0
  104. package/lib/types/CalldataExtractor.d.ts +44 -0
  105. package/lib/types/ERC20.d.ts +198 -0
  106. package/lib/types/FarmAccounting.d.ts +27 -0
  107. package/lib/types/IAaveV2_LendingPoolAdapter.d.ts +171 -0
  108. package/lib/types/IAaveV2_WrappedATokenAdapter.d.ts +290 -0
  109. package/lib/types/IBalancerV2Vault.sol/IBalancerV2Vault.d.ts +308 -0
  110. package/lib/types/IBalancerV2Vault.sol/IBalancerV2VaultGetters.d.ts +112 -0
  111. package/lib/types/IBalancerV2Vault.sol/index.d.ts +2 -0
  112. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter.d.ts +466 -0
  113. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter.js +2 -0
  114. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents.d.ts +43 -0
  115. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents.js +2 -0
  116. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions.d.ts +27 -0
  117. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions.js +2 -0
  118. package/lib/types/IBalancerV2VaultAdapter.sol/index.d.ts +3 -0
  119. package/lib/types/IBalancerV2VaultAdapter.sol/index.js +2 -0
  120. package/lib/types/IBotListV3.sol/IBotListV3.d.ts +286 -0
  121. package/lib/types/IBotListV3.sol/IBotListV3.js +2 -0
  122. package/lib/types/IBotListV3.sol/IBotListV3Events.d.ts +103 -0
  123. package/lib/types/IBotListV3.sol/IBotListV3Events.js +2 -0
  124. package/lib/types/IBotListV3.sol/index.d.ts +2 -0
  125. package/lib/types/IBotListV3.sol/index.js +2 -0
  126. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter.d.ts +216 -0
  127. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter.js +2 -0
  128. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions.d.ts +27 -0
  129. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions.js +2 -0
  130. package/lib/types/ICompoundV2_CTokenAdapter.sol/index.d.ts +2 -0
  131. package/lib/types/ICompoundV2_CTokenAdapter.sol/index.js +2 -0
  132. package/lib/types/IContractsRegister.sol/IContractsRegister.d.ts +128 -0
  133. package/lib/types/IContractsRegister.sol/IContractsRegister.js +2 -0
  134. package/lib/types/IContractsRegister.sol/IContractsRegisterEvents.d.ts +50 -0
  135. package/lib/types/IContractsRegister.sol/IContractsRegisterEvents.js +2 -0
  136. package/lib/types/IContractsRegister.sol/index.d.ts +2 -0
  137. package/lib/types/IContractsRegister.sol/index.js +2 -0
  138. package/lib/types/IControllerTimelockV3.sol/IControllerTimelockV3.d.ts +504 -0
  139. package/lib/types/IControllerTimelockV3.sol/IControllerTimelockV3.js +2 -0
  140. package/lib/types/IControllerTimelockV3.sol/IControllerTimelockV3Events.d.ts +82 -0
  141. package/lib/types/IControllerTimelockV3.sol/IControllerTimelockV3Events.js +2 -0
  142. package/lib/types/IControllerTimelockV3.sol/index.d.ts +2 -0
  143. package/lib/types/IControllerTimelockV3.sol/index.js +2 -0
  144. package/lib/types/IConvexToken.d.ts +9 -1
  145. package/lib/types/IConvexV1BaseRewardPoolAdapter.d.ts +46 -30
  146. package/lib/types/{IConvexV1BoosterAdapter.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.d.ts} +40 -21
  147. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.js +2 -0
  148. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.d.ts +43 -0
  149. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.js +2 -0
  150. package/lib/types/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
  151. package/lib/types/IConvexV1BoosterAdapter.sol/index.js +2 -0
  152. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Extended.d.ts +7 -11
  153. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3.d.ts +52 -100
  154. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3Events.d.ts +30 -32
  155. package/lib/types/ICreditFacadeV3Multicall.d.ts +68 -60
  156. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3.d.ts +99 -79
  157. package/lib/types/ICurveV1Adapter.d.ts +41 -105
  158. package/lib/types/ICurveV1_2AssetsAdapter.d.ts +41 -105
  159. package/lib/types/ICurveV1_3AssetsAdapter.d.ts +41 -105
  160. package/lib/types/ICurveV1_4AssetsAdapter.d.ts +41 -105
  161. package/lib/types/IDaiLikePermit.d.ts +59 -0
  162. package/lib/types/IDaiLikePermit.js +2 -0
  163. package/lib/types/IDataCompressorV2_10.d.ts +18 -45
  164. package/lib/types/IDataCompressorV3_00.d.ts +115 -46
  165. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2.d.ts +339 -0
  166. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2.js +2 -0
  167. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Events.d.ts +61 -0
  168. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Events.js +2 -0
  169. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Exceptions.d.ts +27 -0
  170. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Exceptions.js +2 -0
  171. package/lib/types/IDegenNFTV2.sol/index.d.ts +3 -0
  172. package/lib/types/IDegenNFTV2.sol/index.js +2 -0
  173. package/lib/types/IERC165.d.ts +42 -0
  174. package/lib/types/IERC165.js +2 -0
  175. package/lib/types/IERC20ZapperDeposits.d.ts +117 -0
  176. package/lib/types/IERC20ZapperDeposits.js +2 -0
  177. package/lib/types/IERC4626Adapter.d.ts +238 -0
  178. package/lib/types/IERC4626Adapter.js +2 -0
  179. package/lib/types/IERC721.d.ts +220 -0
  180. package/lib/types/IERC721.js +2 -0
  181. package/lib/types/IERC721Metadata.d.ts +244 -0
  182. package/lib/types/IERC721Metadata.js +2 -0
  183. package/lib/types/IETHZapperDeposits.d.ts +66 -0
  184. package/lib/types/IETHZapperDeposits.js +2 -0
  185. package/lib/types/IFarmingPool.d.ts +318 -0
  186. package/lib/types/IFarmingPool.js +2 -0
  187. package/lib/types/IGaugeV3.sol/IGaugeV3.d.ts +366 -0
  188. package/lib/types/IGaugeV3.sol/IGaugeV3.js +2 -0
  189. package/lib/types/IGaugeV3.sol/IGaugeV3Events.d.ts +114 -0
  190. package/lib/types/IGaugeV3.sol/IGaugeV3Events.js +2 -0
  191. package/lib/types/IGaugeV3.sol/index.d.ts +2 -0
  192. package/lib/types/IGaugeV3.sol/index.js +2 -0
  193. package/lib/types/IGearStakingV3.sol/IGearStakingV3.d.ts +408 -0
  194. package/lib/types/IGearStakingV3.sol/IGearStakingV3.js +2 -0
  195. package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.d.ts +117 -0
  196. package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.js +2 -0
  197. package/lib/types/IGearStakingV3.sol/index.d.ts +2 -0
  198. package/lib/types/IGearStakingV3.sol/index.js +2 -0
  199. package/lib/types/ILPPriceFeed.sol/ILPPriceFeed.d.ts +285 -0
  200. package/lib/types/ILPPriceFeed.sol/ILPPriceFeed.js +2 -0
  201. package/lib/types/ILPPriceFeed.sol/ILPPriceFeedEvents.d.ts +54 -0
  202. package/lib/types/ILPPriceFeed.sol/ILPPriceFeedEvents.js +2 -0
  203. package/lib/types/ILPPriceFeed.sol/ILPPriceFeedExceptions.d.ts +27 -0
  204. package/lib/types/ILPPriceFeed.sol/ILPPriceFeedExceptions.js +2 -0
  205. package/lib/types/ILPPriceFeed.sol/index.d.ts +3 -0
  206. package/lib/types/ILPPriceFeed.sol/index.js +2 -0
  207. package/lib/types/{ILidoV1Adapter.sol/ILidoV1Adapter.d.ts → ILidoV1Adapter.d.ts} +13 -48
  208. package/lib/types/ILidoV1Adapter.js +2 -0
  209. package/lib/types/ILinearInterestRateModelV3.d.ts +120 -0
  210. package/lib/types/ILinearInterestRateModelV3.js +2 -0
  211. package/lib/types/IPermit2.d.ts +130 -0
  212. package/lib/types/IPermit2.js +2 -0
  213. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3.d.ts +473 -0
  214. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3.js +2 -0
  215. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events.d.ts +113 -0
  216. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events.js +2 -0
  217. package/lib/types/IPoolQuotaKeeperV3.sol/index.d.ts +2 -0
  218. package/lib/types/IPoolQuotaKeeperV3.sol/index.js +2 -0
  219. package/lib/types/IPoolV3.sol/IPoolV3.d.ts +2 -2
  220. package/lib/types/IPriceFeed.sol/IPriceFeed.d.ts +109 -0
  221. package/lib/types/IPriceFeed.sol/IPriceFeed.js +2 -0
  222. package/lib/types/IPriceFeed.sol/IUpdatablePriceFeed.d.ts +133 -0
  223. package/lib/types/IPriceFeed.sol/IUpdatablePriceFeed.js +2 -0
  224. package/lib/types/IPriceFeed.sol/index.d.ts +2 -0
  225. package/lib/types/IPriceFeed.sol/index.js +2 -0
  226. package/lib/types/IPriceOracle.sol/IPriceOracleV2.d.ts +166 -0
  227. package/lib/types/IPriceOracle.sol/IPriceOracleV2.js +2 -0
  228. package/lib/types/IPriceOracle.sol/IPriceOracleV2Events.d.ts +43 -0
  229. package/lib/types/IPriceOracle.sol/IPriceOracleV2Events.js +2 -0
  230. package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions.d.ts → IPriceOracle.sol/IPriceOracleV2Exceptions.d.ts} +3 -3
  231. package/lib/types/IPriceOracle.sol/IPriceOracleV2Exceptions.js +2 -0
  232. package/lib/types/IPriceOracle.sol/IPriceOracleV2Ext.d.ts +182 -0
  233. package/lib/types/IPriceOracle.sol/IPriceOracleV2Ext.js +2 -0
  234. package/lib/types/IPriceOracle.sol/index.d.ts +4 -0
  235. package/lib/types/IPriceOracle.sol/index.js +2 -0
  236. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3.d.ts +272 -0
  237. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3.js +2 -0
  238. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3Events.d.ts +79 -0
  239. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3Events.js +2 -0
  240. package/lib/types/IPriceOracleV3.sol/index.d.ts +2 -0
  241. package/lib/types/IPriceOracleV3.sol/index.js +2 -0
  242. package/lib/types/IRouter.d.ts +11 -1
  243. package/lib/types/IRouterV3.d.ts +281 -0
  244. package/lib/types/IRouterV3.js +2 -0
  245. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2Adapter.d.ts +10 -9
  246. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3Adapter.d.ts +27 -21
  247. package/lib/types/IVotingContractV3.d.ts +74 -0
  248. package/lib/types/IVotingContractV3.js +2 -0
  249. package/lib/types/IWETH.d.ts +197 -0
  250. package/lib/types/IWETH.js +2 -0
  251. package/lib/types/IYearnV2Adapter.d.ts +22 -22
  252. package/lib/types/IZapper.d.ts +42 -47
  253. package/lib/types/IZapperRegister.d.ts +62 -0
  254. package/lib/types/IZapperRegister.js +2 -0
  255. package/lib/types/IwstETHV1Adapter.d.ts +17 -17
  256. package/lib/types/NumericArrayLib.d.ts +27 -0
  257. package/lib/types/NumericArrayLib.js +2 -0
  258. package/lib/types/RedstoneConstants.d.ts +27 -0
  259. package/lib/types/RedstoneConstants.js +2 -0
  260. package/lib/types/RedstoneConsumerBase.d.ts +84 -0
  261. package/lib/types/RedstoneConsumerBase.js +2 -0
  262. package/lib/types/RedstoneConsumerNumericBase.d.ts +84 -0
  263. package/lib/types/RedstoneConsumerNumericBase.js +2 -0
  264. package/lib/types/RedstoneDefaultsLib.d.ts +27 -0
  265. package/lib/types/RedstoneDefaultsLib.js +2 -0
  266. package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterEvents.d.ts → RedstonePriceFeed.sol/IRedstonePriceFeedEvents.d.ts} +11 -11
  267. package/lib/types/RedstonePriceFeed.sol/IRedstonePriceFeedEvents.js +2 -0
  268. package/lib/types/RedstonePriceFeed.sol/IRedstonePriceFeedExceptions.d.ts +27 -0
  269. package/lib/types/RedstonePriceFeed.sol/IRedstonePriceFeedExceptions.js +2 -0
  270. package/lib/types/RedstonePriceFeed.sol/RedstonePriceFeed.d.ts +279 -0
  271. package/lib/types/RedstonePriceFeed.sol/RedstonePriceFeed.js +2 -0
  272. package/lib/types/RedstonePriceFeed.sol/index.d.ts +3 -0
  273. package/lib/types/RedstonePriceFeed.sol/index.js +2 -0
  274. package/lib/types/SafeERC20.d.ts +27 -0
  275. package/lib/types/SafeERC20.js +2 -0
  276. package/lib/types/contracts/index.d.ts +2 -0
  277. package/lib/types/contracts/index.js +2 -0
  278. package/lib/types/contracts/interfaces/IGasPricer.d.ts +44 -0
  279. package/lib/types/contracts/interfaces/IGasPricer.js +2 -0
  280. package/lib/types/contracts/interfaces/index.d.ts +1 -0
  281. package/lib/types/contracts/interfaces/index.js +2 -0
  282. package/lib/types/factories/AddressProvider__factory.d.ts +112 -112
  283. package/lib/types/factories/AddressProvider__factory.js +120 -120
  284. package/lib/types/factories/Balances.sol/BalanceOps__factory.d.ts +4 -4
  285. package/lib/types/factories/Balances.sol/BalanceOps__factory.js +4 -4
  286. package/lib/types/factories/CalldataExtractor__factory.d.ts +87 -0
  287. package/lib/types/factories/CalldataExtractor__factory.js +127 -0
  288. package/lib/types/factories/Claimable__factory.d.ts +29 -29
  289. package/lib/types/factories/Claimable__factory.js +33 -33
  290. package/lib/types/factories/ERC20__factory.d.ts +239 -0
  291. package/lib/types/factories/ERC20__factory.js +328 -0
  292. package/lib/types/factories/Errors__factory.d.ts +100 -100
  293. package/lib/types/factories/Errors__factory.js +100 -100
  294. package/lib/types/factories/FarmAccounting__factory.d.ts +33 -0
  295. package/lib/types/factories/FarmAccounting__factory.js +57 -0
  296. package/lib/types/factories/{IWERC20Zapper__factory.d.ts → IAaveV2_LendingPoolAdapter__factory.d.ts} +96 -114
  297. package/lib/types/factories/{IWETHZapper__factory.js → IAaveV2_LendingPoolAdapter__factory.js} +105 -120
  298. package/lib/types/factories/IAaveV2_WrappedATokenAdapter__factory.d.ts +252 -0
  299. package/lib/types/factories/IAaveV2_WrappedATokenAdapter__factory.js +341 -0
  300. package/lib/types/factories/IAdapter__factory.d.ts +15 -15
  301. package/lib/types/factories/IAdapter__factory.js +15 -15
  302. package/lib/types/factories/IAddressProvider.sol/IAddressProviderEvents__factory.d.ts +7 -7
  303. package/lib/types/factories/IAddressProvider.sol/IAddressProviderEvents__factory.js +7 -7
  304. package/lib/types/factories/IAddressProvider.sol/IAddressProvider__factory.d.ts +48 -48
  305. package/lib/types/factories/IAddressProvider.sol/IAddressProvider__factory.js +52 -52
  306. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3Events__factory.d.ts +9 -9
  307. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3Events__factory.js +9 -9
  308. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3__factory.d.ts +37 -37
  309. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3__factory.js +42 -42
  310. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.d.ts +25 -25
  311. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.js +25 -25
  312. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.d.ts +71 -71
  313. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.js +85 -85
  314. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2VaultGetters__factory.d.ts +78 -0
  315. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2VaultGetters__factory.js +111 -0
  316. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2Vault__factory.d.ts +360 -0
  317. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2Vault__factory.js +475 -0
  318. package/lib/types/factories/IBalancerV2Vault.sol/index.d.ts +2 -0
  319. package/lib/types/factories/IBalancerV2Vault.sol/index.js +10 -0
  320. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents__factory.d.ts +23 -0
  321. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents__factory.js +38 -0
  322. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions__factory.d.ts +12 -0
  323. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions__factory.js} +5 -5
  324. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter__factory.d.ts +514 -0
  325. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter__factory.js +675 -0
  326. package/lib/types/factories/IBalancerV2VaultAdapter.sol/index.d.ts +3 -0
  327. package/lib/types/factories/IBalancerV2VaultAdapter.sol/index.js +12 -0
  328. package/lib/types/factories/IBaseRewardPool__factory.d.ts +114 -114
  329. package/lib/types/factories/IBaseRewardPool__factory.js +114 -114
  330. package/lib/types/factories/IBotListV3.sol/IBotListV3Events__factory.d.ts +103 -0
  331. package/lib/types/factories/IBotListV3.sol/IBotListV3Events__factory.js +138 -0
  332. package/lib/types/factories/IBotListV3.sol/IBotListV3__factory.d.ts +315 -0
  333. package/lib/types/factories/IBotListV3.sol/IBotListV3__factory.js +416 -0
  334. package/lib/types/factories/IBotListV3.sol/index.d.ts +2 -0
  335. package/lib/types/factories/IBotListV3.sol/index.js +10 -0
  336. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter__factory.d.ts +196 -0
  337. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter__factory.js +267 -0
  338. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions__factory.d.ts +16 -0
  339. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions__factory.js +30 -0
  340. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/index.d.ts +2 -0
  341. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/index.js +10 -0
  342. package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.d.ts +28 -0
  343. package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.js +45 -0
  344. package/lib/types/factories/IContractsRegister.sol/IContractsRegister__factory.d.ts +134 -0
  345. package/lib/types/factories/IContractsRegister.sol/IContractsRegister__factory.js +186 -0
  346. package/lib/types/factories/IContractsRegister.sol/index.d.ts +2 -0
  347. package/lib/types/factories/IContractsRegister.sol/index.js +10 -0
  348. package/lib/types/factories/IControllerTimelockV3.sol/IControllerTimelockV3Events__factory.d.ts +73 -0
  349. package/lib/types/factories/IControllerTimelockV3.sol/IControllerTimelockV3Events__factory.js +101 -0
  350. package/lib/types/factories/IControllerTimelockV3.sol/IControllerTimelockV3__factory.d.ts +427 -0
  351. package/lib/types/factories/IControllerTimelockV3.sol/IControllerTimelockV3__factory.js +556 -0
  352. package/lib/types/factories/IControllerTimelockV3.sol/index.d.ts +2 -0
  353. package/lib/types/factories/IControllerTimelockV3.sol/index.js +10 -0
  354. package/lib/types/factories/IConvexToken__factory.d.ts +89 -79
  355. package/lib/types/factories/IConvexToken__factory.js +99 -86
  356. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.d.ts +103 -71
  357. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.js +113 -71
  358. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.d.ts +23 -0
  359. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.js +38 -0
  360. package/lib/types/factories/{IConvexV1BoosterAdapter__factory.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.d.ts} +67 -44
  361. package/lib/types/factories/{IConvexV1BoosterAdapter__factory.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.js} +72 -43
  362. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
  363. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.js +10 -0
  364. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Events__factory.d.ts +121 -121
  365. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Events__factory.js +127 -127
  366. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Exceptions__factory.d.ts +18 -18
  367. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Exceptions__factory.js +18 -18
  368. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2__factory.d.ts +376 -376
  369. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2__factory.js +417 -417
  370. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.d.ts +118 -118
  371. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.js +127 -127
  372. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.d.ts +395 -395
  373. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.js +420 -420
  374. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Events__factory.d.ts +107 -107
  375. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Events__factory.js +118 -118
  376. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Exceptions__factory.d.ts +65 -65
  377. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Exceptions__factory.js +65 -65
  378. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.d.ts +23 -27
  379. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.js +23 -28
  380. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2V2__factory.d.ts +5 -5
  381. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2V2__factory.js +5 -5
  382. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2__factory.d.ts +601 -601
  383. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2__factory.js +749 -749
  384. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.d.ts +78 -83
  385. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.js +85 -91
  386. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.d.ts +281 -348
  387. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.js +372 -457
  388. package/lib/types/factories/ICreditFacadeV3Multicall__factory.d.ts +85 -81
  389. package/lib/types/factories/ICreditFacadeV3Multicall__factory.js +93 -89
  390. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Events__factory.d.ts +11 -11
  391. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Events__factory.js +12 -12
  392. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Exceptions__factory.d.ts +26 -26
  393. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Exceptions__factory.js +26 -26
  394. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2__factory.d.ts +252 -252
  395. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2__factory.js +272 -272
  396. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3Events__factory.d.ts +5 -5
  397. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3Events__factory.js +5 -5
  398. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.d.ts +398 -390
  399. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.js +436 -426
  400. package/lib/types/factories/ICurvePool_2.sol/ICurvePool2Assets__factory.d.ts +191 -191
  401. package/lib/types/factories/ICurvePool_2.sol/ICurvePool2Assets__factory.js +191 -191
  402. package/lib/types/factories/ICurvePool_3.sol/ICurvePool3Assets__factory.d.ts +191 -191
  403. package/lib/types/factories/ICurvePool_3.sol/ICurvePool3Assets__factory.js +191 -191
  404. package/lib/types/factories/ICurvePool_4.sol/ICurvePool4Assets__factory.d.ts +191 -191
  405. package/lib/types/factories/ICurvePool_4.sol/ICurvePool4Assets__factory.js +191 -191
  406. package/lib/types/factories/ICurvePool__factory.d.ts +159 -159
  407. package/lib/types/factories/ICurvePool__factory.js +159 -159
  408. package/lib/types/factories/ICurveV1Adapter__factory.d.ts +171 -229
  409. package/lib/types/factories/ICurveV1Adapter__factory.js +171 -248
  410. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.d.ts +189 -247
  411. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.js +189 -266
  412. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.d.ts +189 -247
  413. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.js +189 -266
  414. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.d.ts +189 -247
  415. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.js +189 -266
  416. package/lib/types/factories/IDaiLikePermit__factory.d.ts +46 -0
  417. package/lib/types/factories/IDaiLikePermit__factory.js +67 -0
  418. package/lib/types/factories/IDataCompressorV2_10__factory.d.ts +354 -396
  419. package/lib/types/factories/IDataCompressorV2_10__factory.js +358 -412
  420. package/lib/types/factories/IDataCompressorV3_00__factory.d.ts +659 -469
  421. package/lib/types/factories/IDataCompressorV3_00__factory.js +734 -492
  422. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributorEvents__factory.d.ts +14 -14
  423. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributorEvents__factory.js +14 -14
  424. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.d.ts +43 -43
  425. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.js +51 -51
  426. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Events__factory.d.ts +38 -0
  427. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Events__factory.js +58 -0
  428. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Exceptions__factory.d.ts +24 -0
  429. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Exceptions__factory.js +39 -0
  430. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.d.ts → IDegenNFTV2.sol/IDegenNFTV2__factory.d.ts} +248 -238
  431. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.js → IDegenNFTV2.sol/IDegenNFTV2__factory.js} +270 -253
  432. package/lib/types/factories/IDegenNFTV2.sol/index.d.ts +3 -0
  433. package/lib/types/factories/IDegenNFTV2.sol/index.js +12 -0
  434. package/lib/types/factories/IERC165__factory.d.ts +22 -0
  435. package/lib/types/factories/IERC165__factory.js +38 -0
  436. package/lib/types/factories/IERC20Metadata__factory.d.ts +76 -76
  437. package/lib/types/factories/IERC20Metadata__factory.js +86 -86
  438. package/lib/types/factories/IERC20Permit__factory.d.ts +16 -16
  439. package/lib/types/factories/IERC20Permit__factory.js +16 -16
  440. package/lib/types/factories/IERC20ZapperDeposits__factory.d.ts +120 -0
  441. package/lib/types/factories/IERC20ZapperDeposits__factory.js +165 -0
  442. package/lib/types/factories/IERC20__factory.d.ts +67 -67
  443. package/lib/types/factories/IERC20__factory.js +77 -77
  444. package/lib/types/factories/IERC4626Adapter__factory.d.ts +220 -0
  445. package/lib/types/factories/IERC4626Adapter__factory.js +297 -0
  446. package/lib/types/factories/IERC4626__factory.d.ts +198 -198
  447. package/lib/types/factories/IERC4626__factory.js +221 -221
  448. package/lib/types/factories/IERC721Metadata__factory.d.ts +262 -0
  449. package/lib/types/factories/IERC721Metadata__factory.js +349 -0
  450. package/lib/types/factories/IERC721__factory.d.ts +228 -0
  451. package/lib/types/factories/IERC721__factory.js +304 -0
  452. package/lib/types/factories/IETHZapperDeposits__factory.d.ts +40 -0
  453. package/lib/types/factories/IETHZapperDeposits__factory.js +62 -0
  454. package/lib/types/factories/IFarmingPool__factory.d.ts +299 -0
  455. package/lib/types/factories/IFarmingPool__factory.js +396 -0
  456. package/lib/types/factories/IGaugeV3.sol/IGaugeV3Events__factory.d.ts +118 -0
  457. package/lib/types/factories/IGaugeV3.sol/IGaugeV3Events__factory.js +157 -0
  458. package/lib/types/factories/IGaugeV3.sol/IGaugeV3__factory.d.ts +342 -0
  459. package/lib/types/factories/IGaugeV3.sol/IGaugeV3__factory.js +448 -0
  460. package/lib/types/factories/IGaugeV3.sol/index.d.ts +2 -0
  461. package/lib/types/factories/IGaugeV3.sol/index.js +10 -0
  462. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.d.ts → IGearStakingV3.sol/IGearStakingV3Events__factory.d.ts} +55 -85
  463. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.js → IGearStakingV3.sol/IGearStakingV3Events__factory.js} +58 -94
  464. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.d.ts +504 -0
  465. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.js +660 -0
  466. package/lib/types/factories/IGearStakingV3.sol/index.d.ts +2 -0
  467. package/lib/types/factories/IGearStakingV3.sol/index.js +10 -0
  468. package/lib/types/factories/IInterestRateModel__factory.d.ts +8 -8
  469. package/lib/types/factories/IInterestRateModel__factory.js +8 -8
  470. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeedEvents__factory.d.ts +33 -0
  471. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeedEvents__factory.js +51 -0
  472. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeedExceptions__factory.d.ts +28 -0
  473. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeedExceptions__factory.js +44 -0
  474. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeed__factory.d.ts +261 -0
  475. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeed__factory.js +344 -0
  476. package/lib/types/factories/ILPPriceFeed.sol/index.d.ts +3 -0
  477. package/lib/types/factories/ILPPriceFeed.sol/index.js +12 -0
  478. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.d.ts → ILidoV1Adapter__factory.d.ts} +44 -74
  479. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.js → ILidoV1Adapter__factory.js} +45 -83
  480. package/lib/types/factories/ILinearInterestRateModelV3__factory.d.ts +98 -0
  481. package/lib/types/factories/ILinearInterestRateModelV3__factory.js +136 -0
  482. package/lib/types/factories/IOffchainOracle__factory.d.ts +11 -11
  483. package/lib/types/factories/IOffchainOracle__factory.js +11 -11
  484. package/lib/types/factories/IPermit2__factory.d.ts +113 -0
  485. package/lib/types/factories/IPermit2__factory.js +155 -0
  486. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events__factory.d.ts +103 -0
  487. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events__factory.js +140 -0
  488. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3__factory.d.ts +441 -0
  489. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3__factory.js +580 -0
  490. package/lib/types/factories/IPoolQuotaKeeperV3.sol/index.d.ts +2 -0
  491. package/lib/types/factories/IPoolQuotaKeeperV3.sol/index.js +10 -0
  492. package/lib/types/factories/IPoolService.sol/IPoolServiceEvents__factory.d.ts +66 -66
  493. package/lib/types/factories/IPoolService.sol/IPoolServiceEvents__factory.js +72 -72
  494. package/lib/types/factories/IPoolService.sol/IPoolService__factory.d.ts +235 -235
  495. package/lib/types/factories/IPoolService.sol/IPoolService__factory.js +286 -286
  496. package/lib/types/factories/IPoolV3.sol/IPoolV3Events__factory.d.ts +65 -65
  497. package/lib/types/factories/IPoolV3.sol/IPoolV3Events__factory.js +68 -68
  498. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.d.ts +574 -574
  499. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.js +698 -698
  500. package/lib/types/factories/IPriceFeed.sol/IPriceFeed__factory.d.ts +84 -0
  501. package/lib/types/factories/IPriceFeed.sol/IPriceFeed__factory.js +117 -0
  502. package/lib/types/factories/IPriceFeed.sol/IUpdatablePriceFeed__factory.d.ts +104 -0
  503. package/lib/types/factories/IPriceFeed.sol/IUpdatablePriceFeed__factory.js +143 -0
  504. package/lib/types/factories/IPriceFeed.sol/index.d.ts +2 -0
  505. package/lib/types/factories/IPriceFeed.sol/index.js +10 -0
  506. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Events__factory.d.ts +23 -0
  507. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Events__factory.js +38 -0
  508. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Exceptions__factory.d.ts +20 -0
  509. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Exceptions__factory.js +34 -0
  510. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Ext__factory.d.ts +197 -0
  511. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Ext__factory.js +267 -0
  512. package/lib/types/factories/{IWETHZapper__factory.d.ts → IPriceOracle.sol/IPriceOracleV2__factory.d.ts} +114 -99
  513. package/lib/types/factories/{IWERC20Zapper__factory.js → IPriceOracle.sol/IPriceOracleV2__factory.js} +119 -110
  514. package/lib/types/factories/IPriceOracle.sol/index.d.ts +4 -0
  515. package/lib/types/factories/IPriceOracle.sol/index.js +14 -0
  516. package/lib/types/factories/IPriceOracleBase__factory.d.ts +27 -27
  517. package/lib/types/factories/IPriceOracleBase__factory.js +27 -27
  518. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3Events__factory.d.ts +78 -0
  519. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3Events__factory.js +106 -0
  520. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3__factory.d.ts +326 -0
  521. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3__factory.js +433 -0
  522. package/lib/types/factories/IPriceOracleV3.sol/index.d.ts +2 -0
  523. package/lib/types/factories/IPriceOracleV3.sol/index.js +10 -0
  524. package/lib/types/factories/IRouterV3__factory.d.ts +451 -0
  525. package/lib/types/factories/IRouterV3__factory.js +597 -0
  526. package/lib/types/factories/IRouter__factory.d.ts +168 -154
  527. package/lib/types/factories/IRouter__factory.js +186 -167
  528. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterEvents__factory.d.ts +8 -8
  529. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterEvents__factory.js +9 -9
  530. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions__factory.d.ts +2 -2
  531. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions__factory.js +2 -2
  532. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.d.ts +80 -76
  533. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.js +87 -82
  534. package/lib/types/factories/IUniswapV3.sol/ISwapRouter__factory.d.ts +50 -50
  535. package/lib/types/factories/IUniswapV3.sol/ISwapRouter__factory.js +50 -50
  536. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterEvents__factory.d.ts +10 -10
  537. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterEvents__factory.js +11 -11
  538. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions__factory.d.ts +2 -2
  539. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions__factory.js +2 -2
  540. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.d.ts +142 -134
  541. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.js +151 -141
  542. package/lib/types/factories/IVersion__factory.d.ts +3 -3
  543. package/lib/types/factories/IVersion__factory.js +3 -3
  544. package/lib/types/factories/IVotingContractV3__factory.d.ts +44 -0
  545. package/lib/types/factories/IVotingContractV3__factory.js +65 -0
  546. package/lib/types/factories/IWETHGateway__factory.d.ts +14 -14
  547. package/lib/types/factories/IWETHGateway__factory.js +14 -14
  548. package/lib/types/factories/IWETH__factory.d.ts +194 -0
  549. package/lib/types/factories/IWETH__factory.js +260 -0
  550. package/lib/types/factories/IYVault__factory.d.ts +112 -112
  551. package/lib/types/factories/IYVault__factory.js +122 -122
  552. package/lib/types/factories/IYearnV2Adapter__factory.d.ts +76 -68
  553. package/lib/types/factories/IYearnV2Adapter__factory.js +82 -70
  554. package/lib/types/factories/IZapperRegister__factory.d.ts +42 -0
  555. package/lib/types/factories/IZapperRegister__factory.js +64 -0
  556. package/lib/types/factories/IZapper__factory.d.ts +40 -48
  557. package/lib/types/factories/IZapper__factory.js +40 -50
  558. package/lib/types/factories/IstETH.sol/IstETHGetters__factory.d.ts +97 -97
  559. package/lib/types/factories/IstETH.sol/IstETHGetters__factory.js +107 -107
  560. package/lib/types/factories/IstETH.sol/IstETH__factory.d.ts +101 -101
  561. package/lib/types/factories/IstETH.sol/IstETH__factory.js +111 -111
  562. package/lib/types/factories/IwstETH.sol/IwstETHGetters__factory.d.ts +93 -93
  563. package/lib/types/factories/IwstETH.sol/IwstETHGetters__factory.js +103 -103
  564. package/lib/types/factories/IwstETH.sol/IwstETH__factory.d.ts +101 -101
  565. package/lib/types/factories/IwstETH.sol/IwstETH__factory.js +111 -111
  566. package/lib/types/factories/IwstETHGateway.sol/IwstETHGateWay__factory.d.ts +14 -14
  567. package/lib/types/factories/IwstETHGateway.sol/IwstETHGateWay__factory.js +15 -15
  568. package/lib/types/factories/IwstETHV1Adapter__factory.d.ts +52 -44
  569. package/lib/types/factories/IwstETHV1Adapter__factory.js +56 -44
  570. package/lib/types/factories/NumericArrayLib__factory.d.ts +25 -0
  571. package/lib/types/factories/NumericArrayLib__factory.js +47 -0
  572. package/lib/types/factories/Ownable__factory.d.ts +23 -23
  573. package/lib/types/factories/Ownable__factory.js +27 -27
  574. package/lib/types/factories/RedstoneConstants__factory.d.ts +65 -0
  575. package/lib/types/factories/RedstoneConstants__factory.js +99 -0
  576. package/lib/types/factories/RedstoneConsumerBase__factory.d.ts +164 -0
  577. package/lib/types/factories/RedstoneConsumerBase__factory.js +223 -0
  578. package/lib/types/factories/RedstoneConsumerNumericBase__factory.d.ts +164 -0
  579. package/lib/types/factories/RedstoneConsumerNumericBase__factory.js +223 -0
  580. package/lib/types/factories/RedstoneDefaultsLib__factory.d.ts +45 -0
  581. package/lib/types/factories/RedstoneDefaultsLib__factory.js +74 -0
  582. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.d.ts → RedstonePriceFeed.sol/IRedstonePriceFeedEvents__factory.d.ts} +9 -9
  583. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.js → RedstonePriceFeed.sol/IRedstonePriceFeedEvents__factory.js} +8 -8
  584. package/lib/types/factories/RedstonePriceFeed.sol/IRedstonePriceFeedExceptions__factory.d.ts +28 -0
  585. package/lib/types/factories/RedstonePriceFeed.sol/IRedstonePriceFeedExceptions__factory.js +44 -0
  586. package/lib/types/factories/RedstonePriceFeed.sol/RedstonePriceFeed__factory.d.ts +443 -0
  587. package/lib/types/factories/RedstonePriceFeed.sol/RedstonePriceFeed__factory.js +589 -0
  588. package/lib/types/factories/RedstonePriceFeed.sol/index.d.ts +3 -0
  589. package/lib/types/factories/RedstonePriceFeed.sol/index.js +12 -0
  590. package/lib/types/factories/SafeERC20__factory.d.ts +49 -0
  591. package/lib/types/factories/SafeERC20__factory.js +77 -0
  592. package/lib/types/factories/contracts/index.d.ts +1 -0
  593. package/lib/types/factories/contracts/index.js +30 -0
  594. package/lib/types/factories/contracts/interfaces/IGasPricer__factory.d.ts +22 -0
  595. package/lib/types/factories/contracts/interfaces/IGasPricer__factory.js +38 -0
  596. package/lib/types/factories/contracts/interfaces/index.d.ts +1 -0
  597. package/lib/types/factories/contracts/interfaces/index.js +8 -0
  598. package/lib/types/factories/index.d.ts +44 -5
  599. package/lib/types/factories/index.js +72 -10
  600. package/lib/types/factories/interfaces/IGasPricer__factory.d.ts +22 -0
  601. package/lib/types/factories/interfaces/IGasPricer__factory.js +38 -0
  602. package/lib/types/factories/interfaces/index.d.ts +1 -0
  603. package/lib/types/factories/interfaces/index.js +8 -0
  604. package/lib/types/index.d.ts +166 -20
  605. package/lib/types/index.js +131 -16
  606. package/lib/types/interfaces/IGasPricer.d.ts +44 -0
  607. package/lib/types/interfaces/IGasPricer.js +2 -0
  608. package/lib/types/interfaces/index.d.ts +1 -0
  609. package/lib/types/interfaces/index.js +2 -0
  610. package/lib/utils/formatter.d.ts +1 -4
  611. package/lib/utils/formatter.js +3 -69
  612. package/lib/utils/math.d.ts +2 -0
  613. package/lib/utils/math.js +2 -0
  614. package/lib/utils/types.d.ts +1 -0
  615. package/lib/watchers/creditAccountWatcher.d.ts +3 -2
  616. package/lib/watchers/creditAccountWatcher.js +19 -13
  617. package/lib/watchers/creditAccountWatcher.spec.js +18 -18
  618. package/lib/watchers/creditManagerWatcher.d.ts +5 -3
  619. package/lib/watchers/creditManagerWatcher.js +32 -10
  620. package/lib/watchers/creditManagerWatcher.spec.js +12 -4
  621. package/package.json +12 -8
  622. package/contracts/IRouter.sol +0 -100
  623. package/lib/core/pool/index.d.ts +0 -1
  624. package/lib/core/strategy.spec.js +0 -62
  625. package/lib/types/ILidoV1Adapter.sol/index.d.ts +0 -3
  626. package/lib/types/IWERC20Zapper.d.ts +0 -166
  627. package/lib/types/IWETHZapper.d.ts +0 -162
  628. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3.d.ts +0 -370
  629. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.d.ts +0 -133
  630. package/lib/types/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  631. package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.d.ts +0 -12
  632. package/lib/types/factories/ILidoV1Adapter.sol/index.d.ts +0 -3
  633. package/lib/types/factories/ILidoV1Adapter.sol/index.js +0 -12
  634. package/lib/types/factories/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  635. package/lib/types/factories/IWithdrawalManagerV3.sol/index.js +0 -10
  636. /package/lib/core/{strategy.spec.d.ts → gaugeMath.spec.d.ts} +0 -0
  637. /package/lib/{types/IConvexV1BoosterAdapter.js → pathfinder/v1/core.js} +0 -0
  638. /package/lib/{types/ILidoV1Adapter.sol/ILidoV1Adapter.js → payload/gauge.js} +0 -0
  639. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterEvents.js → CalldataExtractor.js} +0 -0
  640. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions.js → ERC20.js} +0 -0
  641. /package/lib/types/{ILidoV1Adapter.sol/index.js → FarmAccounting.js} +0 -0
  642. /package/lib/types/{IWERC20Zapper.js → IAaveV2_LendingPoolAdapter.js} +0 -0
  643. /package/lib/types/{IWETHZapper.js → IAaveV2_WrappedATokenAdapter.js} +0 -0
  644. /package/lib/types/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3.js → IBalancerV2Vault.sol/IBalancerV2Vault.js} +0 -0
  645. /package/lib/types/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.js → IBalancerV2Vault.sol/IBalancerV2VaultGetters.js} +0 -0
  646. /package/lib/types/{IWithdrawalManagerV3.sol → IBalancerV2Vault.sol}/index.js +0 -0
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PathFinder = void 0;
4
4
  const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
5
- const ethers_1 = require("ethers");
6
5
  const types_1 = require("../types");
7
6
  const pathOptions_1 = require("./pathOptions");
8
7
  const MAX_GAS_PER_ROUTE = 200e6;
@@ -10,117 +9,127 @@ const GAS_PER_BLOCK = 400e6;
10
9
  class PathFinder {
11
10
  pathFinder;
12
11
  network;
13
- static connectors = [
14
- "USDC",
15
- "WETH",
16
- "DAI",
17
- "FRAX",
18
- ];
19
12
  _connectors;
20
- constructor(address, provider, network = "Mainnet", connectors = PathFinder.connectors) {
21
- this.pathFinder = types_1.IRouter__factory.connect(address, provider);
13
+ constructor(address, provider, network = "Mainnet") {
14
+ this.pathFinder = types_1.IRouterV3__factory.connect(address, provider);
22
15
  this.network = network;
23
- this._connectors = connectors
24
- .map(c => sdk_gov_1.tokenDataByNetwork[this.network][c]?.toLowerCase())
25
- .filter(t => !!t);
16
+ this._connectors = (0, sdk_gov_1.getConnectors)(network);
26
17
  }
27
- async findAllSwaps(creditAccount, swapOperation, tokenIn, tokenOut, amount, slippage) {
18
+ async findAllSwaps({ creditAccount, swapOperation, tokenIn, tokenOut, amount, leftoverAmount, slippage, }) {
28
19
  const connectors = this.getAvailableConnectors(creditAccount.balances);
29
20
  const swapTask = {
30
21
  swapOperation: swapOperation,
31
22
  creditAccount: creditAccount.addr,
32
- tokenIn: sdk_gov_1.tokenDataByNetwork[this.network][tokenIn] || tokenIn,
33
- tokenOut: sdk_gov_1.tokenDataByNetwork[this.network][tokenOut] ||
34
- tokenOut,
23
+ tokenIn,
24
+ tokenOut,
35
25
  connectors,
36
- amount: ethers_1.BigNumber.from(amount),
37
- slippage: ethers_1.BigNumber.from(slippage),
38
- externalSlippage: false,
26
+ amount,
27
+ leftoverAmount,
39
28
  };
40
- const results = await this.pathFinder.callStatic.findAllSwaps(swapTask, {
29
+ const results = await this.pathFinder.callStatic.findAllSwaps(swapTask, slippage, {
41
30
  gasLimit: GAS_PER_BLOCK,
42
31
  });
43
32
  const unique = {};
44
33
  results.forEach(r => {
45
- const key = `${r.amount.toHexString()}${r.calls
34
+ const key = `${r.minAmount.toHexString()}${r.calls
46
35
  .map(c => `${c.target.toLowerCase()}${c.callData}`)
47
36
  .join("-")}`;
48
37
  unique[key] = {
49
38
  amount: (0, sdk_gov_1.toBigInt)(r.amount),
39
+ minAmount: (0, sdk_gov_1.toBigInt)(r.minAmount),
40
+ gasUsage: (0, sdk_gov_1.toBigInt)(r.gasUsage),
50
41
  calls: r.calls,
51
42
  };
52
43
  });
53
44
  return Object.values(unique);
54
45
  }
55
- async findOneTokenPath(creditAccount, tokenIn, tokenOut, amount, slippage) {
56
- const tokenInAddr = sdk_gov_1.tokenDataByNetwork[this.network][tokenIn] || tokenIn;
46
+ async findOneTokenPath({ creditAccount, tokenIn, tokenOut, amount, slippage, }) {
57
47
  const connectors = this.getAvailableConnectors(creditAccount.balances);
58
- const result = await this.pathFinder.callStatic.findOneTokenPath(tokenInAddr, amount, sdk_gov_1.tokenDataByNetwork[this.network][tokenOut] || tokenOut, creditAccount.addr, connectors, slippage, {
48
+ const result = await this.pathFinder.callStatic.findOneTokenPath(tokenIn, amount, tokenOut, creditAccount.addr, connectors, slippage, {
59
49
  gasLimit: GAS_PER_BLOCK,
60
50
  });
61
51
  return {
62
52
  amount: (0, sdk_gov_1.toBigInt)(result.amount),
53
+ minAmount: (0, sdk_gov_1.toBigInt)(result.minAmount),
54
+ gasUsage: (0, sdk_gov_1.toBigInt)(result.gasUsage),
63
55
  calls: result.calls,
64
56
  };
65
57
  }
66
58
  /**
67
- * @dev Finds the best path for opening credit account and converting all NORMAL tokens and LP token in the way to TARGET
68
- * @param cm CreditManagerData which represents credit manager you want to use to open credit account
59
+ * @dev Finds the best path for opening Credit Account and converting all NORMAL tokens and LP token in the way to TARGET
60
+ * @param cm CreditManagerData which represents credit manager you want to use to open Credit Account
69
61
  * @param expectedBalances Expected balances which would be on account accounting also debt. For example,
70
- * if you open an USDC credit account, borrow 50_000 USDC and provide 10 WETH and 10_USDC as collateral
62
+ * if you open an USDC Credit Account, borrow 50_000 USDC and provide 10 WETH and 10_USDC as collateral
71
63
  * from your own funds, expectedBalances should be: { "USDC": 60_000 * (10**6), "<address of WETH>": WAD.mul(10) }
72
64
  *
73
65
  * @param target Address of symbol of desired token
74
66
  * @param slippage Slippage in PERCENTAGE_FORMAT (100% = 10_000) per operation
75
67
  * @returns PathFinderOpenStrategyResult which
76
68
  */
77
- async findOpenStrategyPath(cm, expectedBalances, target, slippage) {
78
- const targetAddr = sdk_gov_1.tokenDataByNetwork[this.network][target] || target;
79
- const expectedBalancesAddr = Object.entries(expectedBalances).reduce((acc, [token, balance]) => {
80
- const tokenAddr = sdk_gov_1.tokenDataByNetwork[this.network][token] || token;
81
- acc[tokenAddr.toLowerCase()] = balance;
82
- return acc;
83
- }, {});
84
- const balances = cm.collateralTokens.map(token => ({
69
+ async findOpenStrategyPath({ creditManager: cm, expectedBalances, leftoverBalances, target, slippage, }) {
70
+ const input = cm.collateralTokens.map(token => ({
85
71
  token,
86
- balance: expectedBalancesAddr[token] || 0,
72
+ balance: expectedBalances[token]?.balance || 0n,
73
+ }));
74
+ const leftover = cm.collateralTokens.map(token => ({
75
+ token,
76
+ balance: leftoverBalances[token]?.balance || 1n,
87
77
  }));
88
78
  const connectors = this.getAvailableConnectors(cm.supportedTokens);
89
- const result = await this.pathFinder.callStatic.findOpenStrategyPath(cm.address, balances, targetAddr, connectors, slippage, {
79
+ const [outBalances, result] = await this.pathFinder.callStatic.findOpenStrategyPath(cm.address, input, leftover, target, connectors, slippage, {
90
80
  gasLimit: GAS_PER_BLOCK,
91
81
  });
92
- const balancesAfter = result[0].reduce((acc, b) => {
82
+ const balancesAfter = outBalances.reduce((acc, b) => {
93
83
  acc[b.token.toLowerCase()] = (0, sdk_gov_1.toBigInt)(b.balance);
94
84
  return acc;
95
85
  }, {});
96
86
  return {
97
- balances: balancesAfter,
98
- calls: result[1].calls,
87
+ balances: {
88
+ ...balancesAfter,
89
+ [target]: (expectedBalances[target]?.balance || 0n) + (0, sdk_gov_1.toBigInt)(result.amount),
90
+ },
91
+ minBalances: {
92
+ ...balancesAfter,
93
+ [target]: (expectedBalances[target]?.balance || 0n) +
94
+ (0, sdk_gov_1.toBigInt)(result.minAmount),
95
+ },
96
+ calls: result.calls,
97
+ minAmount: (0, sdk_gov_1.toBigInt)(result.minAmount),
98
+ amount: (0, sdk_gov_1.toBigInt)(result.amount),
99
+ gasUsage: (0, sdk_gov_1.toBigInt)(result.gasUsage),
99
100
  };
100
101
  }
101
102
  /**
102
103
  * @dev Finds the path to swap / withdraw all assets from CreditAccount into underlying asset
103
- * Can bu used for closing credit account and for liquidations as well.
104
+ * Can bu used for closing Credit Account and for liquidations as well.
104
105
  * @param creditAccount CreditAccountData object used for close path computation
105
106
  * @param slippage Slippage in PERCENTAGE_FORMAT (100% = 10_000) per operation
106
107
  * @return The best option in PathFinderCloseResult format, which
107
108
  * - underlyingBalance - total balance of underlying token
108
109
  * - calls - list of calls which should be done to swap & unwrap everything to underlying token
109
110
  */
110
- async findBestClosePath(creditAccount, slippage, noConcurency = false) {
111
+ async findBestClosePath({ creditAccount, creditManager: cm, expectedBalances, leftoverBalances, slippage, noConcurrency = false, }) {
111
112
  const loopsPerTx = Math.floor(GAS_PER_BLOCK / MAX_GAS_PER_ROUTE);
112
113
  const pathOptions = pathOptions_1.PathOptionFactory.generatePathOptions(creditAccount.allBalances, loopsPerTx);
114
+ const expected = cm.collateralTokens.map(token => ({
115
+ token,
116
+ balance: expectedBalances[token]?.balance || 0n,
117
+ }));
118
+ const leftover = cm.collateralTokens.map(token => ({
119
+ token,
120
+ balance: leftoverBalances[token]?.balance || 1n,
121
+ }));
113
122
  const connectors = this.getAvailableConnectors(creditAccount.balances);
114
123
  let results = [];
115
- if (noConcurency) {
124
+ if (noConcurrency) {
116
125
  for (const po of pathOptions) {
117
- results.push(await this.pathFinder.callStatic.findBestClosePath(creditAccount.addr, connectors, slippage, po, loopsPerTx, false, {
126
+ results.push(await this.pathFinder.callStatic.findBestClosePath(creditAccount.addr, expected, leftover, connectors, slippage, po, loopsPerTx, false, {
118
127
  gasLimit: GAS_PER_BLOCK,
119
128
  }));
120
129
  }
121
130
  }
122
131
  else {
123
- const requests = pathOptions.map(po => this.pathFinder.callStatic.findBestClosePath(creditAccount.addr, connectors, slippage, po, loopsPerTx, false, {
132
+ const requests = pathOptions.map(po => this.pathFinder.callStatic.findBestClosePath(creditAccount.addr, expected, leftover, connectors, slippage, po, loopsPerTx, false, {
124
133
  gasLimit: GAS_PER_BLOCK,
125
134
  }));
126
135
  results = await Promise.all(requests);
@@ -128,21 +137,23 @@ class PathFinder {
128
137
  const bestResult = results.reduce((best, [pathFinderResult, gasPriceRAY]) => PathFinder.compare(best, {
129
138
  calls: pathFinderResult.calls,
130
139
  amount: (0, sdk_gov_1.toBigInt)(pathFinderResult.amount),
140
+ minAmount: (0, sdk_gov_1.toBigInt)(pathFinderResult.minAmount),
131
141
  gasUsage: (0, sdk_gov_1.toBigInt)(pathFinderResult.gasUsage),
132
142
  }, (0, sdk_gov_1.toBigInt)(gasPriceRAY)), {
133
143
  amount: 0n,
144
+ minAmount: 0n,
134
145
  gasUsage: 0n,
135
146
  calls: [],
136
147
  });
137
148
  return {
138
- underlyingBalance: bestResult.amount +
149
+ ...bestResult,
150
+ underlyingBalance: bestResult.minAmount +
139
151
  creditAccount.allBalances[creditAccount.underlyingToken.toLowerCase()]
140
152
  .balance,
141
- calls: bestResult.calls,
142
153
  };
143
154
  }
144
155
  static compare(r1, r2, gasPriceRAY) {
145
- const comparator = ({ amount, gasUsage }, gasPrice) => amount - (gasUsage * gasPrice) / sdk_gov_1.RAY;
156
+ const comparator = ({ minAmount, gasUsage }, gasPrice) => minAmount - (gasUsage * gasPrice) / sdk_gov_1.RAY;
146
157
  return comparator(r1, gasPriceRAY) > comparator(r2, gasPriceRAY) ? r1 : r2;
147
158
  }
148
159
  getAvailableConnectors(availableList) {
@@ -7,12 +7,14 @@ const pathfinder_1 = require("./pathfinder");
7
7
  describe("PathFinder test", () => {
8
8
  it("compare works correctly", () => {
9
9
  const r1 = {
10
- amount: 2000n,
10
+ minAmount: 2000n,
11
+ amount: 20000n,
11
12
  gasUsage: 1000n,
12
13
  calls: [],
13
14
  };
14
15
  const r2 = {
15
- amount: 3000n,
16
+ minAmount: 3000n,
17
+ amount: 30000n,
16
18
  gasUsage: 2000n,
17
19
  calls: [],
18
20
  };
@@ -24,16 +26,31 @@ describe("PathFinder test", () => {
24
26
  it("has all expected connectors", () => {
25
27
  const pf = new pathfinder_1.PathFinder("", new ethers_1.providers.JsonRpcProvider(), "Mainnet");
26
28
  const allowedTokens = {
27
- [sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase()]: true,
28
29
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: true,
29
30
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()]: true,
31
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase()]: true,
30
32
  [sdk_gov_1.tokenDataByNetwork.Mainnet.FRAX.toLowerCase()]: true,
33
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.rETH.toLowerCase()]: true,
31
34
  };
32
35
  (0, chai_1.expect)(pf.getAvailableConnectors(allowedTokens)).to.be.deep.equal([
33
- sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase(),
34
36
  sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase(),
35
37
  sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase(),
38
+ sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase(),
36
39
  sdk_gov_1.tokenDataByNetwork.Mainnet.FRAX.toLowerCase(),
40
+ sdk_gov_1.tokenDataByNetwork.Mainnet.rETH.toLowerCase(),
41
+ ]);
42
+ });
43
+ it("has all expected connectors, when gew are disabled", () => {
44
+ const pf = new pathfinder_1.PathFinder("", new ethers_1.providers.JsonRpcProvider(), "Mainnet");
45
+ const allowedTokens = {
46
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: true,
47
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()]: true,
48
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.rETH.toLowerCase()]: true,
49
+ };
50
+ (0, chai_1.expect)(pf.getAvailableConnectors(allowedTokens)).to.be.deep.equal([
51
+ sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase(),
52
+ sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase(),
53
+ sdk_gov_1.tokenDataByNetwork.Mainnet.rETH.toLowerCase(),
37
54
  ]);
38
55
  });
39
56
  });
@@ -0,0 +1,35 @@
1
+ import { providers, utils } from "ethers";
2
+ import { MultiCall } from "./core";
3
+ export interface FeeInfo {
4
+ type: KnownFeeTypes;
5
+ value: bigint;
6
+ }
7
+ type KnownFeeTypes = "curve" | "lido" | "uniswap_v2" | "uniswap_v3" | "balancer";
8
+ export declare const BALANCER_VAULT_ABI: {
9
+ inputs: never[];
10
+ name: string;
11
+ outputs: {
12
+ internalType: string;
13
+ name: string;
14
+ type: string;
15
+ }[];
16
+ stateMutability: string;
17
+ type: string;
18
+ }[];
19
+ export declare const BALANCER_VAULT_INTERFACE: utils.Interface;
20
+ interface FindPathFeesProps {
21
+ calls: Array<MultiCall>;
22
+ provider: providers.Provider;
23
+ contractsByAdapter: Record<string, string>;
24
+ }
25
+ export declare class PathFinderUtils {
26
+ static findPathFees({ calls, provider, contractsByAdapter, }: FindPathFeesProps): Promise<FeeInfo[]>;
27
+ private static getUniswapV2Fee;
28
+ private static getUniswapV3Fee;
29
+ private static getCurveFeeCall;
30
+ private static getCurveFee;
31
+ private static getBalancerFeeCall;
32
+ private static getBalancerFee;
33
+ private static getLidoFee;
34
+ }
35
+ export {};
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PathFinderUtils = exports.BALANCER_VAULT_INTERFACE = exports.BALANCER_VAULT_ABI = void 0;
4
+ const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
5
+ const ethers_1 = require("ethers");
6
+ const utils_1 = require("ethers/lib/utils");
7
+ const balancerV2VaultParser_1 = require("../parsers/balancerV2VaultParser");
8
+ const curveAdapterParser_1 = require("../parsers/curveAdapterParser");
9
+ const lidoAdapterParser_1 = require("../parsers/lidoAdapterParser");
10
+ const txParser_1 = require("../parsers/txParser");
11
+ const uniV2AdapterParser_1 = require("../parsers/uniV2AdapterParser");
12
+ const uniV3AdapterParser_1 = require("../parsers/uniV3AdapterParser");
13
+ const types_1 = require("../types");
14
+ const CURVE_FEE_DECIMALS = 100000000n;
15
+ const BALANCER_FEE_DECIMALS = 10000000000000000n;
16
+ exports.BALANCER_VAULT_ABI = [
17
+ {
18
+ inputs: [],
19
+ name: "getSwapFeePercentage",
20
+ outputs: [
21
+ {
22
+ internalType: "uint256",
23
+ name: "",
24
+ type: "uint256",
25
+ },
26
+ ],
27
+ stateMutability: "view",
28
+ type: "function",
29
+ },
30
+ ];
31
+ exports.BALANCER_VAULT_INTERFACE = new utils_1.Interface(exports.BALANCER_VAULT_ABI);
32
+ class PathFinderUtils {
33
+ static async findPathFees({ calls, provider, contractsByAdapter, }) {
34
+ const pathObjects = txParser_1.TxParser.parseToObjectMultiCall(calls);
35
+ const { simpleFees, curve, balancer } = pathObjects.reduce((acc, pathSegment) => {
36
+ if (!pathSegment)
37
+ return acc;
38
+ const { callObject, parser } = pathSegment;
39
+ switch (true) {
40
+ case parser instanceof uniV2AdapterParser_1.UniswapV2AdapterParser: {
41
+ const f = this.getUniswapV2Fee(callObject);
42
+ if (f)
43
+ acc.simpleFees.push(f);
44
+ break;
45
+ }
46
+ case parser instanceof uniV3AdapterParser_1.UniswapV3AdapterParser: {
47
+ const f = this.getUniswapV3Fee(callObject);
48
+ if (f)
49
+ acc.simpleFees.push(f);
50
+ break;
51
+ }
52
+ case parser instanceof lidoAdapterParser_1.LidoAdapterParser: {
53
+ const f = this.getLidoFee();
54
+ if (f)
55
+ acc.simpleFees.push(f);
56
+ break;
57
+ }
58
+ case parser instanceof curveAdapterParser_1.CurveAdapterParser: {
59
+ const call = this.getCurveFeeCall(callObject, contractsByAdapter);
60
+ if (call)
61
+ acc.curve.push(call);
62
+ break;
63
+ }
64
+ case parser instanceof balancerV2VaultParser_1.BalancerV2VaultParser: {
65
+ const call = this.getBalancerFeeCall(callObject);
66
+ if (call)
67
+ acc.balancer.push(call);
68
+ break;
69
+ }
70
+ }
71
+ return acc;
72
+ }, {
73
+ simpleFees: [],
74
+ curve: [],
75
+ balancer: [],
76
+ });
77
+ const response = await (0, sdk_gov_1.safeMulticall)([...curve, ...balancer], provider);
78
+ const curveEnds = curve.length;
79
+ const curveResponse = response.slice(0, curveEnds);
80
+ const balancerEnds = balancer.length;
81
+ const balancerResponse = response.slice(curveEnds, balancerEnds);
82
+ const curveFees = curveResponse.map(r => this.getCurveFee(r));
83
+ const balancerFees = balancerResponse.map(r => this.getBalancerFee(r));
84
+ const fees = [...simpleFees, ...curveFees, ...balancerFees];
85
+ return fees;
86
+ }
87
+ static getUniswapV2Fee(callObject) {
88
+ const { name } = callObject.functionFragment;
89
+ switch (name) {
90
+ case "swapExactTokensForTokens":
91
+ case "swapTokensForExactTokens":
92
+ case "swapDiffTokensForTokens": {
93
+ // 0.3%
94
+ return {
95
+ type: "uniswap_v2",
96
+ value: 3000n,
97
+ };
98
+ }
99
+ default:
100
+ return null;
101
+ }
102
+ }
103
+ static getUniswapV3Fee(callObject) {
104
+ const { name } = callObject.functionFragment;
105
+ switch (name) {
106
+ case "exactInputSingle":
107
+ case "exactDiffInputSingle":
108
+ case "exactOutputSingle": {
109
+ const { params } = callObject.args || {};
110
+ const { fee = 0 } = params || {};
111
+ return {
112
+ type: "uniswap_v3",
113
+ value: (0, sdk_gov_1.toBigInt)(fee),
114
+ };
115
+ }
116
+ default:
117
+ return null;
118
+ }
119
+ }
120
+ static getCurveFeeCall(callObject, contractsByAdapter) {
121
+ const { name } = callObject.functionFragment;
122
+ switch (name) {
123
+ case "exchange":
124
+ case "exchange_underlying":
125
+ case "exchange_diff":
126
+ case "exchange_diff_underlying": {
127
+ const adapter = (callObject.address || "").toLowerCase();
128
+ const contract = contractsByAdapter[adapter];
129
+ return contract
130
+ ? {
131
+ address: contract,
132
+ interface: types_1.ICurvePool__factory.createInterface(),
133
+ method: "fee()",
134
+ }
135
+ : null;
136
+ }
137
+ default:
138
+ return null;
139
+ }
140
+ }
141
+ static getCurveFee({ value }) {
142
+ const feeOriginal = (0, sdk_gov_1.toBigInt)(value || 0n);
143
+ return {
144
+ type: "curve",
145
+ value: (feeOriginal * sdk_gov_1.PERCENTAGE_FACTOR) / CURVE_FEE_DECIMALS,
146
+ };
147
+ }
148
+ static getBalancerFeeCall(callObject) {
149
+ const { name } = callObject.functionFragment;
150
+ switch (name) {
151
+ case "swapDiff":
152
+ case "swap": {
153
+ const { poolId = "" } = callObject.args?.[0] || {};
154
+ // !& implement address getting
155
+ const [contract] = ethers_1.utils.defaultAbiCoder.decode(["address", "unit16"], poolId);
156
+ return contract
157
+ ? {
158
+ address: contract,
159
+ interface: exports.BALANCER_VAULT_INTERFACE,
160
+ method: "getSwapFeePercentage()",
161
+ }
162
+ : null;
163
+ }
164
+ default:
165
+ return null;
166
+ }
167
+ }
168
+ static getBalancerFee({ value }) {
169
+ const feeOriginal = (0, sdk_gov_1.toBigInt)(value || 0n);
170
+ return {
171
+ type: "balancer",
172
+ value: (feeOriginal * sdk_gov_1.PERCENTAGE_FACTOR) / BALANCER_FEE_DECIMALS,
173
+ };
174
+ }
175
+ static getLidoFee() {
176
+ return {
177
+ type: "lido",
178
+ value: 0n,
179
+ };
180
+ }
181
+ }
182
+ exports.PathFinderUtils = PathFinderUtils;
@@ -0,0 +1,16 @@
1
+ import { ExcludeArrayProps } from "@gearbox-protocol/sdk-gov";
2
+ import { SwapTaskStructOutput } from "../../types/IRouter";
3
+ import { MultiCall } from "../core";
4
+ export type SwapTaskV1 = ExcludeArrayProps<SwapTaskStructOutput>;
5
+ export interface PathFinderV1Result {
6
+ amount: bigint;
7
+ calls: Array<MultiCall>;
8
+ }
9
+ export interface PathFinderV1OpenStrategyResult {
10
+ balances: Record<string, bigint>;
11
+ calls: Array<MultiCall>;
12
+ }
13
+ export interface PathFinderV1CloseResult {
14
+ underlyingBalance: bigint;
15
+ calls: Array<MultiCall>;
16
+ }
@@ -0,0 +1,46 @@
1
+ import { NetworkType, SupportedToken } from "@gearbox-protocol/sdk-gov";
2
+ import { BigNumberish, providers, Signer } from "ethers";
3
+ import { CreditAccountData } from "../../core/creditAccount";
4
+ import { CreditManagerData } from "../../core/creditManager";
5
+ import { IRouter } from "../../types";
6
+ import { MultiCall, SwapOperation } from "../core";
7
+ import { PathFinderV1CloseResult, PathFinderV1OpenStrategyResult, PathFinderV1Result } from "./core";
8
+ export interface CloseResult {
9
+ amount: bigint;
10
+ calls: Array<MultiCall>;
11
+ gasUsage: bigint;
12
+ }
13
+ export declare class PathFinderV1 {
14
+ pathFinder: IRouter;
15
+ network: NetworkType;
16
+ static connectors: Array<SupportedToken>;
17
+ protected readonly _connectors: Array<string>;
18
+ constructor(address: string, provider: Signer | providers.Provider, network?: NetworkType, connectors?: SupportedToken[]);
19
+ findAllSwaps(creditAccount: CreditAccountData, swapOperation: SwapOperation, tokenIn: SupportedToken | string, tokenOut: SupportedToken | string, amount: BigNumberish, slippage: number): Promise<Array<PathFinderV1Result>>;
20
+ findOneTokenPath(creditAccount: CreditAccountData, tokenIn: SupportedToken | string, tokenOut: SupportedToken | string, amount: BigNumberish, slippage: number): Promise<PathFinderV1Result>;
21
+ /**
22
+ * @dev Finds the best path for opening credit account and converting all NORMAL tokens and LP token in the way to TARGET
23
+ * @param cm CreditManagerData which represents credit manager you want to use to open credit account
24
+ * @param expectedBalances Expected balances which would be on account accounting also debt. For example,
25
+ * if you open an USDC credit account, borrow 50_000 USDC and provide 10 WETH and 10_USDC as collateral
26
+ * from your own funds, expectedBalances should be: { "USDC": 60_000 * (10**6), "<address of WETH>": WAD.mul(10) }
27
+ *
28
+ * @param target Address of symbol of desired token
29
+ * @param slippage Slippage in PERCENTAGE_FORMAT (100% = 10_000) per operation
30
+ * @returns PathFinderOpenStrategyResult which
31
+ */
32
+ findOpenStrategyPath(cm: CreditManagerData, expectedBalances: Record<SupportedToken | string, BigNumberish>, target: SupportedToken | string, slippage: number): Promise<PathFinderV1OpenStrategyResult>;
33
+ /**
34
+ * @dev Finds the path to swap / withdraw all assets from CreditAccount into underlying asset
35
+ * Can bu used for closing credit account and for liquidations as well.
36
+ * @param creditAccount CreditAccountData object used for close path computation
37
+ * @param slippage Slippage in PERCENTAGE_FORMAT (100% = 10_000) per operation
38
+ * @return The best option in PathFinderCloseResult format, which
39
+ * - underlyingBalance - total balance of underlying token
40
+ * - calls - list of calls which should be done to swap & unwrap everything to underlying token
41
+ */
42
+ findBestClosePath(creditAccount: CreditAccountData, slippage: number, noConcurency?: boolean): Promise<PathFinderV1CloseResult>;
43
+ static compare(r1: CloseResult, r2: CloseResult, gasPriceRAY: bigint): CloseResult;
44
+ getAvailableConnectors(availableList: Record<string, bigint> | Record<string, true>): string[];
45
+ static getAvailableConnectors(availableList: Record<string, bigint> | Record<string, true>, connectors: string[]): string[];
46
+ }