@gearbox-protocol/sdk 11.11.0-next.2 → 11.11.1

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 (458) 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/contracts/AbstractAdapter.js +2 -2
  34. package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +2 -2
  35. package/dist/cjs/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +2 -2
  36. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +2 -2
  37. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +2 -2
  38. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +2 -2
  39. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +2 -2
  40. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +2 -2
  41. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -2
  42. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -2
  43. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -2
  44. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  45. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -2
  46. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -2
  47. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +2 -2
  48. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +2 -2
  49. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +2 -2
  50. package/dist/cjs/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +2 -2
  51. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +2 -2
  52. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +2 -2
  53. package/dist/cjs/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +2 -2
  54. package/dist/cjs/plugins/adapters/contracts/InfraredVaultAdapterContract.js +2 -2
  55. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +2 -2
  56. package/dist/cjs/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +2 -2
  57. package/dist/cjs/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +2 -2
  58. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +2 -2
  59. package/dist/cjs/plugins/adapters/contracts/MellowClaimerAdapterContract.js +2 -2
  60. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +2 -2
  61. package/dist/cjs/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +2 -2
  62. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +2 -2
  63. package/dist/cjs/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +2 -2
  64. package/dist/cjs/plugins/adapters/contracts/MellowVaultAdapterContract.js +2 -2
  65. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +2 -2
  66. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +2 -2
  67. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +2 -2
  68. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +2 -2
  69. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +2 -2
  70. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +2 -2
  71. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +5 -5
  72. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +22 -22
  73. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +2 -2
  74. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +2 -2
  75. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +2 -2
  76. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +2 -2
  77. package/dist/cjs/plugins/adapters/contracts/YearnV2AdapterContract.js +2 -2
  78. package/dist/cjs/plugins/bots/BotsPlugin.js +96 -21
  79. package/dist/cjs/plugins/bots/PartialLiquidationBotBaseContract.js +14 -17
  80. package/dist/cjs/plugins/bots/PartialLiquidationBotV300Contract.js +20 -4
  81. package/dist/cjs/plugins/bots/config.js +59 -0
  82. package/dist/cjs/plugins/bots/index.js +4 -0
  83. package/dist/cjs/plugins/bots/types.js +9 -0
  84. package/dist/cjs/plugins/zappers/ZappersPlugin.js +1 -1
  85. package/dist/cjs/sdk/GearboxSDK.js +110 -8
  86. package/dist/cjs/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +4 -1
  87. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +8 -6
  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/PriceUpdatesCache.js +0 -17
  145. package/dist/cjs/sdk/market/pricefeeds/updates/PythUpdater.js +9 -7
  146. package/dist/cjs/sdk/market/pricefeeds/updates/RedstoneUpdater.js +12 -10
  147. package/dist/cjs/sdk/router/AbstractRouterContract.js +0 -5
  148. package/dist/cjs/sdk/router/RouterV310Contract.js +3 -3
  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/contracts/AbstractAdapter.js +2 -2
  184. package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +2 -2
  185. package/dist/esm/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +2 -2
  186. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +2 -2
  187. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +2 -2
  188. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +2 -2
  189. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +2 -2
  190. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +2 -2
  191. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -2
  192. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -2
  193. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -2
  194. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  195. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -2
  196. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -2
  197. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +2 -2
  198. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +2 -2
  199. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +2 -2
  200. package/dist/esm/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +2 -2
  201. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +2 -2
  202. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +2 -2
  203. package/dist/esm/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +2 -2
  204. package/dist/esm/plugins/adapters/contracts/InfraredVaultAdapterContract.js +2 -2
  205. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +2 -2
  206. package/dist/esm/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +2 -2
  207. package/dist/esm/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +2 -2
  208. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +2 -2
  209. package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +2 -2
  210. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +2 -2
  211. package/dist/esm/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +2 -2
  212. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +2 -2
  213. package/dist/esm/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +2 -2
  214. package/dist/esm/plugins/adapters/contracts/MellowVaultAdapterContract.js +2 -2
  215. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +2 -2
  216. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +2 -2
  217. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +2 -2
  218. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +2 -2
  219. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +2 -2
  220. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +2 -2
  221. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +5 -5
  222. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +22 -22
  223. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +2 -2
  224. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +2 -2
  225. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +2 -2
  226. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +2 -2
  227. package/dist/esm/plugins/adapters/contracts/YearnV2AdapterContract.js +2 -2
  228. package/dist/esm/plugins/bots/BotsPlugin.js +108 -11
  229. package/dist/esm/plugins/bots/PartialLiquidationBotBaseContract.js +16 -7
  230. package/dist/esm/plugins/bots/PartialLiquidationBotV300Contract.js +20 -4
  231. package/dist/esm/plugins/bots/config.js +33 -0
  232. package/dist/esm/plugins/bots/index.js +2 -0
  233. package/dist/esm/plugins/bots/types.js +8 -0
  234. package/dist/esm/plugins/zappers/ZappersPlugin.js +1 -1
  235. package/dist/esm/sdk/GearboxSDK.js +112 -10
  236. package/dist/esm/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +4 -1
  237. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +9 -7
  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/PriceUpdatesCache.js +0 -17
  295. package/dist/esm/sdk/market/pricefeeds/updates/PythUpdater.js +10 -8
  296. package/dist/esm/sdk/market/pricefeeds/updates/RedstoneUpdater.js +13 -11
  297. package/dist/esm/sdk/router/AbstractRouterContract.js +0 -5
  298. package/dist/esm/sdk/router/RouterV310Contract.js +3 -3
  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 +16 -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/BotsPlugin.d.ts +3 -2
  377. package/dist/types/plugins/bots/PartialLiquidationBotBaseContract.d.ts +1 -1
  378. package/dist/types/plugins/bots/PartialLiquidationBotV300Contract.d.ts +8 -2
  379. package/dist/types/plugins/bots/config.d.ts +6 -0
  380. package/dist/types/plugins/bots/index.d.ts +2 -0
  381. package/dist/types/plugins/bots/types.d.ts +16 -0
  382. package/dist/types/sdk/GearboxSDK.d.ts +76 -5
  383. package/dist/types/sdk/accountMigration/AbstractMigrateCreditAccountsService.d.ts +2 -2
  384. package/dist/types/sdk/accountMigration/types.d.ts +2 -1
  385. package/dist/types/sdk/accounts/types.d.ts +3 -4
  386. package/dist/types/sdk/base/AddressLabeller.d.ts +11 -0
  387. package/dist/types/sdk/base/BaseContract.d.ts +28 -72
  388. package/dist/types/sdk/base/IAddressLabeller.d.ts +9 -0
  389. package/dist/types/sdk/base/PlaceholderContract.d.ts +2 -2
  390. package/dist/types/sdk/base/SDKConstruct.d.ts +16 -2
  391. package/dist/types/sdk/base/TokensMeta.d.ts +3 -2
  392. package/dist/types/sdk/base/index.d.ts +1 -2
  393. package/dist/types/sdk/base/types.d.ts +0 -50
  394. package/dist/types/sdk/core/BotListV3Contract.d.ts +1 -1
  395. package/dist/types/sdk/core/GearStakingV3Contract.d.ts +1 -1
  396. package/dist/types/sdk/core/address-provider/AbstractAddressProviderContract.d.ts +4 -3
  397. package/dist/types/sdk/core/address-provider/AddressProviderV300Contract.d.ts +3 -3
  398. package/dist/types/sdk/core/address-provider/AddressProviderV310Contract.d.ts +3 -3
  399. package/dist/types/sdk/market/MarketConfiguratorContract.d.ts +2 -2
  400. package/dist/types/sdk/market/credit/CreditConfiguratorV300Contract.d.ts +3 -3
  401. package/dist/types/sdk/market/credit/CreditConfiguratorV310Contract.d.ts +3 -3
  402. package/dist/types/sdk/market/credit/CreditFacadeV300Contract.d.ts +4 -3
  403. package/dist/types/sdk/market/credit/CreditFacadeV310Contract.d.ts +4 -3
  404. package/dist/types/sdk/market/credit/CreditManagerV300Contract.d.ts +1 -1
  405. package/dist/types/sdk/market/credit/CreditManagerV310Contract.d.ts +1 -1
  406. package/dist/types/sdk/market/credit/CreditSuite.d.ts +1 -1
  407. package/dist/types/sdk/market/credit/types.d.ts +2 -1
  408. package/dist/types/sdk/market/loss-policy/AliasLossPolicyV310Contract.d.ts +0 -1
  409. package/dist/types/sdk/market/loss-policy/LossPolicyContract.d.ts +3 -2
  410. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +12 -3
  411. package/dist/types/sdk/market/oracle/types.d.ts +10 -0
  412. package/dist/types/sdk/market/pool/GaugeContract.d.ts +3 -2
  413. package/dist/types/sdk/market/pool/LinearInterestRateModelContract.d.ts +3 -2
  414. package/dist/types/sdk/market/pool/PoolQuotaKeeperV300Contract.d.ts +3 -2
  415. package/dist/types/sdk/market/pool/PoolQuotaKeeperV310Contract.d.ts +3 -2
  416. package/dist/types/sdk/market/pool/PoolV300Contract.d.ts +5 -4
  417. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +5 -4
  418. package/dist/types/sdk/market/pool/TumblerContract.d.ts +3 -2
  419. package/dist/types/sdk/market/pricefeeds/AbstractLPPriceFeed.d.ts +8 -3
  420. package/dist/types/sdk/market/pricefeeds/AbstractPriceFeed.d.ts +3 -2
  421. package/dist/types/sdk/market/pricefeeds/BalancerStablePriceFeed.d.ts +3 -2
  422. package/dist/types/sdk/market/pricefeeds/BalancerWeightedPriceFeed.d.ts +3 -2
  423. package/dist/types/sdk/market/pricefeeds/BoundedPriceFeed.d.ts +2 -2
  424. package/dist/types/sdk/market/pricefeeds/CompositePriceFeed.d.ts +2 -2
  425. package/dist/types/sdk/market/pricefeeds/ConstantPriceFeed.d.ts +2 -2
  426. package/dist/types/sdk/market/pricefeeds/CurveCryptoPriceFeed.d.ts +3 -2
  427. package/dist/types/sdk/market/pricefeeds/CurveStablePriceFeed.d.ts +3 -2
  428. package/dist/types/sdk/market/pricefeeds/CurveUSDPriceFeed.d.ts +3 -2
  429. package/dist/types/sdk/market/pricefeeds/Erc4626PriceFeed.d.ts +3 -2
  430. package/dist/types/sdk/market/pricefeeds/ExternalPriceFeed.d.ts +2 -2
  431. package/dist/types/sdk/market/pricefeeds/MellowLRTPriceFeed.d.ts +3 -2
  432. package/dist/types/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.d.ts +2 -2
  433. package/dist/types/sdk/market/pricefeeds/PriceFeedRef.d.ts +4 -3
  434. package/dist/types/sdk/market/pricefeeds/PriceFeedsRegister.d.ts +2 -1
  435. package/dist/types/sdk/market/pricefeeds/PythPriceFeed.d.ts +2 -2
  436. package/dist/types/sdk/market/pricefeeds/RedstonePriceFeed.d.ts +2 -2
  437. package/dist/types/sdk/market/pricefeeds/WstETHPriceFeed.d.ts +3 -2
  438. package/dist/types/sdk/market/pricefeeds/YearnPriceFeed.d.ts +3 -2
  439. package/dist/types/sdk/market/pricefeeds/ZeroPriceFeed.d.ts +2 -2
  440. package/dist/types/sdk/market/pricefeeds/types.d.ts +5 -0
  441. package/dist/types/sdk/market/pricefeeds/updates/PriceUpdatesCache.d.ts +1 -8
  442. package/dist/types/sdk/router/AbstractRouterContract.d.ts +1 -4
  443. package/dist/types/sdk/router/types.d.ts +2 -1
  444. package/dist/types/sdk/sdk-legacy/core/creditAccount.d.ts +2 -2
  445. package/dist/types/sdk/utils/index.d.ts +0 -1
  446. package/package.json +10 -10
  447. package/dist/cjs/plugins/bots/deserializePartialLiquidationBotParams.js +0 -49
  448. package/dist/cjs/sdk/base/ChainContractsRegister.js +0 -135
  449. package/dist/cjs/sdk/base/Construct.js +0 -87
  450. package/dist/cjs/sdk/utils/abi-decode.js +0 -58
  451. package/dist/esm/plugins/bots/deserializePartialLiquidationBotParams.js +0 -29
  452. package/dist/esm/sdk/base/ChainContractsRegister.js +0 -111
  453. package/dist/esm/sdk/base/Construct.js +0 -63
  454. package/dist/esm/sdk/utils/abi-decode.js +0 -37
  455. package/dist/types/plugins/bots/deserializePartialLiquidationBotParams.d.ts +0 -3
  456. package/dist/types/sdk/base/ChainContractsRegister.d.ts +0 -57
  457. package/dist/types/sdk/base/Construct.d.ts +0 -38
  458. package/dist/types/sdk/utils/abi-decode.d.ts +0 -10
