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

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