@gearbox-protocol/sdk 3.0.0-next.11 → 3.0.0-next.111

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 (647) hide show
  1. package/contracts/index.sol +32 -3
  2. package/lib/apy/convexAPY.d.ts +3 -3
  3. package/lib/apy/convexAPY.js +7 -2
  4. package/lib/apy/curveAPY.d.ts +4 -4
  5. package/lib/apy/curveAPY.js +5 -9
  6. package/lib/apy/defiLamaAPY.d.ts +3 -0
  7. package/lib/apy/defiLamaAPY.js +72 -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 +3 -1
  11. package/lib/apy/lidoAPY.js +6 -3
  12. package/lib/apy/yearnAPY.d.ts +3 -3
  13. package/lib/apy/yearnAPY.js +12 -9
  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 +72 -15
  19. package/lib/core/creditAccount.js +156 -62
  20. package/lib/core/creditAccount.spec.js +908 -17
  21. package/lib/core/creditManager.d.ts +18 -6
  22. package/lib/core/creditManager.js +61 -13
  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} +16 -8
  34. package/lib/core/{pool/data.js → pool.js} +43 -20
  35. package/lib/core/strategy.d.ts +18 -21
  36. package/lib/core/strategy.js +16 -36
  37. package/lib/core/trade.d.ts +11 -12
  38. package/lib/core/trade.js +36 -29
  39. package/lib/core/transactions.d.ts +110 -14
  40. package/lib/core/transactions.js +191 -108
  41. package/lib/index.d.ts +5 -2
  42. package/lib/index.js +5 -2
  43. package/lib/parsers/ERC20Parser.js +1 -1
  44. package/lib/parsers/aaveV2LendingPoolAdapterParser.d.ts +7 -0
  45. package/lib/parsers/aaveV2LendingPoolAdapterParser.js +21 -0
  46. package/lib/parsers/aaveV2WrappedATokenAdapterParser.d.ts +7 -0
  47. package/lib/parsers/aaveV2WrappedATokenAdapterParser.js +21 -0
  48. package/lib/parsers/abstractParser.d.ts +7 -5
  49. package/lib/parsers/abstractParser.js +4 -2
  50. package/lib/parsers/addressProviderParser.js +1 -1
  51. package/lib/parsers/balancerV2VaultParser.d.ts +7 -0
  52. package/lib/parsers/balancerV2VaultParser.js +34 -0
  53. package/lib/parsers/compoundV2CTokenAdapterParser.d.ts +7 -0
  54. package/lib/parsers/compoundV2CTokenAdapterParser.js +21 -0
  55. package/lib/parsers/convexBaseRewardPoolAdapterParser.js +11 -9
  56. package/lib/parsers/convexBaseRewardPoolAdapterParser.spec.js +9 -6
  57. package/lib/parsers/convexBoosterAdapterParser.js +7 -7
  58. package/lib/parsers/convexBoosterAdapterParser.spec.js +4 -4
  59. package/lib/parsers/convextRewardPoolParser.js +1 -1
  60. package/lib/parsers/creditFacadeParser.js +33 -6
  61. package/lib/parsers/creditFacadeParser.spec.js +2 -3
  62. package/lib/parsers/creditManagerParser.js +1 -1
  63. package/lib/parsers/curveAdapterParser.js +11 -12
  64. package/lib/parsers/curveAdapterParser.spec.js +6 -2
  65. package/lib/parsers/erc626AdapterParser.d.ts +7 -0
  66. package/lib/parsers/erc626AdapterParser.js +21 -0
  67. package/lib/parsers/lidoAdapterParser.js +4 -3
  68. package/lib/parsers/lidoAdapterParser.spec.js +2 -2
  69. package/lib/parsers/lidoSTETHParser.js +1 -1
  70. package/lib/parsers/poolParser.js +1 -1
  71. package/lib/parsers/priceOracleParser.js +1 -1
  72. package/lib/parsers/txParser.d.ts +17 -11
  73. package/lib/parsers/txParser.js +41 -4
  74. package/lib/parsers/uniV2AdapterParser.js +6 -5
  75. package/lib/parsers/uniV2AdapterParser.spec.js +3 -2
  76. package/lib/parsers/uniV3AdapterParser.js +10 -8
  77. package/lib/parsers/uniV3AdapterParser.spec.js +3 -2
  78. package/lib/parsers/wstETHAdapterParser.js +7 -5
  79. package/lib/parsers/wstETHAdapterParser.spec.js +4 -4
  80. package/lib/parsers/yearnAdapterParser.spec.js +4 -4
  81. package/lib/parsers/yearnV2AdapterParser.js +14 -4
  82. package/lib/pathfinder/core.d.ts +8 -9
  83. package/lib/pathfinder/index.d.ts +4 -0
  84. package/lib/{core/pool → pathfinder}/index.js +4 -1
  85. package/lib/pathfinder/pathOptions.d.ts +2 -1
  86. package/lib/pathfinder/pathOptions.js +20 -1
  87. package/lib/pathfinder/pathOptions.spec.js +2 -2
  88. package/lib/pathfinder/pathfinder.d.ts +46 -19
  89. package/lib/pathfinder/pathfinder.js +59 -48
  90. package/lib/pathfinder/pathfinder.spec.js +21 -4
  91. package/lib/pathfinder/utils.d.ts +35 -0
  92. package/lib/pathfinder/utils.js +182 -0
  93. package/lib/pathfinder/v1/core.d.ts +16 -0
  94. package/lib/pathfinder/v1/pathfinderv1.d.ts +46 -0
  95. package/lib/pathfinder/v1/pathfinderv1.js +155 -0
  96. package/lib/pathfinder/v1/pathfinderv1.spec.d.ts +1 -0
  97. package/lib/pathfinder/v1/pathfinderv1.spec.js +39 -0
  98. package/lib/payload/creditAccount.d.ts +3 -4
  99. package/lib/payload/creditManager.d.ts +3 -0
  100. package/lib/payload/creditSession.d.ts +11 -0
  101. package/lib/payload/gauge.d.ts +12 -0
  102. package/lib/payload/pool.d.ts +4 -0
  103. package/lib/types/CalldataExtractor.d.ts +44 -0
  104. package/lib/types/ERC20.d.ts +198 -0
  105. package/lib/types/FarmAccounting.d.ts +27 -0
  106. package/lib/types/IAaveV2_LendingPoolAdapter.d.ts +171 -0
  107. package/lib/types/IAaveV2_WrappedATokenAdapter.d.ts +290 -0
  108. package/lib/types/IBalancerV2Vault.sol/IBalancerV2Vault.d.ts +308 -0
  109. package/lib/types/IBalancerV2Vault.sol/IBalancerV2VaultGetters.d.ts +112 -0
  110. package/lib/types/IBalancerV2Vault.sol/index.d.ts +2 -0
  111. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter.d.ts +466 -0
  112. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter.js +2 -0
  113. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents.d.ts +43 -0
  114. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents.js +2 -0
  115. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions.d.ts +27 -0
  116. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions.js +2 -0
  117. package/lib/types/IBalancerV2VaultAdapter.sol/index.d.ts +3 -0
  118. package/lib/types/IBalancerV2VaultAdapter.sol/index.js +2 -0
  119. package/lib/types/IBotListV3.sol/IBotListV3.d.ts +286 -0
  120. package/lib/types/IBotListV3.sol/IBotListV3.js +2 -0
  121. package/lib/types/IBotListV3.sol/IBotListV3Events.d.ts +103 -0
  122. package/lib/types/IBotListV3.sol/IBotListV3Events.js +2 -0
  123. package/lib/types/IBotListV3.sol/index.d.ts +2 -0
  124. package/lib/types/IBotListV3.sol/index.js +2 -0
  125. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter.d.ts +216 -0
  126. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter.js +2 -0
  127. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions.d.ts +27 -0
  128. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions.js +2 -0
  129. package/lib/types/ICompoundV2_CTokenAdapter.sol/index.d.ts +2 -0
  130. package/lib/types/ICompoundV2_CTokenAdapter.sol/index.js +2 -0
  131. package/lib/types/IContractsRegister.sol/IContractsRegister.d.ts +128 -0
  132. package/lib/types/IContractsRegister.sol/IContractsRegister.js +2 -0
  133. package/lib/types/IContractsRegister.sol/IContractsRegisterEvents.d.ts +50 -0
  134. package/lib/types/IContractsRegister.sol/IContractsRegisterEvents.js +2 -0
  135. package/lib/types/IContractsRegister.sol/index.d.ts +2 -0
  136. package/lib/types/IContractsRegister.sol/index.js +2 -0
  137. package/lib/types/IControllerTimelockV3.sol/IControllerTimelockV3.d.ts +504 -0
  138. package/lib/types/IControllerTimelockV3.sol/IControllerTimelockV3.js +2 -0
  139. package/lib/types/IControllerTimelockV3.sol/IControllerTimelockV3Events.d.ts +82 -0
  140. package/lib/types/IControllerTimelockV3.sol/IControllerTimelockV3Events.js +2 -0
  141. package/lib/types/IControllerTimelockV3.sol/index.d.ts +2 -0
  142. package/lib/types/IControllerTimelockV3.sol/index.js +2 -0
  143. package/lib/types/IConvexToken.d.ts +9 -1
  144. package/lib/types/IConvexV1BaseRewardPoolAdapter.d.ts +46 -30
  145. package/lib/types/{IConvexV1BoosterAdapter.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.d.ts} +40 -21
  146. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.js +2 -0
  147. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.d.ts +43 -0
  148. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.js +2 -0
  149. package/lib/types/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
  150. package/lib/types/IConvexV1BoosterAdapter.sol/index.js +2 -0
  151. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Extended.d.ts +7 -11
  152. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3.d.ts +58 -109
  153. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3Events.d.ts +31 -35
  154. package/lib/types/ICreditFacadeV3Multicall.d.ts +91 -60
  155. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3.d.ts +117 -97
  156. package/lib/types/ICurveV1Adapter.d.ts +41 -105
  157. package/lib/types/ICurveV1_2AssetsAdapter.d.ts +41 -105
  158. package/lib/types/ICurveV1_3AssetsAdapter.d.ts +41 -105
  159. package/lib/types/ICurveV1_4AssetsAdapter.d.ts +41 -105
  160. package/lib/types/IDaiLikePermit.d.ts +59 -0
  161. package/lib/types/IDaiLikePermit.js +2 -0
  162. package/lib/types/IDataCompressorV2_10.d.ts +26 -41
  163. package/lib/types/IDataCompressorV3_00.d.ts +123 -42
  164. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2.d.ts +339 -0
  165. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2.js +2 -0
  166. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Events.d.ts +61 -0
  167. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Events.js +2 -0
  168. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Exceptions.d.ts +27 -0
  169. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Exceptions.js +2 -0
  170. package/lib/types/IDegenNFTV2.sol/index.d.ts +3 -0
  171. package/lib/types/IDegenNFTV2.sol/index.js +2 -0
  172. package/lib/types/IERC165.d.ts +42 -0
  173. package/lib/types/IERC165.js +2 -0
  174. package/lib/types/IERC20Permit.d.ts +74 -0
  175. package/lib/types/IERC20Permit.js +2 -0
  176. package/lib/types/IERC20ZapperDeposits.d.ts +117 -0
  177. package/lib/types/IERC20ZapperDeposits.js +2 -0
  178. package/lib/types/IERC4626Adapter.d.ts +238 -0
  179. package/lib/types/IERC4626Adapter.js +2 -0
  180. package/lib/types/IERC721.d.ts +220 -0
  181. package/lib/types/IERC721.js +2 -0
  182. package/lib/types/IERC721Metadata.d.ts +244 -0
  183. package/lib/types/IERC721Metadata.js +2 -0
  184. package/lib/types/IETHZapperDeposits.d.ts +66 -0
  185. package/lib/types/IETHZapperDeposits.js +2 -0
  186. package/lib/types/IFarmingPool.d.ts +318 -0
  187. package/lib/types/IFarmingPool.js +2 -0
  188. package/lib/types/IGaugeV3.sol/IGaugeV3.d.ts +366 -0
  189. package/lib/types/IGaugeV3.sol/IGaugeV3.js +2 -0
  190. package/lib/types/IGaugeV3.sol/IGaugeV3Events.d.ts +114 -0
  191. package/lib/types/IGaugeV3.sol/IGaugeV3Events.js +2 -0
  192. package/lib/types/IGaugeV3.sol/index.d.ts +2 -0
  193. package/lib/types/IGaugeV3.sol/index.js +2 -0
  194. package/lib/types/IGearStakingV3.sol/IGearStakingV3.d.ts +408 -0
  195. package/lib/types/IGearStakingV3.sol/IGearStakingV3.js +2 -0
  196. package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.d.ts +117 -0
  197. package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.js +2 -0
  198. package/lib/types/IGearStakingV3.sol/index.d.ts +2 -0
  199. package/lib/types/IGearStakingV3.sol/index.js +2 -0
  200. package/lib/types/ILPPriceFeed.sol/ILPPriceFeed.d.ts +285 -0
  201. package/lib/types/ILPPriceFeed.sol/ILPPriceFeed.js +2 -0
  202. package/lib/types/ILPPriceFeed.sol/ILPPriceFeedEvents.d.ts +54 -0
  203. package/lib/types/ILPPriceFeed.sol/ILPPriceFeedEvents.js +2 -0
  204. package/lib/types/ILPPriceFeed.sol/ILPPriceFeedExceptions.d.ts +27 -0
  205. package/lib/types/ILPPriceFeed.sol/ILPPriceFeedExceptions.js +2 -0
  206. package/lib/types/ILPPriceFeed.sol/index.d.ts +3 -0
  207. package/lib/types/ILPPriceFeed.sol/index.js +2 -0
  208. package/lib/types/{ILidoV1Adapter.sol/ILidoV1Adapter.d.ts → ILidoV1Adapter.d.ts} +13 -48
  209. package/lib/types/ILidoV1Adapter.js +2 -0
  210. package/lib/types/ILinearInterestRateModelV3.d.ts +120 -0
  211. package/lib/types/ILinearInterestRateModelV3.js +2 -0
  212. package/lib/types/IPermit2.d.ts +130 -0
  213. package/lib/types/IPermit2.js +2 -0
  214. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3.d.ts +473 -0
  215. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3.js +2 -0
  216. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events.d.ts +113 -0
  217. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events.js +2 -0
  218. package/lib/types/IPoolQuotaKeeperV3.sol/index.d.ts +2 -0
  219. package/lib/types/IPoolQuotaKeeperV3.sol/index.js +2 -0
  220. package/lib/types/IPoolV3.sol/IPoolV3.d.ts +43 -3
  221. package/lib/types/IPriceFeed.sol/IPriceFeed.d.ts +109 -0
  222. package/lib/types/IPriceFeed.sol/IPriceFeed.js +2 -0
  223. package/lib/types/IPriceFeed.sol/IUpdatablePriceFeed.d.ts +133 -0
  224. package/lib/types/IPriceFeed.sol/IUpdatablePriceFeed.js +2 -0
  225. package/lib/types/IPriceFeed.sol/index.d.ts +2 -0
  226. package/lib/types/IPriceFeed.sol/index.js +2 -0
  227. package/lib/types/IPriceOracle.sol/IPriceOracleV2.d.ts +166 -0
  228. package/lib/types/IPriceOracle.sol/IPriceOracleV2.js +2 -0
  229. package/lib/types/IPriceOracle.sol/IPriceOracleV2Events.d.ts +43 -0
  230. package/lib/types/IPriceOracle.sol/IPriceOracleV2Events.js +2 -0
  231. package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions.d.ts → IPriceOracle.sol/IPriceOracleV2Exceptions.d.ts} +3 -3
  232. package/lib/types/IPriceOracle.sol/IPriceOracleV2Exceptions.js +2 -0
  233. package/lib/types/IPriceOracle.sol/IPriceOracleV2Ext.d.ts +182 -0
  234. package/lib/types/IPriceOracle.sol/IPriceOracleV2Ext.js +2 -0
  235. package/lib/types/IPriceOracle.sol/index.d.ts +4 -0
  236. package/lib/types/IPriceOracle.sol/index.js +2 -0
  237. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3.d.ts +272 -0
  238. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3.js +2 -0
  239. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3Events.d.ts +79 -0
  240. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3Events.js +2 -0
  241. package/lib/types/IPriceOracleV3.sol/index.d.ts +2 -0
  242. package/lib/types/IPriceOracleV3.sol/index.js +2 -0
  243. package/lib/types/IRouter.d.ts +11 -1
  244. package/lib/types/IRouterV3.d.ts +281 -0
  245. package/lib/types/IRouterV3.js +2 -0
  246. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2Adapter.d.ts +10 -9
  247. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3Adapter.d.ts +27 -21
  248. package/lib/types/IVotingContractV3.d.ts +74 -0
  249. package/lib/types/IVotingContractV3.js +2 -0
  250. package/lib/types/IWETH.d.ts +197 -0
  251. package/lib/types/IWETH.js +2 -0
  252. package/lib/types/IYearnV2Adapter.d.ts +22 -22
  253. package/lib/types/IZapper.d.ts +56 -37
  254. package/lib/types/IZapperRegister.d.ts +62 -0
  255. package/lib/types/IZapperRegister.js +2 -0
  256. package/lib/types/IwstETHV1Adapter.d.ts +17 -17
  257. package/lib/types/NumericArrayLib.d.ts +27 -0
  258. package/lib/types/NumericArrayLib.js +2 -0
  259. package/lib/types/RedstoneConstants.d.ts +27 -0
  260. package/lib/types/RedstoneConstants.js +2 -0
  261. package/lib/types/RedstoneConsumerBase.d.ts +84 -0
  262. package/lib/types/RedstoneConsumerBase.js +2 -0
  263. package/lib/types/RedstoneConsumerNumericBase.d.ts +84 -0
  264. package/lib/types/RedstoneConsumerNumericBase.js +2 -0
  265. package/lib/types/RedstoneDefaultsLib.d.ts +27 -0
  266. package/lib/types/RedstoneDefaultsLib.js +2 -0
  267. package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterEvents.d.ts → RedstonePriceFeed.sol/IRedstonePriceFeedEvents.d.ts} +11 -11
  268. package/lib/types/RedstonePriceFeed.sol/IRedstonePriceFeedEvents.js +2 -0
  269. package/lib/types/RedstonePriceFeed.sol/IRedstonePriceFeedExceptions.d.ts +27 -0
  270. package/lib/types/RedstonePriceFeed.sol/IRedstonePriceFeedExceptions.js +2 -0
  271. package/lib/types/RedstonePriceFeed.sol/RedstonePriceFeed.d.ts +279 -0
  272. package/lib/types/RedstonePriceFeed.sol/RedstonePriceFeed.js +2 -0
  273. package/lib/types/RedstonePriceFeed.sol/index.d.ts +3 -0
  274. package/lib/types/RedstonePriceFeed.sol/index.js +2 -0
  275. package/lib/types/SafeERC20.d.ts +27 -0
  276. package/lib/types/SafeERC20.js +2 -0
  277. package/lib/types/contracts/index.d.ts +2 -0
  278. package/lib/types/contracts/index.js +2 -0
  279. package/lib/types/contracts/interfaces/IGasPricer.d.ts +44 -0
  280. package/lib/types/contracts/interfaces/IGasPricer.js +2 -0
  281. package/lib/types/contracts/interfaces/index.d.ts +1 -0
  282. package/lib/types/contracts/interfaces/index.js +2 -0
  283. package/lib/types/factories/AddressProvider__factory.d.ts +112 -112
  284. package/lib/types/factories/AddressProvider__factory.js +120 -120
  285. package/lib/types/factories/Balances.sol/BalanceOps__factory.d.ts +4 -4
  286. package/lib/types/factories/Balances.sol/BalanceOps__factory.js +4 -4
  287. package/lib/types/factories/CalldataExtractor__factory.d.ts +87 -0
  288. package/lib/types/factories/CalldataExtractor__factory.js +127 -0
  289. package/lib/types/factories/Claimable__factory.d.ts +29 -29
  290. package/lib/types/factories/Claimable__factory.js +33 -33
  291. package/lib/types/factories/ERC20__factory.d.ts +239 -0
  292. package/lib/types/factories/ERC20__factory.js +328 -0
  293. package/lib/types/factories/Errors__factory.d.ts +100 -100
  294. package/lib/types/factories/Errors__factory.js +100 -100
  295. package/lib/types/factories/FarmAccounting__factory.d.ts +33 -0
  296. package/lib/types/factories/FarmAccounting__factory.js +57 -0
  297. package/lib/types/factories/{IWERC20Zapper__factory.d.ts → IAaveV2_LendingPoolAdapter__factory.d.ts} +103 -83
  298. package/lib/types/factories/{IWERC20Zapper__factory.js → IAaveV2_LendingPoolAdapter__factory.js} +114 -90
  299. package/lib/types/factories/IAaveV2_WrappedATokenAdapter__factory.d.ts +252 -0
  300. package/lib/types/factories/IAaveV2_WrappedATokenAdapter__factory.js +341 -0
  301. package/lib/types/factories/IAdapter__factory.d.ts +15 -15
  302. package/lib/types/factories/IAdapter__factory.js +15 -15
  303. package/lib/types/factories/IAddressProvider.sol/IAddressProviderEvents__factory.d.ts +7 -7
  304. package/lib/types/factories/IAddressProvider.sol/IAddressProviderEvents__factory.js +7 -7
  305. package/lib/types/factories/IAddressProvider.sol/IAddressProvider__factory.d.ts +48 -48
  306. package/lib/types/factories/IAddressProvider.sol/IAddressProvider__factory.js +52 -52
  307. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3Events__factory.d.ts +9 -9
  308. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3Events__factory.js +9 -9
  309. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3__factory.d.ts +37 -37
  310. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3__factory.js +42 -42
  311. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.d.ts +25 -25
  312. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.js +25 -25
  313. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.d.ts +71 -71
  314. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.js +85 -85
  315. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2VaultGetters__factory.d.ts +78 -0
  316. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2VaultGetters__factory.js +111 -0
  317. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2Vault__factory.d.ts +360 -0
  318. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2Vault__factory.js +475 -0
  319. package/lib/types/factories/IBalancerV2Vault.sol/index.d.ts +2 -0
  320. package/lib/types/factories/IBalancerV2Vault.sol/index.js +10 -0
  321. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents__factory.d.ts +23 -0
  322. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents__factory.js +38 -0
  323. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions__factory.d.ts +12 -0
  324. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions__factory.js} +5 -5
  325. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter__factory.d.ts +514 -0
  326. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter__factory.js +675 -0
  327. package/lib/types/factories/IBalancerV2VaultAdapter.sol/index.d.ts +3 -0
  328. package/lib/types/factories/IBalancerV2VaultAdapter.sol/index.js +12 -0
  329. package/lib/types/factories/IBaseRewardPool__factory.d.ts +114 -114
  330. package/lib/types/factories/IBaseRewardPool__factory.js +114 -114
  331. package/lib/types/factories/IBotListV3.sol/IBotListV3Events__factory.d.ts +103 -0
  332. package/lib/types/factories/IBotListV3.sol/IBotListV3Events__factory.js +138 -0
  333. package/lib/types/factories/IBotListV3.sol/IBotListV3__factory.d.ts +315 -0
  334. package/lib/types/factories/IBotListV3.sol/IBotListV3__factory.js +416 -0
  335. package/lib/types/factories/IBotListV3.sol/index.d.ts +2 -0
  336. package/lib/types/factories/IBotListV3.sol/index.js +10 -0
  337. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter__factory.d.ts +196 -0
  338. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter__factory.js +267 -0
  339. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions__factory.d.ts +16 -0
  340. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions__factory.js +30 -0
  341. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/index.d.ts +2 -0
  342. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/index.js +10 -0
  343. package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.d.ts +28 -0
  344. package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.js +45 -0
  345. package/lib/types/factories/{IWETHZapper__factory.d.ts → IContractsRegister.sol/IContractsRegister__factory.d.ts} +80 -76
  346. package/lib/types/factories/{IWETHZapper__factory.js → IContractsRegister.sol/IContractsRegister__factory.js} +85 -80
  347. package/lib/types/factories/IContractsRegister.sol/index.d.ts +2 -0
  348. package/lib/types/factories/IContractsRegister.sol/index.js +10 -0
  349. package/lib/types/factories/IControllerTimelockV3.sol/IControllerTimelockV3Events__factory.d.ts +73 -0
  350. package/lib/types/factories/IControllerTimelockV3.sol/IControllerTimelockV3Events__factory.js +101 -0
  351. package/lib/types/factories/IControllerTimelockV3.sol/IControllerTimelockV3__factory.d.ts +427 -0
  352. package/lib/types/factories/IControllerTimelockV3.sol/IControllerTimelockV3__factory.js +556 -0
  353. package/lib/types/factories/IControllerTimelockV3.sol/index.d.ts +2 -0
  354. package/lib/types/factories/IControllerTimelockV3.sol/index.js +10 -0
  355. package/lib/types/factories/IConvexToken__factory.d.ts +89 -79
  356. package/lib/types/factories/IConvexToken__factory.js +99 -86
  357. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.d.ts +103 -71
  358. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.js +113 -71
  359. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.d.ts +23 -0
  360. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.js +38 -0
  361. package/lib/types/factories/{IConvexV1BoosterAdapter__factory.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.d.ts} +67 -44
  362. package/lib/types/factories/{IConvexV1BoosterAdapter__factory.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.js} +72 -43
  363. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
  364. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.js +10 -0
  365. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Events__factory.d.ts +121 -121
  366. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Events__factory.js +127 -127
  367. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Exceptions__factory.d.ts +18 -18
  368. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Exceptions__factory.js +18 -18
  369. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2__factory.d.ts +376 -376
  370. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2__factory.js +417 -417
  371. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.d.ts +118 -118
  372. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.js +127 -127
  373. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.d.ts +395 -395
  374. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.js +420 -420
  375. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Events__factory.d.ts +107 -107
  376. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Events__factory.js +118 -118
  377. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Exceptions__factory.d.ts +65 -65
  378. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Exceptions__factory.js +65 -65
  379. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.d.ts +23 -27
  380. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.js +23 -28
  381. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2V2__factory.d.ts +5 -5
  382. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2V2__factory.js +5 -5
  383. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2__factory.d.ts +601 -601
  384. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2__factory.js +749 -749
  385. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.d.ts +77 -87
  386. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.js +84 -96
  387. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.d.ts +281 -357
  388. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.js +372 -468
  389. package/lib/types/factories/ICreditFacadeV3Multicall__factory.d.ts +106 -72
  390. package/lib/types/factories/ICreditFacadeV3Multicall__factory.js +122 -80
  391. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Events__factory.d.ts +11 -11
  392. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Events__factory.js +12 -12
  393. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Exceptions__factory.d.ts +26 -26
  394. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Exceptions__factory.js +26 -26
  395. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2__factory.d.ts +252 -252
  396. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2__factory.js +272 -272
  397. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3Events__factory.d.ts +5 -5
  398. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3Events__factory.js +5 -5
  399. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.d.ts +404 -400
  400. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.js +450 -445
  401. package/lib/types/factories/ICurvePool_2.sol/ICurvePool2Assets__factory.d.ts +191 -191
  402. package/lib/types/factories/ICurvePool_2.sol/ICurvePool2Assets__factory.js +191 -191
  403. package/lib/types/factories/ICurvePool_3.sol/ICurvePool3Assets__factory.d.ts +191 -191
  404. package/lib/types/factories/ICurvePool_3.sol/ICurvePool3Assets__factory.js +191 -191
  405. package/lib/types/factories/ICurvePool_4.sol/ICurvePool4Assets__factory.d.ts +191 -191
  406. package/lib/types/factories/ICurvePool_4.sol/ICurvePool4Assets__factory.js +191 -191
  407. package/lib/types/factories/ICurvePool__factory.d.ts +159 -159
  408. package/lib/types/factories/ICurvePool__factory.js +159 -159
  409. package/lib/types/factories/ICurveV1Adapter__factory.d.ts +171 -229
  410. package/lib/types/factories/ICurveV1Adapter__factory.js +171 -248
  411. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.d.ts +189 -247
  412. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.js +189 -266
  413. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.d.ts +189 -247
  414. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.js +189 -266
  415. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.d.ts +189 -247
  416. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.js +189 -266
  417. package/lib/types/factories/IDaiLikePermit__factory.d.ts +46 -0
  418. package/lib/types/factories/IDaiLikePermit__factory.js +67 -0
  419. package/lib/types/factories/IDataCompressorV2_10__factory.d.ts +374 -384
  420. package/lib/types/factories/IDataCompressorV2_10__factory.js +386 -400
  421. package/lib/types/factories/IDataCompressorV3_00__factory.d.ts +683 -457
  422. package/lib/types/factories/IDataCompressorV3_00__factory.js +765 -478
  423. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributorEvents__factory.d.ts +14 -14
  424. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributorEvents__factory.js +14 -14
  425. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.d.ts +43 -43
  426. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.js +51 -51
  427. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Events__factory.d.ts +38 -0
  428. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Events__factory.js +58 -0
  429. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Exceptions__factory.d.ts +24 -0
  430. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Exceptions__factory.js +39 -0
  431. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.d.ts → IDegenNFTV2.sol/IDegenNFTV2__factory.d.ts} +248 -238
  432. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.js → IDegenNFTV2.sol/IDegenNFTV2__factory.js} +270 -253
  433. package/lib/types/factories/IDegenNFTV2.sol/index.d.ts +3 -0
  434. package/lib/types/factories/IDegenNFTV2.sol/index.js +12 -0
  435. package/lib/types/factories/IERC165__factory.d.ts +22 -0
  436. package/lib/types/factories/IERC165__factory.js +38 -0
  437. package/lib/types/factories/IERC20Metadata__factory.d.ts +76 -76
  438. package/lib/types/factories/IERC20Metadata__factory.js +86 -86
  439. package/lib/types/factories/IERC20Permit__factory.d.ts +66 -0
  440. package/lib/types/factories/IERC20Permit__factory.js +94 -0
  441. package/lib/types/factories/IERC20ZapperDeposits__factory.d.ts +120 -0
  442. package/lib/types/factories/IERC20ZapperDeposits__factory.js +165 -0
  443. package/lib/types/factories/IERC20__factory.d.ts +67 -67
  444. package/lib/types/factories/IERC20__factory.js +77 -77
  445. package/lib/types/factories/IERC4626Adapter__factory.d.ts +220 -0
  446. package/lib/types/factories/IERC4626Adapter__factory.js +297 -0
  447. package/lib/types/factories/IERC4626__factory.d.ts +198 -198
  448. package/lib/types/factories/IERC4626__factory.js +221 -221
  449. package/lib/types/factories/IERC721Metadata__factory.d.ts +262 -0
  450. package/lib/types/factories/IERC721Metadata__factory.js +349 -0
  451. package/lib/types/factories/IERC721__factory.d.ts +228 -0
  452. package/lib/types/factories/IERC721__factory.js +304 -0
  453. package/lib/types/factories/IETHZapperDeposits__factory.d.ts +40 -0
  454. package/lib/types/factories/IETHZapperDeposits__factory.js +62 -0
  455. package/lib/types/factories/IFarmingPool__factory.d.ts +299 -0
  456. package/lib/types/factories/IFarmingPool__factory.js +396 -0
  457. package/lib/types/factories/IGaugeV3.sol/IGaugeV3Events__factory.d.ts +118 -0
  458. package/lib/types/factories/IGaugeV3.sol/IGaugeV3Events__factory.js +157 -0
  459. package/lib/types/factories/IGaugeV3.sol/IGaugeV3__factory.d.ts +342 -0
  460. package/lib/types/factories/IGaugeV3.sol/IGaugeV3__factory.js +448 -0
  461. package/lib/types/factories/IGaugeV3.sol/index.d.ts +2 -0
  462. package/lib/types/factories/IGaugeV3.sol/index.js +10 -0
  463. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.d.ts → IGearStakingV3.sol/IGearStakingV3Events__factory.d.ts} +55 -85
  464. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.js → IGearStakingV3.sol/IGearStakingV3Events__factory.js} +58 -94
  465. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.d.ts +504 -0
  466. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.js +660 -0
  467. package/lib/types/factories/IGearStakingV3.sol/index.d.ts +2 -0
  468. package/lib/types/factories/IGearStakingV3.sol/index.js +10 -0
  469. package/lib/types/factories/IInterestRateModel__factory.d.ts +8 -8
  470. package/lib/types/factories/IInterestRateModel__factory.js +8 -8
  471. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeedEvents__factory.d.ts +33 -0
  472. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeedEvents__factory.js +51 -0
  473. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeedExceptions__factory.d.ts +28 -0
  474. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeedExceptions__factory.js +44 -0
  475. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeed__factory.d.ts +261 -0
  476. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeed__factory.js +344 -0
  477. package/lib/types/factories/ILPPriceFeed.sol/index.d.ts +3 -0
  478. package/lib/types/factories/ILPPriceFeed.sol/index.js +12 -0
  479. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.d.ts → ILidoV1Adapter__factory.d.ts} +44 -74
  480. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.js → ILidoV1Adapter__factory.js} +45 -83
  481. package/lib/types/factories/ILinearInterestRateModelV3__factory.d.ts +98 -0
  482. package/lib/types/factories/ILinearInterestRateModelV3__factory.js +136 -0
  483. package/lib/types/factories/IOffchainOracle__factory.d.ts +11 -11
  484. package/lib/types/factories/IOffchainOracle__factory.js +11 -11
  485. package/lib/types/factories/IPermit2__factory.d.ts +113 -0
  486. package/lib/types/factories/IPermit2__factory.js +155 -0
  487. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events__factory.d.ts +103 -0
  488. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events__factory.js +140 -0
  489. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3__factory.d.ts +441 -0
  490. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3__factory.js +580 -0
  491. package/lib/types/factories/IPoolQuotaKeeperV3.sol/index.d.ts +2 -0
  492. package/lib/types/factories/IPoolQuotaKeeperV3.sol/index.js +10 -0
  493. package/lib/types/factories/IPoolService.sol/IPoolServiceEvents__factory.d.ts +66 -66
  494. package/lib/types/factories/IPoolService.sol/IPoolServiceEvents__factory.js +72 -72
  495. package/lib/types/factories/IPoolService.sol/IPoolService__factory.d.ts +235 -235
  496. package/lib/types/factories/IPoolService.sol/IPoolService__factory.js +286 -286
  497. package/lib/types/factories/IPoolV3.sol/IPoolV3Events__factory.d.ts +65 -65
  498. package/lib/types/factories/IPoolV3.sol/IPoolV3Events__factory.js +68 -68
  499. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.d.ts +591 -533
  500. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.js +734 -659
  501. package/lib/types/factories/IPriceFeed.sol/IPriceFeed__factory.d.ts +84 -0
  502. package/lib/types/factories/IPriceFeed.sol/IPriceFeed__factory.js +117 -0
  503. package/lib/types/factories/IPriceFeed.sol/IUpdatablePriceFeed__factory.d.ts +104 -0
  504. package/lib/types/factories/IPriceFeed.sol/IUpdatablePriceFeed__factory.js +143 -0
  505. package/lib/types/factories/IPriceFeed.sol/index.d.ts +2 -0
  506. package/lib/types/factories/IPriceFeed.sol/index.js +10 -0
  507. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Events__factory.d.ts +23 -0
  508. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Events__factory.js +38 -0
  509. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Exceptions__factory.d.ts +20 -0
  510. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Exceptions__factory.js +34 -0
  511. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Ext__factory.d.ts +197 -0
  512. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Ext__factory.js +267 -0
  513. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2__factory.d.ts +183 -0
  514. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2__factory.js +249 -0
  515. package/lib/types/factories/IPriceOracle.sol/index.d.ts +4 -0
  516. package/lib/types/factories/IPriceOracle.sol/index.js +14 -0
  517. package/lib/types/factories/IPriceOracleBase__factory.d.ts +27 -27
  518. package/lib/types/factories/IPriceOracleBase__factory.js +27 -27
  519. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3Events__factory.d.ts +78 -0
  520. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3Events__factory.js +106 -0
  521. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3__factory.d.ts +326 -0
  522. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3__factory.js +433 -0
  523. package/lib/types/factories/IPriceOracleV3.sol/index.d.ts +2 -0
  524. package/lib/types/factories/IPriceOracleV3.sol/index.js +10 -0
  525. package/lib/types/factories/IRouterV3__factory.d.ts +451 -0
  526. package/lib/types/factories/IRouterV3__factory.js +597 -0
  527. package/lib/types/factories/IRouter__factory.d.ts +168 -154
  528. package/lib/types/factories/IRouter__factory.js +186 -167
  529. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterEvents__factory.d.ts +8 -8
  530. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterEvents__factory.js +9 -9
  531. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions__factory.d.ts +2 -2
  532. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions__factory.js +2 -2
  533. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.d.ts +80 -76
  534. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.js +87 -82
  535. package/lib/types/factories/IUniswapV3.sol/ISwapRouter__factory.d.ts +50 -50
  536. package/lib/types/factories/IUniswapV3.sol/ISwapRouter__factory.js +50 -50
  537. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterEvents__factory.d.ts +10 -10
  538. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterEvents__factory.js +11 -11
  539. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions__factory.d.ts +2 -2
  540. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions__factory.js +2 -2
  541. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.d.ts +142 -134
  542. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.js +151 -141
  543. package/lib/types/factories/IVersion__factory.d.ts +3 -3
  544. package/lib/types/factories/IVersion__factory.js +3 -3
  545. package/lib/types/factories/IVotingContractV3__factory.d.ts +44 -0
  546. package/lib/types/factories/IVotingContractV3__factory.js +65 -0
  547. package/lib/types/factories/IWETHGateway__factory.d.ts +14 -14
  548. package/lib/types/factories/IWETHGateway__factory.js +14 -14
  549. package/lib/types/factories/IWETH__factory.d.ts +194 -0
  550. package/lib/types/factories/IWETH__factory.js +260 -0
  551. package/lib/types/factories/IYVault__factory.d.ts +112 -112
  552. package/lib/types/factories/IYVault__factory.js +122 -122
  553. package/lib/types/factories/IYearnV2Adapter__factory.d.ts +76 -68
  554. package/lib/types/factories/IYearnV2Adapter__factory.js +82 -70
  555. package/lib/types/factories/IZapperRegister__factory.d.ts +42 -0
  556. package/lib/types/factories/IZapperRegister__factory.js +64 -0
  557. package/lib/types/factories/IZapper__factory.d.ts +63 -33
  558. package/lib/types/factories/IZapper__factory.js +72 -33
  559. package/lib/types/factories/IstETH.sol/IstETHGetters__factory.d.ts +97 -97
  560. package/lib/types/factories/IstETH.sol/IstETHGetters__factory.js +107 -107
  561. package/lib/types/factories/IstETH.sol/IstETH__factory.d.ts +101 -101
  562. package/lib/types/factories/IstETH.sol/IstETH__factory.js +111 -111
  563. package/lib/types/factories/IwstETH.sol/IwstETHGetters__factory.d.ts +93 -93
  564. package/lib/types/factories/IwstETH.sol/IwstETHGetters__factory.js +103 -103
  565. package/lib/types/factories/IwstETH.sol/IwstETH__factory.d.ts +101 -101
  566. package/lib/types/factories/IwstETH.sol/IwstETH__factory.js +111 -111
  567. package/lib/types/factories/IwstETHGateway.sol/IwstETHGateWay__factory.d.ts +14 -14
  568. package/lib/types/factories/IwstETHGateway.sol/IwstETHGateWay__factory.js +15 -15
  569. package/lib/types/factories/IwstETHV1Adapter__factory.d.ts +52 -44
  570. package/lib/types/factories/IwstETHV1Adapter__factory.js +56 -44
  571. package/lib/types/factories/NumericArrayLib__factory.d.ts +25 -0
  572. package/lib/types/factories/NumericArrayLib__factory.js +47 -0
  573. package/lib/types/factories/Ownable__factory.d.ts +23 -23
  574. package/lib/types/factories/Ownable__factory.js +27 -27
  575. package/lib/types/factories/RedstoneConstants__factory.d.ts +65 -0
  576. package/lib/types/factories/RedstoneConstants__factory.js +99 -0
  577. package/lib/types/factories/RedstoneConsumerBase__factory.d.ts +164 -0
  578. package/lib/types/factories/RedstoneConsumerBase__factory.js +223 -0
  579. package/lib/types/factories/RedstoneConsumerNumericBase__factory.d.ts +164 -0
  580. package/lib/types/factories/RedstoneConsumerNumericBase__factory.js +223 -0
  581. package/lib/types/factories/RedstoneDefaultsLib__factory.d.ts +45 -0
  582. package/lib/types/factories/RedstoneDefaultsLib__factory.js +74 -0
  583. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.d.ts → RedstonePriceFeed.sol/IRedstonePriceFeedEvents__factory.d.ts} +9 -9
  584. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.js → RedstonePriceFeed.sol/IRedstonePriceFeedEvents__factory.js} +8 -8
  585. package/lib/types/factories/RedstonePriceFeed.sol/IRedstonePriceFeedExceptions__factory.d.ts +28 -0
  586. package/lib/types/factories/RedstonePriceFeed.sol/IRedstonePriceFeedExceptions__factory.js +44 -0
  587. package/lib/types/factories/RedstonePriceFeed.sol/RedstonePriceFeed__factory.d.ts +443 -0
  588. package/lib/types/factories/RedstonePriceFeed.sol/RedstonePriceFeed__factory.js +589 -0
  589. package/lib/types/factories/RedstonePriceFeed.sol/index.d.ts +3 -0
  590. package/lib/types/factories/RedstonePriceFeed.sol/index.js +12 -0
  591. package/lib/types/factories/SafeERC20__factory.d.ts +49 -0
  592. package/lib/types/factories/SafeERC20__factory.js +77 -0
  593. package/lib/types/factories/contracts/index.d.ts +1 -0
  594. package/lib/types/factories/contracts/index.js +30 -0
  595. package/lib/types/factories/contracts/interfaces/IGasPricer__factory.d.ts +22 -0
  596. package/lib/types/factories/contracts/interfaces/IGasPricer__factory.js +38 -0
  597. package/lib/types/factories/contracts/interfaces/index.d.ts +1 -0
  598. package/lib/types/factories/contracts/interfaces/index.js +8 -0
  599. package/lib/types/factories/index.d.ts +45 -5
  600. package/lib/types/factories/index.js +74 -10
  601. package/lib/types/factories/interfaces/IGasPricer__factory.d.ts +22 -0
  602. package/lib/types/factories/interfaces/IGasPricer__factory.js +38 -0
  603. package/lib/types/factories/interfaces/index.d.ts +1 -0
  604. package/lib/types/factories/interfaces/index.js +8 -0
  605. package/lib/types/index.d.ts +168 -20
  606. package/lib/types/index.js +133 -16
  607. package/lib/types/interfaces/IGasPricer.d.ts +44 -0
  608. package/lib/types/interfaces/IGasPricer.js +2 -0
  609. package/lib/types/interfaces/index.d.ts +1 -0
  610. package/lib/types/interfaces/index.js +2 -0
  611. package/lib/utils/formatter.d.ts +1 -4
  612. package/lib/utils/formatter.js +3 -69
  613. package/lib/utils/math.d.ts +2 -0
  614. package/lib/utils/math.js +2 -0
  615. package/lib/utils/types.d.ts +1 -0
  616. package/lib/watchers/creditAccountWatcher.d.ts +3 -2
  617. package/lib/watchers/creditAccountWatcher.js +19 -13
  618. package/lib/watchers/creditAccountWatcher.spec.js +18 -18
  619. package/lib/watchers/creditManagerWatcher.d.ts +5 -3
  620. package/lib/watchers/creditManagerWatcher.js +32 -10
  621. package/lib/watchers/creditManagerWatcher.spec.js +12 -4
  622. package/package.json +13 -9
  623. package/contracts/IRouter.sol +0 -100
  624. package/lib/core/pool/index.d.ts +0 -1
  625. package/lib/core/strategy.spec.js +0 -62
  626. package/lib/types/ILidoV1Adapter.sol/index.d.ts +0 -3
  627. package/lib/types/IWERC20Zapper.d.ts +0 -142
  628. package/lib/types/IWETHZapper.d.ts +0 -138
  629. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3.d.ts +0 -370
  630. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.d.ts +0 -133
  631. package/lib/types/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  632. package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.d.ts +0 -12
  633. package/lib/types/factories/ILidoV1Adapter.sol/index.d.ts +0 -3
  634. package/lib/types/factories/ILidoV1Adapter.sol/index.js +0 -12
  635. package/lib/types/factories/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  636. package/lib/types/factories/IWithdrawalManagerV3.sol/index.js +0 -10
  637. /package/lib/core/{strategy.spec.d.ts → gaugeMath.spec.d.ts} +0 -0
  638. /package/lib/{types/IConvexV1BoosterAdapter.js → pathfinder/v1/core.js} +0 -0
  639. /package/lib/{types/ILidoV1Adapter.sol/ILidoV1Adapter.js → payload/gauge.js} +0 -0
  640. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterEvents.js → CalldataExtractor.js} +0 -0
  641. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions.js → ERC20.js} +0 -0
  642. /package/lib/types/{ILidoV1Adapter.sol/index.js → FarmAccounting.js} +0 -0
  643. /package/lib/types/{IWERC20Zapper.js → IAaveV2_LendingPoolAdapter.js} +0 -0
  644. /package/lib/types/{IWETHZapper.js → IAaveV2_WrappedATokenAdapter.js} +0 -0
  645. /package/lib/types/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3.js → IBalancerV2Vault.sol/IBalancerV2Vault.js} +0 -0
  646. /package/lib/types/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.js → IBalancerV2Vault.sol/IBalancerV2VaultGetters.js} +0 -0
  647. /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
+ }