@@ -1,17 +1,32 @@
1
+ import {
2
+ decodeAbiParameters,
3
+ encodeAbiParameters,
4
+ stringToHex
5
+ } from "viem";
6
+ import { iBytecodeRepositoryAbi } from "../../abi/310/iBytecodeRepository.js";
1
7
  import { peripheryCompressorAbi } from "../../abi/compressors/peripheryCompressor.js";
2
8
  import {
3
9
  AddressMap,
10
+ AP_BYTECODE_REPOSITORY,
4
11
  AP_PERIPHERY_COMPRESSOR,
12
+ AP_TREASURY,
5
13
  BasePlugin,
14
+ hexEq,
6
15
  isV300,
7
16
  isV310,
8
17
  TypedObjectUtils,
9
18
  VERSION_RANGE_310
10
19
  } from "../../sdk/index.js";
11
- import deserializePartialLiquidationBotParams from "./deserializePartialLiquidationBotParams.js";
20
+ import { iPartialLiquidationBotV310Abi } from "./abi/iPartialLiquidationBotV310.js";
21
+ import {
22
+ PARTIAL_LIQUIDATION_BOT_CONFIGS,
23
+ PARTIAL_LIQUIDATION_BOT_DEPLOYER,
24
+ PARTIAL_LIQUIDATION_BOT_SALT
25
+ } from "./config.js";
12
26
  import { PartialLiquidationBotV300Contract } from "./PartialLiquidationBotV300Contract.js";
