@gearbox-protocol/sdk 3.0.0-next.17 → 3.0.0-next.170

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