@gearbox-protocol/sdk 11.9.0-next.2 → 11.9.0

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 (455) hide show
  1. package/dist/cjs/dev/create2.js +1 -1
  2. package/dist/cjs/dev/mint/AbstractMinter.js +4 -2
  3. package/dist/cjs/dev/mint/DealMinter.js +3 -0
  4. package/dist/cjs/dev/mint/DirectMinter.js +3 -0
  5. package/dist/cjs/dev/mint/FallbackMinter.js +1 -1
  6. package/dist/cjs/dev/mint/TransferMinter.js +3 -0
  7. package/dist/cjs/permissionless/bindings/address-provider.js +6 -4
  8. package/dist/cjs/permissionless/bindings/base-contract.js +173 -0
  9. package/dist/cjs/permissionless/bindings/bytecode-repository.js +25 -23
  10. package/dist/cjs/permissionless/bindings/compressors/token-compressor.js +4 -4
  11. package/dist/cjs/permissionless/bindings/compressors/withdrawal-compressor.js +17 -11
  12. package/dist/cjs/permissionless/bindings/cross-chain-multisig.js +22 -23
  13. package/dist/cjs/permissionless/bindings/factory/abstract-factory.js +4 -7
  14. package/dist/cjs/permissionless/bindings/governance/batches-chain.js +4 -4
  15. package/dist/cjs/permissionless/bindings/governance/governor.js +49 -30
  16. package/dist/cjs/permissionless/bindings/governance/timelock.js +4 -4
  17. package/dist/cjs/permissionless/bindings/index.js +2 -0
  18. package/dist/cjs/permissionless/bindings/instance-manager.js +77 -58
  19. package/dist/cjs/permissionless/bindings/market-configurator-factory.js +4 -4
  20. package/dist/cjs/permissionless/bindings/market-configurator.js +143 -71
  21. package/dist/cjs/permissionless/bindings/price-feed-store.js +17 -8
  22. package/dist/cjs/permissionless/bindings/router/routing-manager.js +15 -9
  23. package/dist/cjs/permissionless/bindings/treasury-splitter.js +23 -14
  24. package/dist/cjs/permissionless/core/raw-tx.js +2 -2
  25. package/dist/cjs/permissionless/utils/abi-decoder.js +72 -0
  26. package/dist/cjs/permissionless/utils/format.js +2 -2
  27. package/dist/cjs/permissionless/utils/governance/timelock-txs.js +2 -2
  28. package/dist/cjs/permissionless/utils/index.js +2 -0
  29. package/dist/cjs/permissionless/utils/price-update/get-price-feeds.js +2 -1
  30. package/dist/cjs/permissionless/utils/price-update/get-price-update-tx.js +2 -1
  31. package/dist/cjs/permissionless/utils/price-update/get-prices.js +2 -1
  32. package/dist/cjs/permissionless/utils/price-update/get-updatable-feeds.js +3 -2
  33. package/dist/cjs/plugins/adapters/abi/conctructorAbi.js +2 -1
  34. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +2 -2
  35. package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +2 -2
  36. package/dist/cjs/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +2 -2
  37. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +2 -2
  38. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +2 -2
  39. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +2 -2
  40. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +2 -2
  41. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +2 -2
  42. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -2
  43. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -2
  44. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -2
  45. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  46. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -2
  47. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -2
  48. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +2 -2
  49. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +2 -2
  50. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +2 -2
  51. package/dist/cjs/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +2 -2
  52. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +2 -2
  53. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +2 -2
  54. package/dist/cjs/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +2 -2
  55. package/dist/cjs/plugins/adapters/contracts/InfraredVaultAdapterContract.js +2 -2
  56. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +2 -2
  57. package/dist/cjs/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +2 -2
  58. package/dist/cjs/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +2 -2
  59. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +2 -2
  60. package/dist/cjs/plugins/adapters/contracts/MellowClaimerAdapterContract.js +2 -2
  61. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +2 -2
  62. package/dist/cjs/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +2 -2
  63. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +2 -2
  64. package/dist/cjs/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +2 -2
  65. package/dist/cjs/plugins/adapters/contracts/MellowVaultAdapterContract.js +2 -2
  66. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +2 -2
  67. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +2 -2
  68. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +2 -2
  69. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +2 -2
  70. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +2 -2
  71. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +2 -2
  72. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +5 -5
  73. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +22 -22
  74. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +2 -2
  75. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +2 -2
  76. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +2 -2
  77. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +2 -2
  78. package/dist/cjs/plugins/adapters/contracts/YearnV2AdapterContract.js +2 -2
  79. package/dist/cjs/plugins/bots/BotsPlugin.js +8 -21
  80. package/dist/cjs/plugins/bots/PartialLiquidationBotBaseContract.js +22 -17
  81. package/dist/cjs/plugins/bots/PartialLiquidationBotV300Contract.js +20 -4
  82. package/dist/cjs/plugins/delayed-withdrawal/DelayedWithdrawalPlugin.js +78 -3
  83. package/dist/cjs/plugins/zappers/ZappersPlugin.js +1 -1
  84. package/dist/cjs/sdk/GearboxSDK.js +110 -8
  85. package/dist/cjs/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +4 -1
  86. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +12 -8
  87. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +10 -8
  88. package/dist/cjs/sdk/base/AddressLabeller.js +49 -0
  89. package/dist/cjs/sdk/base/BaseContract.js +80 -195
  90. package/dist/cjs/sdk/base/IAddressLabeller.js +16 -0
  91. package/dist/cjs/sdk/base/SDKConstruct.js +29 -3
  92. package/dist/cjs/sdk/base/TokensMeta.js +4 -4
  93. package/dist/cjs/sdk/base/index.js +2 -4
  94. package/dist/cjs/sdk/core/BotListV3Contract.js +2 -2
  95. package/dist/cjs/sdk/core/GearStakingV3Contract.js +2 -2
  96. package/dist/cjs/sdk/core/address-provider/AbstractAddressProviderContract.js +2 -2
  97. package/dist/cjs/sdk/core/address-provider/AddressProviderV300Contract.js +6 -11
  98. package/dist/cjs/sdk/core/address-provider/AddressProviderV310Contract.js +4 -4
  99. package/dist/cjs/sdk/market/MarketConfiguratorContract.js +5 -5
  100. package/dist/cjs/sdk/market/MarketRegister.js +9 -7
  101. package/dist/cjs/sdk/market/MarketSuite.js +2 -2
  102. package/dist/cjs/sdk/market/credit/CreditConfiguratorV300Contract.js +3 -4
  103. package/dist/cjs/sdk/market/credit/CreditConfiguratorV310Contract.js +3 -4
  104. package/dist/cjs/sdk/market/credit/CreditFacadeV300Contract.js +9 -9
  105. package/dist/cjs/sdk/market/credit/CreditFacadeV310Contract.js +8 -8
  106. package/dist/cjs/sdk/market/credit/CreditManagerV300Contract.js +2 -5
  107. package/dist/cjs/sdk/market/credit/CreditManagerV310Contract.js +2 -5
  108. package/dist/cjs/sdk/market/credit/CreditSuite.js +3 -2
  109. package/dist/cjs/sdk/market/loss-policy/AliasLossPolicyV310Contract.js +1 -3
  110. package/dist/cjs/sdk/market/loss-policy/LossPolicyContract.js +2 -2
  111. package/dist/cjs/sdk/market/loss-policy/createLossPolicy.js +1 -1
  112. package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +26 -8
  113. package/dist/cjs/sdk/market/oracle/createPriceOracle.js +1 -1
  114. package/dist/cjs/sdk/market/pool/GaugeContract.js +2 -2
  115. package/dist/cjs/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
  116. package/dist/cjs/sdk/market/pool/PoolQuotaKeeperV300Contract.js +2 -2
  117. package/dist/cjs/sdk/market/pool/PoolQuotaKeeperV310Contract.js +2 -2
  118. package/dist/cjs/sdk/market/pool/PoolSuite.js +1 -1
  119. package/dist/cjs/sdk/market/pool/PoolV300Contract.js +5 -5
  120. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +5 -5
  121. package/dist/cjs/sdk/market/pool/TumblerContract.js +2 -2
  122. package/dist/cjs/sdk/market/pool/createInterestRateModel.js +15 -11
  123. package/dist/cjs/sdk/market/pricefeeds/AbstractLPPriceFeed.js +22 -2
  124. package/dist/cjs/sdk/market/pricefeeds/AbstractPriceFeed.js +3 -3
  125. package/dist/cjs/sdk/market/pricefeeds/BalancerStablePriceFeed.js +9 -2
  126. package/dist/cjs/sdk/market/pricefeeds/BalancerWeightedPriceFeed.js +9 -2
  127. package/dist/cjs/sdk/market/pricefeeds/BoundedPriceFeed.js +2 -6
  128. package/dist/cjs/sdk/market/pricefeeds/CompositePriceFeed.js +2 -2
  129. package/dist/cjs/sdk/market/pricefeeds/ConstantPriceFeed.js +2 -2
  130. package/dist/cjs/sdk/market/pricefeeds/CurveCryptoPriceFeed.js +9 -2
  131. package/dist/cjs/sdk/market/pricefeeds/CurveStablePriceFeed.js +9 -2
  132. package/dist/cjs/sdk/market/pricefeeds/CurveUSDPriceFeed.js +9 -2
  133. package/dist/cjs/sdk/market/pricefeeds/Erc4626PriceFeed.js +18 -2
  134. package/dist/cjs/sdk/market/pricefeeds/ExternalPriceFeed.js +2 -2
  135. package/dist/cjs/sdk/market/pricefeeds/MellowLRTPriceFeed.js +10 -2
  136. package/dist/cjs/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.js +2 -2
  137. package/dist/cjs/sdk/market/pricefeeds/PriceFeedRef.js +4 -6
  138. package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +3 -2
  139. package/dist/cjs/sdk/market/pricefeeds/PythPriceFeed.js +2 -2
  140. package/dist/cjs/sdk/market/pricefeeds/RedstonePriceFeed.js +3 -3
  141. package/dist/cjs/sdk/market/pricefeeds/WstETHPriceFeed.js +9 -2
  142. package/dist/cjs/sdk/market/pricefeeds/YearnPriceFeed.js +9 -2
  143. package/dist/cjs/sdk/market/pricefeeds/ZeroPriceFeed.js +2 -2
  144. package/dist/cjs/sdk/market/pricefeeds/updates/PythUpdater.js +8 -6
  145. package/dist/cjs/sdk/market/pricefeeds/updates/RedstoneUpdater.js +11 -9
  146. package/dist/cjs/sdk/router/AbstractRouterContract.js +114 -12
  147. package/dist/cjs/sdk/router/RouterV300Contract.js +9 -10
  148. package/dist/cjs/sdk/router/RouterV310Contract.js +10 -10
  149. package/dist/cjs/sdk/router/createRouter.js +0 -4
  150. package/dist/cjs/sdk/utils/index.js +0 -2
  151. package/dist/esm/dev/create2.js +2 -2
  152. package/dist/esm/dev/mint/AbstractMinter.js +7 -3
  153. package/dist/esm/dev/mint/DealMinter.js +3 -0
  154. package/dist/esm/dev/mint/DirectMinter.js +3 -0
  155. package/dist/esm/dev/mint/FallbackMinter.js +1 -1
  156. package/dist/esm/dev/mint/TransferMinter.js +3 -0
  157. package/dist/esm/permissionless/bindings/address-provider.js +7 -7
  158. package/dist/esm/permissionless/bindings/base-contract.js +151 -0
  159. package/dist/esm/permissionless/bindings/bytecode-repository.js +24 -22
  160. package/dist/esm/permissionless/bindings/compressors/token-compressor.js +3 -3
  161. package/dist/esm/permissionless/bindings/compressors/withdrawal-compressor.js +16 -10
  162. package/dist/esm/permissionless/bindings/cross-chain-multisig.js +16 -20
  163. package/dist/esm/permissionless/bindings/factory/abstract-factory.js +4 -9
  164. package/dist/esm/permissionless/bindings/governance/batches-chain.js +3 -3
  165. package/dist/esm/permissionless/bindings/governance/governor.js +47 -28
  166. package/dist/esm/permissionless/bindings/governance/timelock.js +3 -3
  167. package/dist/esm/permissionless/bindings/index.js +1 -0
  168. package/dist/esm/permissionless/bindings/instance-manager.js +69 -53
  169. package/dist/esm/permissionless/bindings/market-configurator-factory.js +3 -3
  170. package/dist/esm/permissionless/bindings/market-configurator.js +137 -65
  171. package/dist/esm/permissionless/bindings/price-feed-store.js +14 -8
  172. package/dist/esm/permissionless/bindings/router/routing-manager.js +14 -8
  173. package/dist/esm/permissionless/bindings/treasury-splitter.js +22 -15
  174. package/dist/esm/permissionless/core/raw-tx.js +1 -1
  175. package/dist/esm/permissionless/utils/abi-decoder.js +50 -0
  176. package/dist/esm/permissionless/utils/format.js +1 -1
  177. package/dist/esm/permissionless/utils/governance/timelock-txs.js +1 -1
  178. package/dist/esm/permissionless/utils/index.js +1 -0
  179. package/dist/esm/permissionless/utils/price-update/get-price-feeds.js +2 -4
  180. package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +1 -1
  181. package/dist/esm/permissionless/utils/price-update/get-prices.js +2 -1
  182. package/dist/esm/permissionless/utils/price-update/get-updatable-feeds.js +1 -1
  183. package/dist/esm/plugins/adapters/abi/conctructorAbi.js +2 -1
  184. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +2 -2
  185. package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +2 -2
  186. package/dist/esm/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +2 -2
  187. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +2 -2
  188. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +2 -2
  189. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +2 -2
  190. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +2 -2
  191. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +2 -2
  192. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -2
  193. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -2
  194. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -2
  195. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  196. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -2
  197. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -2
  198. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +2 -2
  199. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +2 -2
  200. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +2 -2
  201. package/dist/esm/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +2 -2
  202. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +2 -2
  203. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +2 -2
  204. package/dist/esm/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +2 -2
  205. package/dist/esm/plugins/adapters/contracts/InfraredVaultAdapterContract.js +2 -2
  206. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +2 -2
  207. package/dist/esm/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +2 -2
  208. package/dist/esm/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +2 -2
  209. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +2 -2
  210. package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +2 -2
  211. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +2 -2
  212. package/dist/esm/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +2 -2
  213. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +2 -2
  214. package/dist/esm/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +2 -2
  215. package/dist/esm/plugins/adapters/contracts/MellowVaultAdapterContract.js +2 -2
  216. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +2 -2
  217. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +2 -2
  218. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +2 -2
  219. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +2 -2
  220. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +2 -2
  221. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +2 -2
  222. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +5 -5
  223. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +22 -22
  224. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +2 -2
  225. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +2 -2
  226. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +2 -2
  227. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +2 -2
  228. package/dist/esm/plugins/adapters/contracts/YearnV2AdapterContract.js +2 -2
  229. package/dist/esm/plugins/bots/BotsPlugin.js +8 -11
  230. package/dist/esm/plugins/bots/PartialLiquidationBotBaseContract.js +22 -7
  231. package/dist/esm/plugins/bots/PartialLiquidationBotV300Contract.js +20 -4
  232. package/dist/esm/plugins/delayed-withdrawal/DelayedWithdrawalPlugin.js +78 -3
  233. package/dist/esm/plugins/zappers/ZappersPlugin.js +1 -1
  234. package/dist/esm/sdk/GearboxSDK.js +112 -10
  235. package/dist/esm/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +4 -1
  236. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +13 -9
  237. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +10 -8
  238. package/dist/esm/sdk/base/AddressLabeller.js +25 -0
  239. package/dist/esm/sdk/base/BaseContract.js +81 -202
  240. package/dist/esm/sdk/base/IAddressLabeller.js +0 -0
  241. package/dist/esm/sdk/base/SDKConstruct.js +29 -3
  242. package/dist/esm/sdk/base/TokensMeta.js +4 -4
  243. package/dist/esm/sdk/base/index.js +1 -2
  244. package/dist/esm/sdk/core/BotListV3Contract.js +2 -2
  245. package/dist/esm/sdk/core/GearStakingV3Contract.js +2 -2
  246. package/dist/esm/sdk/core/address-provider/AbstractAddressProviderContract.js +2 -2
  247. package/dist/esm/sdk/core/address-provider/AddressProviderV300Contract.js +6 -11
  248. package/dist/esm/sdk/core/address-provider/AddressProviderV310Contract.js +4 -4
  249. package/dist/esm/sdk/market/MarketConfiguratorContract.js +5 -5
  250. package/dist/esm/sdk/market/MarketRegister.js +10 -8
  251. package/dist/esm/sdk/market/MarketSuite.js +2 -2
  252. package/dist/esm/sdk/market/credit/CreditConfiguratorV300Contract.js +3 -4
  253. package/dist/esm/sdk/market/credit/CreditConfiguratorV310Contract.js +3 -4
  254. package/dist/esm/sdk/market/credit/CreditFacadeV300Contract.js +9 -9
  255. package/dist/esm/sdk/market/credit/CreditFacadeV310Contract.js +8 -8
  256. package/dist/esm/sdk/market/credit/CreditManagerV300Contract.js +2 -5
  257. package/dist/esm/sdk/market/credit/CreditManagerV310Contract.js +2 -5
  258. package/dist/esm/sdk/market/credit/CreditSuite.js +3 -2
  259. package/dist/esm/sdk/market/loss-policy/AliasLossPolicyV310Contract.js +1 -3
  260. package/dist/esm/sdk/market/loss-policy/LossPolicyContract.js +3 -5
  261. package/dist/esm/sdk/market/loss-policy/createLossPolicy.js +1 -1
  262. package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +26 -8
  263. package/dist/esm/sdk/market/oracle/createPriceOracle.js +1 -1
  264. package/dist/esm/sdk/market/pool/GaugeContract.js +2 -2
  265. package/dist/esm/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
  266. package/dist/esm/sdk/market/pool/PoolQuotaKeeperV300Contract.js +2 -2
  267. package/dist/esm/sdk/market/pool/PoolQuotaKeeperV310Contract.js +2 -2
  268. package/dist/esm/sdk/market/pool/PoolSuite.js +1 -1
  269. package/dist/esm/sdk/market/pool/PoolV300Contract.js +5 -5
  270. package/dist/esm/sdk/market/pool/PoolV310Contract.js +5 -5
  271. package/dist/esm/sdk/market/pool/TumblerContract.js +2 -2
  272. package/dist/esm/sdk/market/pool/createInterestRateModel.js +15 -11
  273. package/dist/esm/sdk/market/pricefeeds/AbstractLPPriceFeed.js +22 -2
  274. package/dist/esm/sdk/market/pricefeeds/AbstractPriceFeed.js +3 -3
  275. package/dist/esm/sdk/market/pricefeeds/BalancerStablePriceFeed.js +13 -3
  276. package/dist/esm/sdk/market/pricefeeds/BalancerWeightedPriceFeed.js +13 -3
  277. package/dist/esm/sdk/market/pricefeeds/BoundedPriceFeed.js +2 -6
  278. package/dist/esm/sdk/market/pricefeeds/CompositePriceFeed.js +2 -2
  279. package/dist/esm/sdk/market/pricefeeds/ConstantPriceFeed.js +2 -2
  280. package/dist/esm/sdk/market/pricefeeds/CurveCryptoPriceFeed.js +10 -3
  281. package/dist/esm/sdk/market/pricefeeds/CurveStablePriceFeed.js +10 -3
  282. package/dist/esm/sdk/market/pricefeeds/CurveUSDPriceFeed.js +10 -3
  283. package/dist/esm/sdk/market/pricefeeds/Erc4626PriceFeed.js +18 -2
  284. package/dist/esm/sdk/market/pricefeeds/ExternalPriceFeed.js +2 -2
  285. package/dist/esm/sdk/market/pricefeeds/MellowLRTPriceFeed.js +11 -3
  286. package/dist/esm/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.js +2 -2
  287. package/dist/esm/sdk/market/pricefeeds/PriceFeedRef.js +5 -7
  288. package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +9 -3
  289. package/dist/esm/sdk/market/pricefeeds/PythPriceFeed.js +2 -2
  290. package/dist/esm/sdk/market/pricefeeds/RedstonePriceFeed.js +3 -3
  291. package/dist/esm/sdk/market/pricefeeds/WstETHPriceFeed.js +10 -3
  292. package/dist/esm/sdk/market/pricefeeds/YearnPriceFeed.js +10 -3
  293. package/dist/esm/sdk/market/pricefeeds/ZeroPriceFeed.js +2 -2
  294. package/dist/esm/sdk/market/pricefeeds/updates/PythUpdater.js +9 -7
  295. package/dist/esm/sdk/market/pricefeeds/updates/RedstoneUpdater.js +12 -10
  296. package/dist/esm/sdk/router/AbstractRouterContract.js +115 -13
  297. package/dist/esm/sdk/router/RouterV300Contract.js +9 -10
  298. package/dist/esm/sdk/router/RouterV310Contract.js +10 -10
  299. package/dist/esm/sdk/router/createRouter.js +0 -4
  300. package/dist/esm/sdk/utils/index.js +0 -1
  301. package/dist/types/dev/create2.d.ts +2 -2
  302. package/dist/types/dev/mint/AbstractMinter.d.ts +4 -3
  303. package/dist/types/dev/mint/DealMinter.d.ts +3 -0
  304. package/dist/types/dev/mint/DirectMinter.d.ts +3 -0
  305. package/dist/types/dev/mint/TransferMinter.d.ts +3 -0
  306. package/dist/types/permissionless/bindings/address-provider.d.ts +255 -4
  307. package/dist/types/permissionless/bindings/base-contract.d.ts +23 -0
  308. package/dist/types/permissionless/bindings/bytecode-repository.d.ts +6 -5
  309. package/dist/types/permissionless/bindings/compressors/token-compressor.d.ts +3 -3
  310. package/dist/types/permissionless/bindings/compressors/withdrawal-compressor.d.ts +5 -4
  311. package/dist/types/permissionless/bindings/cross-chain-multisig.d.ts +7 -7
  312. package/dist/types/permissionless/bindings/factory/abstract-factory.d.ts +1 -1
  313. package/dist/types/permissionless/bindings/governance/batches-chain.d.ts +4 -3
  314. package/dist/types/permissionless/bindings/governance/governor.d.ts +7 -6
  315. package/dist/types/permissionless/bindings/governance/timelock.d.ts +3 -3
  316. package/dist/types/permissionless/bindings/governance/types.d.ts +1 -1
  317. package/dist/types/permissionless/bindings/index.d.ts +1 -0
  318. package/dist/types/permissionless/bindings/instance-manager.d.ts +7 -6
  319. package/dist/types/permissionless/bindings/market-configurator-factory.d.ts +4 -4
  320. package/dist/types/permissionless/bindings/market-configurator.d.ts +6 -6
  321. package/dist/types/permissionless/bindings/price-feed-store.d.ts +7 -6
  322. package/dist/types/permissionless/bindings/router/routing-manager.d.ts +5 -4
  323. package/dist/types/permissionless/bindings/treasury-splitter.d.ts +6 -5
  324. package/dist/types/permissionless/core/proposal.d.ts +7 -1
  325. package/dist/types/permissionless/utils/abi-decoder.d.ts +13 -0
  326. package/dist/types/permissionless/utils/create2.d.ts +1 -1
  327. package/dist/types/permissionless/utils/governance/batch.d.ts +1 -1
  328. package/dist/types/permissionless/utils/index.d.ts +1 -0
  329. package/dist/types/permissionless/utils/price-update/get-price-feeds.d.ts +3 -3
  330. package/dist/types/permissionless/utils/price-update/get-price-update-tx.d.ts +2 -2
  331. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +2 -2
  332. package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +2 -2
  333. package/dist/types/plugins/adapters/contracts/BalancerV2VaultAdapterContract.d.ts +2 -2
  334. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +2 -2
  335. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +2 -2
  336. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +2 -2
  337. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +2 -2
  338. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +2 -2
  339. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +2 -2
  340. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +2 -2
  341. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +2 -2
  342. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +2 -2
  343. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +2 -2
  344. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +2 -2
  345. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +2 -2
  346. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +2 -2
  347. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +2 -2
  348. package/dist/types/plugins/adapters/contracts/EqualizerRouterAdapterContract.d.ts +2 -2
  349. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +2 -2
  350. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +2 -2
  351. package/dist/types/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.d.ts +2 -2
  352. package/dist/types/plugins/adapters/contracts/InfraredVaultAdapterContract.d.ts +2 -2
  353. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +2 -2
  354. package/dist/types/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.d.ts +2 -2
  355. package/dist/types/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.d.ts +2 -2
  356. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +2 -2
  357. package/dist/types/plugins/adapters/contracts/MellowClaimerAdapterContract.d.ts +2 -2
  358. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +2 -2
  359. package/dist/types/plugins/adapters/contracts/MellowDepositQueueAdapterContract.d.ts +2 -2
  360. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +2 -2
  361. package/dist/types/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.d.ts +2 -2
  362. package/dist/types/plugins/adapters/contracts/MellowVaultAdapterContract.d.ts +2 -2
  363. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +2 -2
  364. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +2 -2
  365. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +2 -2
  366. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +2 -2
  367. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +2 -2
  368. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +2 -2
  369. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +3 -3
  370. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +3 -3
  371. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +2 -2
  372. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +2 -2
  373. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +2 -2
  374. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +2 -2
  375. package/dist/types/plugins/adapters/contracts/YearnV2AdapterContract.d.ts +2 -2
  376. package/dist/types/plugins/bots/PartialLiquidationBotV300Contract.d.ts +8 -2
  377. package/dist/types/plugins/delayed-withdrawal/types.d.ts +1 -0
  378. package/dist/types/sdk/GearboxSDK.d.ts +76 -5
  379. package/dist/types/sdk/accountMigration/types.d.ts +2 -1
  380. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +2 -2
  381. package/dist/types/sdk/accounts/types.d.ts +23 -7
  382. package/dist/types/sdk/base/AddressLabeller.d.ts +11 -0
  383. package/dist/types/sdk/base/BaseContract.d.ts +28 -72
  384. package/dist/types/sdk/base/IAddressLabeller.d.ts +9 -0
  385. package/dist/types/sdk/base/PlaceholderContract.d.ts +2 -2
  386. package/dist/types/sdk/base/SDKConstruct.d.ts +16 -2
  387. package/dist/types/sdk/base/TokensMeta.d.ts +3 -2
  388. package/dist/types/sdk/base/index.d.ts +1 -2
  389. package/dist/types/sdk/base/types.d.ts +0 -50
  390. package/dist/types/sdk/core/BotListV3Contract.d.ts +1 -1
  391. package/dist/types/sdk/core/GearStakingV3Contract.d.ts +1 -1
  392. package/dist/types/sdk/core/address-provider/AbstractAddressProviderContract.d.ts +4 -3
  393. package/dist/types/sdk/core/address-provider/AddressProviderV300Contract.d.ts +3 -3
  394. package/dist/types/sdk/core/address-provider/AddressProviderV310Contract.d.ts +3 -3
  395. package/dist/types/sdk/market/MarketConfiguratorContract.d.ts +2 -2
  396. package/dist/types/sdk/market/credit/CreditConfiguratorV300Contract.d.ts +3 -3
  397. package/dist/types/sdk/market/credit/CreditConfiguratorV310Contract.d.ts +3 -3
  398. package/dist/types/sdk/market/credit/CreditFacadeV300Contract.d.ts +4 -3
  399. package/dist/types/sdk/market/credit/CreditFacadeV310Contract.d.ts +4 -3
  400. package/dist/types/sdk/market/credit/CreditManagerV300Contract.d.ts +1 -1
  401. package/dist/types/sdk/market/credit/CreditManagerV310Contract.d.ts +1 -1
  402. package/dist/types/sdk/market/credit/CreditSuite.d.ts +1 -1
  403. package/dist/types/sdk/market/credit/types.d.ts +2 -1
  404. package/dist/types/sdk/market/loss-policy/AliasLossPolicyV310Contract.d.ts +0 -1
  405. package/dist/types/sdk/market/loss-policy/LossPolicyContract.d.ts +3 -2
  406. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +12 -3
  407. package/dist/types/sdk/market/oracle/types.d.ts +10 -0
  408. package/dist/types/sdk/market/pool/GaugeContract.d.ts +3 -2
  409. package/dist/types/sdk/market/pool/LinearInterestRateModelContract.d.ts +3 -2
  410. package/dist/types/sdk/market/pool/PoolQuotaKeeperV300Contract.d.ts +3 -2
  411. package/dist/types/sdk/market/pool/PoolQuotaKeeperV310Contract.d.ts +3 -2
  412. package/dist/types/sdk/market/pool/PoolV300Contract.d.ts +5 -4
  413. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +5 -4
  414. package/dist/types/sdk/market/pool/TumblerContract.d.ts +3 -2
  415. package/dist/types/sdk/market/pricefeeds/AbstractLPPriceFeed.d.ts +8 -3
  416. package/dist/types/sdk/market/pricefeeds/AbstractPriceFeed.d.ts +3 -2
  417. package/dist/types/sdk/market/pricefeeds/BalancerStablePriceFeed.d.ts +3 -2
  418. package/dist/types/sdk/market/pricefeeds/BalancerWeightedPriceFeed.d.ts +3 -2
  419. package/dist/types/sdk/market/pricefeeds/BoundedPriceFeed.d.ts +2 -2
  420. package/dist/types/sdk/market/pricefeeds/CompositePriceFeed.d.ts +2 -2
  421. package/dist/types/sdk/market/pricefeeds/ConstantPriceFeed.d.ts +2 -2
  422. package/dist/types/sdk/market/pricefeeds/CurveCryptoPriceFeed.d.ts +3 -2
  423. package/dist/types/sdk/market/pricefeeds/CurveStablePriceFeed.d.ts +3 -2
  424. package/dist/types/sdk/market/pricefeeds/CurveUSDPriceFeed.d.ts +3 -2
  425. package/dist/types/sdk/market/pricefeeds/Erc4626PriceFeed.d.ts +3 -2
  426. package/dist/types/sdk/market/pricefeeds/ExternalPriceFeed.d.ts +2 -2
  427. package/dist/types/sdk/market/pricefeeds/MellowLRTPriceFeed.d.ts +3 -2
  428. package/dist/types/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.d.ts +2 -2
  429. package/dist/types/sdk/market/pricefeeds/PriceFeedRef.d.ts +4 -3
  430. package/dist/types/sdk/market/pricefeeds/PriceFeedsRegister.d.ts +2 -1
  431. package/dist/types/sdk/market/pricefeeds/PythPriceFeed.d.ts +2 -2
  432. package/dist/types/sdk/market/pricefeeds/RedstonePriceFeed.d.ts +2 -2
  433. package/dist/types/sdk/market/pricefeeds/WstETHPriceFeed.d.ts +3 -2
  434. package/dist/types/sdk/market/pricefeeds/YearnPriceFeed.d.ts +3 -2
  435. package/dist/types/sdk/market/pricefeeds/ZeroPriceFeed.d.ts +2 -2
  436. package/dist/types/sdk/market/pricefeeds/types.d.ts +5 -0
  437. package/dist/types/sdk/router/AbstractRouterContract.d.ts +15 -8
  438. package/dist/types/sdk/router/RouterV300Contract.d.ts +3 -4
  439. package/dist/types/sdk/router/RouterV310Contract.d.ts +2 -3
  440. package/dist/types/sdk/router/types.d.ts +14 -5
  441. package/dist/types/sdk/sdk-legacy/core/creditAccount.d.ts +2 -2
  442. package/dist/types/sdk/utils/index.d.ts +0 -1
  443. package/package.json +1 -1
  444. package/dist/cjs/plugins/bots/deserializePartialLiquidationBotParams.js +0 -49
  445. package/dist/cjs/sdk/base/ChainContractsRegister.js +0 -135
  446. package/dist/cjs/sdk/base/Construct.js +0 -87
  447. package/dist/cjs/sdk/utils/abi-decode.js +0 -58
  448. package/dist/esm/plugins/bots/deserializePartialLiquidationBotParams.js +0 -29
  449. package/dist/esm/sdk/base/ChainContractsRegister.js +0 -111
  450. package/dist/esm/sdk/base/Construct.js +0 -63
  451. package/dist/esm/sdk/utils/abi-decode.js +0 -37
  452. package/dist/types/plugins/bots/deserializePartialLiquidationBotParams.d.ts +0 -3
  453. package/dist/types/sdk/base/ChainContractsRegister.d.ts +0 -57
  454. package/dist/types/sdk/base/Construct.d.ts +0 -38
  455. package/dist/types/sdk/utils/abi-decode.d.ts +0 -10
