@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.
- package/dist/cjs/dev/create2.js +1 -1
- package/dist/cjs/dev/mint/AbstractMinter.js +4 -2
- package/dist/cjs/dev/mint/DealMinter.js +3 -0
- package/dist/cjs/dev/mint/DirectMinter.js +3 -0
- package/dist/cjs/dev/mint/FallbackMinter.js +1 -1
- package/dist/cjs/dev/mint/TransferMinter.js +3 -0
- package/dist/cjs/permissionless/bindings/address-provider.js +6 -4
- package/dist/cjs/permissionless/bindings/base-contract.js +173 -0
- package/dist/cjs/permissionless/bindings/bytecode-repository.js +25 -23
- package/dist/cjs/permissionless/bindings/compressors/token-compressor.js +4 -4
- package/dist/cjs/permissionless/bindings/compressors/withdrawal-compressor.js +17 -11
- package/dist/cjs/permissionless/bindings/cross-chain-multisig.js +22 -23
- package/dist/cjs/permissionless/bindings/factory/abstract-factory.js +4 -7
- package/dist/cjs/permissionless/bindings/governance/batches-chain.js +4 -4
- package/dist/cjs/permissionless/bindings/governance/governor.js +49 -30
- package/dist/cjs/permissionless/bindings/governance/timelock.js +4 -4
- package/dist/cjs/permissionless/bindings/index.js +2 -0
- package/dist/cjs/permissionless/bindings/instance-manager.js +77 -58
- package/dist/cjs/permissionless/bindings/market-configurator-factory.js +4 -4
- package/dist/cjs/permissionless/bindings/market-configurator.js +143 -71
- package/dist/cjs/permissionless/bindings/price-feed-store.js +17 -8
- package/dist/cjs/permissionless/bindings/router/routing-manager.js +15 -9
- package/dist/cjs/permissionless/bindings/treasury-splitter.js +23 -14
- package/dist/cjs/permissionless/core/raw-tx.js +2 -2
- package/dist/cjs/permissionless/utils/abi-decoder.js +72 -0
- package/dist/cjs/permissionless/utils/format.js +2 -2
- package/dist/cjs/permissionless/utils/governance/timelock-txs.js +2 -2
- package/dist/cjs/permissionless/utils/index.js +2 -0
- package/dist/cjs/permissionless/utils/price-update/get-price-feeds.js +2 -1
- package/dist/cjs/permissionless/utils/price-update/get-price-update-tx.js +2 -1
- package/dist/cjs/permissionless/utils/price-update/get-prices.js +2 -1
- package/dist/cjs/permissionless/utils/price-update/get-updatable-feeds.js +3 -2
- package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/InfraredVaultAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/MellowClaimerAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/MellowVaultAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +5 -5
- package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +22 -22
- package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/YearnV2AdapterContract.js +2 -2
- package/dist/cjs/plugins/bots/BotsPlugin.js +96 -21
- package/dist/cjs/plugins/bots/PartialLiquidationBotBaseContract.js +14 -17
- package/dist/cjs/plugins/bots/PartialLiquidationBotV300Contract.js +20 -4
- package/dist/cjs/plugins/bots/config.js +59 -0
- package/dist/cjs/plugins/bots/index.js +4 -0
- package/dist/cjs/plugins/bots/types.js +9 -0
- package/dist/cjs/plugins/zappers/ZappersPlugin.js +1 -1
- package/dist/cjs/sdk/GearboxSDK.js +110 -8
- package/dist/cjs/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +4 -1
- package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +8 -6
- package/dist/cjs/sdk/base/AddressLabeller.js +49 -0
- package/dist/cjs/sdk/base/BaseContract.js +80 -195
- package/dist/cjs/sdk/base/IAddressLabeller.js +16 -0
- package/dist/cjs/sdk/base/SDKConstruct.js +29 -3
- package/dist/cjs/sdk/base/TokensMeta.js +4 -4
- package/dist/cjs/sdk/base/index.js +2 -4
- package/dist/cjs/sdk/core/BotListV3Contract.js +2 -2
- package/dist/cjs/sdk/core/GearStakingV3Contract.js +2 -2
- package/dist/cjs/sdk/core/address-provider/AbstractAddressProviderContract.js +2 -2
- package/dist/cjs/sdk/core/address-provider/AddressProviderV300Contract.js +6 -11
- package/dist/cjs/sdk/core/address-provider/AddressProviderV310Contract.js +4 -4
- package/dist/cjs/sdk/market/MarketConfiguratorContract.js +5 -5
- package/dist/cjs/sdk/market/MarketRegister.js +9 -7
- package/dist/cjs/sdk/market/MarketSuite.js +2 -2
- package/dist/cjs/sdk/market/credit/CreditConfiguratorV300Contract.js +3 -4
- package/dist/cjs/sdk/market/credit/CreditConfiguratorV310Contract.js +3 -4
- package/dist/cjs/sdk/market/credit/CreditFacadeV300Contract.js +9 -9
- package/dist/cjs/sdk/market/credit/CreditFacadeV310Contract.js +8 -8
- package/dist/cjs/sdk/market/credit/CreditManagerV300Contract.js +2 -5
- package/dist/cjs/sdk/market/credit/CreditManagerV310Contract.js +2 -5
- package/dist/cjs/sdk/market/credit/CreditSuite.js +3 -2
- package/dist/cjs/sdk/market/loss-policy/AliasLossPolicyV310Contract.js +1 -3
- package/dist/cjs/sdk/market/loss-policy/LossPolicyContract.js +2 -2
- package/dist/cjs/sdk/market/loss-policy/createLossPolicy.js +1 -1
- package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +26 -8
- package/dist/cjs/sdk/market/oracle/createPriceOracle.js +1 -1
- package/dist/cjs/sdk/market/pool/GaugeContract.js +2 -2
- package/dist/cjs/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
- package/dist/cjs/sdk/market/pool/PoolQuotaKeeperV300Contract.js +2 -2
- package/dist/cjs/sdk/market/pool/PoolQuotaKeeperV310Contract.js +2 -2
- package/dist/cjs/sdk/market/pool/PoolSuite.js +1 -1
- package/dist/cjs/sdk/market/pool/PoolV300Contract.js +5 -5
- package/dist/cjs/sdk/market/pool/PoolV310Contract.js +5 -5
- package/dist/cjs/sdk/market/pool/TumblerContract.js +2 -2
- package/dist/cjs/sdk/market/pool/createInterestRateModel.js +15 -11
- package/dist/cjs/sdk/market/pricefeeds/AbstractLPPriceFeed.js +22 -2
- package/dist/cjs/sdk/market/pricefeeds/AbstractPriceFeed.js +3 -3
- package/dist/cjs/sdk/market/pricefeeds/BalancerStablePriceFeed.js +9 -2
- package/dist/cjs/sdk/market/pricefeeds/BalancerWeightedPriceFeed.js +9 -2
- package/dist/cjs/sdk/market/pricefeeds/BoundedPriceFeed.js +2 -6
- package/dist/cjs/sdk/market/pricefeeds/CompositePriceFeed.js +2 -2
- package/dist/cjs/sdk/market/pricefeeds/ConstantPriceFeed.js +2 -2
- package/dist/cjs/sdk/market/pricefeeds/CurveCryptoPriceFeed.js +9 -2
- package/dist/cjs/sdk/market/pricefeeds/CurveStablePriceFeed.js +9 -2
- package/dist/cjs/sdk/market/pricefeeds/CurveUSDPriceFeed.js +9 -2
- package/dist/cjs/sdk/market/pricefeeds/Erc4626PriceFeed.js +18 -2
- package/dist/cjs/sdk/market/pricefeeds/ExternalPriceFeed.js +2 -2
- package/dist/cjs/sdk/market/pricefeeds/MellowLRTPriceFeed.js +10 -2
- package/dist/cjs/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.js +2 -2
- package/dist/cjs/sdk/market/pricefeeds/PriceFeedRef.js +4 -6
- package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +3 -2
- package/dist/cjs/sdk/market/pricefeeds/PythPriceFeed.js +2 -2
- package/dist/cjs/sdk/market/pricefeeds/RedstonePriceFeed.js +3 -3
- package/dist/cjs/sdk/market/pricefeeds/WstETHPriceFeed.js +9 -2
- package/dist/cjs/sdk/market/pricefeeds/YearnPriceFeed.js +9 -2
- package/dist/cjs/sdk/market/pricefeeds/ZeroPriceFeed.js +2 -2
- package/dist/cjs/sdk/market/pricefeeds/updates/PriceUpdatesCache.js +0 -17
- package/dist/cjs/sdk/market/pricefeeds/updates/PythUpdater.js +9 -7
- package/dist/cjs/sdk/market/pricefeeds/updates/RedstoneUpdater.js +12 -10
- package/dist/cjs/sdk/router/AbstractRouterContract.js +0 -5
- package/dist/cjs/sdk/router/RouterV310Contract.js +3 -3
- package/dist/cjs/sdk/router/createRouter.js +0 -4
- package/dist/cjs/sdk/utils/index.js +0 -2
- package/dist/esm/dev/create2.js +2 -2
- package/dist/esm/dev/mint/AbstractMinter.js +7 -3
- package/dist/esm/dev/mint/DealMinter.js +3 -0
- package/dist/esm/dev/mint/DirectMinter.js +3 -0
- package/dist/esm/dev/mint/FallbackMinter.js +1 -1
- package/dist/esm/dev/mint/TransferMinter.js +3 -0
- package/dist/esm/permissionless/bindings/address-provider.js +7 -7
- package/dist/esm/permissionless/bindings/base-contract.js +151 -0
- package/dist/esm/permissionless/bindings/bytecode-repository.js +24 -22
- package/dist/esm/permissionless/bindings/compressors/token-compressor.js +3 -3
- package/dist/esm/permissionless/bindings/compressors/withdrawal-compressor.js +16 -10
- package/dist/esm/permissionless/bindings/cross-chain-multisig.js +16 -20
- package/dist/esm/permissionless/bindings/factory/abstract-factory.js +4 -9
- package/dist/esm/permissionless/bindings/governance/batches-chain.js +3 -3
- package/dist/esm/permissionless/bindings/governance/governor.js +47 -28
- package/dist/esm/permissionless/bindings/governance/timelock.js +3 -3
- package/dist/esm/permissionless/bindings/index.js +1 -0
- package/dist/esm/permissionless/bindings/instance-manager.js +69 -53
- package/dist/esm/permissionless/bindings/market-configurator-factory.js +3 -3
- package/dist/esm/permissionless/bindings/market-configurator.js +137 -65
- package/dist/esm/permissionless/bindings/price-feed-store.js +14 -8
- package/dist/esm/permissionless/bindings/router/routing-manager.js +14 -8
- package/dist/esm/permissionless/bindings/treasury-splitter.js +22 -15
- package/dist/esm/permissionless/core/raw-tx.js +1 -1
- package/dist/esm/permissionless/utils/abi-decoder.js +50 -0
- package/dist/esm/permissionless/utils/format.js +1 -1
- package/dist/esm/permissionless/utils/governance/timelock-txs.js +1 -1
- package/dist/esm/permissionless/utils/index.js +1 -0
- package/dist/esm/permissionless/utils/price-update/get-price-feeds.js +2 -4
- package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +1 -1
- package/dist/esm/permissionless/utils/price-update/get-prices.js +2 -1
- package/dist/esm/permissionless/utils/price-update/get-updatable-feeds.js +1 -1
- package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +2 -2
- package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
- package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/InfraredVaultAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/MellowVaultAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +5 -5
- package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +22 -22
- package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +2 -2
- package/dist/esm/plugins/adapters/contracts/YearnV2AdapterContract.js +2 -2
- package/dist/esm/plugins/bots/BotsPlugin.js +108 -11
- package/dist/esm/plugins/bots/PartialLiquidationBotBaseContract.js +16 -7
- package/dist/esm/plugins/bots/PartialLiquidationBotV300Contract.js +20 -4
- package/dist/esm/plugins/bots/config.js +33 -0
- package/dist/esm/plugins/bots/index.js +2 -0
- package/dist/esm/plugins/bots/types.js +8 -0
- package/dist/esm/plugins/zappers/ZappersPlugin.js +1 -1
- package/dist/esm/sdk/GearboxSDK.js +112 -10
- package/dist/esm/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +4 -1
- package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +9 -7
- package/dist/esm/sdk/base/AddressLabeller.js +25 -0
- package/dist/esm/sdk/base/BaseContract.js +81 -202
- package/dist/esm/sdk/base/IAddressLabeller.js +0 -0
- package/dist/esm/sdk/base/SDKConstruct.js +29 -3
- package/dist/esm/sdk/base/TokensMeta.js +4 -4
- package/dist/esm/sdk/base/index.js +1 -2
- package/dist/esm/sdk/core/BotListV3Contract.js +2 -2
- package/dist/esm/sdk/core/GearStakingV3Contract.js +2 -2
- package/dist/esm/sdk/core/address-provider/AbstractAddressProviderContract.js +2 -2
- package/dist/esm/sdk/core/address-provider/AddressProviderV300Contract.js +6 -11
- package/dist/esm/sdk/core/address-provider/AddressProviderV310Contract.js +4 -4
- package/dist/esm/sdk/market/MarketConfiguratorContract.js +5 -5
- package/dist/esm/sdk/market/MarketRegister.js +10 -8
- package/dist/esm/sdk/market/MarketSuite.js +2 -2
- package/dist/esm/sdk/market/credit/CreditConfiguratorV300Contract.js +3 -4
- package/dist/esm/sdk/market/credit/CreditConfiguratorV310Contract.js +3 -4
- package/dist/esm/sdk/market/credit/CreditFacadeV300Contract.js +9 -9
- package/dist/esm/sdk/market/credit/CreditFacadeV310Contract.js +8 -8
- package/dist/esm/sdk/market/credit/CreditManagerV300Contract.js +2 -5
- package/dist/esm/sdk/market/credit/CreditManagerV310Contract.js +2 -5
- package/dist/esm/sdk/market/credit/CreditSuite.js +3 -2
- package/dist/esm/sdk/market/loss-policy/AliasLossPolicyV310Contract.js +1 -3
- package/dist/esm/sdk/market/loss-policy/LossPolicyContract.js +3 -5
- package/dist/esm/sdk/market/loss-policy/createLossPolicy.js +1 -1
- package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +26 -8
- package/dist/esm/sdk/market/oracle/createPriceOracle.js +1 -1
- package/dist/esm/sdk/market/pool/GaugeContract.js +2 -2
- package/dist/esm/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
- package/dist/esm/sdk/market/pool/PoolQuotaKeeperV300Contract.js +2 -2
- package/dist/esm/sdk/market/pool/PoolQuotaKeeperV310Contract.js +2 -2
- package/dist/esm/sdk/market/pool/PoolSuite.js +1 -1
- package/dist/esm/sdk/market/pool/PoolV300Contract.js +5 -5
- package/dist/esm/sdk/market/pool/PoolV310Contract.js +5 -5
- package/dist/esm/sdk/market/pool/TumblerContract.js +2 -2
- package/dist/esm/sdk/market/pool/createInterestRateModel.js +15 -11
- package/dist/esm/sdk/market/pricefeeds/AbstractLPPriceFeed.js +22 -2
- package/dist/esm/sdk/market/pricefeeds/AbstractPriceFeed.js +3 -3
- package/dist/esm/sdk/market/pricefeeds/BalancerStablePriceFeed.js +13 -3
- package/dist/esm/sdk/market/pricefeeds/BalancerWeightedPriceFeed.js +13 -3
- package/dist/esm/sdk/market/pricefeeds/BoundedPriceFeed.js +2 -6
- package/dist/esm/sdk/market/pricefeeds/CompositePriceFeed.js +2 -2
- package/dist/esm/sdk/market/pricefeeds/ConstantPriceFeed.js +2 -2
- package/dist/esm/sdk/market/pricefeeds/CurveCryptoPriceFeed.js +10 -3
- package/dist/esm/sdk/market/pricefeeds/CurveStablePriceFeed.js +10 -3
- package/dist/esm/sdk/market/pricefeeds/CurveUSDPriceFeed.js +10 -3
- package/dist/esm/sdk/market/pricefeeds/Erc4626PriceFeed.js +18 -2
- package/dist/esm/sdk/market/pricefeeds/ExternalPriceFeed.js +2 -2
- package/dist/esm/sdk/market/pricefeeds/MellowLRTPriceFeed.js +11 -3
- package/dist/esm/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.js +2 -2
- package/dist/esm/sdk/market/pricefeeds/PriceFeedRef.js +5 -7
- package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +9 -3
- package/dist/esm/sdk/market/pricefeeds/PythPriceFeed.js +2 -2
- package/dist/esm/sdk/market/pricefeeds/RedstonePriceFeed.js +3 -3
- package/dist/esm/sdk/market/pricefeeds/WstETHPriceFeed.js +10 -3
- package/dist/esm/sdk/market/pricefeeds/YearnPriceFeed.js +10 -3
- package/dist/esm/sdk/market/pricefeeds/ZeroPriceFeed.js +2 -2
- package/dist/esm/sdk/market/pricefeeds/updates/PriceUpdatesCache.js +0 -17
- package/dist/esm/sdk/market/pricefeeds/updates/PythUpdater.js +10 -8
- package/dist/esm/sdk/market/pricefeeds/updates/RedstoneUpdater.js +13 -11
- package/dist/esm/sdk/router/AbstractRouterContract.js +0 -5
- package/dist/esm/sdk/router/RouterV310Contract.js +3 -3
- package/dist/esm/sdk/router/createRouter.js +0 -4
- package/dist/esm/sdk/utils/index.js +0 -1
- package/dist/types/dev/create2.d.ts +2 -2
- package/dist/types/dev/mint/AbstractMinter.d.ts +4 -3
- package/dist/types/dev/mint/DealMinter.d.ts +3 -0
- package/dist/types/dev/mint/DirectMinter.d.ts +3 -0
- package/dist/types/dev/mint/TransferMinter.d.ts +3 -0
- package/dist/types/permissionless/bindings/address-provider.d.ts +255 -4
- package/dist/types/permissionless/bindings/base-contract.d.ts +23 -0
- package/dist/types/permissionless/bindings/bytecode-repository.d.ts +6 -5
- package/dist/types/permissionless/bindings/compressors/token-compressor.d.ts +3 -3
- package/dist/types/permissionless/bindings/compressors/withdrawal-compressor.d.ts +5 -4
- package/dist/types/permissionless/bindings/cross-chain-multisig.d.ts +7 -7
- package/dist/types/permissionless/bindings/factory/abstract-factory.d.ts +1 -1
- package/dist/types/permissionless/bindings/governance/batches-chain.d.ts +4 -3
- package/dist/types/permissionless/bindings/governance/governor.d.ts +7 -6
- package/dist/types/permissionless/bindings/governance/timelock.d.ts +3 -3
- package/dist/types/permissionless/bindings/governance/types.d.ts +1 -1
- package/dist/types/permissionless/bindings/index.d.ts +1 -0
- package/dist/types/permissionless/bindings/instance-manager.d.ts +7 -6
- package/dist/types/permissionless/bindings/market-configurator-factory.d.ts +4 -4
- package/dist/types/permissionless/bindings/market-configurator.d.ts +6 -6
- package/dist/types/permissionless/bindings/price-feed-store.d.ts +7 -6
- package/dist/types/permissionless/bindings/router/routing-manager.d.ts +5 -4
- package/dist/types/permissionless/bindings/treasury-splitter.d.ts +6 -5
- package/dist/types/permissionless/core/proposal.d.ts +7 -1
- package/dist/types/permissionless/utils/abi-decoder.d.ts +13 -0
- package/dist/types/permissionless/utils/create2.d.ts +1 -1
- package/dist/types/permissionless/utils/governance/batch.d.ts +1 -1
- package/dist/types/permissionless/utils/index.d.ts +1 -0
- package/dist/types/permissionless/utils/price-update/get-price-feeds.d.ts +3 -3
- package/dist/types/permissionless/utils/price-update/get-price-update-tx.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/BalancerV2VaultAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/EqualizerRouterAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/InfraredVaultAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/MellowClaimerAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/MellowDepositQueueAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/MellowVaultAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +3 -3
- package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +3 -3
- package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +16 -2
- package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/YearnV2AdapterContract.d.ts +2 -2
- package/dist/types/plugins/bots/BotsPlugin.d.ts +3 -2
- package/dist/types/plugins/bots/PartialLiquidationBotBaseContract.d.ts +1 -1
- package/dist/types/plugins/bots/PartialLiquidationBotV300Contract.d.ts +8 -2
- package/dist/types/plugins/bots/config.d.ts +6 -0
- package/dist/types/plugins/bots/index.d.ts +2 -0
- package/dist/types/plugins/bots/types.d.ts +16 -0
- package/dist/types/sdk/GearboxSDK.d.ts +76 -5
- package/dist/types/sdk/accountMigration/AbstractMigrateCreditAccountsService.d.ts +2 -2
- package/dist/types/sdk/accountMigration/types.d.ts +2 -1
- package/dist/types/sdk/accounts/types.d.ts +3 -4
- package/dist/types/sdk/base/AddressLabeller.d.ts +11 -0
- package/dist/types/sdk/base/BaseContract.d.ts +28 -72
- package/dist/types/sdk/base/IAddressLabeller.d.ts +9 -0
- package/dist/types/sdk/base/PlaceholderContract.d.ts +2 -2
- package/dist/types/sdk/base/SDKConstruct.d.ts +16 -2
- package/dist/types/sdk/base/TokensMeta.d.ts +3 -2
- package/dist/types/sdk/base/index.d.ts +1 -2
- package/dist/types/sdk/base/types.d.ts +0 -50
- package/dist/types/sdk/core/BotListV3Contract.d.ts +1 -1
- package/dist/types/sdk/core/GearStakingV3Contract.d.ts +1 -1
- package/dist/types/sdk/core/address-provider/AbstractAddressProviderContract.d.ts +4 -3
- package/dist/types/sdk/core/address-provider/AddressProviderV300Contract.d.ts +3 -3
- package/dist/types/sdk/core/address-provider/AddressProviderV310Contract.d.ts +3 -3
- package/dist/types/sdk/market/MarketConfiguratorContract.d.ts +2 -2
- package/dist/types/sdk/market/credit/CreditConfiguratorV300Contract.d.ts +3 -3
- package/dist/types/sdk/market/credit/CreditConfiguratorV310Contract.d.ts +3 -3
- package/dist/types/sdk/market/credit/CreditFacadeV300Contract.d.ts +4 -3
- package/dist/types/sdk/market/credit/CreditFacadeV310Contract.d.ts +4 -3
- package/dist/types/sdk/market/credit/CreditManagerV300Contract.d.ts +1 -1
- package/dist/types/sdk/market/credit/CreditManagerV310Contract.d.ts +1 -1
- package/dist/types/sdk/market/credit/CreditSuite.d.ts +1 -1
- package/dist/types/sdk/market/credit/types.d.ts +2 -1
- package/dist/types/sdk/market/loss-policy/AliasLossPolicyV310Contract.d.ts +0 -1
- package/dist/types/sdk/market/loss-policy/LossPolicyContract.d.ts +3 -2
- package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +12 -3
- package/dist/types/sdk/market/oracle/types.d.ts +10 -0
- package/dist/types/sdk/market/pool/GaugeContract.d.ts +3 -2
- package/dist/types/sdk/market/pool/LinearInterestRateModelContract.d.ts +3 -2
- package/dist/types/sdk/market/pool/PoolQuotaKeeperV300Contract.d.ts +3 -2
- package/dist/types/sdk/market/pool/PoolQuotaKeeperV310Contract.d.ts +3 -2
- package/dist/types/sdk/market/pool/PoolV300Contract.d.ts +5 -4
- package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +5 -4
- package/dist/types/sdk/market/pool/TumblerContract.d.ts +3 -2
- package/dist/types/sdk/market/pricefeeds/AbstractLPPriceFeed.d.ts +8 -3
- package/dist/types/sdk/market/pricefeeds/AbstractPriceFeed.d.ts +3 -2
- package/dist/types/sdk/market/pricefeeds/BalancerStablePriceFeed.d.ts +3 -2
- package/dist/types/sdk/market/pricefeeds/BalancerWeightedPriceFeed.d.ts +3 -2
- package/dist/types/sdk/market/pricefeeds/BoundedPriceFeed.d.ts +2 -2
- package/dist/types/sdk/market/pricefeeds/CompositePriceFeed.d.ts +2 -2
- package/dist/types/sdk/market/pricefeeds/ConstantPriceFeed.d.ts +2 -2
- package/dist/types/sdk/market/pricefeeds/CurveCryptoPriceFeed.d.ts +3 -2
- package/dist/types/sdk/market/pricefeeds/CurveStablePriceFeed.d.ts +3 -2
- package/dist/types/sdk/market/pricefeeds/CurveUSDPriceFeed.d.ts +3 -2
- package/dist/types/sdk/market/pricefeeds/Erc4626PriceFeed.d.ts +3 -2
- package/dist/types/sdk/market/pricefeeds/ExternalPriceFeed.d.ts +2 -2
- package/dist/types/sdk/market/pricefeeds/MellowLRTPriceFeed.d.ts +3 -2
- package/dist/types/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.d.ts +2 -2
- package/dist/types/sdk/market/pricefeeds/PriceFeedRef.d.ts +4 -3
- package/dist/types/sdk/market/pricefeeds/PriceFeedsRegister.d.ts +2 -1
- package/dist/types/sdk/market/pricefeeds/PythPriceFeed.d.ts +2 -2
- package/dist/types/sdk/market/pricefeeds/RedstonePriceFeed.d.ts +2 -2
- package/dist/types/sdk/market/pricefeeds/WstETHPriceFeed.d.ts +3 -2
- package/dist/types/sdk/market/pricefeeds/YearnPriceFeed.d.ts +3 -2
- package/dist/types/sdk/market/pricefeeds/ZeroPriceFeed.d.ts +2 -2
- package/dist/types/sdk/market/pricefeeds/types.d.ts +5 -0
- package/dist/types/sdk/market/pricefeeds/updates/PriceUpdatesCache.d.ts +1 -8
- package/dist/types/sdk/router/AbstractRouterContract.d.ts +1 -4
- package/dist/types/sdk/router/types.d.ts +2 -1
- package/dist/types/sdk/sdk-legacy/core/creditAccount.d.ts +2 -2
- package/dist/types/sdk/utils/index.d.ts +0 -1
- package/package.json +10 -10
- package/dist/cjs/plugins/bots/deserializePartialLiquidationBotParams.js +0 -49
- package/dist/cjs/sdk/base/ChainContractsRegister.js +0 -135
- package/dist/cjs/sdk/base/Construct.js +0 -87
- package/dist/cjs/sdk/utils/abi-decode.js +0 -58
- package/dist/esm/plugins/bots/deserializePartialLiquidationBotParams.js +0 -29
- package/dist/esm/sdk/base/ChainContractsRegister.js +0 -111
- package/dist/esm/sdk/base/Construct.js +0 -63
- package/dist/esm/sdk/utils/abi-decode.js +0 -37
- package/dist/types/plugins/bots/deserializePartialLiquidationBotParams.d.ts +0 -3
- package/dist/types/sdk/base/ChainContractsRegister.d.ts +0 -57
- package/dist/types/sdk/base/Construct.d.ts +0 -38
- package/dist/types/sdk/utils/abi-decode.d.ts +0 -10
|
@@ -1,17 +1,32 @@
|
|
|
1
|
+
import {
|
|
2
|
+
decodeAbiParameters,
|
|
3
|
+
encodeAbiParameters,
|
|
4
|
+
stringToHex
|
|
5
|
+
} from "viem";
|
|
6
|
+
import { iBytecodeRepositoryAbi } from "../../abi/310/iBytecodeRepository.js";
|
|
1
7
|
import { peripheryCompressorAbi } from "../../abi/compressors/peripheryCompressor.js";
|
|
2
8
|
import {
|
|
3
9
|
AddressMap,
|
|
10
|
+
AP_BYTECODE_REPOSITORY,
|
|
4
11
|
AP_PERIPHERY_COMPRESSOR,
|
|
12
|
+
AP_TREASURY,
|
|
5
13
|
BasePlugin,
|
|
14
|
+
hexEq,
|
|
6
15
|
isV300,
|
|
7
16
|
isV310,
|
|
8
17
|
TypedObjectUtils,
|
|
9
18
|
VERSION_RANGE_310
|
|
10
19
|
} from "../../sdk/index.js";
|
|
11
|
-
import
|
|
20
|
+
import { iPartialLiquidationBotV310Abi } from "./abi/iPartialLiquidationBotV310.js";
|
|
21
|
+
import {
|
|
22
|
+
PARTIAL_LIQUIDATION_BOT_CONFIGS,
|
|
23
|
+
PARTIAL_LIQUIDATION_BOT_DEPLOYER,
|
|
24
|
+
PARTIAL_LIQUIDATION_BOT_SALT
|
|
25
|
+
} from "./config.js";
|
|
12
26
|
import { PartialLiquidationBotV300Contract } from "./PartialLiquidationBotV300Contract.js";
|
|
13
27
|
import { PartialLiquidationBotV310Contract } from "./PartialLiquidationBotV310Contract.js";
|
|
14
28
|
import {
|
|
29
|
+
BOT_PARAMS_ABI,
|
|
15
30
|
LIQUIDATION_BOT_TYPES
|
|
16
31
|
} from "./types.js";
|
|
17
32
|
class UnsupportedBotVersionError extends Error {
|
|
@@ -59,16 +74,100 @@ class BotsPlugin extends BasePlugin {
|
|
|
59
74
|
}
|
|
60
75
|
return this.state;
|
|
61
76
|
}
|
|
77
|
+
async findDeployedPartialLiquidationBots() {
|
|
78
|
+
const treasury = this.sdk.addressProvider.getAddress(AP_TREASURY);
|
|
79
|
+
const bcr = this.sdk.addressProvider.getAddress(AP_BYTECODE_REPOSITORY);
|
|
80
|
+
const configs = PARTIAL_LIQUIDATION_BOT_CONFIGS[this.sdk.networkType] ?? [];
|
|
81
|
+
const result = new AddressMap();
|
|
82
|
+
if (!configs.length) {
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
const deployedBots = await this.client.multicall({
|
|
86
|
+
contracts: configs.map(
|
|
87
|
+
(config) => ({
|
|
88
|
+
address: bcr,
|
|
89
|
+
abi: iBytecodeRepositoryAbi,
|
|
90
|
+
functionName: "computeAddress",
|
|
91
|
+
args: [
|
|
92
|
+
stringToHex("BOT::PARTIAL_LIQUIDATION", { size: 32 }),
|
|
93
|
+
310,
|
|
94
|
+
encodeAbiParameters(BOT_PARAMS_ABI, [
|
|
95
|
+
treasury,
|
|
96
|
+
config.minHealthFactor,
|
|
97
|
+
config.maxHealthFactor,
|
|
98
|
+
config.premiumScaleFactor,
|
|
99
|
+
config.feeScaleFactor
|
|
100
|
+
]),
|
|
101
|
+
stringToHex(PARTIAL_LIQUIDATION_BOT_SALT, { size: 32 }),
|
|
102
|
+
// salt
|
|
103
|
+
PARTIAL_LIQUIDATION_BOT_DEPLOYER
|
|
104
|
+
]
|
|
105
|
+
})
|
|
106
|
+
),
|
|
107
|
+
allowFailure: true,
|
|
108
|
+
blockNumber: this.sdk.currentBlock
|
|
109
|
+
});
|
|
110
|
+
const expectedBots = new AddressMap();
|
|
111
|
+
for (let i = 0; i < configs.length; i++) {
|
|
112
|
+
const b = deployedBots[i];
|
|
113
|
+
const { minHealthFactor, maxHealthFactor } = configs[i];
|
|
114
|
+
if (b.status === "success") {
|
|
115
|
+
expectedBots.upsert(b.result, { ...configs[i], treasury });
|
|
116
|
+
this.logger?.debug(
|
|
117
|
+
`expected bot [${minHealthFactor}, ${maxHealthFactor}] at ${b.result}`
|
|
118
|
+
);
|
|
119
|
+
} else {
|
|
120
|
+
this.logger?.error(
|
|
121
|
+
`failed compute address for bot [${minHealthFactor}, ${maxHealthFactor}]`,
|
|
122
|
+
b.error
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
const botAddrs = expectedBots.keys();
|
|
127
|
+
const serializedBots = await this.client.multicall({
|
|
128
|
+
contracts: botAddrs.map(
|
|
129
|
+
(address) => ({
|
|
130
|
+
address,
|
|
131
|
+
abi: iPartialLiquidationBotV310Abi,
|
|
132
|
+
functionName: "serialize"
|
|
133
|
+
})
|
|
134
|
+
),
|
|
135
|
+
allowFailure: true,
|
|
136
|
+
blockNumber: this.sdk.currentBlock
|
|
137
|
+
});
|
|
138
|
+
for (let i = 0; i < botAddrs.length; i++) {
|
|
139
|
+
const serialized = serializedBots[i];
|
|
140
|
+
const expected = expectedBots.mustGet(botAddrs[i]);
|
|
141
|
+
if (serialized.status === "success") {
|
|
142
|
+
const [
|
|
143
|
+
treasury2,
|
|
144
|
+
minHealthFactor,
|
|
145
|
+
maxHealthFactor,
|
|
146
|
+
premiumScaleFactor,
|
|
147
|
+
feeScaleFactor
|
|
148
|
+
] = decodeAbiParameters(BOT_PARAMS_ABI, serialized.result);
|
|
149
|
+
if (!hexEq(treasury2, expected.treasury) || minHealthFactor !== expected.minHealthFactor || maxHealthFactor !== expected.maxHealthFactor || premiumScaleFactor !== expected.premiumScaleFactor || feeScaleFactor !== expected.feeScaleFactor) {
|
|
150
|
+
this.logger?.error(
|
|
151
|
+
`serialized bot ${botAddrs[i]} does not match expected bot`,
|
|
152
|
+
serialized.error
|
|
153
|
+
);
|
|
154
|
+
} else {
|
|
155
|
+
result.upsert(botAddrs[i], expected);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return result;
|
|
160
|
+
}
|
|
62
161
|
#loadStateMarketState(mc, state) {
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (states.length && isV300(states[0].baseParams.version)) {
|
|
67
|
-
if (states.length !== 4) {
|
|
162
|
+
const bots = state.map((state2) => this.#createBot(mc, state2)).sort((a, b) => a.minHealthFactor - b.minHealthFactor);
|
|
163
|
+
if (bots.length && isV300(Number(bots[0].version))) {
|
|
164
|
+
if (bots.length !== 4) {
|
|
68
165
|
throw new Error(`expected 4 bots v300 for market configurator ${mc}`);
|
|
69
166
|
}
|
|
167
|
+
for (let i = 0; i < bots.length; i++) {
|
|
168
|
+
bots[i].botType = LIQUIDATION_BOT_TYPES[i];
|
|
169
|
+
}
|
|
70
170
|
}
|
|
71
|
-
const bots = states.map((s, i) => this.#createBot(mc, s, i));
|
|
72
171
|
this.botsByMarket.upsert(mc, bots);
|
|
73
172
|
}
|
|
74
173
|
stateHuman(raw) {
|
|
@@ -106,15 +205,13 @@ class BotsPlugin extends BasePlugin {
|
|
|
106
205
|
this.#loadStateMarketState(mc, botStates);
|
|
107
206
|
}
|
|
108
207
|
}
|
|
109
|
-
#createBot(marketConfigurator, data
|
|
208
|
+
#createBot(marketConfigurator, data) {
|
|
110
209
|
const v = Number(data.baseParams.version);
|
|
111
210
|
if (isV300(v)) {
|
|
112
|
-
const botType = LIQUIDATION_BOT_TYPES[index];
|
|
113
211
|
return new PartialLiquidationBotV300Contract(
|
|
114
212
|
this.sdk,
|
|
115
213
|
data,
|
|
116
|
-
marketConfigurator
|
|
117
|
-
botType
|
|
214
|
+
marketConfigurator
|
|
118
215
|
);
|
|
119
216
|
} else if (isV310(v)) {
|
|
120
217
|
return new PartialLiquidationBotV310Contract(
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { decodeAbiParameters } from "viem";
|
|
1
2
|
import { BaseContract, formatPercentage } from "../../sdk/index.js";
|
|
2
|
-
import
|
|
3
|
+
import {
|
|
4
|
+
BOT_PARAMS_ABI
|
|
5
|
+
} from "./types.js";
|
|
3
6
|
class PartialLiquidationBotBaseContract extends BaseContract {
|
|
4
7
|
requiredPermissions;
|
|
5
8
|
marketConfigurator;
|
|
@@ -7,12 +10,18 @@ class PartialLiquidationBotBaseContract extends BaseContract {
|
|
|
7
10
|
constructor(sdk, args) {
|
|
8
11
|
super(sdk, args);
|
|
9
12
|
this.#serializedParams = args.serializedParams;
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const [
|
|
14
|
+
treasury,
|
|
15
|
+
minHealthFactor,
|
|
16
|
+
maxHealthFactor,
|
|
17
|
+
premiumScaleFactor,
|
|
18
|
+
feeScaleFactor
|
|
19
|
+
] = decodeAbiParameters(BOT_PARAMS_ABI, args.serializedParams);
|
|
20
|
+
this.treasury = treasury;
|
|
21
|
+
this.minHealthFactor = minHealthFactor;
|
|
22
|
+
this.maxHealthFactor = maxHealthFactor;
|
|
23
|
+
this.premiumScaleFactor = premiumScaleFactor;
|
|
24
|
+
this.feeScaleFactor = feeScaleFactor;
|
|
16
25
|
this.marketConfigurator = args.marketConfigurator;
|
|
17
26
|
this.requiredPermissions = args.requiredPermissions;
|
|
18
27
|
}
|
|
@@ -2,16 +2,15 @@ import { iPartialLiquidationBotV300Abi } from "./abi/index.js";
|
|
|
2
2
|
import { PartialLiquidationBotBaseContract } from "./PartialLiquidationBotBaseContract.js";
|
|
3
3
|
const abi = iPartialLiquidationBotV300Abi;
|
|
4
4
|
class PartialLiquidationBotV300Contract extends PartialLiquidationBotBaseContract {
|
|
5
|
-
botType;
|
|
6
|
-
constructor(sdk, args, marketConfigurator
|
|
5
|
+
#botType;
|
|
6
|
+
constructor(sdk, args, marketConfigurator) {
|
|
7
7
|
super(sdk, {
|
|
8
8
|
abi,
|
|
9
9
|
...args.baseParams,
|
|
10
10
|
requiredPermissions: args.requiredPermissions,
|
|
11
11
|
marketConfigurator,
|
|
12
|
-
name:
|
|
12
|
+
name: "PartialLiquidationBotV300"
|
|
13
13
|
});
|
|
14
|
-
this.botType = botType;
|
|
15
14
|
}
|
|
16
15
|
stateHuman(raw) {
|
|
17
16
|
return {
|
|
@@ -19,6 +18,23 @@ class PartialLiquidationBotV300Contract extends PartialLiquidationBotBaseContrac
|
|
|
19
18
|
botType: this.botType
|
|
20
19
|
};
|
|
21
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Set the bot type
|
|
23
|
+
* This method should only be called once from BotsPlugin
|
|
24
|
+
*/
|
|
25
|
+
set botType(type) {
|
|
26
|
+
if (this.#botType) {
|
|
27
|
+
throw new Error("bot type already set");
|
|
28
|
+
}
|
|
29
|
+
this.#botType = type;
|
|
30
|
+
this.name = `PartialLiquidationBotV300 (${type})`;
|
|
31
|
+
}
|
|
32
|
+
get botType() {
|
|
33
|
+
if (!this.#botType) {
|
|
34
|
+
throw new Error("bot type not set");
|
|
35
|
+
}
|
|
36
|
+
return this.#botType;
|
|
37
|
+
}
|
|
22
38
|
}
|
|
23
39
|
export {
|
|
24
40
|
PartialLiquidationBotV300Contract
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const PARTIAL_LIQUIDATION_BOT_CONFIGS = {
|
|
2
|
+
Mainnet: [
|
|
3
|
+
{
|
|
4
|
+
minHealthFactor: 10300,
|
|
5
|
+
maxHealthFactor: 10700,
|
|
6
|
+
premiumScaleFactor: 1e4,
|
|
7
|
+
feeScaleFactor: 1e4
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
Monad: [
|
|
11
|
+
{
|
|
12
|
+
minHealthFactor: 10300,
|
|
13
|
+
maxHealthFactor: 10700,
|
|
14
|
+
premiumScaleFactor: 1e4,
|
|
15
|
+
feeScaleFactor: 1e4
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
Plasma: [
|
|
19
|
+
{
|
|
20
|
+
minHealthFactor: 10300,
|
|
21
|
+
maxHealthFactor: 10700,
|
|
22
|
+
premiumScaleFactor: 1e4,
|
|
23
|
+
feeScaleFactor: 1e4
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
};
|
|
27
|
+
const PARTIAL_LIQUIDATION_BOT_SALT = "GEARBOX";
|
|
28
|
+
const PARTIAL_LIQUIDATION_BOT_DEPLOYER = "0xc93155E0a835Cf4E17a19463Fa67ed43c164d06a";
|
|
29
|
+
export {
|
|
30
|
+
PARTIAL_LIQUIDATION_BOT_CONFIGS,
|
|
31
|
+
PARTIAL_LIQUIDATION_BOT_DEPLOYER,
|
|
32
|
+
PARTIAL_LIQUIDATION_BOT_SALT
|
|
33
|
+
};
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
const BOT_PARAMS_ABI = [
|
|
2
|
+
{ type: "address", name: "treasury" },
|
|
3
|
+
{ type: "uint16", name: "minHealthFactor" },
|
|
4
|
+
{ type: "uint16", name: "maxHealthFactor" },
|
|
5
|
+
{ type: "uint16", name: "premiumScaleFactor" },
|
|
6
|
+
{ type: "uint16", name: "feeScaleFactor" }
|
|
7
|
+
];
|
|
1
8
|
const LIQUIDATION_BOT_TYPES = [
|
|
2
9
|
"PARTIAL_LIQUIDATION_BOT",
|
|
3
10
|
"DELEVERAGE_BOT_PEGGED",
|
|
@@ -5,5 +12,6 @@ const LIQUIDATION_BOT_TYPES = [
|
|
|
5
12
|
"DELEVERAGE_BOT_HV"
|
|
6
13
|
];
|
|
7
14
|
export {
|
|
15
|
+
BOT_PARAMS_ABI,
|
|
8
16
|
LIQUIDATION_BOT_TYPES
|
|
9
17
|
};
|
|
@@ -115,7 +115,7 @@ class ZappersPlugin extends BasePlugin {
|
|
|
115
115
|
const extraZappersTokens = this.extraZappers.values().flatMap((l) => l.flatMap((z) => [z.tokenIn, z.tokenOut]));
|
|
116
116
|
for (const t of [...zappersTokens, ...extraZappersTokens]) {
|
|
117
117
|
this.sdk.tokensMeta.upsert(t.addr, t);
|
|
118
|
-
this.sdk.
|
|
118
|
+
this.sdk.addressLabels.set(t.addr, t.symbol);
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
}
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
http,
|
|
6
6
|
parseEventLogs
|
|
7
7
|
} from "viem";
|
|
8
|
-
import {
|
|
8
|
+
import { AddressLabeller, TokensMeta } from "./base/index.js";
|
|
9
9
|
import { detectNetwork, getChain } from "./chain/index.js";
|
|
10
10
|
import {
|
|
11
11
|
ADDRESS_PROVIDER_V310,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
PluginStateVersionError
|
|
31
31
|
} from "./plugins/index.js";
|
|
32
32
|
import { createRouter } from "./router/index.js";
|
|
33
|
-
import { TypedObjectUtils, toAddress } from "./utils/index.js";
|
|
33
|
+
import { AddressMap, TypedObjectUtils, toAddress } from "./utils/index.js";
|
|
34
34
|
import { Hooks } from "./utils/internal/index.js";
|
|
35
35
|
import { getLogsSafe } from "./utils/viem/index.js";
|
|
36
36
|
const ERR_NOT_ATTACHED = new Error("Gearbox SDK not attached");
|
|
@@ -69,9 +69,10 @@ async function attachClient(options, network) {
|
|
|
69
69
|
}
|
|
70
70
|
return createClient(options, { networkType, chainId });
|
|
71
71
|
}
|
|
72
|
-
class GearboxSDK
|
|
72
|
+
class GearboxSDK {
|
|
73
73
|
#hooks = new Hooks();
|
|
74
74
|
plugins;
|
|
75
|
+
#client;
|
|
75
76
|
// Block which was use for data query
|
|
76
77
|
#currentBlock;
|
|
77
78
|
#timestamp;
|
|
@@ -82,11 +83,29 @@ class GearboxSDK extends ChainContractsRegister {
|
|
|
82
83
|
// Collection of markets
|
|
83
84
|
#marketRegister;
|
|
84
85
|
#priceFeeds;
|
|
86
|
+
logger;
|
|
85
87
|
gasLimit;
|
|
88
|
+
addressLabels = new AddressLabeller();
|
|
89
|
+
/**
|
|
90
|
+
* Interest rate models can be reused across chain (and SDK operates on chain level)
|
|
91
|
+
* TODO: use whatever interface is necessary for InterestRateModels
|
|
92
|
+
*/
|
|
93
|
+
interestRateModels = new AddressMap();
|
|
86
94
|
/**
|
|
87
95
|
* Will throw an error if contract type is not supported, otherwise will try to use generic contract first, if possible
|
|
88
96
|
*/
|
|
89
97
|
strictContractTypes;
|
|
98
|
+
/**
|
|
99
|
+
* All contracts known to sdk
|
|
100
|
+
*/
|
|
101
|
+
contracts = new AddressMap(
|
|
102
|
+
void 0,
|
|
103
|
+
"contracts"
|
|
104
|
+
);
|
|
105
|
+
/**
|
|
106
|
+
* Token metadata such as symbol and decimals
|
|
107
|
+
*/
|
|
108
|
+
tokensMeta;
|
|
90
109
|
addHook = this.#hooks.addHook.bind(this.#hooks);
|
|
91
110
|
removeHook = this.#hooks.removeHook.bind(this.#hooks);
|
|
92
111
|
static async attach(options) {
|
|
@@ -139,16 +158,17 @@ class GearboxSDK extends ChainContractsRegister {
|
|
|
139
158
|
}).#hydrate(rest, state);
|
|
140
159
|
}
|
|
141
160
|
constructor(options) {
|
|
142
|
-
|
|
161
|
+
this.logger = options.logger;
|
|
143
162
|
this.strictContractTypes = options.strictContractTypes ?? false;
|
|
144
163
|
this.plugins = options.plugins ?? {};
|
|
164
|
+
this.#client = options.client;
|
|
145
165
|
for (const plugin of Object.values(this.plugins)) {
|
|
146
166
|
plugin.sdk = this;
|
|
147
167
|
}
|
|
148
168
|
if (options.gasLimit !== null) {
|
|
149
169
|
this.gasLimit = options.gasLimit || 550000000n;
|
|
150
170
|
}
|
|
151
|
-
|
|
171
|
+
this.tokensMeta = new TokensMeta(this);
|
|
152
172
|
}
|
|
153
173
|
async #attach(opts) {
|
|
154
174
|
const {
|
|
@@ -304,9 +324,74 @@ class GearboxSDK extends ChainContractsRegister {
|
|
|
304
324
|
timestamp: state.timestamp
|
|
305
325
|
});
|
|
306
326
|
}
|
|
327
|
+
get client() {
|
|
328
|
+
return this.#client;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Replaces client inflight
|
|
332
|
+
* You're responsible for all inconsistencies between new and old client
|
|
333
|
+
* @param options
|
|
334
|
+
*/
|
|
335
|
+
replaceClient(options, network) {
|
|
336
|
+
this.#client = createClient(options, network);
|
|
337
|
+
}
|
|
307
338
|
get networkType() {
|
|
308
339
|
return this.client.chain.network;
|
|
309
340
|
}
|
|
341
|
+
get chain() {
|
|
342
|
+
return this.client.chain;
|
|
343
|
+
}
|
|
344
|
+
get chainId() {
|
|
345
|
+
return this.client.chain.id;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Converts contract call into some human-friendly string
|
|
349
|
+
* This method is safe and should not throw
|
|
350
|
+
* @param address
|
|
351
|
+
* @param calldata
|
|
352
|
+
* @returns
|
|
353
|
+
*/
|
|
354
|
+
parseFunctionData(address, calldata) {
|
|
355
|
+
const contract = this.contracts.get(address);
|
|
356
|
+
return contract ? contract.parseFunctionData(calldata) : `unknown: ${address}.${calldata.slice(0, 10)}`;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Converts multicalls into some human-friendly strings
|
|
360
|
+
* This method is safe and should not throw
|
|
361
|
+
* @param address
|
|
362
|
+
* @param calldata
|
|
363
|
+
* @returns
|
|
364
|
+
*/
|
|
365
|
+
parseMultiCall(calls) {
|
|
366
|
+
return calls.map(
|
|
367
|
+
(call) => this.parseFunctionData(call.target, call.callData)
|
|
368
|
+
);
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Return args, function, type and address name from contract call
|
|
372
|
+
* @param address
|
|
373
|
+
* @param calldata
|
|
374
|
+
* @returns
|
|
375
|
+
*/
|
|
376
|
+
parseFunctionDataToObject(address, calldata) {
|
|
377
|
+
const contract = this.contracts.get(address);
|
|
378
|
+
return contract ? {
|
|
379
|
+
...contract.parseFunctionDataToObject(calldata),
|
|
380
|
+
address,
|
|
381
|
+
type: contract.contractType
|
|
382
|
+
} : null;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Converts multicalls into call info
|
|
386
|
+
* @param address
|
|
387
|
+
* @param calldata
|
|
388
|
+
* @returns
|
|
389
|
+
*/
|
|
390
|
+
parseMultiCallToObject(calls) {
|
|
391
|
+
return calls.map(
|
|
392
|
+
(call) => this.parseFunctionDataToObject(call.target, call.callData)
|
|
393
|
+
);
|
|
394
|
+
}
|
|
310
395
|
stateHuman(raw = true) {
|
|
311
396
|
return {
|
|
312
397
|
block: Number(this.currentBlock),
|
|
@@ -398,7 +483,7 @@ class GearboxSDK extends ChainContractsRegister {
|
|
|
398
483
|
address: watchAddresses
|
|
399
484
|
});
|
|
400
485
|
for (const log of logs) {
|
|
401
|
-
const contract = this.
|
|
486
|
+
const contract = this.contracts.get(log.address);
|
|
402
487
|
if (contract) {
|
|
403
488
|
const event = parseEventLogs({
|
|
404
489
|
abi: contract.abi,
|
|
@@ -487,11 +572,17 @@ class GearboxSDK extends ChainContractsRegister {
|
|
|
487
572
|
}
|
|
488
573
|
get botListContract() {
|
|
489
574
|
const addr = this.addressProvider.getAddress(AP_BOT_LIST, NO_VERSION);
|
|
490
|
-
|
|
575
|
+
if (!this.contracts.has(addr)) {
|
|
576
|
+
return new BotListContract(this, addr);
|
|
577
|
+
}
|
|
578
|
+
return this.contracts.get(addr);
|
|
491
579
|
}
|
|
492
580
|
get gearStakingContract() {
|
|
493
581
|
const addr = this.addressProvider.getAddress(AP_GEAR_STAKING, NO_VERSION);
|
|
494
|
-
|
|
582
|
+
if (!this.contracts.has(addr)) {
|
|
583
|
+
return new GearStakingContract(this, addr);
|
|
584
|
+
}
|
|
585
|
+
return this.contracts.get(addr);
|
|
495
586
|
}
|
|
496
587
|
get marketRegister() {
|
|
497
588
|
if (this.#marketRegister === void 0) {
|
|
@@ -518,7 +609,7 @@ class GearboxSDK extends ChainContractsRegister {
|
|
|
518
609
|
);
|
|
519
610
|
facadeAddr = cm.creditFacade.address;
|
|
520
611
|
}
|
|
521
|
-
const facadeV = this.
|
|
612
|
+
const facadeV = this.contracts.mustGet(facadeAddr).version;
|
|
522
613
|
routerRange = isV310(facadeV) ? VERSION_RANGE_310 : VERSION_RANGE_300;
|
|
523
614
|
}
|
|
524
615
|
const routerEntry = this.addressProvider.getLatest(AP_ROUTER, routerRange);
|
|
@@ -526,7 +617,18 @@ class GearboxSDK extends ChainContractsRegister {
|
|
|
526
617
|
throw new Error(`router not found in version range ${routerRange}`);
|
|
527
618
|
}
|
|
528
619
|
const [routerAddr, routerV] = routerEntry;
|
|
529
|
-
|
|
620
|
+
if (!this.contracts.has(routerAddr)) {
|
|
621
|
+
return createRouter(this, routerAddr, routerV);
|
|
622
|
+
}
|
|
623
|
+
return this.contracts.get(routerAddr);
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* Helper to get human-friendly label for address
|
|
627
|
+
* @param address
|
|
628
|
+
* @returns
|
|
629
|
+
*/
|
|
630
|
+
labelAddress(address) {
|
|
631
|
+
return this.addressLabels.get(address);
|
|
530
632
|
}
|
|
531
633
|
}
|
|
532
634
|
export {
|
|
@@ -7,7 +7,9 @@ import { createCreditAccountService } from "../accounts/createCreditAccountServi
|
|
|
7
7
|
import { SDKConstruct } from "../base/index.js";
|
|
8
8
|
import { chains as CHAINS } from "../chain/chains.js";
|
|
9
9
|
import { isV310 } from "../constants/versions.js";
|
|
10
|
+
import { childLogger } from "../utils/index.js";
|
|
10
11
|
class AbstractMigrateCreditAccountsService extends SDKConstruct {
|
|
12
|
+
#logger;
|
|
11
13
|
#version;
|
|
12
14
|
#service;
|
|
13
15
|
// TODO: HARDCODED
|
|
@@ -29,7 +31,8 @@ class AbstractMigrateCreditAccountsService extends SDKConstruct {
|
|
|
29
31
|
super(sdk);
|
|
30
32
|
this.#version = version;
|
|
31
33
|
this.#service = createCreditAccountService(this.sdk, version);
|
|
32
|
-
this.logger
|
|
34
|
+
this.#logger = childLogger("MigrateCreditAccountsService", sdk.logger);
|
|
35
|
+
this.#logger?.debug(
|
|
33
36
|
`Created MigrateCreditAccountsService with version: ${this.#version}`
|
|
34
37
|
);
|
|
35
38
|
}
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
} from "../constants/index.js";
|
|
26
26
|
import { assetsMap } from "../router/index.js";
|
|
27
27
|
import { BigIntMath } from "../sdk-legacy/index.js";
|
|
28
|
-
import { AddressMap } from "../utils/index.js";
|
|
28
|
+
import { AddressMap, childLogger } from "../utils/index.js";
|
|
29
29
|
import { simulateWithPriceUpdates } from "../utils/viem/index.js";
|
|
30
30
|
function getWithdrawalCompressorAddress(chainId) {
|
|
31
31
|
const compressor = chainId === 1 ? "0xfB79b6713fe214B8748ED7b0db1f93E4f1aC9d29" : void 0;
|
|
@@ -34,6 +34,7 @@ function getWithdrawalCompressorAddress(chainId) {
|
|
|
34
34
|
class AbstractCreditAccountService extends SDKConstruct {
|
|
35
35
|
#compressor;
|
|
36
36
|
#batchSize;
|
|
37
|
+
#logger;
|
|
37
38
|
constructor(sdk, options) {
|
|
38
39
|
super(sdk);
|
|
39
40
|
[this.#compressor] = sdk.addressProvider.mustGetLatest(
|
|
@@ -41,7 +42,8 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
41
42
|
VERSION_RANGE_310
|
|
42
43
|
);
|
|
43
44
|
this.#batchSize = options?.batchSize;
|
|
44
|
-
this.logger
|
|
45
|
+
this.#logger = childLogger("CreditAccountsService", sdk.logger);
|
|
46
|
+
this.#logger?.debug(
|
|
45
47
|
`credit account compressor address: ${this.#compressor}`
|
|
46
48
|
);
|
|
47
49
|
}
|
|
@@ -143,7 +145,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
143
145
|
offset = newOffset;
|
|
144
146
|
} while (offset !== 0n);
|
|
145
147
|
}
|
|
146
|
-
this
|
|
148
|
+
this.#logger?.debug(
|
|
147
149
|
`loaded ${allCAs.length} credit accounts (${allCAs.length - revertingOffset} reverting)`
|
|
148
150
|
);
|
|
149
151
|
return allCAs.sort((a, b) => Number(a.healthFactor - b.healthFactor));
|
|
@@ -280,7 +282,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
280
282
|
lossPolicyData = await market.lossPolicy.getLiquidationData(
|
|
281
283
|
account.creditAccount
|
|
282
284
|
);
|
|
283
|
-
this
|
|
285
|
+
this.#logger?.debug({ lossPolicyData }, "loss policy data");
|
|
284
286
|
}
|
|
285
287
|
const tx = cm.creditFacade.liquidateCreditAccount(
|
|
286
288
|
account.creditAccount,
|
|
@@ -838,7 +840,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
838
840
|
gas: this.sdk.gasLimit
|
|
839
841
|
});
|
|
840
842
|
}
|
|
841
|
-
this
|
|
843
|
+
this.#logger?.debug(
|
|
842
844
|
{
|
|
843
845
|
accounts: resp[0]?.length ?? 0,
|
|
844
846
|
nextOffset: Number(resp[1])
|
|
@@ -918,7 +920,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
918
920
|
});
|
|
919
921
|
const tStr = Array.from(tokens).map((t) => this.labelAddress(t)).join(", ");
|
|
920
922
|
const remark = ignoreReservePrices ? " main" : "";
|
|
921
|
-
this
|
|
923
|
+
this.#logger?.debug(
|
|
922
924
|
{ account: creditAccount?.creditAccount, manager: cm.name },
|
|
923
925
|
`generating price feed updates for ${tStr} from ${priceFeeds.length}${remark} price feeds`
|
|
924
926
|
);
|
|
@@ -934,7 +936,7 @@ class AbstractCreditAccountService extends SDKConstruct {
|
|
|
934
936
|
const market = this.sdk.marketRegister.findByCreditManager(creditManager);
|
|
935
937
|
const cm = this.sdk.marketRegister.findCreditManager(creditManager);
|
|
936
938
|
const update = await this.getUpdateForAccount(options);
|
|
937
|
-
this
|
|
939
|
+
this.#logger?.debug(
|
|
938
940
|
{ account: creditAccount?.creditAccount, manager: cm.name },
|
|
939
941
|
`getting on demand price updates from ${update.txs.length} txs`
|
|
940
942
|
);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NOT_DEPLOYED } from "../constants/index.js";
|
|
2
|
+
import { AddressMap } from "../utils/index.js";
|
|
3
|
+
class AddressLabeller {
|
|
4
|
+
#labels = new AddressMap(void 0, "addressLabeller");
|
|
5
|
+
set(address, label) {
|
|
6
|
+
if (address === NOT_DEPLOYED) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (typeof label === "string") {
|
|
10
|
+
this.#labels.upsert(address, label);
|
|
11
|
+
} else {
|
|
12
|
+
this.#labels.upsert(address, label(this.#labels.get(address)));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
get(address) {
|
|
16
|
+
const label = this.#labels.get(address);
|
|
17
|
+
return label ? `${address} [${label}]` : address;
|
|
18
|
+
}
|
|
19
|
+
get all() {
|
|
20
|
+
return this.#labels.asRecord();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
AddressLabeller
|
|
25
|
+
};
|