@gearbox-protocol/sdk 3.0.0-next.7 → 3.0.0-next.71

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 (465) hide show
  1. package/contracts/index.sol +29 -4
  2. package/lib/apy/curveAPY.js +2 -1
  3. package/lib/apy/index.d.ts +2 -2
  4. package/lib/apy/yearnAPY.js +1 -1
  5. package/lib/core/assets.d.ts +4 -4
  6. package/lib/core/assets.js +28 -17
  7. package/lib/core/creditAccount.d.ts +32 -8
  8. package/lib/core/creditAccount.js +101 -44
  9. package/lib/core/creditAccount.spec.js +693 -10
  10. package/lib/core/creditManager.d.ts +12 -3
  11. package/lib/core/creditManager.js +43 -10
  12. package/lib/core/events.js +14 -14
  13. package/lib/core/gauge.d.ts +26 -0
  14. package/lib/core/gauge.js +63 -0
  15. package/lib/core/gaugeMath.d.ts +40 -0
  16. package/lib/core/gaugeMath.js +108 -0
  17. package/lib/core/gaugeMath.spec.d.ts +1 -0
  18. package/lib/core/gaugeMath.spec.js +388 -0
  19. package/lib/core/{pool/data.d.ts → pool.d.ts} +17 -10
  20. package/lib/core/{pool/data.js → pool.js} +66 -24
  21. package/lib/core/strategy.d.ts +4 -3
  22. package/lib/core/strategy.js +15 -14
  23. package/lib/core/strategy.spec.js +68 -3
  24. package/lib/core/trade.d.ts +12 -29
  25. package/lib/core/trade.js +33 -82
  26. package/lib/core/transactions.d.ts +65 -3
  27. package/lib/core/transactions.js +162 -105
  28. package/lib/index.d.ts +3 -0
  29. package/lib/index.js +3 -0
  30. package/lib/parsers/abstractParser.js +1 -2
  31. package/lib/parsers/convexBaseRewardPoolAdapterParser.js +10 -8
  32. package/lib/parsers/convexBaseRewardPoolAdapterParser.spec.js +9 -6
  33. package/lib/parsers/convexBoosterAdapterParser.js +6 -6
  34. package/lib/parsers/convexBoosterAdapterParser.spec.js +4 -4
  35. package/lib/parsers/creditFacadeParser.d.ts +2 -1
  36. package/lib/parsers/creditFacadeParser.js +40 -5
  37. package/lib/parsers/creditFacadeParser.spec.js +3 -4
  38. package/lib/parsers/curveAdapterParser.js +10 -11
  39. package/lib/parsers/curveAdapterParser.spec.js +6 -2
  40. package/lib/parsers/lidoAdapterParser.js +3 -2
  41. package/lib/parsers/lidoAdapterParser.spec.js +2 -2
  42. package/lib/parsers/txParser.d.ts +1 -1
  43. package/lib/parsers/txParser.js +9 -3
  44. package/lib/parsers/uniV2AdapterParser.js +5 -4
  45. package/lib/parsers/uniV2AdapterParser.spec.js +3 -2
  46. package/lib/parsers/uniV3AdapterParser.js +9 -7
  47. package/lib/parsers/uniV3AdapterParser.spec.js +3 -2
  48. package/lib/parsers/wstETHAdapterParser.js +6 -4
  49. package/lib/parsers/wstETHAdapterParser.spec.js +4 -4
  50. package/lib/parsers/yearnAdapterParser.spec.js +4 -4
  51. package/lib/parsers/yearnV2AdapterParser.js +13 -3
  52. package/lib/pathfinder/core.d.ts +8 -9
  53. package/lib/pathfinder/pathOptions.d.ts +2 -1
  54. package/lib/pathfinder/pathOptions.js +20 -1
  55. package/lib/pathfinder/pathOptions.spec.js +2 -2
  56. package/lib/pathfinder/pathfinder.d.ts +38 -10
  57. package/lib/pathfinder/pathfinder.js +53 -34
  58. package/lib/pathfinder/pathfinder.spec.js +7 -3
  59. package/lib/payload/creditAccount.d.ts +3 -4
  60. package/lib/payload/gauge.d.ts +12 -0
  61. package/lib/payload/pool.d.ts +6 -1
  62. package/lib/types/IAaveV2_LendingPoolAdapter.d.ts +171 -0
  63. package/lib/types/IAaveV2_WrappedATokenAdapter.d.ts +290 -0
  64. package/lib/types/IBalancerV2Vault.sol/IBalancerV2Vault.d.ts +308 -0
  65. package/lib/types/IBalancerV2Vault.sol/IBalancerV2VaultGetters.d.ts +112 -0
  66. package/lib/types/IBalancerV2Vault.sol/index.d.ts +2 -0
  67. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter.d.ts +466 -0
  68. package/lib/types/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents.d.ts +43 -0
  69. package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterEvents.d.ts → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions.d.ts} +6 -18
  70. package/lib/types/IBalancerV2VaultAdapter.sol/index.d.ts +3 -0
  71. package/lib/types/IBotListV3.sol/IBotListV3.d.ts +286 -0
  72. package/lib/types/IBotListV3.sol/IBotListV3Events.d.ts +103 -0
  73. package/lib/types/IBotListV3.sol/index.d.ts +2 -0
  74. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter.d.ts +216 -0
  75. package/lib/types/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions.d.ts +27 -0
  76. package/lib/types/ICompoundV2_CTokenAdapter.sol/index.d.ts +2 -0
  77. package/lib/types/IContractsRegister.sol/IContractsRegister.d.ts +128 -0
  78. package/lib/types/IContractsRegister.sol/IContractsRegisterEvents.d.ts +50 -0
  79. package/lib/types/IContractsRegister.sol/index.d.ts +2 -0
  80. package/lib/types/IControllerTimelockV3.sol/IControllerTimelockV3.d.ts +504 -0
  81. package/lib/types/IControllerTimelockV3.sol/IControllerTimelockV3Events.d.ts +82 -0
  82. package/lib/types/IControllerTimelockV3.sol/index.d.ts +2 -0
  83. package/lib/types/IConvexToken.d.ts +9 -1
  84. package/lib/types/IConvexV1BaseRewardPoolAdapter.d.ts +46 -30
  85. package/lib/types/{IConvexV1BoosterAdapter.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.d.ts} +40 -21
  86. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.d.ts +43 -0
  87. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.js +2 -0
  88. package/lib/types/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
  89. package/lib/types/IConvexV1BoosterAdapter.sol/index.js +2 -0
  90. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3.d.ts +716 -0
  91. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3.js +2 -0
  92. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.d.ts +275 -0
  93. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.js +2 -0
  94. package/lib/types/ICreditConfiguratorV3.sol/index.d.ts +2 -0
  95. package/lib/types/ICreditConfiguratorV3.sol/index.js +2 -0
  96. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Extended.d.ts +7 -11
  97. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3.d.ts +201 -94
  98. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3Events.d.ts +31 -33
  99. package/lib/types/ICreditFacadeV3Multicall.d.ts +91 -60
  100. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3.d.ts +360 -98
  101. package/lib/types/ICurveV1Adapter.d.ts +41 -105
  102. package/lib/types/ICurveV1_2AssetsAdapter.d.ts +41 -105
  103. package/lib/types/ICurveV1_3AssetsAdapter.d.ts +41 -105
  104. package/lib/types/ICurveV1_4AssetsAdapter.d.ts +41 -105
  105. package/lib/types/IDataCompressorV2_10.d.ts +44 -36
  106. package/lib/types/IDataCompressorV3_00.d.ts +141 -37
  107. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2.d.ts +339 -0
  108. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2.js +2 -0
  109. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Events.d.ts +61 -0
  110. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Events.js +2 -0
  111. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Exceptions.d.ts +27 -0
  112. package/lib/types/IDegenNFTV2.sol/IDegenNFTV2Exceptions.js +2 -0
  113. package/lib/types/IDegenNFTV2.sol/index.d.ts +3 -0
  114. package/lib/types/IDegenNFTV2.sol/index.js +2 -0
  115. package/lib/types/IERC165.d.ts +42 -0
  116. package/lib/types/IERC165.js +2 -0
  117. package/lib/types/{draft-IERC20Permit.sol/IERC20Permit.d.ts → IERC20Permit.d.ts} +1 -1
  118. package/lib/types/IERC20Permit.js +2 -0
  119. package/lib/types/IERC20ZapperDeposits.d.ts +117 -0
  120. package/lib/types/IERC20ZapperDeposits.js +2 -0
  121. package/lib/types/IERC4626Adapter.d.ts +238 -0
  122. package/lib/types/IERC4626Adapter.js +2 -0
  123. package/lib/types/IERC721.d.ts +220 -0
  124. package/lib/types/IERC721.js +2 -0
  125. package/lib/types/IERC721Metadata.d.ts +244 -0
  126. package/lib/types/IERC721Metadata.js +2 -0
  127. package/lib/types/IETHZapperDeposits.d.ts +66 -0
  128. package/lib/types/IETHZapperDeposits.js +2 -0
  129. package/lib/types/IGasPricer.d.ts +44 -0
  130. package/lib/types/IGasPricer.js +2 -0
  131. package/lib/types/IGaugeV3.sol/IGaugeV3.d.ts +366 -0
  132. package/lib/types/IGaugeV3.sol/IGaugeV3.js +2 -0
  133. package/lib/types/IGaugeV3.sol/IGaugeV3Events.d.ts +114 -0
  134. package/lib/types/IGaugeV3.sol/IGaugeV3Events.js +2 -0
  135. package/lib/types/IGaugeV3.sol/index.d.ts +2 -0
  136. package/lib/types/IGaugeV3.sol/index.js +2 -0
  137. package/lib/types/IGearStakingV3.sol/IGearStakingV3.d.ts +408 -0
  138. package/lib/types/IGearStakingV3.sol/IGearStakingV3.js +2 -0
  139. package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.d.ts +117 -0
  140. package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.js +2 -0
  141. package/lib/types/IGearStakingV3.sol/index.d.ts +2 -0
  142. package/lib/types/IGearStakingV3.sol/index.js +2 -0
  143. package/lib/types/ILPPriceFeed.sol/ILPPriceFeed.d.ts +285 -0
  144. package/lib/types/ILPPriceFeed.sol/ILPPriceFeed.js +2 -0
  145. package/lib/types/ILPPriceFeed.sol/ILPPriceFeedEvents.d.ts +54 -0
  146. package/lib/types/ILPPriceFeed.sol/ILPPriceFeedEvents.js +2 -0
  147. package/lib/types/ILPPriceFeed.sol/ILPPriceFeedExceptions.d.ts +27 -0
  148. package/lib/types/ILPPriceFeed.sol/ILPPriceFeedExceptions.js +2 -0
  149. package/lib/types/ILPPriceFeed.sol/index.d.ts +3 -0
  150. package/lib/types/ILPPriceFeed.sol/index.js +2 -0
  151. package/lib/types/{ILidoV1Adapter.sol/ILidoV1Adapter.d.ts → ILidoV1Adapter.d.ts} +13 -48
  152. package/lib/types/ILidoV1Adapter.js +2 -0
  153. package/lib/types/ILinearInterestRateModelV3.d.ts +120 -0
  154. package/lib/types/ILinearInterestRateModelV3.js +2 -0
  155. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3.d.ts +473 -0
  156. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3.js +2 -0
  157. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events.d.ts +113 -0
  158. package/lib/types/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events.js +2 -0
  159. package/lib/types/IPoolQuotaKeeperV3.sol/index.d.ts +2 -0
  160. package/lib/types/IPoolQuotaKeeperV3.sol/index.js +2 -0
  161. package/lib/types/IPoolV3.sol/IPoolV3.d.ts +43 -11
  162. package/lib/types/IPoolV3.sol/index.d.ts +0 -1
  163. package/lib/types/IPriceFeed.sol/IPriceFeed.d.ts +109 -0
  164. package/lib/types/IPriceFeed.sol/IPriceFeed.js +2 -0
  165. package/lib/types/IPriceFeed.sol/IUpdatablePriceFeed.d.ts +133 -0
  166. package/lib/types/IPriceFeed.sol/IUpdatablePriceFeed.js +2 -0
  167. package/lib/types/IPriceFeed.sol/index.d.ts +2 -0
  168. package/lib/types/IPriceFeed.sol/index.js +2 -0
  169. package/lib/types/IPriceOracle.sol/IPriceOracleV2.d.ts +166 -0
  170. package/lib/types/IPriceOracle.sol/IPriceOracleV2.js +2 -0
  171. package/lib/types/IPriceOracle.sol/IPriceOracleV2Events.d.ts +43 -0
  172. package/lib/types/IPriceOracle.sol/IPriceOracleV2Events.js +2 -0
  173. package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions.d.ts → IPriceOracle.sol/IPriceOracleV2Exceptions.d.ts} +3 -3
  174. package/lib/types/IPriceOracle.sol/IPriceOracleV2Exceptions.js +2 -0
  175. package/lib/types/IPriceOracle.sol/IPriceOracleV2Ext.d.ts +182 -0
  176. package/lib/types/IPriceOracle.sol/IPriceOracleV2Ext.js +2 -0
  177. package/lib/types/IPriceOracle.sol/index.d.ts +4 -0
  178. package/lib/types/IPriceOracle.sol/index.js +2 -0
  179. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3.d.ts +272 -0
  180. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3.js +2 -0
  181. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3Events.d.ts +79 -0
  182. package/lib/types/IPriceOracleV3.sol/IPriceOracleV3Events.js +2 -0
  183. package/lib/types/IPriceOracleV3.sol/index.d.ts +2 -0
  184. package/lib/types/IPriceOracleV3.sol/index.js +2 -0
  185. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2Adapter.d.ts +10 -9
  186. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3Adapter.d.ts +27 -21
  187. package/lib/types/IVotingContractV3.d.ts +74 -0
  188. package/lib/types/IVotingContractV3.js +2 -0
  189. package/lib/types/IYearnV2Adapter.d.ts +22 -22
  190. package/lib/types/IZapper.d.ts +125 -0
  191. package/lib/types/IZapper.js +2 -0
  192. package/lib/types/IZapperRegister.d.ts +62 -0
  193. package/lib/types/IZapperRegister.js +2 -0
  194. package/lib/types/IwstETHV1Adapter.d.ts +17 -17
  195. package/lib/types/factories/AddressProvider__factory.d.ts +1 -1
  196. package/lib/types/factories/AddressProvider__factory.js +1 -1
  197. package/lib/types/factories/Claimable__factory.d.ts +1 -1
  198. package/lib/types/factories/Claimable__factory.js +1 -1
  199. package/lib/types/factories/IAaveV2_LendingPoolAdapter__factory.d.ts +158 -0
  200. package/lib/types/factories/IAaveV2_LendingPoolAdapter__factory.js +215 -0
  201. package/lib/types/factories/IAaveV2_WrappedATokenAdapter__factory.d.ts +252 -0
  202. package/lib/types/factories/IAaveV2_WrappedATokenAdapter__factory.js +341 -0
  203. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2VaultGetters__factory.d.ts +78 -0
  204. package/lib/types/factories/{ZapperBase__factory.js → IBalancerV2Vault.sol/IBalancerV2VaultGetters__factory.js} +54 -31
  205. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2Vault__factory.d.ts +360 -0
  206. package/lib/types/factories/IBalancerV2Vault.sol/IBalancerV2Vault__factory.js +475 -0
  207. package/lib/types/factories/IBalancerV2Vault.sol/index.d.ts +2 -0
  208. package/lib/types/factories/IBalancerV2Vault.sol/index.js +10 -0
  209. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents__factory.d.ts +23 -0
  210. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents__factory.js +38 -0
  211. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions__factory.d.ts +12 -0
  212. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions__factory.js} +4 -4
  213. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter__factory.d.ts +514 -0
  214. package/lib/types/factories/IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter__factory.js +675 -0
  215. package/lib/types/factories/IBalancerV2VaultAdapter.sol/index.d.ts +3 -0
  216. package/lib/types/factories/IBalancerV2VaultAdapter.sol/index.js +12 -0
  217. package/lib/types/factories/IBotListV3.sol/IBotListV3Events__factory.d.ts +103 -0
  218. package/lib/types/factories/IBotListV3.sol/IBotListV3Events__factory.js +138 -0
  219. package/lib/types/factories/IBotListV3.sol/IBotListV3__factory.d.ts +315 -0
  220. package/lib/types/factories/IBotListV3.sol/IBotListV3__factory.js +416 -0
  221. package/lib/types/factories/IBotListV3.sol/index.d.ts +2 -0
  222. package/lib/types/factories/IBotListV3.sol/index.js +10 -0
  223. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter__factory.d.ts +196 -0
  224. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter__factory.js +267 -0
  225. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions__factory.d.ts +16 -0
  226. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.js → ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions__factory.js} +6 -8
  227. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/index.d.ts +2 -0
  228. package/lib/types/factories/ICompoundV2_CTokenAdapter.sol/index.js +10 -0
  229. package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.d.ts +28 -0
  230. package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.js +45 -0
  231. package/lib/types/factories/IContractsRegister.sol/IContractsRegister__factory.d.ts +134 -0
  232. package/lib/types/factories/IContractsRegister.sol/IContractsRegister__factory.js +186 -0
  233. package/lib/types/factories/IContractsRegister.sol/index.d.ts +2 -0
  234. package/lib/types/factories/IContractsRegister.sol/index.js +10 -0
  235. package/lib/types/factories/IControllerTimelockV3.sol/IControllerTimelockV3Events__factory.d.ts +73 -0
  236. package/lib/types/factories/IControllerTimelockV3.sol/IControllerTimelockV3Events__factory.js +101 -0
  237. package/lib/types/factories/IControllerTimelockV3.sol/IControllerTimelockV3__factory.d.ts +427 -0
  238. package/lib/types/factories/IControllerTimelockV3.sol/IControllerTimelockV3__factory.js +556 -0
  239. package/lib/types/factories/IControllerTimelockV3.sol/index.d.ts +2 -0
  240. package/lib/types/factories/IControllerTimelockV3.sol/index.js +10 -0
  241. package/lib/types/factories/IConvexToken__factory.d.ts +10 -0
  242. package/lib/types/factories/IConvexToken__factory.js +13 -0
  243. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.d.ts +38 -6
  244. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.js +48 -6
  245. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.d.ts +23 -0
  246. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.js +38 -0
  247. package/lib/types/factories/{IConvexV1BoosterAdapter__factory.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.d.ts} +26 -3
  248. package/lib/types/factories/{IConvexV1BoosterAdapter__factory.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.js} +31 -2
  249. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
  250. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.js +10 -0
  251. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.d.ts +273 -0
  252. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.js +357 -0
  253. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.d.ts +605 -0
  254. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.js +785 -0
  255. package/lib/types/factories/ICreditConfiguratorV3.sol/index.d.ts +2 -0
  256. package/lib/types/factories/ICreditConfiguratorV3.sol/index.js +10 -0
  257. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.d.ts +0 -4
  258. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.js +0 -5
  259. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.d.ts +19 -24
  260. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.js +21 -27
  261. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.d.ts +151 -72
  262. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.js +189 -85
  263. package/lib/types/factories/ICreditFacadeV3Multicall__factory.d.ts +77 -43
  264. package/lib/types/factories/ICreditFacadeV3Multicall__factory.js +96 -54
  265. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.d.ts +339 -147
  266. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.js +427 -180
  267. package/lib/types/factories/ICurveV1Adapter__factory.d.ts +13 -71
  268. package/lib/types/factories/ICurveV1Adapter__factory.js +14 -91
  269. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.d.ts +13 -71
  270. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.js +14 -91
  271. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.d.ts +13 -71
  272. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.js +14 -91
  273. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.d.ts +13 -71
  274. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.js +14 -91
  275. package/lib/types/factories/IDataCompressorV2_10__factory.d.ts +110 -54
  276. package/lib/types/factories/IDataCompressorV2_10__factory.js +138 -68
  277. package/lib/types/factories/IDataCompressorV3_00__factory.d.ts +379 -79
  278. package/lib/types/factories/IDataCompressorV3_00__factory.js +481 -100
  279. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Events__factory.d.ts +38 -0
  280. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Events__factory.js +58 -0
  281. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Exceptions__factory.d.ts +24 -0
  282. package/lib/types/factories/IDegenNFTV2.sol/IDegenNFTV2Exceptions__factory.js +39 -0
  283. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.d.ts → IDegenNFTV2.sol/IDegenNFTV2__factory.d.ts} +190 -180
  284. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.js → IDegenNFTV2.sol/IDegenNFTV2__factory.js} +212 -195
  285. package/lib/types/factories/IDegenNFTV2.sol/index.d.ts +3 -0
  286. package/lib/types/factories/IDegenNFTV2.sol/index.js +12 -0
  287. package/lib/types/factories/IERC165__factory.d.ts +22 -0
  288. package/lib/types/factories/IERC165__factory.js +38 -0
  289. package/lib/types/factories/{draft-IERC20Permit.sol/IERC20Permit__factory.d.ts → IERC20Permit__factory.d.ts} +1 -1
  290. package/lib/types/factories/IERC20ZapperDeposits__factory.d.ts +120 -0
  291. package/lib/types/factories/IERC20ZapperDeposits__factory.js +165 -0
  292. package/lib/types/factories/IERC4626Adapter__factory.d.ts +220 -0
  293. package/lib/types/factories/IERC4626Adapter__factory.js +297 -0
  294. package/lib/types/factories/IERC721Metadata__factory.d.ts +262 -0
  295. package/lib/types/factories/IERC721Metadata__factory.js +349 -0
  296. package/lib/types/factories/IERC721__factory.d.ts +228 -0
  297. package/lib/types/factories/IERC721__factory.js +304 -0
  298. package/lib/types/factories/IETHZapperDeposits__factory.d.ts +40 -0
  299. package/lib/types/factories/{AaveV2_WrappedAToken.sol/IWrappedATokenEvents__factory.js → IETHZapperDeposits__factory.js} +18 -25
  300. package/lib/types/factories/IGasPricer__factory.d.ts +22 -0
  301. package/lib/types/factories/IGasPricer__factory.js +38 -0
  302. package/lib/types/factories/IGaugeV3.sol/IGaugeV3Events__factory.d.ts +118 -0
  303. package/lib/types/factories/IGaugeV3.sol/IGaugeV3Events__factory.js +157 -0
  304. package/lib/types/factories/IGaugeV3.sol/IGaugeV3__factory.d.ts +342 -0
  305. package/lib/types/factories/IGaugeV3.sol/IGaugeV3__factory.js +448 -0
  306. package/lib/types/factories/IGaugeV3.sol/index.d.ts +2 -0
  307. package/lib/types/factories/IGaugeV3.sol/index.js +10 -0
  308. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.d.ts → IGearStakingV3.sol/IGearStakingV3Events__factory.d.ts} +33 -63
  309. package/lib/types/factories/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.js → IGearStakingV3.sol/IGearStakingV3Events__factory.js} +34 -70
  310. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.d.ts +504 -0
  311. package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.js +660 -0
  312. package/lib/types/factories/IGearStakingV3.sol/index.d.ts +2 -0
  313. package/lib/types/factories/IGearStakingV3.sol/index.js +10 -0
  314. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeedEvents__factory.d.ts +33 -0
  315. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeedEvents__factory.js +51 -0
  316. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeedExceptions__factory.d.ts +24 -0
  317. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeedExceptions__factory.js +39 -0
  318. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeed__factory.d.ts +257 -0
  319. package/lib/types/factories/ILPPriceFeed.sol/ILPPriceFeed__factory.js +339 -0
  320. package/lib/types/factories/ILPPriceFeed.sol/index.d.ts +3 -0
  321. package/lib/types/factories/ILPPriceFeed.sol/index.js +12 -0
  322. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.d.ts → ILidoV1Adapter__factory.d.ts} +7 -37
  323. package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.js → ILidoV1Adapter__factory.js} +8 -46
  324. package/lib/types/factories/ILinearInterestRateModelV3__factory.d.ts +98 -0
  325. package/lib/types/factories/ILinearInterestRateModelV3__factory.js +136 -0
  326. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events__factory.d.ts +103 -0
  327. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3Events__factory.js +140 -0
  328. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3__factory.d.ts +441 -0
  329. package/lib/types/factories/IPoolQuotaKeeperV3.sol/IPoolQuotaKeeperV3__factory.js +580 -0
  330. package/lib/types/factories/IPoolQuotaKeeperV3.sol/index.d.ts +2 -0
  331. package/lib/types/factories/IPoolQuotaKeeperV3.sol/index.js +10 -0
  332. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.d.ts +62 -14
  333. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.js +79 -17
  334. package/lib/types/factories/IPoolV3.sol/index.d.ts +0 -1
  335. package/lib/types/factories/IPoolV3.sol/index.js +1 -3
  336. package/lib/types/factories/{IPoolV3.sol/IPoolBase__factory.d.ts → IPriceFeed.sol/IPriceFeed__factory.d.ts} +39 -35
  337. package/lib/types/factories/{IPoolV3.sol/IPoolBase__factory.js → IPriceFeed.sol/IPriceFeed__factory.js} +40 -35
  338. package/lib/types/factories/IPriceFeed.sol/IUpdatablePriceFeed__factory.d.ts +104 -0
  339. package/lib/types/factories/IPriceFeed.sol/IUpdatablePriceFeed__factory.js +143 -0
  340. package/lib/types/factories/IPriceFeed.sol/index.d.ts +2 -0
  341. package/lib/types/factories/IPriceFeed.sol/index.js +10 -0
  342. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Events__factory.d.ts +23 -0
  343. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Events__factory.js +38 -0
  344. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Exceptions__factory.d.ts +20 -0
  345. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Exceptions__factory.js +34 -0
  346. package/lib/types/factories/{IAToken__factory.d.ts → IPriceOracle.sol/IPriceOracleV2Ext__factory.d.ts} +98 -99
  347. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2Ext__factory.js +267 -0
  348. package/lib/types/factories/IPriceOracle.sol/IPriceOracleV2__factory.d.ts +183 -0
  349. package/lib/types/factories/{IAToken__factory.js → IPriceOracle.sol/IPriceOracleV2__factory.js} +94 -112
  350. package/lib/types/factories/IPriceOracle.sol/index.d.ts +4 -0
  351. package/lib/types/factories/IPriceOracle.sol/index.js +14 -0
  352. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3Events__factory.d.ts +78 -0
  353. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3Events__factory.js +106 -0
  354. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3__factory.d.ts +326 -0
  355. package/lib/types/factories/IPriceOracleV3.sol/IPriceOracleV3__factory.js +433 -0
  356. package/lib/types/factories/IPriceOracleV3.sol/index.d.ts +2 -0
  357. package/lib/types/factories/IPriceOracleV3.sol/index.js +10 -0
  358. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.d.ts +5 -1
  359. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.js +6 -1
  360. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.d.ts +12 -4
  361. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.js +14 -4
  362. package/lib/types/factories/IVotingContractV3__factory.d.ts +44 -0
  363. package/lib/types/factories/IVotingContractV3__factory.js +65 -0
  364. package/lib/types/factories/IYearnV2Adapter__factory.d.ts +21 -13
  365. package/lib/types/factories/IYearnV2Adapter__factory.js +27 -15
  366. package/lib/types/factories/IZapperRegister__factory.d.ts +42 -0
  367. package/lib/types/factories/IZapperRegister__factory.js +64 -0
  368. package/lib/types/factories/{WERC20ZapperBase__factory.d.ts → IZapper__factory.d.ts} +52 -64
  369. package/lib/types/factories/{WERC20ZapperBase__factory.js → IZapper__factory.js} +58 -74
  370. package/lib/types/factories/IwstETHV1Adapter__factory.d.ts +12 -4
  371. package/lib/types/factories/IwstETHV1Adapter__factory.js +16 -4
  372. package/lib/types/factories/SafeERC20__factory.d.ts +1 -1
  373. package/lib/types/factories/SafeERC20__factory.js +1 -1
  374. package/lib/types/factories/index.d.ts +32 -14
  375. package/lib/types/factories/index.js +49 -26
  376. package/lib/types/factories/{IRouter__factory.d.ts → interfaces/IRouter__factory.d.ts} +75 -6
  377. package/lib/types/factories/{IRouter__factory.js → interfaces/IRouter__factory.js} +96 -6
  378. package/lib/types/factories/interfaces/index.d.ts +1 -0
  379. package/lib/types/factories/interfaces/index.js +8 -0
  380. package/lib/types/index.d.ts +141 -46
  381. package/lib/types/index.js +109 -38
  382. package/lib/types/{IRouter.d.ts → interfaces/IRouter.d.ts} +48 -35
  383. package/lib/types/interfaces/IRouter.js +2 -0
  384. package/lib/types/interfaces/index.d.ts +1 -0
  385. package/lib/types/interfaces/index.js +2 -0
  386. package/lib/utils/formatter.d.ts +0 -3
  387. package/lib/utils/formatter.js +1 -67
  388. package/lib/utils/math.d.ts +2 -0
  389. package/lib/utils/math.js +2 -0
  390. package/lib/utils/types.d.ts +1 -0
  391. package/lib/watchers/creditAccountWatcher.d.ts +3 -2
  392. package/lib/watchers/creditAccountWatcher.js +19 -13
  393. package/lib/watchers/creditAccountWatcher.spec.js +18 -18
  394. package/lib/watchers/creditManagerWatcher.d.ts +5 -3
  395. package/lib/watchers/creditManagerWatcher.js +32 -10
  396. package/lib/watchers/creditManagerWatcher.spec.js +12 -4
  397. package/package.json +10 -9
  398. package/contracts/IRouter.sol +0 -100
  399. package/lib/core/pool/index.d.ts +0 -1
  400. package/lib/core/pool/index.js +0 -17
  401. package/lib/types/AaveV2_WrappedAToken.sol/IWrappedATokenEvents.d.ts +0 -60
  402. package/lib/types/AaveV2_WrappedAToken.sol/WrappedAToken.d.ts +0 -332
  403. package/lib/types/AaveV2_WrappedAToken.sol/index.d.ts +0 -2
  404. package/lib/types/ERC20.d.ts +0 -198
  405. package/lib/types/IAToken.d.ts +0 -182
  406. package/lib/types/ILendingPool.d.ts +0 -140
  407. package/lib/types/ILidoV1Adapter.sol/index.d.ts +0 -3
  408. package/lib/types/IPoolV3.sol/IPoolBase.d.ts +0 -102
  409. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3.d.ts +0 -370
  410. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.d.ts +0 -133
  411. package/lib/types/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  412. package/lib/types/WATokenZapper.d.ts +0 -134
  413. package/lib/types/WERC20ZapperBase.d.ts +0 -134
  414. package/lib/types/WETHZapper.d.ts +0 -122
  415. package/lib/types/WstETHZapper.d.ts +0 -134
  416. package/lib/types/ZapperBase.d.ts +0 -70
  417. package/lib/types/draft-IERC20Permit.sol/index.d.ts +0 -1
  418. package/lib/types/factories/AaveV2_WrappedAToken.sol/IWrappedATokenEvents__factory.d.ts +0 -48
  419. package/lib/types/factories/AaveV2_WrappedAToken.sol/WrappedAToken__factory.d.ts +0 -397
  420. package/lib/types/factories/AaveV2_WrappedAToken.sol/WrappedAToken__factory.js +0 -535
  421. package/lib/types/factories/AaveV2_WrappedAToken.sol/index.d.ts +0 -2
  422. package/lib/types/factories/AaveV2_WrappedAToken.sol/index.js +0 -10
  423. package/lib/types/factories/ERC20__factory.d.ts +0 -239
  424. package/lib/types/factories/ERC20__factory.js +0 -328
  425. package/lib/types/factories/ILendingPool__factory.d.ts +0 -134
  426. package/lib/types/factories/ILendingPool__factory.js +0 -183
  427. package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.d.ts +0 -18
  428. package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.d.ts +0 -12
  429. package/lib/types/factories/ILidoV1Adapter.sol/index.d.ts +0 -3
  430. package/lib/types/factories/ILidoV1Adapter.sol/index.js +0 -12
  431. package/lib/types/factories/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  432. package/lib/types/factories/IWithdrawalManagerV3.sol/index.js +0 -10
  433. package/lib/types/factories/WATokenZapper__factory.d.ts +0 -161
  434. package/lib/types/factories/WATokenZapper__factory.js +0 -227
  435. package/lib/types/factories/WETHZapper__factory.d.ts +0 -138
  436. package/lib/types/factories/WETHZapper__factory.js +0 -198
  437. package/lib/types/factories/WstETHZapper__factory.d.ts +0 -161
  438. package/lib/types/factories/WstETHZapper__factory.js +0 -227
  439. package/lib/types/factories/ZapperBase__factory.d.ts +0 -60
  440. package/lib/types/factories/draft-IERC20Permit.sol/index.d.ts +0 -1
  441. package/lib/types/factories/draft-IERC20Permit.sol/index.js +0 -8
  442. /package/lib/{types/AaveV2_WrappedAToken.sol/IWrappedATokenEvents.js → payload/gauge.js} +0 -0
  443. /package/lib/types/{AaveV2_WrappedAToken.sol/WrappedAToken.js → IAaveV2_LendingPoolAdapter.js} +0 -0
  444. /package/lib/types/{AaveV2_WrappedAToken.sol/index.js → IAaveV2_WrappedATokenAdapter.js} +0 -0
  445. /package/lib/types/{ERC20.js → IBalancerV2Vault.sol/IBalancerV2Vault.js} +0 -0
  446. /package/lib/types/{IAToken.js → IBalancerV2Vault.sol/IBalancerV2VaultGetters.js} +0 -0
  447. /package/lib/types/{ILidoV1Adapter.sol → IBalancerV2Vault.sol}/index.js +0 -0
  448. /package/lib/types/{IConvexV1BoosterAdapter.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapter.js} +0 -0
  449. /package/lib/types/{ILendingPool.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterEvents.js} +0 -0
  450. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1Adapter.js → IBalancerV2VaultAdapter.sol/IBalancerV2VaultAdapterExceptions.js} +0 -0
  451. /package/lib/types/{IWithdrawalManagerV3.sol → IBalancerV2VaultAdapter.sol}/index.js +0 -0
  452. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterEvents.js → IBotListV3.sol/IBotListV3.js} +0 -0
  453. /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions.js → IBotListV3.sol/IBotListV3Events.js} +0 -0
  454. /package/lib/types/{draft-IERC20Permit.sol → IBotListV3.sol}/index.js +0 -0
  455. /package/lib/types/{IPoolV3.sol/IPoolBase.js → ICompoundV2_CTokenAdapter.sol/ICompoundV2_CTokenAdapter.js} +0 -0
  456. /package/lib/types/{IRouter.js → ICompoundV2_CTokenAdapter.sol/ICompoundV2_Exceptions.js} +0 -0
  457. /package/lib/types/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3.js → ICompoundV2_CTokenAdapter.sol/index.js} +0 -0
  458. /package/lib/types/{IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.js → IContractsRegister.sol/IContractsRegister.js} +0 -0
  459. /package/lib/types/{WATokenZapper.js → IContractsRegister.sol/IContractsRegisterEvents.js} +0 -0
  460. /package/lib/types/{WERC20ZapperBase.js → IContractsRegister.sol/index.js} +0 -0
  461. /package/lib/types/{WETHZapper.js → IControllerTimelockV3.sol/IControllerTimelockV3.js} +0 -0
  462. /package/lib/types/{WstETHZapper.js → IControllerTimelockV3.sol/IControllerTimelockV3Events.js} +0 -0
  463. /package/lib/types/{ZapperBase.js → IControllerTimelockV3.sol/index.js} +0 -0
  464. /package/lib/types/{draft-IERC20Permit.sol/IERC20Permit.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.js} +0 -0
  465. /package/lib/types/factories/{draft-IERC20Permit.sol/IERC20Permit__factory.js → IERC20Permit__factory.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
2
2
  import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
3
3
  import type { Listener, Provider } from "@ethersproject/providers";
4
- import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "./common";
4
+ import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../common";
5
5
  export type SwapTaskStruct = {
6
6
  swapOperation: PromiseOrValue<BigNumberish>;
7
7
  creditAccount: PromiseOrValue<string>;
@@ -9,8 +9,7 @@ export type SwapTaskStruct = {
9
9
  tokenOut: PromiseOrValue<string>;
10
10
  connectors: PromiseOrValue<string>[];
11
11
  amount: PromiseOrValue<BigNumberish>;
12
- slippage: PromiseOrValue<BigNumberish>;
13
- externalSlippage: PromiseOrValue<boolean>;
12
+ leftoverAmount: PromiseOrValue<BigNumberish>;
14
13
  };
15
14
  export type SwapTaskStructOutput = [
16
15
  number,
@@ -19,8 +18,7 @@ export type SwapTaskStructOutput = [
19
18
  string,
20
19
  string[],
21
20
  BigNumber,
22
- BigNumber,
23
- boolean
21
+ BigNumber
24
22
  ] & {
25
23
  swapOperation: number;
26
24
  creditAccount: string;
@@ -28,8 +26,7 @@ export type SwapTaskStructOutput = [
28
26
  tokenOut: string;
29
27
  connectors: string[];
30
28
  amount: BigNumber;
31
- slippage: BigNumber;
32
- externalSlippage: boolean;
29
+ leftoverAmount: BigNumber;
33
30
  };
34
31
  export type MultiCallStruct = {
35
32
  target: PromiseOrValue<string>;
@@ -41,18 +38,29 @@ export type MultiCallStructOutput = [string, string] & {
41
38
  };
42
39
  export type RouterResultStruct = {
43
40
  amount: PromiseOrValue<BigNumberish>;
41
+ minAmount: PromiseOrValue<BigNumberish>;
44
42
  gasUsage: PromiseOrValue<BigNumberish>;
45
43
  calls: MultiCallStruct[];
46
44
  };
47
45
  export type RouterResultStructOutput = [
46
+ BigNumber,
48
47
  BigNumber,
49
48
  BigNumber,
50
49
  MultiCallStructOutput[]
51
50
  ] & {
52
51
  amount: BigNumber;
52
+ minAmount: BigNumber;
53
53
  gasUsage: BigNumber;
54
54
  calls: MultiCallStructOutput[];
55
55
  };
56
+ export type BalanceStruct = {
57
+ token: PromiseOrValue<string>;
58
+ balance: PromiseOrValue<BigNumberish>;
59
+ };
60
+ export type BalanceStructOutput = [string, BigNumber] & {
61
+ token: string;
62
+ balance: BigNumber;
63
+ };
56
64
  export type PathOptionStruct = {
57
65
  target: PromiseOrValue<string>;
58
66
  option: PromiseOrValue<BigNumberish>;
@@ -63,30 +71,25 @@ export type PathOptionStructOutput = [string, number, number] & {
63
71
  option: number;
64
72
  totalOptions: number;
65
73
  };
66
- export type BalanceStruct = {
67
- token: PromiseOrValue<string>;
68
- balance: PromiseOrValue<BigNumberish>;
69
- };
70
- export type BalanceStructOutput = [string, BigNumber] & {
71
- token: string;
72
- balance: BigNumber;
73
- };
74
74
  export interface IRouterInterface extends utils.Interface {
75
75
  functions: {
76
76
  "componentAddressById(uint8)": FunctionFragment;
77
- "findAllSwaps((uint8,address,address,address,address[],uint256,uint256,bool))": FunctionFragment;
78
- "findBestClosePath(address,address[],uint256,(address,uint8,uint8)[],uint256,bool)": FunctionFragment;
77
+ "findAllSwaps((uint8,address,address,address,address[],uint256,uint256),uint256)": FunctionFragment;
78
+ "findBestClosePath(address,(address,uint256)[],(address,uint256)[],address[],uint256,(address,uint8,uint8)[],uint256,bool)": FunctionFragment;
79
79
  "findOneTokenPath(address,uint256,address,address,address[],uint256)": FunctionFragment;
80
- "findOpenStrategyPath(address,(address,uint256)[],address,address[],uint256)": FunctionFragment;
80
+ "findOpenStrategyPath(address,(address,uint256)[],(address,uint256)[],address,address[],uint256)": FunctionFragment;
81
+ "getGasPriceTokenOutRAY(address)": FunctionFragment;
81
82
  "isRouterConfigurator(address)": FunctionFragment;
82
83
  "tokenTypes(address)": FunctionFragment;
83
84
  "version()": FunctionFragment;
84
85
  };
85
- getFunction(nameOrSignatureOrTopic: "componentAddressById" | "findAllSwaps" | "findBestClosePath" | "findOneTokenPath" | "findOpenStrategyPath" | "isRouterConfigurator" | "tokenTypes" | "version"): FunctionFragment;
86
+ getFunction(nameOrSignatureOrTopic: "componentAddressById" | "findAllSwaps" | "findBestClosePath" | "findOneTokenPath" | "findOpenStrategyPath" | "getGasPriceTokenOutRAY" | "isRouterConfigurator" | "tokenTypes" | "version"): FunctionFragment;
86
87
  encodeFunctionData(functionFragment: "componentAddressById", values: [PromiseOrValue<BigNumberish>]): string;
87
- encodeFunctionData(functionFragment: "findAllSwaps", values: [SwapTaskStruct]): string;
88
+ encodeFunctionData(functionFragment: "findAllSwaps", values: [SwapTaskStruct, PromiseOrValue<BigNumberish>]): string;
88
89
  encodeFunctionData(functionFragment: "findBestClosePath", values: [
89
90
  PromiseOrValue<string>,
91
+ BalanceStruct[],
92
+ BalanceStruct[],
90
93
  PromiseOrValue<string>[],
91
94
  PromiseOrValue<BigNumberish>,
92
95
  PathOptionStruct[],
@@ -104,10 +107,12 @@ export interface IRouterInterface extends utils.Interface {
104
107
  encodeFunctionData(functionFragment: "findOpenStrategyPath", values: [
105
108
  PromiseOrValue<string>,
106
109
  BalanceStruct[],
110
+ BalanceStruct[],
107
111
  PromiseOrValue<string>,
108
112
  PromiseOrValue<string>[],
109
113
  PromiseOrValue<BigNumberish>
110
114
  ]): string;
115
+ encodeFunctionData(functionFragment: "getGasPriceTokenOutRAY", values: [PromiseOrValue<string>]): string;
111
116
  encodeFunctionData(functionFragment: "isRouterConfigurator", values: [PromiseOrValue<string>]): string;
112
117
  encodeFunctionData(functionFragment: "tokenTypes", values: [PromiseOrValue<string>]): string;
113
118
  encodeFunctionData(functionFragment: "version", values?: undefined): string;
@@ -116,6 +121,7 @@ export interface IRouterInterface extends utils.Interface {
116
121
  decodeFunctionResult(functionFragment: "findBestClosePath", data: BytesLike): Result;
117
122
  decodeFunctionResult(functionFragment: "findOneTokenPath", data: BytesLike): Result;
118
123
  decodeFunctionResult(functionFragment: "findOpenStrategyPath", data: BytesLike): Result;
124
+ decodeFunctionResult(functionFragment: "getGasPriceTokenOutRAY", data: BytesLike): Result;
119
125
  decodeFunctionResult(functionFragment: "isRouterConfigurator", data: BytesLike): Result;
120
126
  decodeFunctionResult(functionFragment: "tokenTypes", data: BytesLike): Result;
121
127
  decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
@@ -173,42 +179,46 @@ export interface IRouter extends BaseContract {
173
179
  removeListener: OnEvent<this>;
174
180
  functions: {
175
181
  componentAddressById(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
176
- findAllSwaps(swapTask: SwapTaskStruct, overrides?: Overrides & {
182
+ findAllSwaps(swapTask: SwapTaskStruct, slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
177
183
  from?: PromiseOrValue<string>;
178
184
  }): Promise<ContractTransaction>;
179
- findBestClosePath(creditAccount: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, pathOptions: PathOptionStruct[], iterations: PromiseOrValue<BigNumberish>, force: PromiseOrValue<boolean>, overrides?: Overrides & {
185
+ findBestClosePath(creditAccount: PromiseOrValue<string>, expectedBalances: BalanceStruct[], leftoverBalances: BalanceStruct[], connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, pathOptions: PathOptionStruct[], iterations: PromiseOrValue<BigNumberish>, force: PromiseOrValue<boolean>, overrides?: Overrides & {
180
186
  from?: PromiseOrValue<string>;
181
187
  }): Promise<ContractTransaction>;
182
188
  findOneTokenPath(tokenIn: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, tokenOut: PromiseOrValue<string>, creditAccount: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
183
189
  from?: PromiseOrValue<string>;
184
190
  }): Promise<ContractTransaction>;
185
- findOpenStrategyPath(creditManager: PromiseOrValue<string>, balances: BalanceStruct[], target: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
191
+ findOpenStrategyPath(creditManager: PromiseOrValue<string>, balances: BalanceStruct[], leftoverBalances: BalanceStruct[], target: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
186
192
  from?: PromiseOrValue<string>;
187
193
  }): Promise<ContractTransaction>;
194
+ getGasPriceTokenOutRAY(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
195
+ gasPrice: BigNumber;
196
+ }>;
188
197
  isRouterConfigurator(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
189
198
  tokenTypes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[number]>;
190
199
  version(overrides?: CallOverrides): Promise<[BigNumber]>;
191
200
  };
192
201
  componentAddressById(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
193
- findAllSwaps(swapTask: SwapTaskStruct, overrides?: Overrides & {
202
+ findAllSwaps(swapTask: SwapTaskStruct, slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
194
203
  from?: PromiseOrValue<string>;
195
204
  }): Promise<ContractTransaction>;
196
- findBestClosePath(creditAccount: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, pathOptions: PathOptionStruct[], iterations: PromiseOrValue<BigNumberish>, force: PromiseOrValue<boolean>, overrides?: Overrides & {
205
+ findBestClosePath(creditAccount: PromiseOrValue<string>, expectedBalances: BalanceStruct[], leftoverBalances: BalanceStruct[], connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, pathOptions: PathOptionStruct[], iterations: PromiseOrValue<BigNumberish>, force: PromiseOrValue<boolean>, overrides?: Overrides & {
197
206
  from?: PromiseOrValue<string>;
198
207
  }): Promise<ContractTransaction>;
199
208
  findOneTokenPath(tokenIn: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, tokenOut: PromiseOrValue<string>, creditAccount: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
200
209
  from?: PromiseOrValue<string>;
201
210
  }): Promise<ContractTransaction>;
202
- findOpenStrategyPath(creditManager: PromiseOrValue<string>, balances: BalanceStruct[], target: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
211
+ findOpenStrategyPath(creditManager: PromiseOrValue<string>, balances: BalanceStruct[], leftoverBalances: BalanceStruct[], target: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
203
212
  from?: PromiseOrValue<string>;
204
213
  }): Promise<ContractTransaction>;
214
+ getGasPriceTokenOutRAY(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
205
215
  isRouterConfigurator(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
206
216
  tokenTypes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<number>;
207
217
  version(overrides?: CallOverrides): Promise<BigNumber>;
208
218
  callStatic: {
209
219
  componentAddressById(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
210
- findAllSwaps(swapTask: SwapTaskStruct, overrides?: CallOverrides): Promise<RouterResultStructOutput[]>;
211
- findBestClosePath(creditAccount: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, pathOptions: PathOptionStruct[], iterations: PromiseOrValue<BigNumberish>, force: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<[
220
+ findAllSwaps(swapTask: SwapTaskStruct, slippage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<RouterResultStructOutput[]>;
221
+ findBestClosePath(creditAccount: PromiseOrValue<string>, expectedBalances: BalanceStruct[], leftoverBalances: BalanceStruct[], connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, pathOptions: PathOptionStruct[], iterations: PromiseOrValue<BigNumberish>, force: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<[
212
222
  RouterResultStructOutput,
213
223
  BigNumber
214
224
  ] & {
@@ -216,7 +226,8 @@ export interface IRouter extends BaseContract {
216
226
  gasPriceTargetRAY: BigNumber;
217
227
  }>;
218
228
  findOneTokenPath(tokenIn: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, tokenOut: PromiseOrValue<string>, creditAccount: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<RouterResultStructOutput>;
219
- findOpenStrategyPath(creditManager: PromiseOrValue<string>, balances: BalanceStruct[], target: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BalanceStructOutput[], RouterResultStructOutput]>;
229
+ findOpenStrategyPath(creditManager: PromiseOrValue<string>, balances: BalanceStruct[], leftoverBalances: BalanceStruct[], target: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BalanceStructOutput[], RouterResultStructOutput]>;
230
+ getGasPriceTokenOutRAY(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
220
231
  isRouterConfigurator(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
221
232
  tokenTypes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<number>;
222
233
  version(overrides?: CallOverrides): Promise<BigNumber>;
@@ -231,36 +242,38 @@ export interface IRouter extends BaseContract {
231
242
  };
232
243
  estimateGas: {
233
244
  componentAddressById(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
234
- findAllSwaps(swapTask: SwapTaskStruct, overrides?: Overrides & {
245
+ findAllSwaps(swapTask: SwapTaskStruct, slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
235
246
  from?: PromiseOrValue<string>;
236
247
  }): Promise<BigNumber>;
237
- findBestClosePath(creditAccount: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, pathOptions: PathOptionStruct[], iterations: PromiseOrValue<BigNumberish>, force: PromiseOrValue<boolean>, overrides?: Overrides & {
248
+ findBestClosePath(creditAccount: PromiseOrValue<string>, expectedBalances: BalanceStruct[], leftoverBalances: BalanceStruct[], connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, pathOptions: PathOptionStruct[], iterations: PromiseOrValue<BigNumberish>, force: PromiseOrValue<boolean>, overrides?: Overrides & {
238
249
  from?: PromiseOrValue<string>;
239
250
  }): Promise<BigNumber>;
240
251
  findOneTokenPath(tokenIn: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, tokenOut: PromiseOrValue<string>, creditAccount: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
241
252
  from?: PromiseOrValue<string>;
242
253
  }): Promise<BigNumber>;
243
- findOpenStrategyPath(creditManager: PromiseOrValue<string>, balances: BalanceStruct[], target: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
254
+ findOpenStrategyPath(creditManager: PromiseOrValue<string>, balances: BalanceStruct[], leftoverBalances: BalanceStruct[], target: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
244
255
  from?: PromiseOrValue<string>;
245
256
  }): Promise<BigNumber>;
257
+ getGasPriceTokenOutRAY(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
246
258
  isRouterConfigurator(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
247
259
  tokenTypes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
248
260
  version(overrides?: CallOverrides): Promise<BigNumber>;
249
261
  };
250
262
  populateTransaction: {
251
263
  componentAddressById(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
252
- findAllSwaps(swapTask: SwapTaskStruct, overrides?: Overrides & {
264
+ findAllSwaps(swapTask: SwapTaskStruct, slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
253
265
  from?: PromiseOrValue<string>;
254
266
  }): Promise<PopulatedTransaction>;
255
- findBestClosePath(creditAccount: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, pathOptions: PathOptionStruct[], iterations: PromiseOrValue<BigNumberish>, force: PromiseOrValue<boolean>, overrides?: Overrides & {
267
+ findBestClosePath(creditAccount: PromiseOrValue<string>, expectedBalances: BalanceStruct[], leftoverBalances: BalanceStruct[], connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, pathOptions: PathOptionStruct[], iterations: PromiseOrValue<BigNumberish>, force: PromiseOrValue<boolean>, overrides?: Overrides & {
256
268
  from?: PromiseOrValue<string>;
257
269
  }): Promise<PopulatedTransaction>;
258
270
  findOneTokenPath(tokenIn: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, tokenOut: PromiseOrValue<string>, creditAccount: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
259
271
  from?: PromiseOrValue<string>;
260
272
  }): Promise<PopulatedTransaction>;
261
- findOpenStrategyPath(creditManager: PromiseOrValue<string>, balances: BalanceStruct[], target: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
273
+ findOpenStrategyPath(creditManager: PromiseOrValue<string>, balances: BalanceStruct[], leftoverBalances: BalanceStruct[], target: PromiseOrValue<string>, connectors: PromiseOrValue<string>[], slippage: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
262
274
  from?: PromiseOrValue<string>;
263
275
  }): Promise<PopulatedTransaction>;
276
+ getGasPriceTokenOutRAY(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
264
277
  isRouterConfigurator(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
265
278
  tokenTypes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
266
279
  version(overrides?: CallOverrides): Promise<PopulatedTransaction>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ export type { IRouter } from "./IRouter";
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +1,6 @@
1
1
  import { BigNumberish } from "ethers";
2
2
  export declare function rayToNumber(num: BigNumberish): number;
3
3
  export declare function formatRAY(num?: bigint): string;
4
- export declare function formatBN(num: BigNumberish | undefined, decimals: number, precision?: number): string;
5
- export declare function formatBn4dig(num: bigint, precision?: number): string;
6
- export declare function toHumanFormat(num: bigint, precision?: number): string;
7
4
  export declare function toSignificant(num: bigint, decimals: number): string;
8
5
  export declare function toBN(num: string, decimals: number): bigint;
9
6
  export declare function shortAddress(address?: string): string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatDateTime = exports.formatLeverage = exports.formatPercentage = exports.formatDate = exports.shortHash = exports.shortAddress = exports.toBN = exports.toSignificant = exports.toHumanFormat = exports.formatBn4dig = exports.formatBN = exports.formatRAY = exports.rayToNumber = void 0;
3
+ exports.formatDateTime = exports.formatLeverage = exports.formatPercentage = exports.formatDate = exports.shortHash = exports.shortAddress = exports.toBN = exports.toSignificant = exports.formatRAY = exports.rayToNumber = void 0;
4
4
  const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
5
5
  const decimal_js_light_1 = require("decimal.js-light");
6
6
  const moment_1 = require("moment");
@@ -12,72 +12,6 @@ function formatRAY(num = 0n) {
12
12
  return toSignificant(num, 27);
13
13
  }
14
14
  exports.formatRAY = formatRAY;
15
- const limitPrecision = (n, p) => {
16
- const notZero = n !== 0n;
17
- if (n <= 10n && notZero) {
18
- return 6;
19
- }
20
- if (n <= 100n && notZero) {
21
- return 5;
22
- }
23
- if (n <= 1000n && notZero) {
24
- return 4;
25
- }
26
- if (n <= 10000n && notZero) {
27
- return 3;
28
- }
29
- if (p === undefined && n > 10n ** 21n) {
30
- return 2;
31
- }
32
- if (p === undefined && n > 10n ** 24n) {
33
- return 0;
34
- }
35
- return p;
36
- };
37
- const limitNum = (n, d = 18) => {
38
- let limited = n <= 2n ? 0n : n;
39
- if (d <= 6) {
40
- return limited * 10n ** BigInt(6 - d);
41
- }
42
- else {
43
- return limited / 10n ** BigInt(d - 6);
44
- }
45
- };
46
- function formatBN(num, decimals, precision) {
47
- if (num === undefined)
48
- return "-";
49
- const numBInt = (0, sdk_gov_1.toBigInt)(num);
50
- // GUSD: 2 decimals
51
- const limitedNum = limitNum(numBInt, decimals);
52
- const limitedPrecision = limitPrecision(limitedNum, precision);
53
- return toHumanFormat(limitedNum, limitedPrecision);
54
- }
55
- exports.formatBN = formatBN;
56
- function formatBn4dig(num, precision = 2) {
57
- if (precision > 6) {
58
- throw new Error("Precision is too high, try <= 6");
59
- }
60
- const numStr = num.toString();
61
- if (numStr.length <= 6) {
62
- const completed = "0".repeat(6 - numStr.length) + numStr;
63
- return `0.${completed.slice(0, precision)}`;
64
- }
65
- return `${numStr.slice(0, numStr.length - 6)}.${numStr.slice(numStr.length - 6, numStr.length - 6 + precision)}`;
66
- }
67
- exports.formatBn4dig = formatBn4dig;
68
- function toHumanFormat(num, precision = 2) {
69
- if (num >= BigInt(1e15)) {
70
- return `${formatBn4dig(num / BigInt(1e9), precision)}Bn`;
71
- }
72
- if (num >= BigInt(1e12)) {
73
- return `${formatBn4dig(num / BigInt(1e6), precision)}M`;
74
- }
75
- if (num >= BigInt(1e9)) {
76
- return `${formatBn4dig(num / BigInt(1e3), precision)}K`;
77
- }
78
- return formatBn4dig(num, precision);
79
- }
80
- exports.toHumanFormat = toHumanFormat;
81
15
  function toSignificant(num, decimals) {
82
16
  if (num === 1n)
83
17
  return "0";
@@ -7,4 +7,6 @@ export declare const nonNegativeBn: (v: bigint) => bigint;
7
7
  export declare class BigIntMath {
8
8
  static abs: (x: bigint) => bigint;
9
9
  static toHexString: (x: bigint) => string;
10
+ static max: (a: bigint, b: bigint) => bigint;
11
+ static min: (a: bigint, b: bigint) => bigint;
10
12
  }
package/lib/utils/math.js CHANGED
@@ -41,5 +41,7 @@ exports.nonNegativeBn = nonNegativeBn;
41
41
  class BigIntMath {
42
42
  static abs = (x) => (x < 0n ? -x : x);
43
43
  static toHexString = (x) => ethers_1.BigNumber.from(x).toHexString();
44
+ static max = (a, b) => (a > b ? a : b);
45
+ static min = (a, b) => (a < b ? a : b);
44
46
  }
45
47
  exports.BigIntMath = BigIntMath;
@@ -2,3 +2,4 @@ import { BigNumber } from "ethers";
2
2
  export type BigintifyProps<T extends {}> = {
3
3
  [K in keyof T]: T[K] extends BigNumber ? bigint : T[K];
4
4
  };
5
+ export type PartialKeys<T, K extends keyof T> = Partial<Pick<T, K>> & Omit<T, K>;
@@ -10,7 +10,7 @@ interface BatchCreditAccountLoadOptions {
10
10
  atBlock?: number;
11
11
  chunkSize?: number;
12
12
  }
13
- export declare class CreditAccountWatcher {
13
+ export declare class CreditAccountWatcherV2 {
14
14
  static IERC20: import("../types/IERC20").IERC20Interface;
15
15
  static creditManagerInterface: import("../types/ICreditManagerV2.sol/ICreditManagerV2").ICreditManagerV2Interface;
16
16
  static creditConfiguratorInterface: import("../types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2").ICreditConfiguratorV2Interface;
@@ -23,7 +23,7 @@ export declare class CreditAccountWatcher {
23
23
  * @returns Arrays of hashes for opened accounts
24
24
  */
25
25
  static getOpenAccounts(creditManager: CreditManagerData, provider: providers.Provider, toBlock?: number): Promise<Array<CreditAccountHash>>;
26
- static batchCreditAccountLoad(accs: Array<CreditAccountHash>, dataCompressor: string, signer: Signer | providers.Provider, options?: BatchCreditAccountLoadOptions | number): Promise<Array<CreditAccountData>>;
26
+ static batchCreditAccountLoad(accs: Array<CreditAccountHash>, dataCompressor210: string, signer: Signer | providers.Provider, options?: BatchCreditAccountLoadOptions | number): Promise<Array<CreditAccountData>>;
27
27
  /**
28
28
  * Tracks block logs and detects whichj acccounts were changed (created / modified) and which were deleted
29
29
  * @param logs Logs from last N blocks
@@ -32,5 +32,6 @@ export declare class CreditAccountWatcher {
32
32
  */
33
33
  static detectChanges(logs: Array<providers.Log>, creditManagers: Array<CreditManagerData>): CreditManagerUpdate;
34
34
  static trackDirectTransfers(freshLogs: Array<providers.Log>, tokensToTrack: Array<string>, accounts: Array<CreditAccountData>): Array<CreditAccountHash>;
35
+ private static assertCMSupported;
35
36
  }
36
37
  export {};
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreditAccountWatcher = void 0;
3
+ exports.CreditAccountWatcherV2 = void 0;
4
4
  const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
5
5
  const creditAccount_1 = require("../core/creditAccount");
6
6
  const types_1 = require("../types");
7
- class CreditAccountWatcher {
7
+ class CreditAccountWatcherV2 {
8
8
  static IERC20 = types_1.IERC20__factory.createInterface();
9
9
  static creditManagerInterface = types_1.ICreditManagerV2__factory.createInterface();
10
10
  static creditConfiguratorInterface = types_1.ICreditConfiguratorV2__factory.createInterface();
@@ -17,9 +17,7 @@ class CreditAccountWatcher {
17
17
  * @returns Arrays of hashes for opened accounts
18
18
  */
19
19
  static async getOpenAccounts(creditManager, provider, toBlock) {
20
- if (!(creditManager.version === 2 || creditManager.version === 210)) {
21
- throw new Error("Works for V2 only");
22
- }
20
+ CreditAccountWatcherV2.assertCMSupported(creditManager);
23
21
  const eventsByDate = [];
24
22
  const addToEvents = (e, address, operation) => {
25
23
  eventsByDate.push({
@@ -83,7 +81,7 @@ class CreditAccountWatcher {
83
81
  });
84
82
  return Array.from(accounts.values()).map(borrower => creditAccount_1.CreditAccountData.hash(creditManager.address, borrower));
85
83
  }
86
- static async batchCreditAccountLoad(accs, dataCompressor, signer, options) {
84
+ static async batchCreditAccountLoad(accs, dataCompressor210, signer, options) {
87
85
  let chunkSize = 1000;
88
86
  let atBlock;
89
87
  if (typeof options === "object") {
@@ -94,7 +92,7 @@ class CreditAccountWatcher {
94
92
  atBlock = options;
95
93
  }
96
94
  const dcInterface = types_1.IDataCompressorV2_10__factory.createInterface();
97
- const dcmc = new sdk_gov_1.MultiCallContract(dataCompressor, dcInterface, signer);
95
+ const dcmc = new sdk_gov_1.MultiCallContract(dataCompressor210, dcInterface, signer);
98
96
  const calls = [];
99
97
  for (let i = 0; i < accs.length; i++) {
100
98
  const chunk = accs.slice(i * chunkSize, (i + 1) * chunkSize);
@@ -119,7 +117,10 @@ class CreditAccountWatcher {
119
117
  * @returns CreditManagerUpdate which contains updated (created / modified) and deleted accounts
120
118
  */
121
119
  static detectChanges(logs, creditManagers) {
122
- const cms = creditManagers.map(c => c.address.toLowerCase());
120
+ const cms = creditManagers.map(cm => {
121
+ CreditAccountWatcherV2.assertCMSupported(cm);
122
+ return cm.address.toLowerCase();
123
+ });
123
124
  const cfToCm = {};
124
125
  const ccToCm = {};
125
126
  // maps credit manager addr to credit configurator addresses
@@ -135,7 +136,7 @@ class CreditAccountWatcher {
135
136
  for (let log of logs) {
136
137
  const logAddr = log.address.toLowerCase();
137
138
  if (cms.includes(logAddr)) {
138
- const { name, args } = CreditAccountWatcher.creditManagerInterface.parseLog(log);
139
+ const { name, args } = CreditAccountWatcherV2.creditManagerInterface.parseLog(log);
139
140
  if (name === "ExecuteOrder") {
140
141
  const { borrower } = args;
141
142
  if (!borrower)
@@ -151,14 +152,14 @@ class CreditAccountWatcher {
151
152
  }
152
153
  }
153
154
  else if (logAddr in ccToCm) {
154
- const { name, args } = CreditAccountWatcher.creditConfiguratorInterface.parseLog(log);
155
+ const { name, args } = CreditAccountWatcherV2.creditConfiguratorInterface.parseLog(log);
155
156
  if (name === "CreditFacadeUpgraded") {
156
157
  const newCreditFacade = args.newCreditFacade.toLowerCase();
157
158
  cfToCm[newCreditFacade] = ccToCm[logAddr];
158
159
  }
159
160
  }
160
161
  else if (logAddr in cfToCm) {
161
- const { name, args } = CreditAccountWatcher.creditFacadeInterface.parseLog(log);
162
+ const { name, args } = CreditAccountWatcherV2.creditFacadeInterface.parseLog(log);
162
163
  switch (name) {
163
164
  case "OpenCreditAccount":
164
165
  case "AddCollateral": {
@@ -225,7 +226,7 @@ class CreditAccountWatcher {
225
226
  });
226
227
  for (let log of freshLogs) {
227
228
  if (tkns.includes(log.address.toLocaleLowerCase())) {
228
- const { name, args } = CreditAccountWatcher.IERC20.parseLog(log);
229
+ const { name, args } = CreditAccountWatcherV2.IERC20.parseLog(log);
229
230
  if (name === "Transfer" &&
230
231
  accAddresses.includes(args.to.toLowerCase())) {
231
232
  modified.add(accToCa[args.to.toLowerCase()].hash());
@@ -234,5 +235,10 @@ class CreditAccountWatcher {
234
235
  }
235
236
  return Array.from(modified);
236
237
  }
238
+ static assertCMSupported(cm) {
239
+ if (cm.version < 2 || cm.version > 299) {
240
+ throw new Error(`CreditAccountWatcherV2 does not support credit manager version ${cm.version}`);
241
+ }
242
+ }
237
243
  }
238
- exports.CreditAccountWatcher = CreditAccountWatcher;
244
+ exports.CreditAccountWatcherV2 = CreditAccountWatcherV2;
@@ -55,7 +55,7 @@ const newConfiguratorLog = (managerAddr = CREDIT_MANAGER_ADDRESS, configuratorAd
55
55
  ]);
56
56
  describe("CreditAccountTracker test", () => {
57
57
  it("detects update events correctly", () => {
58
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([openLog()], [cmDumb])).to.be.eql({
58
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([openLog()], [cmDumb])).to.be.eql({
59
59
  updated: [expectedHash],
60
60
  deleted: [],
61
61
  });
@@ -63,7 +63,7 @@ describe("CreditAccountTracker test", () => {
63
63
  creditFacadeInterface.getEventTopic("IncreaseBorrowedAmount"),
64
64
  encode("address", BORROWER),
65
65
  ], ethers_1.utils.defaultAbiCoder.encode(["uint256"], [10]));
66
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([log], [cmDumb])).to.be.eql({
66
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([log], [cmDumb])).to.be.eql({
67
67
  updated: [expectedHash],
68
68
  deleted: [],
69
69
  });
@@ -71,7 +71,7 @@ describe("CreditAccountTracker test", () => {
71
71
  creditFacadeInterface.getEventTopic("DecreaseBorrowedAmount"),
72
72
  encode("address", BORROWER),
73
73
  ], ethers_1.utils.defaultAbiCoder.encode(["uint256"], [10]));
74
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([log], [cmDumb])).to.be.eql({
74
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([log], [cmDumb])).to.be.eql({
75
75
  updated: [expectedHash],
76
76
  deleted: [],
77
77
  });
@@ -80,7 +80,7 @@ describe("CreditAccountTracker test", () => {
80
80
  encode("address", BORROWER),
81
81
  encode("address", sdk_gov_1.DUMB_ADDRESS),
82
82
  ], ethers_1.utils.defaultAbiCoder.encode(["uint256"], [10]));
83
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([log], [cmDumb])).to.be.eql({
83
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([log], [cmDumb])).to.be.eql({
84
84
  updated: [expectedHash],
85
85
  deleted: [],
86
86
  });
@@ -88,7 +88,7 @@ describe("CreditAccountTracker test", () => {
88
88
  creditFacadeInterface.getEventTopic("MultiCallStarted"),
89
89
  encode("address", BORROWER),
90
90
  ]);
91
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([log], [cmDumb])).to.be.eql({
91
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([log], [cmDumb])).to.be.eql({
92
92
  updated: [expectedHash],
93
93
  deleted: [],
94
94
  });
@@ -97,7 +97,7 @@ describe("CreditAccountTracker test", () => {
97
97
  encode("address", BORROWER),
98
98
  encode("address", sdk_gov_1.DUMB_ADDRESS),
99
99
  ]);
100
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([log], [cmDumb])).to.be.eql({
100
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([log], [cmDumb])).to.be.eql({
101
101
  updated: [expectedHash],
102
102
  deleted: [],
103
103
  });
@@ -106,7 +106,7 @@ describe("CreditAccountTracker test", () => {
106
106
  encode("address", BORROWER),
107
107
  encode("address", sdk_gov_1.DUMB_ADDRESS),
108
108
  ]);
109
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([log], [cmDumb])).to.be.eql({
109
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([log], [cmDumb])).to.be.eql({
110
110
  updated: [expectedHash],
111
111
  deleted: [],
112
112
  });
@@ -115,7 +115,7 @@ describe("CreditAccountTracker test", () => {
115
115
  encode("address", BORROWER),
116
116
  encode("address", sdk_gov_1.DUMB_ADDRESS),
117
117
  ]);
118
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([log], [cmDumb])).to.be.eql({
118
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([log], [cmDumb])).to.be.eql({
119
119
  updated: [expectedHash],
120
120
  deleted: [],
121
121
  });
@@ -124,7 +124,7 @@ describe("CreditAccountTracker test", () => {
124
124
  // DELETED
125
125
  //
126
126
  it("detects delete events correctly", () => {
127
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([closeLog()], [cmDumb])).to.be.eql({
127
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([closeLog()], [cmDumb])).to.be.eql({
128
128
  updated: [],
129
129
  deleted: [expectedHash],
130
130
  });
@@ -135,7 +135,7 @@ describe("CreditAccountTracker test", () => {
135
135
  encode("address", sdk_gov_1.DUMB_ADDRESS),
136
136
  encode("address", sdk_gov_1.DUMB_ADDRESS),
137
137
  ], ethers_1.utils.defaultAbiCoder.encode(["uint256"], [10]));
138
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([log], [cmDumb])).to.be.eql({
138
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([log], [cmDumb])).to.be.eql({
139
139
  updated: [],
140
140
  deleted: [expectedHash],
141
141
  });
@@ -146,27 +146,27 @@ describe("CreditAccountTracker test", () => {
146
146
  encode("address", sdk_gov_1.DUMB_ADDRESS),
147
147
  encode("address", sdk_gov_1.DUMB_ADDRESS),
148
148
  ], ethers_1.utils.defaultAbiCoder.encode(["uint256"], [10]));
149
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([log], [cmDumb])).to.be.eql({
149
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([log], [cmDumb])).to.be.eql({
150
150
  updated: [],
151
151
  deleted: [expectedHash],
152
152
  });
153
153
  });
154
154
  it("doesn't make duplicated", () => {
155
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([openLog(), openLog(), openLog()], [cmDumb])).to.be.eql({
155
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([openLog(), openLog(), openLog()], [cmDumb])).to.be.eql({
156
156
  updated: [expectedHash],
157
157
  deleted: [],
158
158
  });
159
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([closeLog(), closeLog(), closeLog()], [cmDumb])).to.be.eql({
159
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([closeLog(), closeLog(), closeLog()], [cmDumb])).to.be.eql({
160
160
  updated: [],
161
161
  deleted: [expectedHash],
162
162
  });
163
163
  });
164
164
  it("updates accounts were created and deleted in the batch", () => {
165
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([openLog(), closeLog()], [cmDumb])).to.be.eql({
165
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([openLog(), closeLog()], [cmDumb])).to.be.eql({
166
166
  updated: [],
167
167
  deleted: [expectedHash],
168
168
  });
169
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([openLog(), closeLog(), openLog()], [cmDumb])).to.be.eql({
169
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([openLog(), closeLog(), openLog()], [cmDumb])).to.be.eql({
170
170
  updated: [expectedHash],
171
171
  deleted: [expectedHash],
172
172
  });
@@ -177,7 +177,7 @@ describe("CreditAccountTracker test", () => {
177
177
  encode("address", BORROWER),
178
178
  encode("address", sdk_gov_1.DUMB_ADDRESS),
179
179
  ]);
180
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([openLog(), transferLog], [cmDumb])).to.be.eql({
180
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([openLog(), transferLog], [cmDumb])).to.be.eql({
181
181
  updated: [
182
182
  `${CREDIT_MANAGER_ADDRESS.toLowerCase()}:${sdk_gov_1.DUMB_ADDRESS.toLowerCase()}`,
183
183
  ],
@@ -185,7 +185,7 @@ describe("CreditAccountTracker test", () => {
185
185
  });
186
186
  });
187
187
  it("correctly handles credit configurator change", () => {
188
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([
188
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([
189
189
  openLog(),
190
190
  newConfiguratorLog(),
191
191
  upgradeFacadeLog(),
@@ -194,7 +194,7 @@ describe("CreditAccountTracker test", () => {
194
194
  updated: [],
195
195
  deleted: [expectedHash],
196
196
  });
197
- (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcher.detectChanges([
197
+ (0, chai_1.expect)(creditAccountWatcher_1.CreditAccountWatcherV2.detectChanges([
198
198
  openLog(),
199
199
  closeLog(),
200
200
  newConfiguratorLog(),