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

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 (449) hide show
  1. package/dist/cjs/dev/create2.js +1 -1
  2. package/dist/cjs/dev/mint/AbstractMinter.js +2 -4
  3. package/dist/cjs/dev/mint/DealMinter.js +0 -3
  4. package/dist/cjs/dev/mint/DirectMinter.js +0 -3
  5. package/dist/cjs/dev/mint/FallbackMinter.js +1 -1
  6. package/dist/cjs/dev/mint/TransferMinter.js +0 -3
  7. package/dist/cjs/permissionless/bindings/address-provider.js +4 -6
  8. package/dist/cjs/permissionless/bindings/bytecode-repository.js +23 -25
  9. package/dist/cjs/permissionless/bindings/compressors/token-compressor.js +4 -4
  10. package/dist/cjs/permissionless/bindings/compressors/withdrawal-compressor.js +11 -17
  11. package/dist/cjs/permissionless/bindings/cross-chain-multisig.js +23 -22
  12. package/dist/cjs/permissionless/bindings/factory/abstract-factory.js +7 -4
  13. package/dist/cjs/permissionless/bindings/governance/batches-chain.js +4 -4
  14. package/dist/cjs/permissionless/bindings/governance/governor.js +30 -49
  15. package/dist/cjs/permissionless/bindings/governance/timelock.js +4 -4
  16. package/dist/cjs/permissionless/bindings/index.js +0 -2
  17. package/dist/cjs/permissionless/bindings/instance-manager.js +58 -77
  18. package/dist/cjs/permissionless/bindings/market-configurator-factory.js +4 -4
  19. package/dist/cjs/permissionless/bindings/market-configurator.js +71 -143
  20. package/dist/cjs/permissionless/bindings/price-feed-store.js +8 -17
  21. package/dist/cjs/permissionless/bindings/router/routing-manager.js +9 -15
  22. package/dist/cjs/permissionless/bindings/treasury-splitter.js +14 -23
  23. package/dist/cjs/permissionless/core/raw-tx.js +2 -2
  24. package/dist/cjs/permissionless/utils/format.js +2 -2
  25. package/dist/cjs/permissionless/utils/governance/timelock-txs.js +2 -2
  26. package/dist/cjs/permissionless/utils/index.js +0 -2
  27. package/dist/cjs/permissionless/utils/price-update/get-price-feeds.js +1 -2
  28. package/dist/cjs/permissionless/utils/price-update/get-price-update-tx.js +1 -2
  29. package/dist/cjs/permissionless/utils/price-update/get-prices.js +1 -2
  30. package/dist/cjs/permissionless/utils/price-update/get-updatable-feeds.js +2 -3
  31. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +2 -2
  32. package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +2 -2
  33. package/dist/cjs/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +2 -2
  34. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +2 -2
  35. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +2 -2
  36. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +2 -2
  37. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +2 -2
  38. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +2 -2
  39. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -2
  40. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -2
  41. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -2
  42. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  43. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -2
  44. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -2
  45. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +2 -2
  46. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +2 -2
  47. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +2 -2
  48. package/dist/cjs/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +2 -2
  49. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +2 -2
  50. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +2 -2
  51. package/dist/cjs/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +2 -2
  52. package/dist/cjs/plugins/adapters/contracts/InfraredVaultAdapterContract.js +2 -2
  53. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +2 -2
  54. package/dist/cjs/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +2 -2
  55. package/dist/cjs/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +2 -2
  56. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +2 -2
  57. package/dist/cjs/plugins/adapters/contracts/MellowClaimerAdapterContract.js +2 -2
  58. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +2 -2
  59. package/dist/cjs/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +2 -2
  60. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +2 -2
  61. package/dist/cjs/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +2 -2
  62. package/dist/cjs/plugins/adapters/contracts/MellowVaultAdapterContract.js +2 -2
  63. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +2 -2
  64. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +2 -2
  65. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +2 -2
  66. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +2 -2
  67. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +2 -2
  68. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +2 -2
  69. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +5 -5
  70. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +22 -22
  71. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +2 -2
  72. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +2 -2
  73. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +2 -2
  74. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +2 -2
  75. package/dist/cjs/plugins/adapters/contracts/YearnV2AdapterContract.js +2 -2
  76. package/dist/cjs/plugins/bots/BotsPlugin.js +21 -8
  77. package/dist/cjs/plugins/bots/PartialLiquidationBotBaseContract.js +17 -22
  78. package/dist/cjs/plugins/bots/PartialLiquidationBotV300Contract.js +4 -20
  79. package/dist/cjs/plugins/bots/deserializePartialLiquidationBotParams.js +49 -0
  80. package/dist/cjs/plugins/bots/index.js +0 -2
  81. package/dist/cjs/plugins/zappers/ZappersPlugin.js +1 -1
  82. package/dist/cjs/sdk/GearboxSDK.js +8 -110
  83. package/dist/cjs/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +1 -4
  84. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +6 -8
  85. package/dist/cjs/sdk/base/BaseContract.js +195 -80
  86. package/dist/cjs/sdk/base/ChainContractsRegister.js +135 -0
  87. package/dist/cjs/sdk/base/Construct.js +87 -0
  88. package/dist/cjs/sdk/base/SDKConstruct.js +3 -29
  89. package/dist/cjs/sdk/base/TokensMeta.js +4 -4
  90. package/dist/cjs/sdk/base/index.js +4 -2
  91. package/dist/cjs/sdk/core/BotListV3Contract.js +2 -2
  92. package/dist/cjs/sdk/core/GearStakingV3Contract.js +2 -2
  93. package/dist/cjs/sdk/core/address-provider/AbstractAddressProviderContract.js +2 -2
  94. package/dist/cjs/sdk/core/address-provider/AddressProviderV300Contract.js +11 -6
  95. package/dist/cjs/sdk/core/address-provider/AddressProviderV310Contract.js +4 -4
  96. package/dist/cjs/sdk/market/MarketConfiguratorContract.js +5 -5
  97. package/dist/cjs/sdk/market/MarketRegister.js +7 -9
  98. package/dist/cjs/sdk/market/MarketSuite.js +2 -2
  99. package/dist/cjs/sdk/market/credit/CreditConfiguratorV300Contract.js +4 -3
  100. package/dist/cjs/sdk/market/credit/CreditConfiguratorV310Contract.js +4 -3
  101. package/dist/cjs/sdk/market/credit/CreditFacadeV300Contract.js +9 -9
  102. package/dist/cjs/sdk/market/credit/CreditFacadeV310Contract.js +8 -8
  103. package/dist/cjs/sdk/market/credit/CreditManagerV300Contract.js +5 -2
  104. package/dist/cjs/sdk/market/credit/CreditManagerV310Contract.js +5 -2
  105. package/dist/cjs/sdk/market/credit/CreditSuite.js +2 -3
  106. package/dist/cjs/sdk/market/loss-policy/AliasLossPolicyV310Contract.js +3 -1
  107. package/dist/cjs/sdk/market/loss-policy/LossPolicyContract.js +2 -2
  108. package/dist/cjs/sdk/market/loss-policy/createLossPolicy.js +1 -1
  109. package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +8 -26
  110. package/dist/cjs/sdk/market/oracle/createPriceOracle.js +1 -1
  111. package/dist/cjs/sdk/market/pool/GaugeContract.js +2 -2
  112. package/dist/cjs/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
  113. package/dist/cjs/sdk/market/pool/PoolQuotaKeeperV300Contract.js +2 -2
  114. package/dist/cjs/sdk/market/pool/PoolQuotaKeeperV310Contract.js +2 -2
  115. package/dist/cjs/sdk/market/pool/PoolSuite.js +1 -1
  116. package/dist/cjs/sdk/market/pool/PoolV300Contract.js +5 -5
  117. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +5 -5
  118. package/dist/cjs/sdk/market/pool/TumblerContract.js +2 -2
  119. package/dist/cjs/sdk/market/pool/createInterestRateModel.js +11 -15
  120. package/dist/cjs/sdk/market/pricefeeds/AbstractLPPriceFeed.js +2 -22
  121. package/dist/cjs/sdk/market/pricefeeds/AbstractPriceFeed.js +3 -3
  122. package/dist/cjs/sdk/market/pricefeeds/BalancerStablePriceFeed.js +2 -9
  123. package/dist/cjs/sdk/market/pricefeeds/BalancerWeightedPriceFeed.js +2 -9
  124. package/dist/cjs/sdk/market/pricefeeds/BoundedPriceFeed.js +6 -2
  125. package/dist/cjs/sdk/market/pricefeeds/CompositePriceFeed.js +2 -2
  126. package/dist/cjs/sdk/market/pricefeeds/ConstantPriceFeed.js +2 -2
  127. package/dist/cjs/sdk/market/pricefeeds/CurveCryptoPriceFeed.js +2 -9
  128. package/dist/cjs/sdk/market/pricefeeds/CurveStablePriceFeed.js +2 -9
  129. package/dist/cjs/sdk/market/pricefeeds/CurveUSDPriceFeed.js +2 -9
  130. package/dist/cjs/sdk/market/pricefeeds/Erc4626PriceFeed.js +2 -18
  131. package/dist/cjs/sdk/market/pricefeeds/ExternalPriceFeed.js +2 -2
  132. package/dist/cjs/sdk/market/pricefeeds/MellowLRTPriceFeed.js +2 -10
  133. package/dist/cjs/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.js +2 -2
  134. package/dist/cjs/sdk/market/pricefeeds/PriceFeedRef.js +6 -4
  135. package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +2 -3
  136. package/dist/cjs/sdk/market/pricefeeds/PythPriceFeed.js +2 -2
  137. package/dist/cjs/sdk/market/pricefeeds/RedstonePriceFeed.js +3 -3
  138. package/dist/cjs/sdk/market/pricefeeds/WstETHPriceFeed.js +2 -9
  139. package/dist/cjs/sdk/market/pricefeeds/YearnPriceFeed.js +2 -9
  140. package/dist/cjs/sdk/market/pricefeeds/ZeroPriceFeed.js +2 -2
  141. package/dist/cjs/sdk/market/pricefeeds/updates/PriceUpdatesCache.js +17 -0
  142. package/dist/cjs/sdk/market/pricefeeds/updates/PythUpdater.js +7 -9
  143. package/dist/cjs/sdk/market/pricefeeds/updates/RedstoneUpdater.js +10 -12
  144. package/dist/cjs/sdk/router/AbstractRouterContract.js +5 -0
  145. package/dist/cjs/sdk/router/RouterV310Contract.js +3 -3
  146. package/dist/cjs/sdk/router/createRouter.js +4 -0
  147. package/dist/cjs/sdk/utils/abi-decode.js +58 -0
  148. package/dist/cjs/sdk/utils/index.js +2 -0
  149. package/dist/esm/dev/create2.js +2 -2
  150. package/dist/esm/dev/mint/AbstractMinter.js +3 -7
  151. package/dist/esm/dev/mint/DealMinter.js +0 -3
  152. package/dist/esm/dev/mint/DirectMinter.js +0 -3
  153. package/dist/esm/dev/mint/FallbackMinter.js +1 -1
  154. package/dist/esm/dev/mint/TransferMinter.js +0 -3
  155. package/dist/esm/permissionless/bindings/address-provider.js +7 -7
  156. package/dist/esm/permissionless/bindings/bytecode-repository.js +22 -24
  157. package/dist/esm/permissionless/bindings/compressors/token-compressor.js +3 -3
  158. package/dist/esm/permissionless/bindings/compressors/withdrawal-compressor.js +10 -16
  159. package/dist/esm/permissionless/bindings/cross-chain-multisig.js +20 -16
  160. package/dist/esm/permissionless/bindings/factory/abstract-factory.js +9 -4
  161. package/dist/esm/permissionless/bindings/governance/batches-chain.js +3 -3
  162. package/dist/esm/permissionless/bindings/governance/governor.js +28 -47
  163. package/dist/esm/permissionless/bindings/governance/timelock.js +3 -3
  164. package/dist/esm/permissionless/bindings/index.js +0 -1
  165. package/dist/esm/permissionless/bindings/instance-manager.js +53 -69
  166. package/dist/esm/permissionless/bindings/market-configurator-factory.js +3 -3
  167. package/dist/esm/permissionless/bindings/market-configurator.js +65 -137
  168. package/dist/esm/permissionless/bindings/price-feed-store.js +8 -14
  169. package/dist/esm/permissionless/bindings/router/routing-manager.js +8 -14
  170. package/dist/esm/permissionless/bindings/treasury-splitter.js +15 -22
  171. package/dist/esm/permissionless/core/raw-tx.js +1 -1
  172. package/dist/esm/permissionless/utils/format.js +1 -1
  173. package/dist/esm/permissionless/utils/governance/timelock-txs.js +1 -1
  174. package/dist/esm/permissionless/utils/index.js +0 -1
  175. package/dist/esm/permissionless/utils/price-update/get-price-feeds.js +4 -2
  176. package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +1 -1
  177. package/dist/esm/permissionless/utils/price-update/get-prices.js +1 -2
  178. package/dist/esm/permissionless/utils/price-update/get-updatable-feeds.js +1 -1
  179. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +2 -2
  180. package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +2 -2
  181. package/dist/esm/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +2 -2
  182. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +2 -2
  183. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +2 -2
  184. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +2 -2
  185. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +2 -2
  186. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +2 -2
  187. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -2
  188. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -2
  189. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -2
  190. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  191. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -2
  192. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -2
  193. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +2 -2
  194. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +2 -2
  195. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +2 -2
  196. package/dist/esm/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +2 -2
  197. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +2 -2
  198. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +2 -2
  199. package/dist/esm/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +2 -2
  200. package/dist/esm/plugins/adapters/contracts/InfraredVaultAdapterContract.js +2 -2
  201. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +2 -2
  202. package/dist/esm/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +2 -2
  203. package/dist/esm/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +2 -2
  204. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +2 -2
  205. package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +2 -2
  206. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +2 -2
  207. package/dist/esm/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +2 -2
  208. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +2 -2
  209. package/dist/esm/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +2 -2
  210. package/dist/esm/plugins/adapters/contracts/MellowVaultAdapterContract.js +2 -2
  211. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +2 -2
  212. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +2 -2
  213. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +2 -2
  214. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +2 -2
  215. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +2 -2
  216. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +2 -2
  217. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +5 -5
  218. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +22 -22
  219. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +2 -2
  220. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +2 -2
  221. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +2 -2
  222. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +2 -2
  223. package/dist/esm/plugins/adapters/contracts/YearnV2AdapterContract.js +2 -2
  224. package/dist/esm/plugins/bots/BotsPlugin.js +11 -8
  225. package/dist/esm/plugins/bots/PartialLiquidationBotBaseContract.js +7 -22
  226. package/dist/esm/plugins/bots/PartialLiquidationBotV300Contract.js +4 -20
  227. package/dist/esm/plugins/bots/deserializePartialLiquidationBotParams.js +29 -0
  228. package/dist/esm/plugins/bots/index.js +0 -1
  229. package/dist/esm/plugins/zappers/ZappersPlugin.js +1 -1
  230. package/dist/esm/sdk/GearboxSDK.js +10 -112
  231. package/dist/esm/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +1 -4
  232. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +7 -9
  233. package/dist/esm/sdk/base/BaseContract.js +202 -81
  234. package/dist/esm/sdk/base/ChainContractsRegister.js +111 -0
  235. package/dist/esm/sdk/base/Construct.js +63 -0
  236. package/dist/esm/sdk/base/SDKConstruct.js +3 -29
  237. package/dist/esm/sdk/base/TokensMeta.js +4 -4
  238. package/dist/esm/sdk/base/index.js +2 -1
  239. package/dist/esm/sdk/core/BotListV3Contract.js +2 -2
  240. package/dist/esm/sdk/core/GearStakingV3Contract.js +2 -2
  241. package/dist/esm/sdk/core/address-provider/AbstractAddressProviderContract.js +2 -2
  242. package/dist/esm/sdk/core/address-provider/AddressProviderV300Contract.js +11 -6
  243. package/dist/esm/sdk/core/address-provider/AddressProviderV310Contract.js +4 -4
  244. package/dist/esm/sdk/market/MarketConfiguratorContract.js +5 -5
  245. package/dist/esm/sdk/market/MarketRegister.js +8 -10
  246. package/dist/esm/sdk/market/MarketSuite.js +2 -2
  247. package/dist/esm/sdk/market/credit/CreditConfiguratorV300Contract.js +4 -3
  248. package/dist/esm/sdk/market/credit/CreditConfiguratorV310Contract.js +4 -3
  249. package/dist/esm/sdk/market/credit/CreditFacadeV300Contract.js +9 -9
  250. package/dist/esm/sdk/market/credit/CreditFacadeV310Contract.js +8 -8
  251. package/dist/esm/sdk/market/credit/CreditManagerV300Contract.js +5 -2
  252. package/dist/esm/sdk/market/credit/CreditManagerV310Contract.js +5 -2
  253. package/dist/esm/sdk/market/credit/CreditSuite.js +2 -3
  254. package/dist/esm/sdk/market/loss-policy/AliasLossPolicyV310Contract.js +3 -1
  255. package/dist/esm/sdk/market/loss-policy/LossPolicyContract.js +5 -3
  256. package/dist/esm/sdk/market/loss-policy/createLossPolicy.js +1 -1
  257. package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +8 -26
  258. package/dist/esm/sdk/market/oracle/createPriceOracle.js +1 -1
  259. package/dist/esm/sdk/market/pool/GaugeContract.js +2 -2
  260. package/dist/esm/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
  261. package/dist/esm/sdk/market/pool/PoolQuotaKeeperV300Contract.js +2 -2
  262. package/dist/esm/sdk/market/pool/PoolQuotaKeeperV310Contract.js +2 -2
  263. package/dist/esm/sdk/market/pool/PoolSuite.js +1 -1
  264. package/dist/esm/sdk/market/pool/PoolV300Contract.js +5 -5
  265. package/dist/esm/sdk/market/pool/PoolV310Contract.js +5 -5
  266. package/dist/esm/sdk/market/pool/TumblerContract.js +2 -2
  267. package/dist/esm/sdk/market/pool/createInterestRateModel.js +11 -15
  268. package/dist/esm/sdk/market/pricefeeds/AbstractLPPriceFeed.js +2 -22
  269. package/dist/esm/sdk/market/pricefeeds/AbstractPriceFeed.js +3 -3
  270. package/dist/esm/sdk/market/pricefeeds/BalancerStablePriceFeed.js +3 -13
  271. package/dist/esm/sdk/market/pricefeeds/BalancerWeightedPriceFeed.js +3 -13
  272. package/dist/esm/sdk/market/pricefeeds/BoundedPriceFeed.js +6 -2
  273. package/dist/esm/sdk/market/pricefeeds/CompositePriceFeed.js +2 -2
  274. package/dist/esm/sdk/market/pricefeeds/ConstantPriceFeed.js +2 -2
  275. package/dist/esm/sdk/market/pricefeeds/CurveCryptoPriceFeed.js +3 -10
  276. package/dist/esm/sdk/market/pricefeeds/CurveStablePriceFeed.js +3 -10
  277. package/dist/esm/sdk/market/pricefeeds/CurveUSDPriceFeed.js +3 -10
  278. package/dist/esm/sdk/market/pricefeeds/Erc4626PriceFeed.js +2 -18
  279. package/dist/esm/sdk/market/pricefeeds/ExternalPriceFeed.js +2 -2
  280. package/dist/esm/sdk/market/pricefeeds/MellowLRTPriceFeed.js +3 -11
  281. package/dist/esm/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.js +2 -2
  282. package/dist/esm/sdk/market/pricefeeds/PriceFeedRef.js +7 -5
  283. package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +3 -9
  284. package/dist/esm/sdk/market/pricefeeds/PythPriceFeed.js +2 -2
  285. package/dist/esm/sdk/market/pricefeeds/RedstonePriceFeed.js +3 -3
  286. package/dist/esm/sdk/market/pricefeeds/WstETHPriceFeed.js +3 -10
  287. package/dist/esm/sdk/market/pricefeeds/YearnPriceFeed.js +3 -10
  288. package/dist/esm/sdk/market/pricefeeds/ZeroPriceFeed.js +2 -2
  289. package/dist/esm/sdk/market/pricefeeds/updates/PriceUpdatesCache.js +17 -0
  290. package/dist/esm/sdk/market/pricefeeds/updates/PythUpdater.js +8 -10
  291. package/dist/esm/sdk/market/pricefeeds/updates/RedstoneUpdater.js +11 -13
  292. package/dist/esm/sdk/router/AbstractRouterContract.js +5 -0
  293. package/dist/esm/sdk/router/RouterV310Contract.js +3 -3
  294. package/dist/esm/sdk/router/createRouter.js +4 -0
  295. package/dist/esm/sdk/utils/abi-decode.js +37 -0
  296. package/dist/esm/sdk/utils/index.js +1 -0
  297. package/dist/types/dev/create2.d.ts +2 -2
  298. package/dist/types/dev/mint/AbstractMinter.d.ts +3 -4
  299. package/dist/types/dev/mint/DealMinter.d.ts +0 -3
  300. package/dist/types/dev/mint/DirectMinter.d.ts +0 -3
  301. package/dist/types/dev/mint/TransferMinter.d.ts +0 -3
  302. package/dist/types/permissionless/bindings/address-provider.d.ts +4 -255
  303. package/dist/types/permissionless/bindings/bytecode-repository.d.ts +5 -6
  304. package/dist/types/permissionless/bindings/compressors/token-compressor.d.ts +3 -3
  305. package/dist/types/permissionless/bindings/compressors/withdrawal-compressor.d.ts +4 -5
  306. package/dist/types/permissionless/bindings/cross-chain-multisig.d.ts +7 -7
  307. package/dist/types/permissionless/bindings/factory/abstract-factory.d.ts +1 -1
  308. package/dist/types/permissionless/bindings/governance/batches-chain.d.ts +3 -4
  309. package/dist/types/permissionless/bindings/governance/governor.d.ts +6 -7
  310. package/dist/types/permissionless/bindings/governance/timelock.d.ts +3 -3
  311. package/dist/types/permissionless/bindings/governance/types.d.ts +1 -1
  312. package/dist/types/permissionless/bindings/index.d.ts +0 -1
  313. package/dist/types/permissionless/bindings/instance-manager.d.ts +6 -7
  314. package/dist/types/permissionless/bindings/market-configurator-factory.d.ts +4 -4
  315. package/dist/types/permissionless/bindings/market-configurator.d.ts +6 -6
  316. package/dist/types/permissionless/bindings/price-feed-store.d.ts +6 -7
  317. package/dist/types/permissionless/bindings/router/routing-manager.d.ts +4 -5
  318. package/dist/types/permissionless/bindings/treasury-splitter.d.ts +5 -6
  319. package/dist/types/permissionless/core/proposal.d.ts +1 -7
  320. package/dist/types/permissionless/utils/create2.d.ts +1 -1
  321. package/dist/types/permissionless/utils/governance/batch.d.ts +1 -1
  322. package/dist/types/permissionless/utils/index.d.ts +0 -1
  323. package/dist/types/permissionless/utils/price-update/get-price-feeds.d.ts +3 -3
  324. package/dist/types/permissionless/utils/price-update/get-price-update-tx.d.ts +2 -2
  325. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +2 -2
  326. package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +2 -2
  327. package/dist/types/plugins/adapters/contracts/BalancerV2VaultAdapterContract.d.ts +2 -2
  328. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +2 -2
  329. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +2 -2
  330. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +2 -2
  331. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +2 -2
  332. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +2 -2
  333. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +2 -2
  334. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +2 -2
  335. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +2 -2
  336. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +2 -2
  337. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +2 -2
  338. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +2 -2
  339. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +2 -2
  340. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +2 -2
  341. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +2 -2
  342. package/dist/types/plugins/adapters/contracts/EqualizerRouterAdapterContract.d.ts +2 -2
  343. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +2 -2
  344. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +2 -2
  345. package/dist/types/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.d.ts +2 -2
  346. package/dist/types/plugins/adapters/contracts/InfraredVaultAdapterContract.d.ts +2 -2
  347. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +2 -2
  348. package/dist/types/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.d.ts +2 -2
  349. package/dist/types/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.d.ts +2 -2
  350. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +2 -2
  351. package/dist/types/plugins/adapters/contracts/MellowClaimerAdapterContract.d.ts +2 -2
  352. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +2 -2
  353. package/dist/types/plugins/adapters/contracts/MellowDepositQueueAdapterContract.d.ts +2 -2
  354. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +2 -2
  355. package/dist/types/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.d.ts +2 -2
  356. package/dist/types/plugins/adapters/contracts/MellowVaultAdapterContract.d.ts +2 -2
  357. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +2 -2
  358. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +2 -2
  359. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +2 -2
  360. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +2 -2
  361. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +2 -2
  362. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +2 -2
  363. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +3 -3
  364. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +3 -3
  365. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +2 -2
  366. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +2 -16
  367. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +2 -2
  368. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +2 -2
  369. package/dist/types/plugins/adapters/contracts/YearnV2AdapterContract.d.ts +2 -2
  370. package/dist/types/plugins/bots/PartialLiquidationBotV300Contract.d.ts +2 -8
  371. package/dist/types/plugins/bots/deserializePartialLiquidationBotParams.d.ts +3 -0
  372. package/dist/types/plugins/bots/index.d.ts +0 -1
  373. package/dist/types/sdk/GearboxSDK.d.ts +5 -76
  374. package/dist/types/sdk/accountMigration/types.d.ts +1 -2
  375. package/dist/types/sdk/accounts/types.d.ts +4 -3
  376. package/dist/types/sdk/base/BaseContract.d.ts +72 -28
  377. package/dist/types/sdk/base/ChainContractsRegister.d.ts +57 -0
  378. package/dist/types/sdk/base/Construct.d.ts +38 -0
  379. package/dist/types/sdk/base/PlaceholderContract.d.ts +2 -2
  380. package/dist/types/sdk/base/SDKConstruct.d.ts +2 -16
  381. package/dist/types/sdk/base/TokensMeta.d.ts +2 -3
  382. package/dist/types/sdk/base/index.d.ts +2 -1
  383. package/dist/types/sdk/base/types.d.ts +50 -0
  384. package/dist/types/sdk/core/BotListV3Contract.d.ts +1 -1
  385. package/dist/types/sdk/core/GearStakingV3Contract.d.ts +1 -1
  386. package/dist/types/sdk/core/address-provider/AbstractAddressProviderContract.d.ts +3 -4
  387. package/dist/types/sdk/core/address-provider/AddressProviderV300Contract.d.ts +3 -3
  388. package/dist/types/sdk/core/address-provider/AddressProviderV310Contract.d.ts +3 -3
  389. package/dist/types/sdk/market/MarketConfiguratorContract.d.ts +2 -2
  390. package/dist/types/sdk/market/credit/CreditConfiguratorV300Contract.d.ts +3 -3
  391. package/dist/types/sdk/market/credit/CreditConfiguratorV310Contract.d.ts +3 -3
  392. package/dist/types/sdk/market/credit/CreditFacadeV300Contract.d.ts +3 -4
  393. package/dist/types/sdk/market/credit/CreditFacadeV310Contract.d.ts +3 -4
  394. package/dist/types/sdk/market/credit/CreditManagerV300Contract.d.ts +1 -1
  395. package/dist/types/sdk/market/credit/CreditManagerV310Contract.d.ts +1 -1
  396. package/dist/types/sdk/market/credit/CreditSuite.d.ts +1 -1
  397. package/dist/types/sdk/market/credit/types.d.ts +1 -2
  398. package/dist/types/sdk/market/loss-policy/AliasLossPolicyV310Contract.d.ts +1 -0
  399. package/dist/types/sdk/market/loss-policy/LossPolicyContract.d.ts +2 -3
  400. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +3 -12
  401. package/dist/types/sdk/market/oracle/types.d.ts +0 -10
  402. package/dist/types/sdk/market/pool/GaugeContract.d.ts +2 -3
  403. package/dist/types/sdk/market/pool/LinearInterestRateModelContract.d.ts +2 -3
  404. package/dist/types/sdk/market/pool/PoolQuotaKeeperV300Contract.d.ts +2 -3
  405. package/dist/types/sdk/market/pool/PoolQuotaKeeperV310Contract.d.ts +2 -3
  406. package/dist/types/sdk/market/pool/PoolV300Contract.d.ts +4 -5
  407. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +4 -5
  408. package/dist/types/sdk/market/pool/TumblerContract.d.ts +2 -3
  409. package/dist/types/sdk/market/pricefeeds/AbstractLPPriceFeed.d.ts +3 -8
  410. package/dist/types/sdk/market/pricefeeds/AbstractPriceFeed.d.ts +2 -3
  411. package/dist/types/sdk/market/pricefeeds/BalancerStablePriceFeed.d.ts +2 -3
  412. package/dist/types/sdk/market/pricefeeds/BalancerWeightedPriceFeed.d.ts +2 -3
  413. package/dist/types/sdk/market/pricefeeds/BoundedPriceFeed.d.ts +2 -2
  414. package/dist/types/sdk/market/pricefeeds/CompositePriceFeed.d.ts +2 -2
  415. package/dist/types/sdk/market/pricefeeds/ConstantPriceFeed.d.ts +2 -2
  416. package/dist/types/sdk/market/pricefeeds/CurveCryptoPriceFeed.d.ts +2 -3
  417. package/dist/types/sdk/market/pricefeeds/CurveStablePriceFeed.d.ts +2 -3
  418. package/dist/types/sdk/market/pricefeeds/CurveUSDPriceFeed.d.ts +2 -3
  419. package/dist/types/sdk/market/pricefeeds/Erc4626PriceFeed.d.ts +2 -3
  420. package/dist/types/sdk/market/pricefeeds/ExternalPriceFeed.d.ts +2 -2
  421. package/dist/types/sdk/market/pricefeeds/MellowLRTPriceFeed.d.ts +2 -3
  422. package/dist/types/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.d.ts +2 -2
  423. package/dist/types/sdk/market/pricefeeds/PriceFeedRef.d.ts +3 -4
  424. package/dist/types/sdk/market/pricefeeds/PriceFeedsRegister.d.ts +1 -2
  425. package/dist/types/sdk/market/pricefeeds/PythPriceFeed.d.ts +2 -2
  426. package/dist/types/sdk/market/pricefeeds/RedstonePriceFeed.d.ts +2 -2
  427. package/dist/types/sdk/market/pricefeeds/WstETHPriceFeed.d.ts +2 -3
  428. package/dist/types/sdk/market/pricefeeds/YearnPriceFeed.d.ts +2 -3
  429. package/dist/types/sdk/market/pricefeeds/ZeroPriceFeed.d.ts +2 -2
  430. package/dist/types/sdk/market/pricefeeds/types.d.ts +0 -5
  431. package/dist/types/sdk/market/pricefeeds/updates/PriceUpdatesCache.d.ts +8 -1
  432. package/dist/types/sdk/router/AbstractRouterContract.d.ts +4 -1
  433. package/dist/types/sdk/router/types.d.ts +1 -2
  434. package/dist/types/sdk/sdk-legacy/core/creditAccount.d.ts +2 -2
  435. package/dist/types/sdk/utils/abi-decode.d.ts +10 -0
  436. package/dist/types/sdk/utils/index.d.ts +1 -0
  437. package/package.json +11 -11
  438. package/dist/cjs/permissionless/bindings/base-contract.js +0 -173
  439. package/dist/cjs/permissionless/utils/abi-decoder.js +0 -72
  440. package/dist/cjs/sdk/base/AddressLabeller.js +0 -49
  441. package/dist/cjs/sdk/base/IAddressLabeller.js +0 -16
  442. package/dist/esm/permissionless/bindings/base-contract.js +0 -151
  443. package/dist/esm/permissionless/utils/abi-decoder.js +0 -50
  444. package/dist/esm/sdk/base/AddressLabeller.js +0 -25
  445. package/dist/esm/sdk/base/IAddressLabeller.js +0 -0
  446. package/dist/types/permissionless/bindings/base-contract.d.ts +0 -23
  447. package/dist/types/permissionless/utils/abi-decoder.d.ts +0 -13
  448. package/dist/types/sdk/base/AddressLabeller.d.ts +0 -11
  449. package/dist/types/sdk/base/IAddressLabeller.d.ts +0 -9