13
27
  import { PartialLiquidationBotV310Contract } from "./PartialLiquidationBotV310Contract.js";
14
28
  import {
29
+ BOT_PARAMS_ABI,
15
30
  LIQUIDATION_BOT_TYPES
16
31
  } from "./types.js";
17
32
  class UnsupportedBotVersionError extends Error {
@@ -59,16 +74,100 @@ class BotsPlugin extends BasePlugin {
59
74
  }
60
75
  return this.state;
61
76
  }
77
+ async findDeployedPartialLiquidationBots() {
78
+ const treasury = this.sdk.addressProvider.getAddress(AP_TREASURY);
79
+ const bcr = this.sdk.addressProvider.getAddress(AP_BYTECODE_REPOSITORY);
80
+ const configs = PARTIAL_LIQUIDATION_BOT_CONFIGS[this.sdk.networkType] ?? [];
81
+ const result = new AddressMap();
82
+ if (!configs.length) {
83
+ return result;
84
+ }
85
+ const deployedBots = await this.client.multicall({
86
+ contracts: configs.map(
87
+ (config) => ({
88
+ address: bcr,
89
+ abi: iBytecodeRepositoryAbi,
90
+ functionName: "computeAddress",
91
+ args: [
92
+ stringToHex("BOT::PARTIAL_LIQUIDATION", { size: 32 }),
93
+ 310,
94
+ encodeAbiParameters(BOT_PARAMS_ABI, [
95
+ treasury,
96
+ config.minHealthFactor,
97
+ config.maxHealthFactor,
98
+ config.premiumScaleFactor,
99
+ config.feeScaleFactor
100
+ ]),
101
+ stringToHex(PARTIAL_LIQUIDATION_BOT_SALT, { size: 32 }),
102
+ // salt
103
+ PARTIAL_LIQUIDATION_BOT_DEPLOYER
104
+ ]
105
+ })
106
+ ),
107
+ allowFailure: true,
108
+ blockNumber: this.sdk.currentBlock
109
+ });
110
+ const expectedBots = new AddressMap();
111
+ for (let i = 0; i < configs.length; i++) {
112
+ const b = deployedBots[i];
113
+ const { minHealthFactor, maxHealthFactor } = configs[i];
114
+ if (b.status === "success") {
115
+ expectedBots.upsert(b.result, { ...configs[i], treasury });
116
+ this.logger?.debug(
117
+ `expected bot [${minHealthFactor}, ${maxHealthFactor}] at ${b.result}`
118
+ );
119
+ } else {
120
+ this.logger?.error(
121
+ `failed compute address for bot [${minHealthFactor}, ${maxHealthFactor}]`,
122
+ b.error
123
+ );
124
+ }
125
+ }
126
+ const botAddrs = expectedBots.keys();
127
+ const serializedBots = await this.client.multicall({
128
+ contracts: botAddrs.map(
129
+ (address) => ({
130
+ address,
131
+ abi: iPartialLiquidationBotV310Abi,
132
+ functionName: "serialize"
133
+ })
134
+ ),
135
+ allowFailure: true,
136
+ blockNumber: this.sdk.currentBlock
137
+ });
138
+ for (let i = 0; i < botAddrs.length; i++) {
139
+ const serialized = serializedBots[i];
140
+ const expected = expectedBots.mustGet(botAddrs[i]);
141
+ if (serialized.status === "success") {
142
+ const [
143
+ treasury2,
144
+ minHealthFactor,
145
+ maxHealthFactor,
146
+ premiumScaleFactor,
147
+ feeScaleFactor
148
+ ] = decodeAbiParameters(BOT_PARAMS_ABI, serialized.result);
149
+ if (!hexEq(treasury2, expected.treasury) || minHealthFactor !== expected.minHealthFactor || maxHealthFactor !== expected.maxHealthFactor || premiumScaleFactor !== expected.premiumScaleFactor || feeScaleFactor !== expected.feeScaleFactor) {
150
+ this.logger?.error(
151
+ `serialized bot ${botAddrs[i]} does not match expected bot`,
152
+ serialized.error
153
+ );
154
+ } else {
155
+ result.upsert(botAddrs[i], expected);
156
+ }
157
+ }
158
+ }
159
+ return result;
160
+ }
62
161
  #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) {
