@gearbox-protocol/sdk 11.11.0-next.1 → 11.11.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/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/PythUpdater.js +8 -6
  145. package/dist/cjs/sdk/market/pricefeeds/updates/RedstoneUpdater.js +11 -9
  146. package/dist/cjs/sdk/router/AbstractRouterContract.js +0 -5
  147. package/dist/cjs/sdk/router/RouterV310Contract.js +3 -3
  148. package/dist/cjs/sdk/router/createRouter.js +0 -4
  149. package/dist/cjs/sdk/utils/index.js +0 -2
  150. package/dist/esm/dev/create2.js +2 -2
  151. package/dist/esm/dev/mint/AbstractMinter.js +7 -3
  152. package/dist/esm/dev/mint/DealMinter.js +3 -0
  153. package/dist/esm/dev/mint/DirectMinter.js +3 -0
  154. package/dist/esm/dev/mint/FallbackMinter.js +1 -1
  155. package/dist/esm/dev/mint/TransferMinter.js +3 -0
  156. package/dist/esm/permissionless/bindings/address-provider.js +7 -7
  157. package/dist/esm/permissionless/bindings/base-contract.js +151 -0
  158. package/dist/esm/permissionless/bindings/bytecode-repository.js +24 -22
  159. package/dist/esm/permissionless/bindings/compressors/token-compressor.js +3 -3
  160. package/dist/esm/permissionless/bindings/compressors/withdrawal-compressor.js +16 -10
  161. package/dist/esm/permissionless/bindings/cross-chain-multisig.js +16 -20
  162. package/dist/esm/permissionless/bindings/factory/abstract-factory.js +4 -9
  163. package/dist/esm/permissionless/bindings/governance/batches-chain.js +3 -3
  164. package/dist/esm/permissionless/bindings/governance/governor.js +47 -28
  165. package/dist/esm/permissionless/bindings/governance/timelock.js +3 -3
  166. package/dist/esm/permissionless/bindings/index.js +1 -0
  167. package/dist/esm/permissionless/bindings/instance-manager.js +69 -53
  168. package/dist/esm/permissionless/bindings/market-configurator-factory.js +3 -3
  169. package/dist/esm/permissionless/bindings/market-configurator.js +137 -65
  170. package/dist/esm/permissionless/bindings/price-feed-store.js +14 -8
  171. package/dist/esm/permissionless/bindings/router/routing-manager.js +14 -8
  172. package/dist/esm/permissionless/bindings/treasury-splitter.js +22 -15
  173. package/dist/esm/permissionless/core/raw-tx.js +1 -1
  174. package/dist/esm/permissionless/utils/abi-decoder.js +50 -0
  175. package/dist/esm/permissionless/utils/format.js +1 -1
  176. package/dist/esm/permissionless/utils/governance/timelock-txs.js +1 -1
  177. package/dist/esm/permissionless/utils/index.js +1 -0
  178. package/dist/esm/permissionless/utils/price-update/get-price-feeds.js +2 -4
  179. package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +1 -1
  180. package/dist/esm/permissionless/utils/price-update/get-prices.js +2 -1
  181. package/dist/esm/permissionless/utils/price-update/get-updatable-feeds.js +1 -1
  182. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +2 -2
  183. package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +2 -2
  184. package/dist/esm/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +2 -2
  185. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +2 -2
  186. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +2 -2
  187. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +2 -2
  188. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +2 -2
  189. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +2 -2
  190. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -2
  191. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -2
  192. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -2
  193. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  194. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -2
  195. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -2
  196. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +2 -2
  197. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +2 -2
  198. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +2 -2
  199. package/dist/esm/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +2 -2
  200. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +2 -2
  201. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +2 -2
  202. package/dist/esm/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +2 -2
  203. package/dist/esm/plugins/adapters/contracts/InfraredVaultAdapterContract.js +2 -2
  204. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +2 -2
  205. package/dist/esm/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +2 -2
  206. package/dist/esm/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +2 -2
  207. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +2 -2
  208. package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +2 -2
  209. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +2 -2
  210. package/dist/esm/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +2 -2
  211. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +2 -2
  212. package/dist/esm/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +2 -2
  213. package/dist/esm/plugins/adapters/contracts/MellowVaultAdapterContract.js +2 -2
  214. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +2 -2
  215. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +2 -2
  216. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +2 -2
  217. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +2 -2
  218. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +2 -2
  219. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +2 -2
  220. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +5 -5
  221. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +22 -22
  222. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +2 -2
  223. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +2 -2
  224. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +2 -2
  225. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +2 -2
  226. package/dist/esm/plugins/adapters/contracts/YearnV2AdapterContract.js +2 -2
  227. package/dist/esm/plugins/bots/BotsPlugin.js +108 -11
  228. package/dist/esm/plugins/bots/PartialLiquidationBotBaseContract.js +16 -7
  229. package/dist/esm/plugins/bots/PartialLiquidationBotV300Contract.js +20 -4
  230. package/dist/esm/plugins/bots/config.js +33 -0
  231. package/dist/esm/plugins/bots/index.js +2 -0
  232. package/dist/esm/plugins/bots/types.js +8 -0
  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 +9 -7
  237. package/dist/esm/sdk/base/AddressLabeller.js +25 -0
  238. package/dist/esm/sdk/base/BaseContract.js +81 -202
  239. package/dist/esm/sdk/base/IAddressLabeller.js +0 -0
  240. package/dist/esm/sdk/base/SDKConstruct.js +29 -3
  241. package/dist/esm/sdk/base/TokensMeta.js +4 -4
  242. package/dist/esm/sdk/base/index.js +1 -2
  243. package/dist/esm/sdk/core/BotListV3Contract.js +2 -2
  244. package/dist/esm/sdk/core/GearStakingV3Contract.js +2 -2
  245. package/dist/esm/sdk/core/address-provider/AbstractAddressProviderContract.js +2 -2
  246. package/dist/esm/sdk/core/address-provider/AddressProviderV300Contract.js +6 -11
  247. package/dist/esm/sdk/core/address-provider/AddressProviderV310Contract.js +4 -4
  248. package/dist/esm/sdk/market/MarketConfiguratorContract.js +5 -5
  249. package/dist/esm/sdk/market/MarketRegister.js +10 -8
  250. package/dist/esm/sdk/market/MarketSuite.js +2 -2
  251. package/dist/esm/sdk/market/credit/CreditConfiguratorV300Contract.js +3 -4
  252. package/dist/esm/sdk/market/credit/CreditConfiguratorV310Contract.js +3 -4
  253. package/dist/esm/sdk/market/credit/CreditFacadeV300Contract.js +9 -9
  254. package/dist/esm/sdk/market/credit/CreditFacadeV310Contract.js +8 -8
  255. package/dist/esm/sdk/market/credit/CreditManagerV300Contract.js +2 -5
  256. package/dist/esm/sdk/market/credit/CreditManagerV310Contract.js +2 -5
  257. package/dist/esm/sdk/market/credit/CreditSuite.js +3 -2
  258. package/dist/esm/sdk/market/loss-policy/AliasLossPolicyV310Contract.js +1 -3
  259. package/dist/esm/sdk/market/loss-policy/LossPolicyContract.js +3 -5
  260. package/dist/esm/sdk/market/loss-policy/createLossPolicy.js +1 -1
  261. package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +26 -8
  262. package/dist/esm/sdk/market/oracle/createPriceOracle.js +1 -1
  263. package/dist/esm/sdk/market/pool/GaugeContract.js +2 -2
  264. package/dist/esm/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
  265. package/dist/esm/sdk/market/pool/PoolQuotaKeeperV300Contract.js +2 -2
  266. package/dist/esm/sdk/market/pool/PoolQuotaKeeperV310Contract.js +2 -2
  267. package/dist/esm/sdk/market/pool/PoolSuite.js +1 -1
  268. package/dist/esm/sdk/market/pool/PoolV300Contract.js +5 -5
  269. package/dist/esm/sdk/market/pool/PoolV310Contract.js +5 -5
  270. package/dist/esm/sdk/market/pool/TumblerContract.js +2 -2
  271. package/dist/esm/sdk/market/pool/createInterestRateModel.js +15 -11
  272. package/dist/esm/sdk/market/pricefeeds/AbstractLPPriceFeed.js +22 -2
  273. package/dist/esm/sdk/market/pricefeeds/AbstractPriceFeed.js +3 -3
  274. package/dist/esm/sdk/market/pricefeeds/BalancerStablePriceFeed.js +13 -3
  275. package/dist/esm/sdk/market/pricefeeds/BalancerWeightedPriceFeed.js +13 -3
  276. package/dist/esm/sdk/market/pricefeeds/BoundedPriceFeed.js +2 -6
  277. package/dist/esm/sdk/market/pricefeeds/CompositePriceFeed.js +2 -2
  278. package/dist/esm/sdk/market/pricefeeds/ConstantPriceFeed.js +2 -2
  279. package/dist/esm/sdk/market/pricefeeds/CurveCryptoPriceFeed.js +10 -3
  280. package/dist/esm/sdk/market/pricefeeds/CurveStablePriceFeed.js +10 -3
  281. package/dist/esm/sdk/market/pricefeeds/CurveUSDPriceFeed.js +10 -3
  282. package/dist/esm/sdk/market/pricefeeds/Erc4626PriceFeed.js +18 -2
  283. package/dist/esm/sdk/market/pricefeeds/ExternalPriceFeed.js +2 -2
  284. package/dist/esm/sdk/market/pricefeeds/MellowLRTPriceFeed.js +11 -3
  285. package/dist/esm/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.js +2 -2
  286. package/dist/esm/sdk/market/pricefeeds/PriceFeedRef.js +5 -7
  287. package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +9 -3
  288. package/dist/esm/sdk/market/pricefeeds/PythPriceFeed.js +2 -2
  289. package/dist/esm/sdk/market/pricefeeds/RedstonePriceFeed.js +3 -3
  290. package/dist/esm/sdk/market/pricefeeds/WstETHPriceFeed.js +10 -3
  291. package/dist/esm/sdk/market/pricefeeds/YearnPriceFeed.js +10 -3
  292. package/dist/esm/sdk/market/pricefeeds/ZeroPriceFeed.js +2 -2
  293. package/dist/esm/sdk/market/pricefeeds/updates/PythUpdater.js +9 -7
  294. package/dist/esm/sdk/market/pricefeeds/updates/RedstoneUpdater.js +12 -10
  295. package/dist/esm/sdk/router/AbstractRouterContract.js +0 -5
  296. package/dist/esm/sdk/router/RouterV310Contract.js +3 -3
  297. package/dist/esm/sdk/router/createRouter.js +0 -4
  298. package/dist/esm/sdk/utils/index.js +0 -1
  299. package/dist/types/dev/create2.d.ts +2 -2
  300. package/dist/types/dev/mint/AbstractMinter.d.ts +4 -3
  301. package/dist/types/dev/mint/DealMinter.d.ts +3 -0
  302. package/dist/types/dev/mint/DirectMinter.d.ts +3 -0
  303. package/dist/types/dev/mint/TransferMinter.d.ts +3 -0
  304. package/dist/types/permissionless/bindings/address-provider.d.ts +255 -4
  305. package/dist/types/permissionless/bindings/base-contract.d.ts +23 -0
  306. package/dist/types/permissionless/bindings/bytecode-repository.d.ts +6 -5
  307. package/dist/types/permissionless/bindings/compressors/token-compressor.d.ts +3 -3
  308. package/dist/types/permissionless/bindings/compressors/withdrawal-compressor.d.ts +5 -4
  309. package/dist/types/permissionless/bindings/cross-chain-multisig.d.ts +7 -7
  310. package/dist/types/permissionless/bindings/factory/abstract-factory.d.ts +1 -1
  311. package/dist/types/permissionless/bindings/governance/batches-chain.d.ts +4 -3
  312. package/dist/types/permissionless/bindings/governance/governor.d.ts +7 -6
  313. package/dist/types/permissionless/bindings/governance/timelock.d.ts +3 -3
  314. package/dist/types/permissionless/bindings/governance/types.d.ts +1 -1
  315. package/dist/types/permissionless/bindings/index.d.ts +1 -0
  316. package/dist/types/permissionless/bindings/instance-manager.d.ts +7 -6
  317. package/dist/types/permissionless/bindings/market-configurator-factory.d.ts +4 -4
  318. package/dist/types/permissionless/bindings/market-configurator.d.ts +6 -6
  319. package/dist/types/permissionless/bindings/price-feed-store.d.ts +7 -6
  320. package/dist/types/permissionless/bindings/router/routing-manager.d.ts +5 -4
  321. package/dist/types/permissionless/bindings/treasury-splitter.d.ts +6 -5
  322. package/dist/types/permissionless/core/proposal.d.ts +7 -1
  323. package/dist/types/permissionless/utils/abi-decoder.d.ts +13 -0
  324. package/dist/types/permissionless/utils/create2.d.ts +1 -1
  325. package/dist/types/permissionless/utils/governance/batch.d.ts +1 -1
  326. package/dist/types/permissionless/utils/index.d.ts +1 -0
  327. package/dist/types/permissionless/utils/price-update/get-price-feeds.d.ts +3 -3
  328. package/dist/types/permissionless/utils/price-update/get-price-update-tx.d.ts +2 -2
  329. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +2 -2
  330. package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +2 -2
  331. package/dist/types/plugins/adapters/contracts/BalancerV2VaultAdapterContract.d.ts +2 -2
  332. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +2 -2
  333. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +2 -2
  334. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +2 -2
  335. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +2 -2
  336. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +2 -2
  337. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +2 -2
  338. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +2 -2
  339. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +2 -2
  340. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +2 -2
  341. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +2 -2
  342. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +2 -2
  343. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +2 -2
  344. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +2 -2
  345. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +2 -2
  346. package/dist/types/plugins/adapters/contracts/EqualizerRouterAdapterContract.d.ts +2 -2
  347. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +2 -2
  348. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +2 -2
  349. package/dist/types/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.d.ts +2 -2
  350. package/dist/types/plugins/adapters/contracts/InfraredVaultAdapterContract.d.ts +2 -2
  351. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +2 -2
  352. package/dist/types/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.d.ts +2 -2
  353. package/dist/types/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.d.ts +2 -2
  354. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +2 -2
  355. package/dist/types/plugins/adapters/contracts/MellowClaimerAdapterContract.d.ts +2 -2
  356. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +2 -2
  357. package/dist/types/plugins/adapters/contracts/MellowDepositQueueAdapterContract.d.ts +2 -2
  358. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +2 -2
  359. package/dist/types/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.d.ts +2 -2
  360. package/dist/types/plugins/adapters/contracts/MellowVaultAdapterContract.d.ts +2 -2
  361. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +2 -2
  362. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +2 -2
  363. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +2 -2
  364. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +2 -2
  365. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +2 -2
  366. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +2 -2
  367. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +3 -3
  368. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +3 -3
  369. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +2 -2
  370. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +16 -2
  371. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +2 -2
  372. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +2 -2
  373. package/dist/types/plugins/adapters/contracts/YearnV2AdapterContract.d.ts +2 -2
  374. package/dist/types/plugins/bots/BotsPlugin.d.ts +3 -2
  375. package/dist/types/plugins/bots/PartialLiquidationBotBaseContract.d.ts +1 -1
  376. package/dist/types/plugins/bots/PartialLiquidationBotV300Contract.d.ts +8 -2
  377. package/dist/types/plugins/bots/config.d.ts +6 -0
  378. package/dist/types/plugins/bots/index.d.ts +2 -0
  379. package/dist/types/plugins/bots/types.d.ts +16 -0
  380. package/dist/types/sdk/GearboxSDK.d.ts +76 -5
  381. package/dist/types/sdk/accountMigration/AbstractMigrateCreditAccountsService.d.ts +2 -2
  382. package/dist/types/sdk/accountMigration/types.d.ts +2 -1
  383. package/dist/types/sdk/accounts/types.d.ts +3 -4
  384. package/dist/types/sdk/base/AddressLabeller.d.ts +11 -0
  385. package/dist/types/sdk/base/BaseContract.d.ts +28 -72
  386. package/dist/types/sdk/base/IAddressLabeller.d.ts +9 -0
  387. package/dist/types/sdk/base/PlaceholderContract.d.ts +2 -2
  388. package/dist/types/sdk/base/SDKConstruct.d.ts +16 -2
  389. package/dist/types/sdk/base/TokensMeta.d.ts +3 -2
  390. package/dist/types/sdk/base/index.d.ts +1 -2
  391. package/dist/types/sdk/base/types.d.ts +0 -50
  392. package/dist/types/sdk/core/BotListV3Contract.d.ts +1 -1
  393. package/dist/types/sdk/core/GearStakingV3Contract.d.ts +1 -1
  394. package/dist/types/sdk/core/address-provider/AbstractAddressProviderContract.d.ts +4 -3
  395. package/dist/types/sdk/core/address-provider/AddressProviderV300Contract.d.ts +3 -3
  396. package/dist/types/sdk/core/address-provider/AddressProviderV310Contract.d.ts +3 -3
  397. package/dist/types/sdk/market/MarketConfiguratorContract.d.ts +2 -2
  398. package/dist/types/sdk/market/credit/CreditConfiguratorV300Contract.d.ts +3 -3
  399. package/dist/types/sdk/market/credit/CreditConfiguratorV310Contract.d.ts +3 -3
  400. package/dist/types/sdk/market/credit/CreditFacadeV300Contract.d.ts +4 -3
  401. package/dist/types/sdk/market/credit/CreditFacadeV310Contract.d.ts +4 -3
  402. package/dist/types/sdk/market/credit/CreditManagerV300Contract.d.ts +1 -1
  403. package/dist/types/sdk/market/credit/CreditManagerV310Contract.d.ts +1 -1
  404. package/dist/types/sdk/market/credit/CreditSuite.d.ts +1 -1
  405. package/dist/types/sdk/market/credit/types.d.ts +2 -1
  406. package/dist/types/sdk/market/loss-policy/AliasLossPolicyV310Contract.d.ts +0 -1
  407. package/dist/types/sdk/market/loss-policy/LossPolicyContract.d.ts +3 -2
  408. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +12 -3
  409. package/dist/types/sdk/market/oracle/types.d.ts +10 -0
  410. package/dist/types/sdk/market/pool/GaugeContract.d.ts +3 -2
  411. package/dist/types/sdk/market/pool/LinearInterestRateModelContract.d.ts +3 -2
  412. package/dist/types/sdk/market/pool/PoolQuotaKeeperV300Contract.d.ts +3 -2
  413. package/dist/types/sdk/market/pool/PoolQuotaKeeperV310Contract.d.ts +3 -2
  414. package/dist/types/sdk/market/pool/PoolV300Contract.d.ts +5 -4
  415. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +5 -4
  416. package/dist/types/sdk/market/pool/TumblerContract.d.ts +3 -2
  417. package/dist/types/sdk/market/pricefeeds/AbstractLPPriceFeed.d.ts +8 -3
  418. package/dist/types/sdk/market/pricefeeds/AbstractPriceFeed.d.ts +3 -2
  419. package/dist/types/sdk/market/pricefeeds/BalancerStablePriceFeed.d.ts +3 -2
  420. package/dist/types/sdk/market/pricefeeds/BalancerWeightedPriceFeed.d.ts +3 -2
  421. package/dist/types/sdk/market/pricefeeds/BoundedPriceFeed.d.ts +2 -2
  422. package/dist/types/sdk/market/pricefeeds/CompositePriceFeed.d.ts +2 -2
  423. package/dist/types/sdk/market/pricefeeds/ConstantPriceFeed.d.ts +2 -2
  424. package/dist/types/sdk/market/pricefeeds/CurveCryptoPriceFeed.d.ts +3 -2
  425. package/dist/types/sdk/market/pricefeeds/CurveStablePriceFeed.d.ts +3 -2
  426. package/dist/types/sdk/market/pricefeeds/CurveUSDPriceFeed.d.ts +3 -2
  427. package/dist/types/sdk/market/pricefeeds/Erc4626PriceFeed.d.ts +3 -2
  428. package/dist/types/sdk/market/pricefeeds/ExternalPriceFeed.d.ts +2 -2
  429. package/dist/types/sdk/market/pricefeeds/MellowLRTPriceFeed.d.ts +3 -2
  430. package/dist/types/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.d.ts +2 -2
  431. package/dist/types/sdk/market/pricefeeds/PriceFeedRef.d.ts +4 -3
  432. package/dist/types/sdk/market/pricefeeds/PriceFeedsRegister.d.ts +2 -1
  433. package/dist/types/sdk/market/pricefeeds/PythPriceFeed.d.ts +2 -2
  434. package/dist/types/sdk/market/pricefeeds/RedstonePriceFeed.d.ts +2 -2
  435. package/dist/types/sdk/market/pricefeeds/WstETHPriceFeed.d.ts +3 -2
  436. package/dist/types/sdk/market/pricefeeds/YearnPriceFeed.d.ts +3 -2
  437. package/dist/types/sdk/market/pricefeeds/ZeroPriceFeed.d.ts +2 -2
  438. package/dist/types/sdk/market/pricefeeds/types.d.ts +5 -0
  439. package/dist/types/sdk/router/AbstractRouterContract.d.ts +1 -4
  440. package/dist/types/sdk/router/types.d.ts +2 -1
  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 +10 -10
  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