@@ -10,9 +10,9 @@ import {
10
10
  const abi = [...iPoolV310Abi, ...iPausableAbi];
11
11
  class PoolV310Contract extends BaseContract {
12
12
  creditManagerDebtParams;
13
- constructor(sdk, data) {
13
+ constructor(options, data) {
14
14
  const { baseParams, creditManagerDebtParams, ...rest } = data;
15
- super(sdk, {
15
+ super(options, {
16
16
  ...data.baseParams,
17
17
  name: `PoolV3(${data.name})`,
18
18
  abi
@@ -21,7 +21,7 @@ class PoolV310Contract extends BaseContract {
21
21
  this.creditManagerDebtParams = new AddressMap(
22
22
  creditManagerDebtParams.map((p) => [p.creditManager, p])
23
23
  );
24
- sdk.tokensMeta.upsert(data.baseParams.addr, {
24
+ this.register.tokensMeta.upsert(data.baseParams.addr, {
25
25
  addr: data.baseParams.addr,
26
26
  decimals: data.decimals,
27
27
  name: data.name,
@@ -100,14 +100,14 @@ class PoolV310Contract extends BaseContract {
100
100
  break;
101
101
  }
102
102
  }
103
- parseFunctionParams(params) {
103
+ stringifyFunctionParams(params) {
104
104
  switch (params.functionName) {
105
105
  case "deposit": {
106
106
  const [amount, onBehalfOf] = params.args;
107
107
  return [formatBN(amount, this.decimals), this.labelAddress(onBehalfOf)];
108
108
  }
109
109
  default:
110
- return void 0;
110
+ return super.stringifyFunctionParams(params);
111
111
  }
112
112
  }
113
113
  }
@@ -6,8 +6,8 @@ const abi = iTumblerV310Abi;
6
6
  class TumblerContract extends BaseContract {
7
7
  epochLength;
8
8
  rates;
9
- constructor(sdk, pool, tumbler) {
10
- super(sdk, {
9
+ constructor(options, pool, tumbler) {
10
+ super(options, {
11
11
  ...tumbler.baseParams,
12
12
  name: `Tumbler(${pool.name})`,
13
13
  abi
@@ -2,21 +2,17 @@ import { bytes32ToString } from "../../utils/index.js";
2
2
  import { LinearInterestRateModelContract } from "./LinearInterestRateModelContract.js";
3
3
  function createInterestRateModel(sdk, data) {
4
4
  const { addr, contractType } = data.baseParams;
5
- if (sdk.interestRateModels.has(addr)) {
6
- return sdk.interestRateModels.mustGet(
7
- addr
8
- );
9
- } else {
10
- const modelType = bytes32ToString(contractType);
11
- switch (modelType) {
12
- case "IRM::LINEAR": {
13
- const linearModel = new LinearInterestRateModelContract(sdk, data);
14
- sdk.interestRateModels.insert(addr, linearModel);
15
- return linearModel;
16
- }
17
- default: {
18
- throw new Error(`Unknown interest rate model type: ${modelType}`);
19
- }
5
+ const existing = sdk.getContract(addr);
6
+ if (existing) {
7
+ return existing;
8
+ }
9
+ const modelType = bytes32ToString(contractType);
10
+ switch (modelType) {
11
+ case "IRM::LINEAR": {
12
+ return new LinearInterestRateModelContract(sdk, data);
13
+ }
14
+ default: {
15
+ throw new Error(`Unknown interest rate model type: ${modelType}`);
20
16
  }
21
17
  }
22
18
  }
@@ -1,10 +1,8 @@
1
1
  import { decodeAbiParameters, hexToBytes } from "viem";
2
- import { ilpPriceFeedAbi } from "../../abi/index.js";
3
2
  import { isV310 } from "../../constants/versions.js";
4
3
  import {
5
4
  AbstractPriceFeedContract
6
5
  } from "./AbstractPriceFeed.js";
7
- const LOWER_BOUND_FACTOR = 99n;
8
6
  class AbstractLPPriceFeedContract extends AbstractPriceFeedContract {
9
7
  lpContract;
10
8
  lpToken;
@@ -14,8 +12,8 @@ class AbstractLPPriceFeedContract extends AbstractPriceFeedContract {
14
12
  exchangeRate;
15
13
  aggregatePrice;
16
14
  scale;
17
- constructor(sdk, args) {
18
- super(sdk, { ...args, decimals: 8 });
15
+ constructor(options, args) {
16
+ super(options, { ...args, decimals: 8 });
19
17
  this.hasLowerBoundCap = true;
20
18
  if (isV310(args.baseParams.version)) {
21
19
  const decoder = decodeAbiParameters(
@@ -61,24 +59,6 @@ class AbstractLPPriceFeedContract extends AbstractPriceFeedContract {
61
59
  this.scale = decoder[4].scale;
62
60
  }
63
61
  }
64
- async getLowerBound() {
65
- const value = await this.getValue();
66
- const lowerBound = AbstractLPPriceFeedContract.toLowerBound(value);
67
- this.logger?.debug(
68
- `Lowerbound for ${this.labelAddress(this.address)}: ${lowerBound}`
69
- );
70
- return lowerBound;
71
- }
72
- async currentLowerBound() {
73
- return await this.sdk.client.readContract({
74
- abi: ilpPriceFeedAbi,
75
- address: this.address,
76
- functionName: "lowerBound"
77
- });
78
- }
79
- static toLowerBound(value) {
80
- return value * LOWER_BOUND_FACTOR / 100n;
81
- }
82
62
  stateHuman(raw) {
83
63
  return {
84
64
  ...super.stateHuman(raw),
@@ -23,8 +23,8 @@ class AbstractPriceFeedContract extends BaseContract {
23
23
  #args;
24
24
  hasLowerBoundCap = false;
25
25
  description;
26
- constructor(sdk, args) {
27
- super(sdk, {
26
+ constructor(options, args) {
27
+ super(options, {
28
28
  abi: args.abi,
29
29
  addr: args.baseParams.addr,
30
30
  name: args.name + (args.description ? ` ${args.description}` : ""),
@@ -40,7 +40,7 @@ class AbstractPriceFeedContract extends BaseContract {
40
40
  if (args.underlyingFeeds && args.underlyingStalenessPeriods) {
41
41
  const underlyingStalenessPeriods = args.underlyingStalenessPeriods;
42
42
  this.#underlyingPriceFeeds = args.underlyingFeeds.map(
43
- (address, i) => new PriceFeedRef(this.sdk, address, underlyingStalenessPeriods[i])
43
+ (address, i) => new PriceFeedRef(options, address, underlyingStalenessPeriods[i])
44
44
  );
45
45
  }
46
46
  }
@@ -1,23 +1,13 @@
1
- import {
2
- bptStablePriceFeedAbi,
3
- iBalancerStablePoolAbi
4
- } from "../../abi/index.js";
1
+ import { bptStablePriceFeedAbi } from "../../abi/index.js";
5
2
  import { AbstractLPPriceFeedContract } from "./AbstractLPPriceFeed.js";
6
3
  class BalancerStablePriceFeedContract extends AbstractLPPriceFeedContract {
7
- constructor(sdk, args) {
8
- super(sdk, {
4
+ constructor(options, args) {
5
+ super(options, {
9
6
  ...args,
10
7
  name: "BalancerStablePriceFeed",
11
8
  abi: bptStablePriceFeedAbi
12
9
  });
13
10
  }
14
- async getValue() {
15
- return await this.sdk.client.readContract({
16
- abi: iBalancerStablePoolAbi,
17
- address: this.lpContract,
18
- functionName: "getRate"
19
- });
20
- }
21
11
  }
22
12
  export {
23
13
  BalancerStablePriceFeedContract
@@ -1,14 +1,11 @@
1
1
  import { decodeAbiParameters, hexToBytes } from "viem";
2
- import {
3
- bptWeightedPriceFeedAbi,
4
- iBalancerWeightedPoolAbi
5
- } from "../../abi/index.js";
2
+ import { bptWeightedPriceFeedAbi } from "../../abi/index.js";
6
3
  import { AbstractLPPriceFeedContract } from "./AbstractLPPriceFeed.js";
7
4
  class BalancerWeightedPriceFeedContract extends AbstractLPPriceFeedContract {
8
5
  vault;
9
6
  poolId;
10
7
  weights;
11
- constructor(sdk, args) {
8
+ constructor(options, args) {
12
9
  const decoded = decodeAbiParameters(
13
10
  [
14
11
  { type: "bytes", name: "superParams" },
@@ -18,7 +15,7 @@ class BalancerWeightedPriceFeedContract extends AbstractLPPriceFeedContract {
18
15
  ],
19
16
  hexToBytes(args.baseParams.serializedParams)
20
17
  );
21
- super(sdk, {
18
+ super(options, {
22
19
  ...args,
23
20
  baseParams: {
24
21
  ...args.baseParams,
@@ -31,13 +28,6 @@ class BalancerWeightedPriceFeedContract extends AbstractLPPriceFeedContract {
31
28
  this.poolId = decoded[2];
32
29
  this.weights = decoded[3];
33
30
  }
34
- async getValue() {
35
- return await this.sdk.client.readContract({
36
- abi: iBalancerWeightedPoolAbi,
37
- address: this.lpContract,
38
- functionName: "getRate"
39
- });
40
- }
41
31
  stateHuman(raw) {
42
32
  return {
43
33
  ...super.stateHuman(raw),
@@ -3,8 +3,12 @@ import { boundedPriceFeedAbi } from "../../abi/index.js";
3
3
  import { AbstractPriceFeedContract } from "./AbstractPriceFeed.js";
4
4
  class BoundedPriceFeedContract extends AbstractPriceFeedContract {
5
5
  upperBound;
6
- constructor(sdk, args) {
7
- super(sdk, { ...args, name: "BoundedPriceFeed", abi: boundedPriceFeedAbi });
6
+ constructor(options, args) {
7
+ super(options, {
8
+ ...args,
9
+ name: "BoundedPriceFeed",
10
+ abi: boundedPriceFeedAbi
11
+ });
8
12
  const decoder = decodeAbiParameters(
9
13
  [
10
14
  { type: "int256" }
@@ -1,8 +1,8 @@
1
1
  import { compositePriceFeedAbi } from "../../abi/index.js";
2
2
  import { AbstractPriceFeedContract } from "./AbstractPriceFeed.js";
3
3
  class CompositePriceFeedContract extends AbstractPriceFeedContract {
4
- constructor(sdk, args) {
5
- super(sdk, {
4
+ constructor(options, args) {
5
+ super(options, {
6
6
  ...args,
7
7
  name: "CompositePriceFeed",
8
8
  abi: compositePriceFeedAbi
@@ -3,8 +3,8 @@ import { constantPriceFeedAbi } from "../../abi/oracles.js";
3
3
  import { AbstractPriceFeedContract } from "./AbstractPriceFeed.js";
4
4
  class ConstantPriceFeedContract extends AbstractPriceFeedContract {
5
5
  price;
6
- constructor(sdk, args) {
7
- super(sdk, {
6
+ constructor(options, args) {
7
+ super(options, {
8
8
  ...args,
9
9
  name: "ConstantPriceFeed",
10
10
  abi: constantPriceFeedAbi,
@@ -1,20 +1,13 @@
1
- import { curveCryptoLpPriceFeedAbi, iCurvePoolAbi } from "../../abi/index.js";
1
+ import { curveCryptoLpPriceFeedAbi } from "../../abi/index.js";
2
2
  import { AbstractLPPriceFeedContract } from "./AbstractLPPriceFeed.js";
3
3
  class CurveCryptoPriceFeedContract extends AbstractLPPriceFeedContract {
4
- constructor(sdk, args) {
5
- super(sdk, {
4
+ constructor(options, args) {
5
+ super(options, {
6
6
  ...args,
7
7
  name: "CurveCryptoPriceFeed",
8
8
  abi: curveCryptoLpPriceFeedAbi
9
9
  });
10
10
  }
11
- async getValue() {
12
- return await this.sdk.client.readContract({
13
- abi: iCurvePoolAbi,
14
- address: this.lpContract,
15
- functionName: "get_virtual_price"
16
- });
17
- }
18
11
  }
19
12
  export {
20
13
  CurveCryptoPriceFeedContract
@@ -1,20 +1,13 @@
1
- import { curveStableLpPriceFeedAbi, iCurvePoolAbi } from "../../abi/index.js";
1
+ import { curveStableLpPriceFeedAbi } from "../../abi/index.js";
2
2
  import { AbstractLPPriceFeedContract } from "./AbstractLPPriceFeed.js";
3
3
  class CurveStablePriceFeedContract extends AbstractLPPriceFeedContract {
4
- constructor(sdk, args) {
5
- super(sdk, {
4
+ constructor(options, args) {
5
+ super(options, {
6
6
  ...args,
7
7
  name: "CurveStablePriceFeed",
8
8
  abi: curveStableLpPriceFeedAbi
9
9
  });
10
10
  }
11
- async getValue() {
12
- return await this.sdk.client.readContract({
13
- abi: iCurvePoolAbi,
14
- address: this.lpContract,
15
- functionName: "get_virtual_price"
16
- });
17
- }
18
11
  }
19
12
  export {
20
13
  CurveStablePriceFeedContract
@@ -1,20 +1,13 @@
1
- import { curveUsdPriceFeedAbi, iCurvePoolAbi } from "../../abi/index.js";
1
+ import { curveUsdPriceFeedAbi } from "../../abi/index.js";
2
2
  import { AbstractLPPriceFeedContract } from "./AbstractLPPriceFeed.js";
3
3
  class CurveUSDPriceFeedContract extends AbstractLPPriceFeedContract {
4
- constructor(sdk, args) {
5
- super(sdk, {
4
+ constructor(options, args) {
5
+ super(options, {
6
6
  ...args,
7
7
  name: "CurveUSDPriceFeed",
8
8
  abi: curveUsdPriceFeedAbi
9
9
  });
10
10
  }
11
- async getValue() {
12
- return await this.sdk.client.readContract({
13
- abi: iCurvePoolAbi,
14
- address: this.lpContract,
15
- functionName: "get_virtual_price"
16
- });
17
- }
18
11
  }
19
12
  export {
20
13
  CurveUSDPriceFeedContract
@@ -1,29 +1,13 @@
1
- import { erc4626Abi } from "viem";
2
- import { ierc20Abi } from "../../../abi/iERC20.js";
3
1
  import { erc4626PriceFeedAbi } from "../../abi/index.js";
4
2
  import { AbstractLPPriceFeedContract } from "./AbstractLPPriceFeed.js";
5
3
  class Erc4626PriceFeedContract extends AbstractLPPriceFeedContract {
6
- constructor(sdk, args) {
7
- super(sdk, {
4
+ constructor(options, args) {
5
+ super(options, {
8
6
  ...args,
9
7
  name: "ERC4626PriceFeed",
10
8
  abi: erc4626PriceFeedAbi
11
9
  });
12
10
  }
13
- async getValue() {
14
- const decimals = await this.sdk.client.readContract({
15
- abi: ierc20Abi,
16
- address: this.lpContract,
17
- functionName: "decimals"
18
- });
19
- const price = await this.sdk.client.readContract({
20
- abi: erc4626Abi,
21
- address: this.lpContract,
22
- functionName: "convertToAssets",
23
- args: [10n ** BigInt(decimals)]
24
- });
25
- return price;
26
- }
27
11
  }
28
12
  export {
29
13
  Erc4626PriceFeedContract
@@ -1,8 +1,8 @@
1
1
  import { chainlinkReadableAggregatorAbi } from "../../abi/index.js";
2
2
  import { AbstractPriceFeedContract } from "./AbstractPriceFeed.js";
3
3
  class ExternalPriceFeedContract extends AbstractPriceFeedContract {
4
- constructor(sdk, args) {
5
- super(sdk, {
4
+ constructor(options, args) {
5
+ super(options, {
6
6
  ...args,
7
7
  name: "ExternalPriceFeed",
8
8
  abi: chainlinkReadableAggregatorAbi
@@ -1,21 +1,13 @@
1
- import { iMellowVaultAbi, mellowLrtPriceFeedAbi } from "../../abi/index.js";
1
+ import { mellowLrtPriceFeedAbi } from "../../abi/index.js";
2
2
  import { AbstractLPPriceFeedContract } from "./AbstractLPPriceFeed.js";
3
3
  class MellowLRTPriceFeedContract extends AbstractLPPriceFeedContract {
4
- constructor(sdk, args) {
5
- super(sdk, {
4
+ constructor(options, args) {
5
+ super(options, {
6
6
  ...args,
7
7
  name: "MellowLRTPriceFeed",
8
8
  abi: mellowLrtPriceFeedAbi
9
9
  });
10
10
  }
11
- async getValue() {
12
- const stack = await this.sdk.client.readContract({
13
- abi: iMellowVaultAbi,
14
- address: this.lpContract,
15
- functionName: "calculateStack"
16
- });
17
- return stack.totalValue * BigInt(1e18) / stack.totalSupply;
18
- }
19
11
  }
20
12
  export {
21
13
  MellowLRTPriceFeedContract
@@ -9,8 +9,8 @@ class PendleTWAPPTPriceFeed extends AbstractPriceFeedContract {
9
9
  expiry;
10
10
  twapWindow;
11
11
  priceToSy;
12
- constructor(sdk, args) {
13
- super(sdk, {
12
+ constructor(options, args) {
13
+ super(options, {
14
14
  ...args,
15
15
  name: "PendleTWAPPTPriceFeed",
16
16
  abi
@@ -1,17 +1,19 @@
1
- import { SDKConstruct } from "../../base/index.js";
1
+ import { Construct } from "../../base/index.js";
2
2
  import { formatDuration } from "../../utils/index.js";
3
- class PriceFeedRef extends SDKConstruct {
3
+ class PriceFeedRef extends Construct {
4
4
  address;
5
5
  stalenessPeriod;
6
6
  #priceFeed;
7
- constructor(sdk, address, stalenessPeriod) {
8
- super(sdk);
7
+ constructor(options, address, stalenessPeriod) {
8
+ super(options);
9
9
  this.address = address;
10
10
  this.stalenessPeriod = stalenessPeriod;
11
11
  }
12
12
  get priceFeed() {
13
13
  if (!this.#priceFeed) {
14
- this.#priceFeed = this.sdk.priceFeeds.mustGet(this.address);
14
+ this.#priceFeed = this.register.mustGetContract(
15
+ this.address
16
+ );
15
17
  }
16
18
  return this.#priceFeed;
17
19
  }
@@ -7,12 +7,7 @@ import {
7
7
  AP_PRICE_FEED_STORE,
8
8
  VERSION_RANGE_310
9
9
  } from "../../constants/index.js";
10
- import {
11
- AddressMap,
12
- bytes32ToString,
13
- childLogger,
14
- createRawTx
15
- } from "../../utils/index.js";
10
+ import { AddressMap, bytes32ToString, createRawTx } from "../../utils/index.js";
16
11
  import { Hooks } from "../../utils/internal/index.js";
17
12
  import {
18
13
  PartialPriceFeedInitError
@@ -37,14 +32,12 @@ import { WstETHPriceFeedContract } from "./WstETHPriceFeed.js";
37
32
  import { YearnPriceFeedContract } from "./YearnPriceFeed.js";
38
33
  import { ZeroPriceFeedContract } from "./ZeroPriceFeed.js";
39
34
  class PriceFeedRegister extends SDKConstruct {
40
- logger;
41
35
  #hooks = new Hooks();
42
36
  #feeds = new AddressMap(void 0, "priceFeeds");
43
37
  #latestUpdate;
44
38
  updaters;
45
39
  constructor(sdk, opts = {}) {
46
40
  super(sdk);
47
- this.logger = childLogger("PriceFeedRegister", sdk.logger);
48
41
  this.updaters = [
49
42
  new RedstoneUpdater(sdk, opts?.redstone),
50
43
  new PythUpdater(sdk, opts?.pyth)
@@ -274,7 +267,8 @@ class PriceFeedRegister extends SDKConstruct {
274
267
  }
275
268
  }
276
269
  #createUpdatableProxy(data) {
277
- return new Proxy(this.create(data), {
270
+ const contract = this.#feeds.get(data.baseParams.addr) ?? this.create(data);
271
+ return new Proxy(contract, {
278
272
  get(target, prop) {
279
273
  if (prop === "updatableDependencies") {
280
274
  return () => [target];
@@ -7,8 +7,8 @@ class PythPriceFeed extends AbstractPriceFeedContract {
7
7
  priceFeedId;
8
8
  pyth;
9
9
  maxConfToPriceRatio;
10
- constructor(sdk, args) {
11
- super(sdk, {
10
+ constructor(options, args) {
11
+ super(options, {
12
12
  ...args,
13
13
  name: "PythPriceFeed",
14
14
  abi
@@ -10,10 +10,10 @@ class RedstonePriceFeedContract extends AbstractPriceFeedContract {
10
10
  signersThreshold;
11
11
  lastPrice;
12
12
  lastPayloadTimestamp;
13
- constructor(sdk, args) {
14
- super(sdk, {
13
+ constructor(options, args) {
14
+ super(options, {
15
15
  ...args,
16
- name: `RedstonePriceFeed`,
16
+ name: "RedstonePriceFeed",
17
17
  abi: redstonePriceFeedAbi
18
18
  });
19
19
  if (isV310(args.baseParams.version)) {
@@ -1,20 +1,13 @@
1
- import { iwstEthAbi, wstEthPriceFeedAbi } from "../../abi/index.js";
1
+ import { wstEthPriceFeedAbi } from "../../abi/index.js";
2
2
  import { AbstractLPPriceFeedContract } from "./AbstractLPPriceFeed.js";
3
3
  class WstETHPriceFeedContract extends AbstractLPPriceFeedContract {
4
- constructor(sdk, args) {
5
- super(sdk, {
4
+ constructor(options, args) {
5
+ super(options, {
6
6
  ...args,
7
7
  name: "WstETHPriceFeed",
8
8
  abi: wstEthPriceFeedAbi
9
9
  });
10
10
  }
11
- async getValue() {
12
- return await this.sdk.client.readContract({
13
- abi: iwstEthAbi,
14
- address: this.lpContract,
15
- functionName: "stEthPerToken"
16
- });
17
- }
18
11
  }
19
12
  export {
20
13
  WstETHPriceFeedContract
@@ -1,20 +1,13 @@
1
- import { iyVaultAbi, yearnPriceFeedAbi } from "../../abi/index.js";
1
+ import { yearnPriceFeedAbi } from "../../abi/index.js";
2
2
  import { AbstractLPPriceFeedContract } from "./AbstractLPPriceFeed.js";
3
3
  class YearnPriceFeedContract extends AbstractLPPriceFeedContract {
4
- constructor(sdk, args) {
5
- super(sdk, {
4
+ constructor(options, args) {
5
+ super(options, {
6
6
  ...args,
7
7
  name: "YearnPriceFeed",
8
8
  abi: yearnPriceFeedAbi
9
9
  });
10
10
  }
11
- async getValue() {
12
- return await this.sdk.client.readContract({
13
- abi: iyVaultAbi,
14
- address: this.lpContract,
15
- functionName: "pricePerShare"
16
- });
17
- }
18
11
  }
19
12
  export {
20
13
  YearnPriceFeedContract
@@ -1,8 +1,8 @@
1
1
  import { zeroPriceFeedAbi } from "../../abi/index.js";
2
2
  import { AbstractPriceFeedContract } from "./AbstractPriceFeed.js";
3
3
  class ZeroPriceFeedContract extends AbstractPriceFeedContract {
4
- constructor(sdk, args) {
5
- super(sdk, {
4
+ constructor(options, args) {
5
+ super(options, {
6
6
  ...args,
7
7
  name: "ZeroPriceFeed",
8
8
  abi: zeroPriceFeedAbi,
@@ -1,4 +1,21 @@
1
1
  class PriceUpdatesCache {
2
+ static #caches = /* @__PURE__ */ new Map();
3
+ /**
4
+ * Price update caches can be shared across networks
5
+ * @param id - unique key to identify the cache
6
+ * @param opts
7
+ * @returns
8
+ */
9
+ static get(id, opts) {
10
+ const key = `${id}:${opts.historical ? "historical" : "latest"}:${opts.ttl}`;
11
+ const cache = PriceUpdatesCache.#caches.get(key);
12
+ if (cache) {
13
+ return cache;
14
+ }
15
+ const newCache = new PriceUpdatesCache(opts);
16
+ PriceUpdatesCache.#caches.set(key, newCache);
17
+ return newCache;
18
+ }
2
19
  #cache = /* @__PURE__ */ new Map();
3
20
  #ttlMs;
4
21
  #historical;