162
+ const bots = state.map((state2) => this.#createBot(mc, state2)).sort((a, b) => a.minHealthFactor - b.minHealthFactor);
163
+ if (bots.length && isV300(Number(bots[0].version))) {
164
+ if (bots.length !== 4) {
68
165
  throw new Error(`expected 4 bots v300 for market configurator ${mc}`);
69
166
  }
167
+ for (let i = 0; i < bots.length; i++) {
168
+ bots[i].botType = LIQUIDATION_BOT_TYPES[i];
169
+ }
70
170
  }
71
- const bots = states.map((s, i) => this.#createBot(mc, s, i));
72
171
  this.botsByMarket.upsert(mc, bots);
73
172
  }
74
173
  stateHuman(raw) {
@@ -106,15 +205,13 @@ class BotsPlugin extends BasePlugin {
106
205
  this.#loadStateMarketState(mc, botStates);
107
206
  }
108
207
  }
109
- #createBot(marketConfigurator, data, index) {
208
+ #createBot(marketConfigurator, data) {
110
209
  const v = Number(data.baseParams.version);
111
210
  if (isV300(v)) {
112
- const botType = LIQUIDATION_BOT_TYPES[index];
113
211
  return new PartialLiquidationBotV300Contract(
114
212
  this.sdk,
115
213
  data,
116
- marketConfigurator,
117
- botType
214
+ marketConfigurator
118
215
  );
119
216
  } else if (isV310(v)) {
120
217
  return new PartialLiquidationBotV310Contract(
@@ -1,5 +1,8 @@
1
+ import { decodeAbiParameters } from "viem";
1
2
  import { BaseContract, formatPercentage } from "../../sdk/index.js";
2
- import deserializePartialLiquidationBotParams from "./deserializePartialLiquidationBotParams.js";
3
+ import {
4
+ BOT_PARAMS_ABI
5
+ } from "./types.js";
3
6
  class PartialLiquidationBotBaseContract extends BaseContract {
4
7
  requiredPermissions;
5
8
  marketConfigurator;
@@ -7,12 +10,18 @@ class PartialLiquidationBotBaseContract extends BaseContract {
7
10
  constructor(sdk, args) {
8
11
  super(sdk, args);
9
12
  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;
13
+ const [
14
+ treasury,
15
+ minHealthFactor,
16
+ maxHealthFactor,
17
+ premiumScaleFactor,
18
+ feeScaleFactor
19
+ ] = decodeAbiParameters(BOT_PARAMS_ABI, args.serializedParams);
20
+ this.treasury = treasury;
21
+ this.minHealthFactor = minHealthFactor;
22
+ this.maxHealthFactor = maxHealthFactor;
23
+ this.premiumScaleFactor = premiumScaleFactor;
24
+ this.feeScaleFactor = feeScaleFactor;
16
25
  this.marketConfigurator = args.marketConfigurator;
17
26
  this.requiredPermissions = args.requiredPermissions;
18
27
  }
@@ -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
@@ -0,0 +1,33 @@
1
+ const PARTIAL_LIQUIDATION_BOT_CONFIGS = {
2
+ Mainnet: [
3
+ {
4
+ minHealthFactor: 10300,
5
+ maxHealthFactor: 10700,
6
+ premiumScaleFactor: 1e4,
7
+ feeScaleFactor: 1e4
8
+ }
9
+ ],
10
+ Monad: [
11
+ {
12
+ minHealthFactor: 10300,
13
+ maxHealthFactor: 10700,
14
+ premiumScaleFactor: 1e4,
15
+ feeScaleFactor: 1e4
16
+ }
17
+ ],
18
+ Plasma: [
19
+ {
20
+ minHealthFactor: 10300,
21
+ maxHealthFactor: 10700,
22
+ premiumScaleFactor: 1e4,
23
+ feeScaleFactor: 1e4
24
+ }
25
+ ]
26
+ };
27
+ const PARTIAL_LIQUIDATION_BOT_SALT = "GEARBOX";
28
+ const PARTIAL_LIQUIDATION_BOT_DEPLOYER = "0xc93155E0a835Cf4E17a19463Fa67ed43c164d06a";
29
+ export {
30
+ PARTIAL_LIQUIDATION_BOT_CONFIGS,
31
+ PARTIAL_LIQUIDATION_BOT_DEPLOYER,
32
+ PARTIAL_LIQUIDATION_BOT_SALT
33
+ };
@@ -1,4 +1,6 @@
1
1
  export * from "./abi/index.js";
2
2
  export * from "./BotsPlugin.js";
3
+ export * from "./config.js";
3
4
  export * from "./PartialLiquidationBotV300Contract.js";
5
+ export * from "./PartialLiquidationBotV310Contract.js";
4
6
  export * from "./types.js";
@@ -1,3 +1,10 @@
1
+ const BOT_PARAMS_ABI = [
2
+ { type: "address", name: "treasury" },
3
+ { type: "uint16", name: "minHealthFactor" },
4
+ { type: "uint16", name: "maxHealthFactor" },
5
+ { type: "uint16", name: "premiumScaleFactor" },
6
+ { type: "uint16", name: "feeScaleFactor" }
7
+ ];
1
8
  const LIQUIDATION_BOT_TYPES = [
2
9
  "PARTIAL_LIQUIDATION_BOT",
3
10
  "DELEVERAGE_BOT_PEGGED",
@@ -5,5 +12,6 @@ const LIQUIDATION_BOT_TYPES = [
5
12
  "DELEVERAGE_BOT_HV"
6
13
  ];
7
14
  export {
15
+ BOT_PARAMS_ABI,
8
16
  LIQUIDATION_BOT_TYPES
9
17
  };
@@ -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));
@@ -280,7 +282,7 @@ class AbstractCreditAccountService extends SDKConstruct {
280
282
  lossPolicyData = await market.lossPolicy.getLiquidationData(
281
283
  account.creditAccount
282
284
  );
283
- this.logger?.debug({ lossPolicyData }, "loss policy data");
285
+ this.#logger?.debug({ lossPolicyData }, "loss policy data");
284
286
  }
285
287
  const tx = cm.creditFacade.liquidateCreditAccount(
286
288
  account.creditAccount,
@@ -838,7 +840,7 @@ class AbstractCreditAccountService extends SDKConstruct {
838
840
  gas: this.sdk.gasLimit
839
841
  });
840
842
  }
841
- this.logger?.debug(
843
+ this.#logger?.debug(
842
844
  {
843
845
  accounts: resp[0]?.length ?? 0,
844
846
  nextOffset: Number(resp[1])
@@ -918,7 +920,7 @@ class AbstractCreditAccountService extends SDKConstruct {
918
920
  });
919
921
  const tStr = Array.from(tokens).map((t) => this.labelAddress(t)).join(", ");
920
922
  const remark = ignoreReservePrices ? " main" : "";
921
- this.logger?.debug(
923
+ this.#logger?.debug(
922
924
  { account: creditAccount?.creditAccount, manager: cm.name },
923
925
  `generating price feed updates for ${tStr} from ${priceFeeds.length}${remark} price feeds`
924
926
  );
@@ -934,7 +936,7 @@ class AbstractCreditAccountService extends SDKConstruct {
934
936
  const market = this.sdk.marketRegister.findByCreditManager(creditManager);
935
937
  const cm = this.sdk.marketRegister.findCreditManager(creditManager);
936
938
  const update = await this.getUpdateForAccount(options);
937
- this.logger?.debug(
939
+ this.#logger?.debug(
938
940
  { account: creditAccount?.creditAccount, manager: cm.name },
939
941
  `getting on demand price updates from ${update.txs.length} txs`
940
942
  );
@@ -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
+ };