@@ -70,9 +70,10 @@ async function attachClient(options, network) {
70
70
  }
71
71
  return createClient(options, { networkType, chainId });
72
72
  }
73
- class GearboxSDK extends import_base.ChainContractsRegister {
73
+ class GearboxSDK {
74
74
  #hooks = new import_internal.Hooks();
75
75
  plugins;
76
+ #client;
76
77
  // Block which was use for data query
77
78
  #currentBlock;
78
79
  #timestamp;
@@ -83,11 +84,29 @@ class GearboxSDK extends import_base.ChainContractsRegister {
83
84
  // Collection of markets
84
85
  #marketRegister;
85
86
  #priceFeeds;
87
+ logger;
86
88
  gasLimit;
89
+ addressLabels = new import_base.AddressLabeller();
90
+ /**
91
+ * Interest rate models can be reused across chain (and SDK operates on chain level)
92
+ * TODO: use whatever interface is necessary for InterestRateModels
93
+ */
94
+ interestRateModels = new import_utils.AddressMap();
87
95
  /**
88
96
  * Will throw an error if contract type is not supported, otherwise will try to use generic contract first, if possible
89
97
  */
90
98
  strictContractTypes;
99
+ /**
100
+ * All contracts known to sdk
101
+ */
102
+ contracts = new import_utils.AddressMap(
103
+ void 0,
104
+ "contracts"
105
+ );
106
+ /**
107
+ * Token metadata such as symbol and decimals
108
+ */
109
+ tokensMeta;
91
110
  addHook = this.#hooks.addHook.bind(this.#hooks);
92
111
  removeHook = this.#hooks.removeHook.bind(this.#hooks);
93
112
  static async attach(options) {
@@ -140,16 +159,17 @@ class GearboxSDK extends import_base.ChainContractsRegister {
140
159
  }).#hydrate(rest, state);
141
160
  }
142
161
  constructor(options) {
143
- super(options.client, options.logger);
162
+ this.logger = options.logger;
144
163
  this.strictContractTypes = options.strictContractTypes ?? false;
145
164
  this.plugins = options.plugins ?? {};
165
+ this.#client = options.client;
146
166
  for (const plugin of Object.values(this.plugins)) {
147
167
  plugin.sdk = this;
148
168
  }
149
169
  if (options.gasLimit !== null) {
150
170
  this.gasLimit = options.gasLimit || 550000000n;
151
171
  }
152
- Object.assign(this, import_base.ChainContractsRegister.for(this.client, this.logger));
172
+ this.tokensMeta = new import_base.TokensMeta(this);
153
173
  }
154
174
  async #attach(opts) {
155
175
  const {
@@ -305,9 +325,74 @@ class GearboxSDK extends import_base.ChainContractsRegister {
305
325
  timestamp: state.timestamp
306
326
  });
307
327
  }
328
+ get client() {
329
+ return this.#client;
330
+ }
331
+ /**
332
+ * Replaces client inflight
333
+ * You're responsible for all inconsistencies between new and old client
334
+ * @param options
335
+ */
336
+ replaceClient(options, network) {
337
+ this.#client = createClient(options, network);
338
+ }
308
339
  get networkType() {
309
340
  return this.client.chain.network;
310
341
  }
342
+ get chain() {
343
+ return this.client.chain;
344
+ }
345
+ get chainId() {
346
+ return this.client.chain.id;
347
+ }
348
+ /**
349
+ * Converts contract call into some human-friendly string
350
+ * This method is safe and should not throw
351
+ * @param address
352
+ * @param calldata
353
+ * @returns
354
+ */
355
+ parseFunctionData(address, calldata) {
356
+ const contract = this.contracts.get(address);
357
+ return contract ? contract.parseFunctionData(calldata) : `unknown: ${address}.${calldata.slice(0, 10)}`;
358
+ }
359
+ /**
360
+ * Converts multicalls into some human-friendly strings
361
+ * This method is safe and should not throw
362
+ * @param address
363
+ * @param calldata
364
+ * @returns
365
+ */
366
+ parseMultiCall(calls) {
367
+ return calls.map(
368
+ (call) => this.parseFunctionData(call.target, call.callData)
369
+ );
370
+ }
371
+ /**
372
+ * Return args, function, type and address name from contract call
373
+ * @param address
374
+ * @param calldata
375
+ * @returns
376
+ */
377
+ parseFunctionDataToObject(address, calldata) {
378
+ const contract = this.contracts.get(address);
379
+ return contract ? {
380
+ ...contract.parseFunctionDataToObject(calldata),
381
+ address,
382
+ type: contract.contractType
383
+ } : null;
384
+ }
385
+ /**
386
+ * Converts multicalls into call info
387
+ * @param address
388
+ * @param calldata
389
+ * @returns
390
+ */
391
+ parseMultiCallToObject(calls) {
392
+ return calls.map(
393
+ (call) => this.parseFunctionDataToObject(call.target, call.callData)
394
+ );
395
+ }
311
396
  stateHuman(raw = true) {
312
397
  return {
313
398
  block: Number(this.currentBlock),
@@ -399,7 +484,7 @@ class GearboxSDK extends import_base.ChainContractsRegister {
399
484
  address: watchAddresses
400
485
  });
401
486
  for (const log of logs) {
402
- const contract = this.getContract(log.address);
487
+ const contract = this.contracts.get(log.address);
403
488
  if (contract) {
404
489
  const event = (0, import_viem.parseEventLogs)({
405
490
  abi: contract.abi,
@@ -488,11 +573,17 @@ class GearboxSDK extends import_base.ChainContractsRegister {
488
573
  }
489
574
  get botListContract() {
490
575
  const addr = this.addressProvider.getAddress(import_constants.AP_BOT_LIST, import_constants.NO_VERSION);
491
- return this.getContract(addr) ?? new import_core.BotListContract(this, addr);
576
+ if (!this.contracts.has(addr)) {
577
+ return new import_core.BotListContract(this, addr);
578
+ }
579
+ return this.contracts.get(addr);
492
580
  }
493
581
  get gearStakingContract() {
494
582
  const addr = this.addressProvider.getAddress(import_constants.AP_GEAR_STAKING, import_constants.NO_VERSION);
495
- return this.getContract(addr) ?? new import_core.GearStakingContract(this, addr);
583
+ if (!this.contracts.has(addr)) {
584
+ return new import_core.GearStakingContract(this, addr);
585
+ }
586
+ return this.contracts.get(addr);
496
587
  }
497
588
  get marketRegister() {
498
589
  if (this.#marketRegister === void 0) {
@@ -519,7 +610,7 @@ class GearboxSDK extends import_base.ChainContractsRegister {
519
610
  );
520
611
  facadeAddr = cm.creditFacade.address;
521
612
  }
522
- const facadeV = this.mustGetContract(facadeAddr).version;
613
+ const facadeV = this.contracts.mustGet(facadeAddr).version;
523
614
  routerRange = (0, import_constants.isV310)(facadeV) ? import_constants.VERSION_RANGE_310 : import_constants.VERSION_RANGE_300;
524
615
  }
525
616
  const routerEntry = this.addressProvider.getLatest(import_constants.AP_ROUTER, routerRange);
@@ -527,7 +618,18 @@ class GearboxSDK extends import_base.ChainContractsRegister {
527
618
  throw new Error(`router not found in version range ${routerRange}`);
528
619
  }
529
620
  const [routerAddr, routerV] = routerEntry;
530
- return (0, import_router.createRouter)(this, routerAddr, routerV);
621
+ if (!this.contracts.has(routerAddr)) {
622
+ return (0, import_router.createRouter)(this, routerAddr, routerV);
623
+ }
624
+ return this.contracts.get(routerAddr);
625
+ }
626
+ /**
627
+ * Helper to get human-friendly label for address
628
+ * @param address
629
+ * @returns
630
+ */
631
+ labelAddress(address) {
632
+ return this.addressLabels.get(address);
531
633
  }
532
634
  }
533
635
  // Annotate the CommonJS export names for ESM import in node:
@@ -27,7 +27,9 @@ var import_createCreditAccountService = require("../accounts/createCreditAccount
27
27
  var import_base = require("../base/index.js");
28
28
  var import_chains = require("../chain/chains.js");
29
29
  var import_versions = require("../constants/versions.js");
30
+ var import_utils = require("../utils/index.js");
30
31
  class AbstractMigrateCreditAccountsService extends import_base.SDKConstruct {
32
+ #logger;
31
33
  #version;
32
34
  #service;
33
35
  // TODO: HARDCODED
@@ -49,7 +51,8 @@ class AbstractMigrateCreditAccountsService extends import_base.SDKConstruct {
49
51
  super(sdk);
50
52
  this.#version = version;
51
53
  this.#service = (0, import_createCreditAccountService.createCreditAccountService)(this.sdk, version);
52
- this.logger?.debug(
54
+ this.#logger = (0, import_utils.childLogger)("MigrateCreditAccountsService", sdk.logger);
55
+ this.#logger?.debug(
53
56
  `Created MigrateCreditAccountsService with version: ${this.#version}`
54
57
  );
55
58
  }
@@ -44,6 +44,7 @@ function getWithdrawalCompressorAddress(chainId) {
44
44
  class AbstractCreditAccountService extends import_base.SDKConstruct {
45
45
  #compressor;
46
46
  #batchSize;
47
+ #logger;
47
48
  constructor(sdk, options) {
48
49
  super(sdk);
49
50
  [this.#compressor] = sdk.addressProvider.mustGetLatest(
@@ -51,7 +52,8 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
51
52
  import_constants.VERSION_RANGE_310
52
53
  );
53
54
  this.#batchSize = options?.batchSize;
54
- this.logger?.debug(
55
+ this.#logger = (0, import_utils.childLogger)("CreditAccountsService", sdk.logger);
56
+ this.#logger?.debug(
55
57
  `credit account compressor address: ${this.#compressor}`
56
58
  );
57
59
  }
@@ -153,7 +155,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
153
155
  offset = newOffset;
154
156
  } while (offset !== 0n);
155
157
  }
156
- this.logger?.debug(
158
+ this.#logger?.debug(
157
159
  `loaded ${allCAs.length} credit accounts (${allCAs.length - revertingOffset} reverting)`
158
160
  );
159
161
  return allCAs.sort((a, b) => Number(a.healthFactor - b.healthFactor));
@@ -290,7 +292,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
290
292
  lossPolicyData = await market.lossPolicy.getLiquidationData(
291
293
  account.creditAccount
292
294
  );
293
- this.logger?.debug({ lossPolicyData }, "loss policy data");
295
+ this.#logger?.debug({ lossPolicyData }, "loss policy data");
294
296
  }
295
297
  const tx = cm.creditFacade.liquidateCreditAccount(
296
298
  account.creditAccount,
@@ -848,7 +850,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
848
850
  gas: this.sdk.gasLimit
849
851
  });
850
852
  }
851
- this.logger?.debug(
853
+ this.#logger?.debug(
852
854
  {
853
855
  accounts: resp[0]?.length ?? 0,
854
856
  nextOffset: Number(resp[1])
@@ -928,7 +930,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
928
930
  });
929
931
  const tStr = Array.from(tokens).map((t) => this.labelAddress(t)).join(", ");
930
932
  const remark = ignoreReservePrices ? " main" : "";
931
- this.logger?.debug(
933
+ this.#logger?.debug(
932
934
  { account: creditAccount?.creditAccount, manager: cm.name },
933
935
  `generating price feed updates for ${tStr} from ${priceFeeds.length}${remark} price feeds`
934
936
  );
@@ -944,7 +946,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
944
946
  const market = this.sdk.marketRegister.findByCreditManager(creditManager);
945
947
  const cm = this.sdk.marketRegister.findCreditManager(creditManager);
946
948
  const update = await this.getUpdateForAccount(options);
947
- this.logger?.debug(
949
+ this.#logger?.debug(
948
950
  { account: creditAccount?.creditAccount, manager: cm.name },
949
951
  `getting on demand price updates from ${update.txs.length} txs`
950
952
  );
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var AddressLabeller_exports = {};
20
+ __export(AddressLabeller_exports, {
21
+ AddressLabeller: () => AddressLabeller
22
+ });
23
+ module.exports = __toCommonJS(AddressLabeller_exports);
24
+ var import_constants = require("../constants/index.js");
25
+ var import_utils = require("../utils/index.js");
26
+ class AddressLabeller {
27
+ #labels = new import_utils.AddressMap(void 0, "addressLabeller");
28
+ set(address, label) {
29
+ if (address === import_constants.NOT_DEPLOYED) {
30
+ return;
31
+ }
32
+ if (typeof label === "string") {
33
+ this.#labels.upsert(address, label);
34
+ } else {
35
+ this.#labels.upsert(address, label(this.#labels.get(address)));
36
+ }
37
+ }
38
+ get(address) {
39
+ const label = this.#labels.get(address);
40
+ return label ? `${address} [${label}]` : address;
41
+ }
42
+ get all() {
43
+ return this.#labels.asRecord();
44
+ }
45
+ }
46
+ // Annotate the CommonJS export names for ESM import in node:
47
+ 0 && (module.exports = {
48
+ AddressLabeller
49
+ });
@@ -18,61 +18,66 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var BaseContract_exports = {};
20
20
  __export(BaseContract_exports, {
21
- BaseContract: () => BaseContract,
22
- ContractParseError: () => ContractParseError
21
+ BaseContract: () => BaseContract
23
22
  });
24
23
  module.exports = __toCommonJS(BaseContract_exports);
25
24
  var import_viem = require("viem");
26
25
  var import_errors = require("../../abi/errors.js");
26
+ var import_iVersion = require("../../abi/iVersion.js");
27
+ var import_constants = require("../constants/index.js");
27
28
  var import_utils = require("../utils/index.js");
28
- var import_Construct = require("./Construct.js");
29
- class ContractParseError extends import_viem.BaseError {
30
- address;
31
- callData;
32
- selector;
33
- constructor(cause, options) {
34
- const { address, callData, contractName } = options;
35
- const selector = callData.slice(0, 10);
36
- super(
37
- `failed to parse function data for ${contractName ?? "unknown contract"} at ${address} with selector ${selector}`,
38
- {
39
- cause
40
- }
41
- );
42
- this.callData = callData;
43
- this.selector = selector;
44
- this.address = address;
45
- }
46
- }
47
- class BaseContract extends import_Construct.Construct {
29
+ var import_SDKConstruct = require("./SDKConstruct.js");
30
+ class BaseContract extends import_SDKConstruct.SDKConstruct {
48
31
  contract;
49
32
  abi;
33
+ logger;
50
34
  contractType;
51
35
  version;
52
- address;
53
- name;
54
- constructor({ client, logger }, args) {
55
- super({ client, logger });
36
+ #name;
37
+ #address;
38
+ constructor(sdk, args) {
39
+ super(sdk);
56
40
  this.abi = args.abi;
57
- this.address = (0, import_viem.getAddress)(args.addr);
41
+ this.#address = (0, import_viem.getAddress)(args.addr);
58
42
  this.contract = (0, import_viem.getContract)({
59
43
  address: this.address,
60
44
  // add exceptions for better error decoding
61
45
  abi: [...this.abi, ...import_errors.errorAbis],
62
- client
46
+ client: {
47
+ public: sdk.client
48
+ }
63
49
  });
64
50
  this.version = Number(args.version || 0);
65
51
  this.contractType = args.contractType ?? "";
66
52
  if ((0, import_viem.isHex)(this.contractType)) {
67
53
  this.contractType = (0, import_utils.bytes32ToString)(this.contractType);
68
54
  }
69
- this.name = args.name || this.contractType || this.address || this.constructor.name;
70
- this.register.setContract(this.address, this);
71
- this.register.setAddressLabel(this.address, this.name);
55
+ this.name = this.#name = args.name || this.contractType || this.#address;
56
+ this.logger = (0, import_utils.childLogger)(this.name, sdk.logger);
57
+ sdk.contracts.upsert(this.address, this);
58
+ }
59
+ get address() {
60
+ return this.#address;
61
+ }
62
+ set address(address) {
63
+ if (this.#address !== import_constants.ADDRESS_0X0) {
64
+ throw new Error(`Address can't be changed, currently: ${this.#address}`);
65
+ }
66
+ this.#address = (0, import_viem.getAddress)(address);
67
+ this.sdk.addressLabels.set(address, this.#name);
68
+ }
69
+ get name() {
70
+ return this.#name;
71
+ }
72
+ set name(name) {
73
+ this.#name = name;
74
+ if (this.#address !== import_constants.ADDRESS_0X0) {
75
+ this.sdk.addressLabels.set(this.#address, name);
76
+ }
72
77
  }
73
78
  stateHuman(_ = true) {
74
79
  return {
75
- address: this.labelAddress(this.address),
80
+ address: this.sdk.labelAddress(this.address),
76
81
  version: this.version,
77
82
  contractType: this.contractType
78
83
  };
@@ -83,69 +88,15 @@ class BaseContract extends import_Construct.Construct {
83
88
  */
84
89
  processLog(_log) {
85
90
  }
86
- /**
87
- * Return parsed args and function name from calldata belonging to this contract
88
- * Target of the call is always this contract, but args can be parsed into calls to other contracts (de-facto recursive ParsedCall)
89
- * @param calldata
90
- * @returns
91
- */
92
- parseFunctionData(calldata) {
93
- try {
94
- return this.mustParseFunctionData(calldata);
95
- } catch (e) {
96
- this.logger?.warn(e);
97
- return {
98
- chainId: this.chainId,
99
- target: this.address,
100
- contractType: this.contractType,
101
- label: this.name,
102
- functionName: `Unknown function: ${calldata}`,
103
- args: {}
104
- };
105
- }
106
- }
107
- /**
108
- * Same as {@link parseFunctionData}, but throws {@link ContractParseError} if error occurs
109
- * @param callData
110
- * @returns
111
- */
112
- mustParseFunctionData(callData) {
113
- try {
114
- const decoded = (0, import_viem.decodeFunctionData)({
115
- abi: this.abi,
116
- data: callData
117
- });
118
- return this.wrapParseCall(
119
- decoded.functionName,
120
- this.parseFunctionParams(decoded)
121
- );
122
- } catch (e) {
123
- throw new ContractParseError(e, {
124
- address: this.address,
125
- callData,
126
- contractName: this.name
127
- });
128
- }
129
- }
130
- /**
131
- * Parses viem-decoded contract function arguments to a map of named arguments
132
- * This default implementation uses abi-based parsing, you can override it,
133
- * but use this super implementation as fallback
134
- * @param params
135
- * @returns
136
- */
137
- parseFunctionParams(params) {
138
- return (0, import_utils.functionArgsToMap)(this.abi, params.functionName, params.args);
139
- }
140
91
  /**
141
92
  * Converts contract calldata to some human-friendly string
142
93
  * This is safe function which should not throw
143
94
  * @param calldata
144
95
  * @returns
145
96
  */
146
- stringifyFunctionData(calldata) {
97
+ parseFunctionData(calldata) {
147
98
  try {
148
- return this.mustStringifyFunctionData(calldata);
99
+ return this.mustParseFunctionData(calldata);
149
100
  } catch (e) {
150
101
  const selector = calldata.slice(0, 10);
151
102
  this.logger?.warn(
@@ -154,64 +105,59 @@ class BaseContract extends import_Construct.Construct {
154
105
  return `unknown: ${this.labelAddress(this.address)}.${selector}`;
155
106
  }
156
107
  }
157
- /**
158
- * Same as {@link stingifyFunctionData}, but throws if error occurs
159
- * @param calldata
160
- * @returns
161
- */
162
- mustStringifyFunctionData(calldata) {
108
+ mustParseFunctionData(calldata) {
163
109
  const decoded = (0, import_viem.decodeFunctionData)({
164
110
  abi: this.abi,
165
111
  data: calldata
166
112
  });
167
- const abiItem = (0, import_viem.getAbiItem)({
168
- abi: this.abi,
169
- name: decoded.functionName,
170
- args: decoded.args
171
- });
172
- if (!abiItem || abiItem.type !== "function") {
113
+ const abiItem = this.abi.find(
114
+ (abiItem2) => abiItem2?.name === decoded.functionName && abiItem2?.type === "function"
115
+ );
116
+ if (!abiItem) {
173
117
  return `Unknown function: ${decoded.functionName}`;
174
118
  }
175
- const params = this.stringifyFunctionParams(decoded).map(
176
- (v, i) => `${abiItem.inputs[i].name}: ${v}`
177
- );
178
- return `${this.name}.${decoded.functionName}({${params.join(", ")}})`;
119
+ let paramsHuman;
120
+ const humanParams = this.parseFunctionParams(decoded);
121
+ if (humanParams) {
122
+ paramsHuman = humanParams.map((value, i) => {
123
+ return `${abiItem.inputs[i].name}: ${value}`;
124
+ });
125
+ } else if (Array.isArray(decoded.args)) {
126
+ paramsHuman = decoded.args.map((value, i) => {
127
+ return `${abiItem.inputs[i].name}: ${abiItem.inputs[i].type === "address" ? this.labelAddress(value) : abiItem.inputs[i].type.startsWith("tuple") ? (0, import_utils.json_stringify)(value) : value}`;
128
+ });
129
+ } else {
130
+ paramsHuman = Object.entries(decoded.args || {}).map(
131
+ ([key, value]) => `${key}: ${value}`
132
+ );
133
+ }
134
+ return `${this.name}.${decoded.functionName}({${paramsHuman.join(", ")}})`;
179
135
  }
180
136
  /**
181
- * Pretty-prints values of function arguments (do not include parameter names)
182
- * Can be overriden in classes, but use this super implementation as fallback
183
- *
184
- * @param decoded - Function arguments decoded by viem
137
+ * Return args and function name from calldata
138
+ * @param calldata
185
139
  * @returns
186
140
  */
187
- stringifyFunctionParams(decoded) {
188
- const abiItem = (0, import_viem.getAbiItem)({
141
+ parseFunctionDataToObject(calldata) {
142
+ const decoded = (0, import_viem.decodeFunctionData)({
189
143
  abi: this.abi,
190
- name: decoded.functionName,
191
- args: decoded.args
144
+ data: calldata
192
145
  });
193
- if (Array.isArray(decoded.args)) {
194
- return decoded.args.map((v, i) => {
195
- return abiItem.inputs[i].type === "address" ? this.labelAddress(v) : abiItem.inputs[i].type.startsWith("tuple") ? (0, import_utils.json_stringify)(v) : `${v}`;
196
- });
197
- }
198
- return Object.entries(decoded.args || {}).map((v) => `${v}`);
146
+ return decoded;
199
147
  }
200
- wrapParseCall(functionName, args) {
201
- return {
202
- chainId: this.chainId,
203
- target: this.address,
204
- contractType: this.contractType,
205
- label: this.register.labelAddress(this.address),
206
- functionName,
207
- args
208
- };
148
+ parseFunctionParams(_params) {
149
+ return void 0;
150
+ }
151
+ async getVersion() {
152
+ this.version = Number(
153
+ await this.sdk.client.readContract({
154
+ abi: import_iVersion.iVersionAbi,
155
+ functionName: "version",
156
+ address: this.address
157
+ })
158
+ );
159
+ return this.version;
209
160
  }
210
- /**
211
- * Creates a raw transaction for a function in this contract
212
- * @param parameters
213
- * @returns
214
- */
215
161
  createRawTx(parameters) {
216
162
  const { description: argsDescription } = parameters;
217
163
  const tx = (0, import_utils.createRawTx)(
@@ -222,72 +168,11 @@ class BaseContract extends import_Construct.Construct {
222
168
  },
223
169
  argsDescription
224
170
  );
225
- tx.description = argsDescription || this.stringifyFunctionData(tx.callData);
171
+ tx.description = argsDescription || this.parseFunctionData(tx.callData);
226
172
  return tx;
227
173
  }
228
- /**
229
- * Get events in safe manner, by bisecting block range if needed
230
- *
231
- * @deprecated TODO: this should be moved to viem transport
232
- *
233
- * @param eventName
234
- * @param fromBlock
235
- * @param toBlock
236
- * @param args
237
- * @param chunkSize
238
- * @returns
239
- */
240
- async getEvents(eventName, fromBlock, toBlock, args, chunkSize) {
241
- if (chunkSize) {
242
- const chunkSizeBigint = BigInt(chunkSize);
243
- const getEventPromises = [];
244
- for (let i = fromBlock; i < toBlock; i += chunkSizeBigint) {
245
- getEventPromises.push(
246
- this.client.getContractEvents({
247
- address: this.address,
248
- fromBlock: i,
249
- toBlock: i + chunkSizeBigint,
250
- abi: this.abi,
251
- eventName,
252
- args
253
- })
254
- );
255
- }
256
- const events = (await Promise.all(getEventPromises)).flat();
257
- return events;
258
- }
259
- try {
260
- const events = await this.client.getContractEvents({
261
- address: this.address,
262
- fromBlock,
263
- toBlock,
264
- abi: this.abi,
265
- eventName,
266
- args
267
- });
268
- return events;
269
- } catch (e) {
270
- const blockRangeErrors = [
271
- "query exceeds max block",
272
- "range is too large",
273
- "eth_getLogs is limited to",
274
- "Unable to perform request",
275
- "Block range limit exceeded"
276
- ];
277
- if (e instanceof Error && blockRangeErrors.some((errorText) => e.message.includes(errorText))) {
278
- const middle = (fromBlock + toBlock) / 2n;
279
- const [firstHalfEvents, secondHalfEvents] = await Promise.all([
280
- this.getEvents(eventName, fromBlock, middle, args),
281
- this.getEvents(eventName, middle + 1n, toBlock, args)
282
- ]);
283
- return [...firstHalfEvents, ...secondHalfEvents];
284
- }
285
- throw e;
286
- }
287
- }
288
174
  }
289
175
  // Annotate the CommonJS export names for ESM import in node:
290
176
  0 && (module.exports = {
291
- BaseContract,
292
- ContractParseError
177
+ BaseContract
293
178
  });
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var IAddressLabeller_exports = {};
16
+ module.exports = __toCommonJS(IAddressLabeller_exports);