@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,66 +1,65 @@
1
- import {
2
- BaseError,
3
- decodeFunctionData,
4
- getAbiItem,
5
- getAddress,
6
- getContract,
7
- isHex
8
- } from "viem";
1
+ import { decodeFunctionData, getAddress, getContract, isHex } from "viem";
9
2
  import { errorAbis } from "../../abi/errors.js";
3
+ import { iVersionAbi } from "../../abi/iVersion.js";
4
+ import { ADDRESS_0X0 } from "../constants/index.js";
10
5
  import {
11
6
  bytes32ToString,
7
+ childLogger,
12
8
  createRawTx,
13
- functionArgsToMap,
14
9
  json_stringify
15
10
  } from "../utils/index.js";
16
- import { Construct } from "./Construct.js";
17
- class ContractParseError extends BaseError {
18
- address;
19
- callData;
20
- selector;
21
- constructor(cause, options) {
22
- const { address, callData, contractName } = options;
23
- const selector = callData.slice(0, 10);
24
- super(
25
- `failed to parse function data for ${contractName ?? "unknown contract"} at ${address} with selector ${selector}`,
26
- {
27
- cause
28
- }
29
- );
30
- this.callData = callData;
31
- this.selector = selector;
32
- this.address = address;
33
- }
34
- }
35
- class BaseContract extends Construct {
11
+ import { SDKConstruct } from "./SDKConstruct.js";
12
+ class BaseContract extends SDKConstruct {
36
13
  contract;
37
14
  abi;
15
+ logger;
38
16
  contractType;
39
17
  version;
40
- address;
41
- name;
42
- constructor({ client, logger }, args) {
43
- super({ client, logger });
18
+ #name;
19
+ #address;
20
+ constructor(sdk, args) {
21
+ super(sdk);
44
22
  this.abi = args.abi;
45
- this.address = getAddress(args.addr);
23
+ this.#address = getAddress(args.addr);
46
24
  this.contract = getContract({
47
25
  address: this.address,
48
26
  // add exceptions for better error decoding
49
27
  abi: [...this.abi, ...errorAbis],
50
- client
28
+ client: {
29
+ public: sdk.client
30
+ }
51
31
  });
52
32
  this.version = Number(args.version || 0);
53
33
  this.contractType = args.contractType ?? "";
54
34
  if (isHex(this.contractType)) {
55
35
  this.contractType = bytes32ToString(this.contractType);
56
36
  }
57
- this.name = args.name || this.contractType || this.address || this.constructor.name;
58
- this.register.setContract(this.address, this);
59
- this.register.setAddressLabel(this.address, this.name);
37
+ this.name = this.#name = args.name || this.contractType || this.#address;
38
+ this.logger = childLogger(this.name, sdk.logger);
39
+ sdk.contracts.upsert(this.address, this);
40
+ }
41
+ get address() {
42
+ return this.#address;
43
+ }
44
+ set address(address) {
45
+ if (this.#address !== ADDRESS_0X0) {
46
+ throw new Error(`Address can't be changed, currently: ${this.#address}`);
47
+ }
48
+ this.#address = getAddress(address);
49
+ this.sdk.addressLabels.set(address, this.#name);
50
+ }
51
+ get name() {
52
+ return this.#name;
53
+ }
54
+ set name(name) {
55
+ this.#name = name;
56
+ if (this.#address !== ADDRESS_0X0) {
57
+ this.sdk.addressLabels.set(this.#address, name);
58
+ }
60
59
  }
61
60
  stateHuman(_ = true) {
62
61
  return {
63
- address: this.labelAddress(this.address),
62
+ address: this.sdk.labelAddress(this.address),
64
63
  version: this.version,
65
64
  contractType: this.contractType
66
65
  };
@@ -71,69 +70,15 @@ class BaseContract extends Construct {
71
70
  */
72
71
  processLog(_log) {
73
72
  }
74
- /**
75
- * Return parsed args and function name from calldata belonging to this contract
76
- * Target of the call is always this contract, but args can be parsed into calls to other contracts (de-facto recursive ParsedCall)
77
- * @param calldata
78
- * @returns
79
- */
80
- parseFunctionData(calldata) {
81
- try {
82
- return this.mustParseFunctionData(calldata);
83
- } catch (e) {
84
- this.logger?.warn(e);
85
- return {
86
- chainId: this.chainId,
87
- target: this.address,
88
- contractType: this.contractType,
89
- label: this.name,
90
- functionName: `Unknown function: ${calldata}`,
91
- args: {}
92
- };
93
- }
94
- }
95
- /**
96
- * Same as {@link parseFunctionData}, but throws {@link ContractParseError} if error occurs
97
- * @param callData
98
- * @returns
99
- */
100
- mustParseFunctionData(callData) {
101
- try {
102
- const decoded = decodeFunctionData({
103
- abi: this.abi,
104
- data: callData
105
- });
106
- return this.wrapParseCall(
107
- decoded.functionName,
108
- this.parseFunctionParams(decoded)
109
- );
110
- } catch (e) {
111
- throw new ContractParseError(e, {
112
- address: this.address,
113
- callData,
114
- contractName: this.name
115
- });
116
- }
117
- }
118
- /**
119
- * Parses viem-decoded contract function arguments to a map of named arguments
120
- * This default implementation uses abi-based parsing, you can override it,
121
- * but use this super implementation as fallback
122
- * @param params
123
- * @returns
124
- */
125
- parseFunctionParams(params) {
126
- return functionArgsToMap(this.abi, params.functionName, params.args);
127
- }
128
73
  /**
129
74
  * Converts contract calldata to some human-friendly string
130
75
  * This is safe function which should not throw
131
76
  * @param calldata
132
77
  * @returns
133
78
  */
134
- stringifyFunctionData(calldata) {
79
+ parseFunctionData(calldata) {
135
80
  try {
136
- return this.mustStringifyFunctionData(calldata);
81
+ return this.mustParseFunctionData(calldata);
137
82
  } catch (e) {
138
83
  const selector = calldata.slice(0, 10);
139
84
  this.logger?.warn(
@@ -142,64 +87,59 @@ class BaseContract extends Construct {
142
87
  return `unknown: ${this.labelAddress(this.address)}.${selector}`;
143
88
  }
144
89
  }
145
- /**
146
- * Same as {@link stingifyFunctionData}, but throws if error occurs
147
- * @param calldata
148
- * @returns
149
- */
150
- mustStringifyFunctionData(calldata) {
90
+ mustParseFunctionData(calldata) {
151
91
  const decoded = decodeFunctionData({
152
92
  abi: this.abi,
153
93
  data: calldata
154
94
  });
155
- const abiItem = getAbiItem({
156
- abi: this.abi,
157
- name: decoded.functionName,
158
- args: decoded.args
159
- });
160
- if (!abiItem || abiItem.type !== "function") {
95
+ const abiItem = this.abi.find(
96
+ (abiItem2) => abiItem2?.name === decoded.functionName && abiItem2?.type === "function"
97
+ );
98
+ if (!abiItem) {
161
99
  return `Unknown function: ${decoded.functionName}`;
162
100
  }
163
- const params = this.stringifyFunctionParams(decoded).map(
164
- (v, i) => `${abiItem.inputs[i].name}: ${v}`
165
- );
166
- return `${this.name}.${decoded.functionName}({${params.join(", ")}})`;
101
+ let paramsHuman;
102
+ const humanParams = this.parseFunctionParams(decoded);
103
+ if (humanParams) {
104
+ paramsHuman = humanParams.map((value, i) => {
105
+ return `${abiItem.inputs[i].name}: ${value}`;
106
+ });
107
+ } else if (Array.isArray(decoded.args)) {
108
+ paramsHuman = decoded.args.map((value, i) => {
109
+ return `${abiItem.inputs[i].name}: ${abiItem.inputs[i].type === "address" ? this.labelAddress(value) : abiItem.inputs[i].type.startsWith("tuple") ? json_stringify(value) : value}`;
110
+ });
111
+ } else {
112
+ paramsHuman = Object.entries(decoded.args || {}).map(
113
+ ([key, value]) => `${key}: ${value}`
114
+ );
115
+ }
116
+ return `${this.name}.${decoded.functionName}({${paramsHuman.join(", ")}})`;
167
117
  }
168
118
  /**
169
- * Pretty-prints values of function arguments (do not include parameter names)
170
- * Can be overriden in classes, but use this super implementation as fallback
171
- *
172
- * @param decoded - Function arguments decoded by viem
119
+ * Return args and function name from calldata
120
+ * @param calldata
173
121
  * @returns
174
122
  */
175
- stringifyFunctionParams(decoded) {
176
- const abiItem = getAbiItem({
123
+ parseFunctionDataToObject(calldata) {
124
+ const decoded = decodeFunctionData({
177
125
  abi: this.abi,
178
- name: decoded.functionName,
179
- args: decoded.args
126
+ data: calldata
180
127
  });
181
- if (Array.isArray(decoded.args)) {
182
- return decoded.args.map((v, i) => {
183
- return abiItem.inputs[i].type === "address" ? this.labelAddress(v) : abiItem.inputs[i].type.startsWith("tuple") ? json_stringify(v) : `${v}`;
184
- });
185
- }
186
- return Object.entries(decoded.args || {}).map((v) => `${v}`);
128
+ return decoded;
187
129
  }
188
- wrapParseCall(functionName, args) {
189
- return {
190
- chainId: this.chainId,
191
- target: this.address,
192
- contractType: this.contractType,
193
- label: this.register.labelAddress(this.address),
194
- functionName,
195
- args
196
- };
130
+ parseFunctionParams(_params) {
131
+ return void 0;
132
+ }
133
+ async getVersion() {
134
+ this.version = Number(
135
+ await this.sdk.client.readContract({
136
+ abi: iVersionAbi,
137
+ functionName: "version",
138
+ address: this.address
139
+ })
140
+ );
141
+ return this.version;
197
142
  }
198
- /**
199
- * Creates a raw transaction for a function in this contract
200
- * @param parameters
201
- * @returns
202
- */
203
143
  createRawTx(parameters) {
204
144
  const { description: argsDescription } = parameters;
205
145
  const tx = createRawTx(
@@ -210,71 +150,10 @@ class BaseContract extends Construct {
210
150
  },
211
151
  argsDescription
212
152
  );
213
- tx.description = argsDescription || this.stringifyFunctionData(tx.callData);
153
+ tx.description = argsDescription || this.parseFunctionData(tx.callData);
214
154
  return tx;
215
155
  }
216
- /**
217
- * Get events in safe manner, by bisecting block range if needed
218
- *
219
- * @deprecated TODO: this should be moved to viem transport
220
- *
221
- * @param eventName
222
- * @param fromBlock
223
- * @param toBlock
224
- * @param args
225
- * @param chunkSize
226
- * @returns
227
- */
228
- async getEvents(eventName, fromBlock, toBlock, args, chunkSize) {
229
- if (chunkSize) {
230
- const chunkSizeBigint = BigInt(chunkSize);
231
- const getEventPromises = [];
232
- for (let i = fromBlock; i < toBlock; i += chunkSizeBigint) {
233
- getEventPromises.push(
234
- this.client.getContractEvents({
235
- address: this.address,
236
- fromBlock: i,
237
- toBlock: i + chunkSizeBigint,
238
- abi: this.abi,
239
- eventName,
240
- args
241
- })
242
- );
243
- }
244
- const events = (await Promise.all(getEventPromises)).flat();
245
- return events;
246
- }
247
- try {
248
- const events = await this.client.getContractEvents({
249
- address: this.address,
250
- fromBlock,
251
- toBlock,
252
- abi: this.abi,
253
- eventName,
254
- args
255
- });
256
- return events;
257
- } catch (e) {
258
- const blockRangeErrors = [
259
- "query exceeds max block",
260
- "range is too large",
261
- "eth_getLogs is limited to",
262
- "Unable to perform request",
263
- "Block range limit exceeded"
264
- ];
265
- if (e instanceof Error && blockRangeErrors.some((errorText) => e.message.includes(errorText))) {
266
- const middle = (fromBlock + toBlock) / 2n;
267
- const [firstHalfEvents, secondHalfEvents] = await Promise.all([
268
- this.getEvents(eventName, fromBlock, middle, args),
269
- this.getEvents(eventName, middle + 1n, toBlock, args)
270
- ]);
271
- return [...firstHalfEvents, ...secondHalfEvents];
272
- }
273
- throw e;
274
- }
275
- }
276
156
  }
277
157
  export {
278
- BaseContract,
279
- ContractParseError
158
+ BaseContract
280
159
  };
File without changes
@@ -1,10 +1,36 @@
1
- import { Construct } from "./Construct.js";
2
- class SDKConstruct extends Construct {
1
+ class SDKConstruct {
3
2
  sdk;
3
+ /**
4
+ * Indicates that contract state needs to be updated
5
+ */
6
+ #dirty = false;
4
7
  constructor(sdk) {
5
- super(sdk);
6
8
  this.sdk = sdk;
7
9
  }
10
+ get networkType() {
11
+ return this.sdk.networkType;
12
+ }
13
+ get client() {
14
+ return this.sdk.client;
15
+ }
16
+ /**
17
+ * Indicates that contract state needs to be updated
18
+ */
19
+ get dirty() {
20
+ return this.#dirty;
21
+ }
22
+ set dirty(value) {
23
+ this.#dirty = value;
24
+ }
25
+ labelAddress(address) {
26
+ return this.sdk.labelAddress(address);
27
+ }
28
+ /**
29
+ * Returns list of addresses that should be watched for events to sync state
30
+ */
31
+ get watchAddresses() {
32
+ return /* @__PURE__ */ new Set();
33
+ }
8
34
  }
9
35
  export {
10
36
  SDKConstruct
@@ -2,11 +2,11 @@ import { iVersionAbi } from "../../abi/iVersion.js";
2
2
  import { bytes32ToString } from "../index.js";
3
3
  import { AddressMap, AddressSet, formatBN } from "../utils/index.js";
4
4
  class TokensMeta extends AddressMap {
5
- #client;
5
+ #sdk;
6
6
  #phantomTokensLoaded;
7
- constructor(client) {
7
+ constructor(sdk) {
8
8
  super(void 0, "tokensMeta");
9
- this.#client = client;
9
+ this.#sdk = sdk;
10
10
  }
11
11
  symbol(token) {
12
12
  return this.mustGet(token).symbol;
@@ -61,7 +61,7 @@ class TokensMeta extends AddressMap {
61
61
  async loadPhantomTokens() {
62
62
  this.#phantomTokensLoaded = new AddressSet();
63
63
  const tokens = this.keys();
64
- const resp = await this.#client.multicall({
64
+ const resp = await this.#sdk.client.multicall({
65
65
  contracts: tokens.map(
66
66
  (t) => ({
67
67
  address: t,
@@ -1,6 +1,5 @@
1
+ export * from "./AddressLabeller.js";
1
2
  export * from "./BaseContract.js";
2
- export * from "./ChainContractsRegister.js";
3
- export * from "./Construct.js";
4
3
  export * from "./PlaceholderContract.js";
5
4
  export * from "./SDKConstruct.js";
6
5
  export * from "./TokensMeta.js";
@@ -9,7 +9,7 @@ class BotListContract extends BaseContract {
9
9
  super(sdk, { addr: address, name: "BotListV3", abi });
10
10
  this.#currentBlock = sdk.chain.firstBlock ?? 0n;
11
11
  }
12
- stringifyFunctionParams(params) {
12
+ parseFunctionParams(params) {
13
13
  switch (params.functionName) {
14
14
  case "setCreditManagerApprovedStatus": {
15
15
  const [creditManager, status] = params.args;
@@ -24,7 +24,7 @@ class BotListContract extends BaseContract {
24
24
  ];
25
25
  }
26
26
  default:
27
- return super.stringifyFunctionParams(params);
27
+ return void 0;
28
28
  }
29
29
  }
30
30
  async syncState(toBlock) {
@@ -6,14 +6,14 @@ class GearStakingContract extends BaseContract {
6
6
  constructor(sdk, address) {
7
7
  super(sdk, { addr: address, name: "GearStakingV3", abi });
8
8
  }
9
- stringifyFunctionParams(params) {
9
+ parseFunctionParams(params) {
10
10
  switch (params.functionName) {
11
11
  case "setVotingContractStatus": {
12
12
  const [address, status] = params.args;
13
13
  return [this.labelAddress(address), VotingContractStatus[status]];
14
14
  }
15
15
  default:
16
- return super.stringifyFunctionParams(params);
16
+ return void 0;
17
17
  }
18
18
  }
19
19
  stateHuman(raw = true) {
@@ -4,8 +4,8 @@ import { NO_VERSION } from "../../constants/index.js";
4
4
  import { TypedObjectUtils } from "../../utils/mappers.js";
5
5
  class AbstractAddressProviderContract extends BaseContract {
6
6
  #addresses = {};
7
- constructor(options, args, addresses = {}) {
8
- super(options, args);
7
+ constructor(sdk, args, addresses = {}) {
8
+ super(sdk, args);
9
9
  this.#addresses = addresses;
10
10
  }
11
11
  setInternalAddress(key, address, version) {
@@ -4,9 +4,9 @@ import { getLogsSafe } from "../../utils/viem/index.js";
4
4
  import AbstractAddressProviderContract from "./AbstractAddressProviderContract.js";
5
5
  const abi = iAddressProviderV300Abi;
6
6
  class AddressProviderV300Contract extends AbstractAddressProviderContract {
7
- constructor(options, address, version, addresses = {}) {
7
+ constructor(sdk, address, version, addresses = {}) {
8
8
  super(
9
- options,
9
+ sdk,
10
10
  {
11
11
  addr: address,
12
12
  name: "AddressProviderV300",
@@ -16,7 +16,7 @@ class AddressProviderV300Contract extends AbstractAddressProviderContract {
16
16
  addresses
17
17
  );
18
18
  }
19
- stringifyFunctionParams(params) {
19
+ parseFunctionParams(params) {
20
20
  switch (params.functionName) {
21
21
  case "setAddress": {
22
22
  if (params.args.length !== 3) {
@@ -27,7 +27,7 @@ class AddressProviderV300Contract extends AbstractAddressProviderContract {
27
27
  return [bytesToString(toBytes(key)), value, `${saveVersion}`];
28
28
  }
29
29
  default:
30
- return super.stringifyFunctionParams(params);
30
+ return void 0;
31
31
  }
32
32
  }
33
33
  processLog(log) {
@@ -52,16 +52,11 @@ class AddressProviderV300Contract extends AbstractAddressProviderContract {
52
52
  }
53
53
  }
54
54
  async syncState(blockNumber) {
55
- if (!("firstBlock" in this.chain)) {
56
- throw new Error(
57
- `address provider v300 requires gearbox chain for ${this.chain.id} `
58
- );
59
- }
60
- const fromBlock = this.chain.firstBlock;
55
+ const fromBlock = this.sdk.chain.firstBlock;
61
56
  this.logger?.debug(
62
57
  `loading events from block ${fromBlock} to ${blockNumber}`
63
58
  );
64
- const events = await getLogsSafe(this.client, {
59
+ const events = await getLogsSafe(this.sdk.client, {
65
60
  address: this.address,
66
61
  event: getAbiItem({ abi: this.abi, name: "SetAddress" }),
67
62
  fromBlock,
@@ -3,9 +3,9 @@ import { iAddressProviderV310Abi } from "../../../abi/310/generated.js";
3
3
  import AbstractAddressProviderContract from "./AbstractAddressProviderContract.js";
4
4
  const abi = iAddressProviderV310Abi;
5
5
  class AddressProviderV310Contract extends AbstractAddressProviderContract {
6
- constructor(options, address, version = 310, addresses = {}) {
6
+ constructor(sdk, address, version, addresses = {}) {
7
7
  super(
8
- options,
8
+ sdk,
9
9
  {
10
10
  addr: address,
11
11
  name: "AddressProviderV310",
@@ -15,7 +15,7 @@ class AddressProviderV310Contract extends AbstractAddressProviderContract {
15
15
  addresses
16
16
  );
17
17
  }
18
- stringifyFunctionParams(params) {
18
+ parseFunctionParams(params) {
19
19
  switch (params.functionName) {
20
20
  case "setAddress": {
21
21
  if (params.args.length !== 3) {
@@ -26,7 +26,7 @@ class AddressProviderV310Contract extends AbstractAddressProviderContract {
26
26
  return [bytesToString(toBytes(key)), value, `${saveVersion}`];
27
27
  }
28
28
  default:
29
- return super.stringifyFunctionParams(params);
29
+ return void 0;
30
30
  }
31
31
  }
32
32
  processLog(log) {
@@ -7,8 +7,8 @@ import { AP_MARKET_CONFIGURATOR } from "../constants/index.js";
7
7
  const abi = iMarketConfiguratorV310Abi;
8
8
  class MarketConfiguratorContract extends BaseContract {
9
9
  #curatorName;
10
- constructor(options, address) {
11
- super(options, {
10
+ constructor(sdk, address) {
11
+ super(sdk, {
12
12
  abi,
13
13
  addr: address,
14
14
  contractType: AP_MARKET_CONFIGURATOR,
@@ -16,18 +16,18 @@ class MarketConfiguratorContract extends BaseContract {
16
16
  });
17
17
  }
18
18
  async loadCuratorName() {
19
- this.#curatorName = await this.client.readContract({
19
+ this.#curatorName = await this.sdk.client.readContract({
20
20
  address: this.address,
21
21
  abi: this.abi,
22
22
  functionName: "curatorName"
23
23
  });
24
- this.register.setAddressLabel(
24
+ this.sdk.addressLabels.set(
25
25
  this.address,
26
26
  `Market configurator ${this.#curatorName}`
27
27
  );
28
28
  }
29
29
  async getPeripheryContract(contract) {
30
- const resp = await this.client.readContract({
30
+ const resp = await this.sdk.client.readContract({
31
31
  address: this.address,
32
32
  abi: this.abi,
33
33
  functionName: "getPeripheryContracts",
@@ -5,11 +5,12 @@ import {
5
5
  AP_MARKET_COMPRESSOR,
6
6
  VERSION_RANGE_310
7
7
  } from "../constants/index.js";
8
- import { AddressMap } from "../utils/index.js";
8
+ import { AddressMap, childLogger } from "../utils/index.js";
9
9
  import { simulateWithPriceUpdates } from "../utils/viem/index.js";
10
10
  import { MarketConfiguratorContract } from "./MarketConfiguratorContract.js";
11
11
  import { MarketSuite } from "./MarketSuite.js";
12
12
  class MarketRegister extends SDKConstruct {
13
+ #logger;
13
14
  /**
14
15
  * Mapping pool.address -> MarketSuite
15
16
  */
@@ -22,6 +23,7 @@ class MarketRegister extends SDKConstruct {
22
23
  #ignoreMarkets;
23
24
  constructor(sdk, ignoreMarkets = []) {
24
25
  super(sdk);
26
+ this.#logger = childLogger("MarketRegister", sdk.logger);
25
27
  this.#ignoreMarkets = new Set(
26
28
  ignoreMarkets.map((m) => m.toLowerCase())
27
29
  );
@@ -33,7 +35,7 @@ class MarketRegister extends SDKConstruct {
33
35
  for (const data of state) {
34
36
  const pool = data.pool.baseParams.addr;
35
37
  if (this.#ignoreMarkets.has(pool.toLowerCase())) {
36
- this.logger?.debug(
38
+ this.#logger?.debug(
37
39
  `ignoring market of pool ${pool} (${data.pool.name})`
38
40
  );
39
41
  continue;
@@ -46,7 +48,7 @@ class MarketRegister extends SDKConstruct {
46
48
  }
47
49
  async loadMarkets(marketConfigurators, ignoreUpdateablePrices) {
48
50
  if (!marketConfigurators.length) {
49
- this.logger?.warn(
51
+ this.#logger?.warn(
50
52
  "no market configurators provided, skipping loadMarkets"
51
53
  );
52
54
  return;
@@ -77,7 +79,7 @@ class MarketRegister extends SDKConstruct {
77
79
  async syncState(ignoreUpdateablePrices) {
78
80
  const dirty = this.markets.some((m) => m.dirty) || this.marketConfigurators.some((c) => c.dirty);
79
81
  if (dirty) {
80
- this.logger?.debug(
82
+ this.#logger?.debug(
81
83
  "some markets or market configurators are dirty, reloading everything"
82
84
  );
83
85
  await this.#loadMarkets(
@@ -104,7 +106,7 @@ class MarketRegister extends SDKConstruct {
104
106
  const updates = await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(updatables);
105
107
  txs = updates.txs;
106
108
  }
107
- this.logger?.debug(
109
+ this.#logger?.debug(
108
110
  { configurators, pools },
109
111
  `calling getMarkets with ${txs.length} price updates in block ${this.sdk.currentBlock}`
110
112
  );
@@ -138,14 +140,14 @@ class MarketRegister extends SDKConstruct {
138
140
  for (const data of markets) {
139
141
  const pool = data.pool.baseParams.addr;
140
142
  if (this.#ignoreMarkets.has(pool.toLowerCase())) {
141
- this.logger?.debug(
143
+ this.#logger?.debug(
142
144
  `ignoring market of pool ${pool} (${data.pool.name})`
143
145
  );
144
146
  continue;
145
147
  }
146
148
  this.#markets.upsert(pool, new MarketSuite(this.sdk, data));
147
149
  }
148
- this.logger?.info(
150
+ this.#logger?.info(
149
151
  `loaded ${this.#markets.size} markets in block ${this.sdk.currentBlock}`
150
152
  );
151
153
  }
@@ -164,7 +166,7 @@ class MarketRegister extends SDKConstruct {
164
166
  if (!multicalls.length) {
165
167
  return;
166
168
  }
167
- this.logger?.debug(`syncing prices on ${multicalls.length} oracles`);
169
+ this.#logger?.debug(`syncing prices on ${multicalls.length} oracles`);
168
170
  const { txs } = await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs();
169
171
  const oraclesStates = await simulateWithPriceUpdates(this.client, {
170
172
  priceUpdates: txs,