@@ -8,7 +8,6 @@ import {
8
8
  TypedObjectUtils,
9
9
  VERSION_RANGE_310
10
10
  } from "../../sdk/index.js";
11
- import deserializePartialLiquidationBotParams from "./deserializePartialLiquidationBotParams.js";
12
11
  import { PartialLiquidationBotV300Contract } from "./PartialLiquidationBotV300Contract.js";
13
12
  import { PartialLiquidationBotV310Contract } from "./PartialLiquidationBotV310Contract.js";
14
13
  import {
@@ -60,15 +59,15 @@ class BotsPlugin extends BasePlugin {
60
59
  return this.state;
61
60
  }
62
61
  #loadStateMarketState(mc, state) {
63
- const states = [...state].sort(
64
- (a, b) => deserializePartialLiquidationBotParams(a.baseParams).minHealthFactor - deserializePartialLiquidationBotParams(b.baseParams).minHealthFactor
65
- );
66
- if (states.length && isV300(states[0].baseParams.version)) {
67
- if (states.length !== 4) {
62
+ const bots = state.map((state2) => this.#createBot(mc, state2)).sort((a, b) => a.minHealthFactor - b.minHealthFactor);
63
+ if (bots.length && isV300(Number(bots[0].version))) {
64
+ if (bots.length !== 4) {
68
65
  throw new Error(`expected 4 bots v300 for market configurator ${mc}`);
69
66
  }
67
+ for (let i = 0; i < bots.length; i++) {
68
+ bots[i].botType = LIQUIDATION_BOT_TYPES[i];
69
+ }
70
70
  }
71
- const bots = states.map((s, i) => this.#createBot(mc, s, i));
72
71
  this.botsByMarket.upsert(mc, bots);
73
72
  }
74
73
  stateHuman(raw) {
@@ -106,15 +105,13 @@ class BotsPlugin extends BasePlugin {
106
105
  this.#loadStateMarketState(mc, botStates);
107
106
  }
108
107
  }
109
- #createBot(marketConfigurator, data, index) {
108
+ #createBot(marketConfigurator, data) {
110
109
  const v = Number(data.baseParams.version);
111
110
  if (isV300(v)) {
112
- const botType = LIQUIDATION_BOT_TYPES[index];
113
111
  return new PartialLiquidationBotV300Contract(
114
112
  this.sdk,
115
113
  data,
116
- marketConfigurator,
117
- botType
114
+ marketConfigurator
118
115
  );
119
116
  } else if (isV310(v)) {
120
117
  return new PartialLiquidationBotV310Contract(
@@ -1,5 +1,5 @@
1
+ import { decodeAbiParameters } from "viem";
1
2
  import { BaseContract, formatPercentage } from "../../sdk/index.js";
2
- import deserializePartialLiquidationBotParams from "./deserializePartialLiquidationBotParams.js";
3
3
  class PartialLiquidationBotBaseContract extends BaseContract {
4
4
  requiredPermissions;
5
5
  marketConfigurator;
@@ -7,12 +7,27 @@ class PartialLiquidationBotBaseContract extends BaseContract {
7
7
  constructor(sdk, args) {
8
8
  super(sdk, args);
9
9
  this.#serializedParams = args.serializedParams;
10
- const bp = deserializePartialLiquidationBotParams(args);
11
- this.treasury = bp.treasury;
12
- this.minHealthFactor = bp.minHealthFactor;
13
- this.maxHealthFactor = bp.maxHealthFactor;
14
- this.premiumScaleFactor = bp.premiumScaleFactor;
15
- this.feeScaleFactor = bp.feeScaleFactor;
10
+ const [
11
+ treasury,
12
+ minHealthFactor,
13
+ maxHealthFactor,
14
+ premiumScaleFactor,
15
+ feeScaleFactor
16
+ ] = decodeAbiParameters(
17
+ [
18
+ { name: "treasury", type: "address" },
19
+ { name: "minHealthFactor", type: "uint16" },
20
+ { name: "maxHealthFactor", type: "uint16" },
21
+ { name: "premiumScaleFactor", type: "uint16" },
22
+ { name: "feeScaleFactor", type: "uint16" }
23
+ ],
24
+ args.serializedParams
25
+ );
26
+ this.treasury = treasury;
27
+ this.minHealthFactor = minHealthFactor;
28
+ this.maxHealthFactor = maxHealthFactor;
29
+ this.premiumScaleFactor = premiumScaleFactor;
30
+ this.feeScaleFactor = feeScaleFactor;
16
31
  this.marketConfigurator = args.marketConfigurator;
17
32
  this.requiredPermissions = args.requiredPermissions;
18
33
  }
@@ -2,16 +2,15 @@ import { iPartialLiquidationBotV300Abi } from "./abi/index.js";
2
2
  import { PartialLiquidationBotBaseContract } from "./PartialLiquidationBotBaseContract.js";
3
3
  const abi = iPartialLiquidationBotV300Abi;
4
4
  class PartialLiquidationBotV300Contract extends PartialLiquidationBotBaseContract {
5
- botType;
6
- constructor(sdk, args, marketConfigurator, botType) {
5
+ #botType;
6
+ constructor(sdk, args, marketConfigurator) {
7
7
  super(sdk, {
8
8
  abi,
9
9
  ...args.baseParams,
10
10
  requiredPermissions: args.requiredPermissions,
11
11
  marketConfigurator,
12
- name: `PartialLiquidationBotV300 (${botType})`
12
+ name: "PartialLiquidationBotV300"
13
13
  });
14
- this.botType = botType;
15
14
  }
16
15
  stateHuman(raw) {
17
16
  return {
@@ -19,6 +18,23 @@ class PartialLiquidationBotV300Contract extends PartialLiquidationBotBaseContrac
19
18
  botType: this.botType
20
19
  };
21
20
  }
21
+ /**
22
+ * Set the bot type
23
+ * This method should only be called once from BotsPlugin
24
+ */
25
+ set botType(type) {
26
+ if (this.#botType) {
27
+ throw new Error("bot type already set");
28
+ }
29
+ this.#botType = type;
30
+ this.name = `PartialLiquidationBotV300 (${type})`;
31
+ }
32
+ get botType() {
33
+ if (!this.#botType) {
34
+ throw new Error("bot type not set");
35
+ }
36
+ return this.#botType;
37
+ }
22
38
  }
23
39
  export {
24
40
  PartialLiquidationBotV300Contract
@@ -30,12 +30,19 @@ class DelayedWithdrawalPlugin extends BasePlugin {
30
30
  this.#withdrawableAssets = new AddressMap(void 0, MAP_LABEL);
31
31
  resp.forEach((r, index) => {
32
32
  const cm = creditManagers[index];
33
- if (r.status === "success") {
33
+ if (r.status === "success" && r.result?.length > 0) {
34
+ const configsToShow = r.result;
34
35
  this.#withdrawableAssets?.upsert(
35
36
  cm.creditManager.address,
36
- r.result.map((cfg) => ({
37
+ configsToShow.map((cfg) => ({
37
38
  ...cfg,
38
- creditManager: cm.creditManager.address
39
+ creditManager: cm.creditManager.address,
40
+ disabled: isConfigToOmit({
41
+ creditManager: cm.creditManager.address,
42
+ token: cfg.token,
43
+ withdrawalPhantomToken: cfg.withdrawalPhantomToken,
44
+ underlying: cfg.underlying
45
+ })
39
46
  }))
40
47
  );
41
48
  } else {
@@ -80,6 +87,74 @@ class DelayedWithdrawalPlugin extends BasePlugin {
80
87
  );
81
88
  }
82
89
  }
90
+ function getConfigKey(config) {
91
+ return `${config.creditManager}-${config.token}-${config.withdrawalPhantomToken}-${config.underlying}`.toLowerCase();
92
+ }
93
+ function isConfigToOmit(config) {
94
+ return !!CONFIGS_TO_OMIT_RECORD[getConfigKey(config)];
95
+ }
96
+ const CONFIGS_TO_OMIT_LIST = [
97
+ {
98
+ // checked
99
+ creditManager: "0xf5edc34204e67e592bdcb84114571c9e4bd0bdf7",
100
+ token: "0x7a4EffD87C2f3C55CA251080b1343b605f327E3a",
101
+ withdrawalPhantomToken: "0x6252467C2FefB61cB55180282943139BAeEA36c5",
102
+ underlying: "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"
103
+ },
104
+ {
105
+ // checked
106
+ creditManager: "0xb79d6544839d169869476589d2e54014a074317b",
107
+ token: "0x7a4EffD87C2f3C55CA251080b1343b605f327E3a",
108
+ withdrawalPhantomToken: "0x6252467C2FefB61cB55180282943139BAeEA36c5",
109
+ underlying: "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"
110
+ },
111
+ {
112
+ // checked
113
+ creditManager: "0x79c6c1ce5b12abcc3e407ce8c160ee1160250921",
114
+ token: "0x7a4EffD87C2f3C55CA251080b1343b605f327E3a",
115
+ withdrawalPhantomToken: "0x6252467C2FefB61cB55180282943139BAeEA36c5",
116
+ underlying: "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"
117
+ },
118
+ {
119
+ // checked
120
+ creditManager: "0xc307a074bd5aec2d6ad1d9b74465c24a59b490fd",
121
+ token: "0x7a4EffD87C2f3C55CA251080b1343b605f327E3a",
122
+ withdrawalPhantomToken: "0x6252467C2FefB61cB55180282943139BAeEA36c5",
123
+ underlying: "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"
124
+ },
125
+ {
126
+ // zero debt limit + no opened positions
127
+ creditManager: "0x9a0fdf7cdab4604fc27ebeab4b3d57bd825e8ebe",
128
+ token: "0x7a4EffD87C2f3C55CA251080b1343b605f327E3a",
129
+ withdrawalPhantomToken: "0x6252467C2FefB61cB55180282943139BAeEA36c5",
130
+ underlying: "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"
131
+ },
132
+ {
133
+ // cant load
134
+ creditManager: "0x06c0df5ac1f24bc2097b59ed8ee1db86bf0b09df",
135
+ token: "0x7a4EffD87C2f3C55CA251080b1343b605f327E3a",
136
+ withdrawalPhantomToken: "0x6252467C2FefB61cB55180282943139BAeEA36c5",
137
+ underlying: "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"
138
+ },
139
+ {
140
+ // cant load
141
+ creditManager: "0x1128860755c6d452d9326e35d1672ca7c920b7c1",
142
+ token: "0x7a4EffD87C2f3C55CA251080b1343b605f327E3a",
143
+ withdrawalPhantomToken: "0x6252467C2FefB61cB55180282943139BAeEA36c5",
144
+ underlying: "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"
145
+ },
146
+ {
147
+ // cant load
148
+ creditManager: "0x35e154be3c856c37d539aae90178fe5ac6d37644",
149
+ token: "0x7a4EffD87C2f3C55CA251080b1343b605f327E3a",
150
+ withdrawalPhantomToken: "0x6252467C2FefB61cB55180282943139BAeEA36c5",
151
+ underlying: "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"
152
+ }
153
+ ];
154
+ const CONFIGS_TO_OMIT_RECORD = CONFIGS_TO_OMIT_LIST.reduce((acc, config) => {
155
+ acc[getConfigKey(config)] = config;
156
+ return acc;
157
+ }, {});
83
158
  export {
84
159
  DelayedWithdrawalPlugin
85
160
  };
@@ -115,7 +115,7 @@ class ZappersPlugin extends BasePlugin {
115
115
  const extraZappersTokens = this.extraZappers.values().flatMap((l) => l.flatMap((z) => [z.tokenIn, z.tokenOut]));
116
116
  for (const t of [...zappersTokens, ...extraZappersTokens]) {
117
117
  this.sdk.tokensMeta.upsert(t.addr, t);
118
- this.sdk.setAddressLabel(t.addr, t.symbol);
118
+ this.sdk.addressLabels.set(t.addr, t.symbol);
119
119
  }
120
120
  }
121
121
  }
@@ -5,7 +5,7 @@ import {
5
5
  http,
6
6
  parseEventLogs
7
7
  } from "viem";
8
- import { ChainContractsRegister } from "./base/index.js";
8
+ import { AddressLabeller, TokensMeta } from "./base/index.js";
9
9
  import { detectNetwork, getChain } from "./chain/index.js";
10
10
  import {
11
11
  ADDRESS_PROVIDER_V310,
@@ -30,7 +30,7 @@ import {
30
30
  PluginStateVersionError
31
31
  } from "./plugins/index.js";
32
32
  import { createRouter } from "./router/index.js";
33
- import { TypedObjectUtils, toAddress } from "./utils/index.js";
33
+ import { AddressMap, TypedObjectUtils, toAddress } from "./utils/index.js";
34
34
  import { Hooks } from "./utils/internal/index.js";
35
35
  import { getLogsSafe } from "./utils/viem/index.js";
36
36
  const ERR_NOT_ATTACHED = new Error("Gearbox SDK not attached");
@@ -69,9 +69,10 @@ async function attachClient(options, network) {
69
69
  }
70
70
  return createClient(options, { networkType, chainId });
71
71
  }
72
- class GearboxSDK extends ChainContractsRegister {
72
+ class GearboxSDK {
73
73
  #hooks = new Hooks();
74
74
  plugins;
75
+ #client;
75
76
  // Block which was use for data query
76
77
  #currentBlock;
77
78
  #timestamp;
@@ -82,11 +83,29 @@ class GearboxSDK extends ChainContractsRegister {
82
83
  // Collection of markets
83
84
  #marketRegister;
84
85
  #priceFeeds;
86
+ logger;
85
87
  gasLimit;
88
+ addressLabels = new AddressLabeller();
89
+ /**
90
+ * Interest rate models can be reused across chain (and SDK operates on chain level)
91
+ * TODO: use whatever interface is necessary for InterestRateModels
92
+ */
93
+ interestRateModels = new AddressMap();
86
94
  /**
87
95
  * Will throw an error if contract type is not supported, otherwise will try to use generic contract first, if possible
88
96
  */
89
97
  strictContractTypes;
98
+ /**
99
+ * All contracts known to sdk
100
+ */
101
+ contracts = new AddressMap(
102
+ void 0,
103
+ "contracts"
104
+ );
105
+ /**
106
+ * Token metadata such as symbol and decimals
107
+ */
108
+ tokensMeta;
90
109
  addHook = this.#hooks.addHook.bind(this.#hooks);
91
110
  removeHook = this.#hooks.removeHook.bind(this.#hooks);
92
111
  static async attach(options) {
@@ -139,16 +158,17 @@ class GearboxSDK extends ChainContractsRegister {
139
158
  }).#hydrate(rest, state);
140
159
  }
141
160
  constructor(options) {
142
- super(options.client, options.logger);
161
+ this.logger = options.logger;
143
162
  this.strictContractTypes = options.strictContractTypes ?? false;
144
163
  this.plugins = options.plugins ?? {};
164
+ this.#client = options.client;
145
165
  for (const plugin of Object.values(this.plugins)) {
146
166
  plugin.sdk = this;
147
167
  }
148
168
  if (options.gasLimit !== null) {
149
169
  this.gasLimit = options.gasLimit || 550000000n;
150
170
  }
151
- Object.assign(this, ChainContractsRegister.for(this.client, this.logger));
171
+ this.tokensMeta = new TokensMeta(this);
152
172
  }
153
173
  async #attach(opts) {
154
174
  const {
@@ -304,9 +324,74 @@ class GearboxSDK extends ChainContractsRegister {
304
324
  timestamp: state.timestamp
305
325
  });
306
326
  }
327
+ get client() {
328
+ return this.#client;
329
+ }
330
+ /**
331
+ * Replaces client inflight
332
+ * You're responsible for all inconsistencies between new and old client
333
+ * @param options
334
+ */
335
+ replaceClient(options, network) {
336
+ this.#client = createClient(options, network);
337
+ }
307
338
  get networkType() {
308
339
  return this.client.chain.network;
309
340
  }
341
+ get chain() {
342
+ return this.client.chain;
343
+ }
344
+ get chainId() {
345
+ return this.client.chain.id;
346
+ }
347
+ /**
348
+ * Converts contract call into some human-friendly string
349
+ * This method is safe and should not throw
350
+ * @param address
351
+ * @param calldata
352
+ * @returns
353
+ */
354
+ parseFunctionData(address, calldata) {
355
+ const contract = this.contracts.get(address);
356
+ return contract ? contract.parseFunctionData(calldata) : `unknown: ${address}.${calldata.slice(0, 10)}`;
357
+ }
358
+ /**
359
+ * Converts multicalls into some human-friendly strings
360
+ * This method is safe and should not throw
361
+ * @param address
362
+ * @param calldata
363
+ * @returns
364
+ */
365
+ parseMultiCall(calls) {
366
+ return calls.map(
367
+ (call) => this.parseFunctionData(call.target, call.callData)
368
+ );
369
+ }
370
+ /**
371
+ * Return args, function, type and address name from contract call
372
+ * @param address
373
+ * @param calldata
374
+ * @returns
375
+ */
376
+ parseFunctionDataToObject(address, calldata) {
377
+ const contract = this.contracts.get(address);
378
+ return contract ? {
379
+ ...contract.parseFunctionDataToObject(calldata),
380
+ address,
381
+ type: contract.contractType
382
+ } : null;
383
+ }
384
+ /**
385
+ * Converts multicalls into call info
386
+ * @param address
387
+ * @param calldata
388
+ * @returns
389
+ */
390
+ parseMultiCallToObject(calls) {
391
+ return calls.map(
392
+ (call) => this.parseFunctionDataToObject(call.target, call.callData)
393
+ );
394
+ }
310
395
  stateHuman(raw = true) {
311
396
  return {
312
397
  block: Number(this.currentBlock),
@@ -398,7 +483,7 @@ class GearboxSDK extends ChainContractsRegister {
398
483
  address: watchAddresses
399
484
  });
400
485
  for (const log of logs) {
401
- const contract = this.getContract(log.address);
486
+ const contract = this.contracts.get(log.address);
402
487
  if (contract) {
403
488
  const event = parseEventLogs({
404
489
  abi: contract.abi,
@@ -487,11 +572,17 @@ class GearboxSDK extends ChainContractsRegister {
487
572
  }
488
573
  get botListContract() {
489
574
  const addr = this.addressProvider.getAddress(AP_BOT_LIST, NO_VERSION);
490
- return this.getContract(addr) ?? new BotListContract(this, addr);
575
+ if (!this.contracts.has(addr)) {
576
+ return new BotListContract(this, addr);
577
+ }
578
+ return this.contracts.get(addr);
491
579
  }
492
580
  get gearStakingContract() {
493
581
  const addr = this.addressProvider.getAddress(AP_GEAR_STAKING, NO_VERSION);
494
- return this.getContract(addr) ?? new GearStakingContract(this, addr);
582
+ if (!this.contracts.has(addr)) {
583
+ return new GearStakingContract(this, addr);
584
+ }
585
+ return this.contracts.get(addr);
495
586
  }
496
587
  get marketRegister() {
497
588
  if (this.#marketRegister === void 0) {
@@ -518,7 +609,7 @@ class GearboxSDK extends ChainContractsRegister {
518
609
  );
519
610
  facadeAddr = cm.creditFacade.address;
520
611
  }
521
- const facadeV = this.mustGetContract(facadeAddr).version;
612
+ const facadeV = this.contracts.mustGet(facadeAddr).version;
522
613
  routerRange = isV310(facadeV) ? VERSION_RANGE_310 : VERSION_RANGE_300;
523
614
  }
524
615
  const routerEntry = this.addressProvider.getLatest(AP_ROUTER, routerRange);
@@ -526,7 +617,18 @@ class GearboxSDK extends ChainContractsRegister {
526
617
  throw new Error(`router not found in version range ${routerRange}`);
527
618
  }
528
619
  const [routerAddr, routerV] = routerEntry;
529
- return createRouter(this, routerAddr, routerV);
620
+ if (!this.contracts.has(routerAddr)) {
621
+ return createRouter(this, routerAddr, routerV);
622
+ }
623
+ return this.contracts.get(routerAddr);
624
+ }
625
+ /**
626
+ * Helper to get human-friendly label for address
627
+ * @param address
628
+ * @returns
629
+ */
630
+ labelAddress(address) {
631
+ return this.addressLabels.get(address);
530
632
  }
531
633
  }
532
634
  export {
@@ -7,7 +7,9 @@ import { createCreditAccountService } from "../accounts/createCreditAccountServi
7
7
  import { SDKConstruct } from "../base/index.js";
8
8
  import { chains as CHAINS } from "../chain/chains.js";
9
9
  import { isV310 } from "../constants/versions.js";
10
+ import { childLogger } from "../utils/index.js";
10
11
  class AbstractMigrateCreditAccountsService extends SDKConstruct {
12
+ #logger;
11
13
  #version;
12
14
  #service;
13
15
  // TODO: HARDCODED
@@ -29,7 +31,8 @@ class AbstractMigrateCreditAccountsService extends SDKConstruct {
29
31
  super(sdk);
30
32
  this.#version = version;
31
33
  this.#service = createCreditAccountService(this.sdk, version);
32
- this.logger?.debug(
34
+ this.#logger = childLogger("MigrateCreditAccountsService", sdk.logger);
35
+ this.#logger?.debug(
33
36
  `Created MigrateCreditAccountsService with version: ${this.#version}`
34
37
  );
35
38
  }
@@ -25,7 +25,7 @@ import {
25
25
  } from "../constants/index.js";
26
26
  import { assetsMap } from "../router/index.js";
27
27
  import { BigIntMath } from "../sdk-legacy/index.js";
28
- import { AddressMap } from "../utils/index.js";
28
+ import { AddressMap, childLogger } from "../utils/index.js";
29
29
  import { simulateWithPriceUpdates } from "../utils/viem/index.js";
30
30
  function getWithdrawalCompressorAddress(chainId) {
31
31
  const compressor = chainId === 1 ? "0xfB79b6713fe214B8748ED7b0db1f93E4f1aC9d29" : void 0;
@@ -34,6 +34,7 @@ function getWithdrawalCompressorAddress(chainId) {
34
34
  class AbstractCreditAccountService extends SDKConstruct {
35
35
  #compressor;
36
36
  #batchSize;
37
+ #logger;
37
38
  constructor(sdk, options) {
38
39
  super(sdk);
39
40
  [this.#compressor] = sdk.addressProvider.mustGetLatest(
@@ -41,7 +42,8 @@ class AbstractCreditAccountService extends SDKConstruct {
41
42
  VERSION_RANGE_310
42
43
  );
43
44
  this.#batchSize = options?.batchSize;
44
- this.logger?.debug(
45
+ this.#logger = childLogger("CreditAccountsService", sdk.logger);
46
+ this.#logger?.debug(
45
47
  `credit account compressor address: ${this.#compressor}`
46
48
  );
47
49
  }
@@ -143,7 +145,7 @@ class AbstractCreditAccountService extends SDKConstruct {
143
145
  offset = newOffset;
144
146
  } while (offset !== 0n);
145
147
  }
146
- this.logger?.debug(
148
+ this.#logger?.debug(
147
149
  `loaded ${allCAs.length} credit accounts (${allCAs.length - revertingOffset} reverting)`
148
150
  );
149
151
  return allCAs.sort((a, b) => Number(a.healthFactor - b.healthFactor));
@@ -254,7 +256,8 @@ class AbstractCreditAccountService extends SDKConstruct {
254
256
  force = false,
255
257
  keepAssets,
256
258
  ignoreReservePrices,
257
- applyLossPolicy
259
+ applyLossPolicy,
260
+ debtOnly
258
261
  } = props;
259
262
  const cm = this.sdk.marketRegister.findCreditManager(account.creditManager);
260
263
  const routerCloseResult = await this.sdk.routerFor(account).findBestClosePath({
@@ -262,7 +265,8 @@ class AbstractCreditAccountService extends SDKConstruct {
262
265
  creditManager: cm.creditManager,
263
266
  slippage,
264
267
  force,
265
- keepAssets
268
+ keepAssets,
269
+ debtOnly
266
270
  });
267
271
  const priceUpdates = await this.getPriceUpdatesForFacade({
268
272
  creditManager: account.creditManager,
@@ -278,7 +282,7 @@ class AbstractCreditAccountService extends SDKConstruct {
278
282
  lossPolicyData = await market.lossPolicy.getLiquidationData(
279
283
  account.creditAccount
280
284
  );
281
- this.logger?.debug({ lossPolicyData }, "loss policy data");
285
+ this.#logger?.debug({ lossPolicyData }, "loss policy data");
282
286
  }
283
287
  const tx = cm.creditFacade.liquidateCreditAccount(
284
288
  account.creditAccount,
@@ -836,7 +840,7 @@ class AbstractCreditAccountService extends SDKConstruct {
836
840
  gas: this.sdk.gasLimit
837
841
  });
838
842
  }
839
- this.logger?.debug(
843
+ this.#logger?.debug(
840
844
  {
841
845
  accounts: resp[0]?.length ?? 0,
842
846
  nextOffset: Number(resp[1])
@@ -916,7 +920,7 @@ class AbstractCreditAccountService extends SDKConstruct {
916
920
  });
917
921
  const tStr = Array.from(tokens).map((t) => this.labelAddress(t)).join(", ");
918
922
  const remark = ignoreReservePrices ? " main" : "";
919
- this.logger?.debug(
923
+ this.#logger?.debug(
920
924
  { account: creditAccount?.creditAccount, manager: cm.name },
921
925
  `generating price feed updates for ${tStr} from ${priceFeeds.length}${remark} price feeds`
922
926
  );
@@ -932,7 +936,7 @@ class AbstractCreditAccountService extends SDKConstruct {
932
936
  const market = this.sdk.marketRegister.findByCreditManager(creditManager);
933
937
  const cm = this.sdk.marketRegister.findCreditManager(creditManager);
934
938
  const update = await this.getUpdateForAccount(options);
935
- this.logger?.debug(
939
+ this.#logger?.debug(
936
940
  { account: creditAccount?.creditAccount, manager: cm.name },
937
941
  `getting on demand price updates from ${update.txs.length} txs`
938
942
  );
@@ -11,15 +11,17 @@ class CreditAccountServiceV310 extends AbstractCreditAccountService {
11
11
  botAddress,
12
12
  botBaseType,
13
13
  stopBot,
14
- creditAccount: ca
14
+ targetContract
15
15
  }) {
16
- const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
17
- const priceUpdatesCalls = await this.getPriceUpdatesForFacade({
18
- creditManager: ca.creditManager,
19
- creditAccount: ca
20
- });
16
+ const cm = this.sdk.marketRegister.findCreditManager(
17
+ targetContract.creditManager
18
+ );
19
+ const priceUpdatesCalls = targetContract.type === "creditAccount" ? await this.getPriceUpdatesForFacade({
20
+ creditManager: targetContract.creditManager,
21
+ creditAccount: targetContract
22
+ }) : [];
21
23
  const addBotCall = {
22
- target: ca.creditFacade,
24
+ target: cm.creditFacade.address,
23
25
  callData: encodeFunctionData({
24
26
  abi: iCreditFacadeMulticallV310Abi,
25
27
  functionName: "setBotPermissions",
@@ -27,7 +29,7 @@ class CreditAccountServiceV310 extends AbstractCreditAccountService {
27
29
  })
28
30
  };
29
31
  const calls = [...priceUpdatesCalls, addBotCall];
30
- const tx = cm.creditFacade.multicall(ca.creditAccount, calls);
32
+ const tx = targetContract.type === "creditAccount" ? cm.creditFacade.multicall(targetContract.creditAccount, calls) : void 0;
31
33
  return { tx, calls, creditFacade: cm.creditFacade };
32
34
  }
33
35
  /**
@@ -0,0 +1,25 @@
1
+ import { NOT_DEPLOYED } from "../constants/index.js";
2
+ import { AddressMap } from "../utils/index.js";
3
+ class AddressLabeller {
4
+ #labels = new AddressMap(void 0, "addressLabeller");
5
+ set(address, label) {
6
+ if (address === NOT_DEPLOYED) {
7
+ return;
8
+ }
9
+ if (typeof label === "string") {
10
+ this.#labels.upsert(address, label);
11
+ } else {
12
+ this.#labels.upsert(address, label(this.#labels.get(address)));
13
+ }
14
+ }
15
+ get(address) {
16
+ const label = this.#labels.get(address);
17
+ return label ? `${address} [${label}]` : address;
18
+ }
19
+ get all() {
20
+ return this.#labels.asRecord();
21
+ }
22
+ }
23
+ export {
24
+ AddressLabeller
25
+ };