@gearbox-protocol/sdk 3.0.0-next.5 → 3.0.0-next.51
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/contracts/IAirdropDistributor.sol +55 -0
- package/contracts/IDegenDistributor.sol +28 -0
- package/contracts/IOffchainOracle.sol +17 -0
- package/contracts/IWETHGateway.sol +33 -0
- package/contracts/IwstETHGateway.sol +24 -0
- package/contracts/index.sol +10 -3
- package/lib/apy/curveAPY.js +2 -1
- package/lib/apy/index.d.ts +2 -2
- package/lib/apy/yearnAPY.js +1 -1
- package/lib/config.d.ts +0 -1
- package/lib/config.js +1 -2
- package/lib/core/assets.d.ts +4 -4
- package/lib/core/assets.js +28 -17
- package/lib/core/creditAccount.d.ts +31 -6
- package/lib/core/creditAccount.js +101 -37
- package/lib/core/creditAccount.spec.js +693 -10
- package/lib/core/creditManager.d.ts +22 -8
- package/lib/core/creditManager.js +86 -30
- package/lib/core/events.js +14 -14
- package/lib/core/gauge.d.ts +26 -0
- package/lib/core/gauge.js +63 -0
- package/lib/core/gaugeMath.d.ts +40 -0
- package/lib/core/gaugeMath.js +108 -0
- package/lib/core/gaugeMath.spec.d.ts +1 -0
- package/lib/core/gaugeMath.spec.js +388 -0
- package/lib/core/{pool/data.d.ts → pool.d.ts} +18 -10
- package/lib/core/{pool/data.js → pool.js} +69 -24
- package/lib/core/strategy.js +2 -2
- package/lib/core/trade.d.ts +5 -23
- package/lib/core/trade.js +4 -61
- package/lib/core/transactions.d.ts +50 -3
- package/lib/core/transactions.js +136 -105
- package/lib/index.d.ts +3 -0
- package/lib/index.js +3 -0
- package/lib/parsers/abstractParser.js +1 -2
- package/lib/parsers/creditFacadeParser.d.ts +2 -1
- package/lib/parsers/creditFacadeParser.js +17 -5
- package/lib/parsers/creditFacadeParser.spec.js +2 -3
- package/lib/parsers/curveAdapterParser.js +2 -3
- package/lib/parsers/txParser.d.ts +4 -4
- package/lib/parsers/txParser.js +9 -3
- package/lib/parsers/uniV2AdapterParser.js +2 -2
- package/lib/parsers/uniV3AdapterParser.js +3 -3
- package/lib/pathfinder/core.d.ts +4 -4
- package/lib/pathfinder/pathOptions.d.ts +2 -1
- package/lib/pathfinder/pathOptions.js +20 -1
- package/lib/pathfinder/pathOptions.spec.js +2 -2
- package/lib/pathfinder/pathfinder.js +4 -3
- package/lib/pathfinder/pathfinder.spec.js +3 -1
- package/lib/payload/creditAccount.d.ts +2 -2
- package/lib/payload/gauge.d.ts +12 -0
- package/lib/payload/pool.d.ts +6 -1
- package/lib/types/IAirdropDistributor.sol/IAirdropDistributor.d.ts +124 -0
- package/lib/types/IAirdropDistributor.sol/IAirdropDistributorEvents.d.ts +73 -0
- package/lib/types/IAirdropDistributor.sol/index.d.ts +2 -0
- package/lib/types/IContractsRegister.sol/IContractsRegister.d.ts +128 -0
- package/lib/types/IContractsRegister.sol/IContractsRegisterEvents.d.ts +50 -0
- package/lib/types/IContractsRegister.sol/index.d.ts +2 -0
- package/lib/types/IConvexToken.d.ts +9 -1
- package/lib/types/IConvexV1BaseRewardPoolAdapter.d.ts +17 -1
- package/lib/types/{IConvexV1BoosterAdapter.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.d.ts} +19 -4
- package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.d.ts +43 -0
- package/lib/types/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
- package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3.d.ts +716 -0
- package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.d.ts +275 -0
- package/lib/types/ICreditConfiguratorV3.sol/index.d.ts +2 -0
- package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Extended.d.ts +7 -11
- package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3.d.ts +165 -20
- package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3Events.d.ts +5 -7
- package/lib/types/ICreditFacadeV3Multicall.d.ts +35 -12
- package/lib/types/ICreditManagerV3.sol/ICreditManagerV3.d.ts +273 -39
- package/lib/types/IDataCompressorV2_10.d.ts +43 -9
- package/lib/types/IDataCompressorV3_00.d.ts +140 -10
- package/lib/types/IDegenDistributor.sol/IDegenDistributor.d.ts +96 -0
- package/lib/types/IDegenDistributor.sol/IDegenDistributorEvents.d.ts +53 -0
- package/lib/types/IDegenDistributor.sol/index.d.ts +2 -0
- package/lib/types/{draft-IERC20Permit.sol/IERC20Permit.d.ts → IERC20Permit.d.ts} +1 -1
- package/lib/types/IERC20ZapperDeposits.d.ts +117 -0
- package/lib/types/IETHZapperDeposits.d.ts +66 -0
- package/lib/types/IGasPricer.d.ts +44 -0
- package/lib/types/IGasPricer.js +2 -0
- package/lib/types/IGearStakingV3.sol/IGearStakingV3.d.ts +408 -0
- package/lib/types/IGearStakingV3.sol/IGearStakingV3.js +2 -0
- package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.d.ts +117 -0
- package/lib/types/IGearStakingV3.sol/IGearStakingV3Events.js +2 -0
- package/lib/types/IGearStakingV3.sol/index.d.ts +2 -0
- package/lib/types/IGearStakingV3.sol/index.js +2 -0
- package/lib/types/{ILidoV1Adapter.sol/ILidoV1Adapter.d.ts → ILidoV1Adapter.d.ts} +5 -40
- package/lib/types/ILidoV1Adapter.js +2 -0
- package/lib/types/IOffchainOracle.d.ts +58 -0
- package/lib/types/IOffchainOracle.js +2 -0
- package/lib/types/IPoolV3.sol/IPoolV3.d.ts +43 -11
- package/lib/types/IPoolV3.sol/index.d.ts +0 -1
- package/lib/types/IRouter.d.ts +11 -1
- package/lib/types/IWETHGateway.d.ts +90 -0
- package/lib/types/IWETHGateway.js +2 -0
- package/lib/types/IZapper.d.ts +130 -0
- package/lib/types/IZapper.js +2 -0
- package/lib/types/IwstETHGateway.sol/IwstETHGateWay.d.ts +70 -0
- package/lib/types/IwstETHGateway.sol/IwstETHGateWay.js +2 -0
- package/lib/types/IwstETHGateway.sol/index.d.ts +1 -0
- package/lib/types/IwstETHGateway.sol/index.js +2 -0
- package/lib/types/factories/AddressProvider__factory.d.ts +1 -1
- package/lib/types/factories/AddressProvider__factory.js +1 -1
- package/lib/types/factories/Balances.sol/BalanceOps__factory.d.ts +1 -1
- package/lib/types/factories/Balances.sol/BalanceOps__factory.js +1 -1
- package/lib/types/factories/Claimable__factory.d.ts +1 -1
- package/lib/types/factories/Claimable__factory.js +1 -1
- package/lib/types/factories/Errors__factory.d.ts +1 -1
- package/lib/types/factories/Errors__factory.js +1 -1
- package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.d.ts +63 -0
- package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.js +88 -0
- package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.d.ts +119 -0
- package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.js +161 -0
- package/lib/types/factories/IAirdropDistributor.sol/index.d.ts +2 -0
- package/lib/types/factories/IAirdropDistributor.sol/index.js +10 -0
- package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.d.ts +28 -0
- package/lib/types/factories/IContractsRegister.sol/IContractsRegisterEvents__factory.js +45 -0
- package/lib/types/factories/{IAToken__factory.d.ts → IContractsRegister.sol/IContractsRegister__factory.d.ts} +49 -113
- package/lib/types/factories/{IAToken__factory.js → IContractsRegister.sol/IContractsRegister__factory.js} +49 -130
- package/lib/types/factories/IContractsRegister.sol/index.d.ts +2 -0
- package/lib/types/factories/IContractsRegister.sol/index.js +10 -0
- package/lib/types/factories/IConvexToken__factory.d.ts +10 -0
- package/lib/types/factories/IConvexToken__factory.js +13 -0
- package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.d.ts +20 -0
- package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.js +26 -0
- package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.d.ts +23 -0
- package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.js +38 -0
- package/lib/types/factories/{IConvexV1BoosterAdapter__factory.d.ts → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.d.ts} +16 -1
- package/lib/types/factories/{IConvexV1BoosterAdapter__factory.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.js} +19 -0
- package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.d.ts +2 -0
- package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.js +10 -0
- package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.d.ts +273 -0
- package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.js +357 -0
- package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.d.ts +605 -0
- package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.js +785 -0
- package/lib/types/factories/ICreditConfiguratorV3.sol/index.d.ts +2 -0
- package/lib/types/factories/ICreditConfiguratorV3.sol/index.js +10 -0
- package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.d.ts +0 -4
- package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.js +0 -5
- package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.d.ts +1 -6
- package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.js +1 -7
- package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.d.ts +144 -13
- package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.js +185 -15
- package/lib/types/factories/ICreditFacadeV3Multicall__factory.d.ts +35 -5
- package/lib/types/factories/ICreditFacadeV3Multicall__factory.js +43 -5
- package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.d.ts +199 -25
- package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.js +252 -28
- package/lib/types/factories/IDataCompressorV2_10__factory.d.ts +110 -12
- package/lib/types/factories/IDataCompressorV2_10__factory.js +138 -14
- package/lib/types/factories/IDataCompressorV3_00__factory.d.ts +400 -16
- package/lib/types/factories/IDataCompressorV3_00__factory.js +508 -19
- package/lib/types/factories/IDegenDistributor.sol/IDegenDistributorEvents__factory.d.ts +38 -0
- package/lib/types/factories/{AaveV2_WrappedAToken.sol/IWrappedATokenEvents__factory.js → IDegenDistributor.sol/IDegenDistributorEvents__factory.js} +13 -25
- package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.d.ts +84 -0
- package/lib/types/factories/{IPoolV3.sol/IPoolBase__factory.js → IDegenDistributor.sol/IDegenDistributor__factory.js} +46 -41
- package/lib/types/factories/IDegenDistributor.sol/index.d.ts +2 -0
- package/lib/types/factories/IDegenDistributor.sol/index.js +10 -0
- package/lib/types/factories/{draft-IERC20Permit.sol/IERC20Permit__factory.d.ts → IERC20Permit__factory.d.ts} +1 -1
- package/lib/types/factories/IERC20ZapperDeposits__factory.d.ts +120 -0
- package/lib/types/factories/IERC20ZapperDeposits__factory.js +165 -0
- package/lib/types/factories/IETHZapperDeposits__factory.d.ts +40 -0
- package/lib/types/factories/IETHZapperDeposits__factory.js +62 -0
- package/lib/types/factories/IGasPricer__factory.d.ts +22 -0
- package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.js → IGasPricer__factory.js} +14 -8
- package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3Events__factory.d.ts +113 -0
- package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3Events__factory.js +152 -0
- package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.d.ts +504 -0
- package/lib/types/factories/IGearStakingV3.sol/IGearStakingV3__factory.js +660 -0
- package/lib/types/factories/IGearStakingV3.sol/index.d.ts +2 -0
- package/lib/types/factories/IGearStakingV3.sol/index.js +10 -0
- package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.d.ts → ILidoV1Adapter__factory.d.ts} +1 -35
- package/lib/types/factories/{ILidoV1Adapter.sol/ILidoV1Adapter__factory.js → ILidoV1Adapter__factory.js} +0 -44
- package/lib/types/factories/IOffchainOracle__factory.d.ts +48 -0
- package/lib/types/factories/IOffchainOracle__factory.js +72 -0
- package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.d.ts +62 -14
- package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.js +79 -17
- package/lib/types/factories/IPoolV3.sol/index.d.ts +0 -1
- package/lib/types/factories/IPoolV3.sol/index.js +1 -3
- package/lib/types/factories/IRouter__factory.d.ts +14 -0
- package/lib/types/factories/IRouter__factory.js +19 -0
- package/lib/types/factories/IWETHGateway__factory.d.ts +58 -0
- package/lib/types/factories/IWETHGateway__factory.js +83 -0
- package/lib/types/factories/{WERC20ZapperBase__factory.d.ts → IZapper__factory.d.ts} +57 -61
- package/lib/types/factories/{WERC20ZapperBase__factory.js → IZapper__factory.js} +65 -71
- package/lib/types/factories/{ZapperBase__factory.d.ts → IwstETHGateway.sol/IwstETHGateWay__factory.d.ts} +22 -34
- package/lib/types/factories/{ZapperBase__factory.js → IwstETHGateway.sol/IwstETHGateWay__factory.js} +22 -39
- package/lib/types/factories/IwstETHGateway.sol/index.d.ts +1 -0
- package/lib/types/factories/IwstETHGateway.sol/index.js +8 -0
- package/lib/types/factories/SafeERC20__factory.d.ts +1 -1
- package/lib/types/factories/SafeERC20__factory.js +1 -1
- package/lib/types/factories/index.d.ts +15 -12
- package/lib/types/factories/index.js +25 -23
- package/lib/types/index.d.ts +56 -38
- package/lib/types/index.js +42 -32
- package/lib/utils/formatter.d.ts +0 -3
- package/lib/utils/formatter.js +1 -67
- package/lib/utils/math.d.ts +2 -0
- package/lib/utils/math.js +2 -0
- package/lib/utils/types.d.ts +1 -0
- package/lib/watchers/creditAccountWatcher.d.ts +3 -2
- package/lib/watchers/creditAccountWatcher.js +19 -13
- package/lib/watchers/creditAccountWatcher.spec.js +18 -18
- package/lib/watchers/creditManagerWatcher.d.ts +5 -3
- package/lib/watchers/creditManagerWatcher.js +32 -10
- package/lib/watchers/creditManagerWatcher.spec.js +12 -4
- package/package.json +10 -9
- package/contracts/IRouter.sol +0 -100
- package/lib/core/pool/index.d.ts +0 -1
- package/lib/core/pool/index.js +0 -17
- package/lib/types/AaveV2_WrappedAToken.sol/IWrappedATokenEvents.d.ts +0 -60
- package/lib/types/AaveV2_WrappedAToken.sol/WrappedAToken.d.ts +0 -332
- package/lib/types/AaveV2_WrappedAToken.sol/index.d.ts +0 -2
- package/lib/types/ERC20.d.ts +0 -198
- package/lib/types/IAToken.d.ts +0 -182
- package/lib/types/ILendingPool.d.ts +0 -140
- package/lib/types/ILidoV1Adapter.sol/ILidoV1AdapterEvents.d.ts +0 -39
- package/lib/types/ILidoV1Adapter.sol/ILidoV1AdapterExceptions.d.ts +0 -27
- package/lib/types/ILidoV1Adapter.sol/index.d.ts +0 -3
- package/lib/types/IPoolV3.sol/IPoolBase.d.ts +0 -102
- package/lib/types/WATokenZapper.d.ts +0 -134
- package/lib/types/WERC20ZapperBase.d.ts +0 -134
- package/lib/types/WETHZapper.d.ts +0 -122
- package/lib/types/WstETHZapper.d.ts +0 -134
- package/lib/types/ZapperBase.d.ts +0 -70
- package/lib/types/draft-IERC20Permit.sol/index.d.ts +0 -1
- package/lib/types/factories/AaveV2_WrappedAToken.sol/IWrappedATokenEvents__factory.d.ts +0 -48
- package/lib/types/factories/AaveV2_WrappedAToken.sol/WrappedAToken__factory.d.ts +0 -397
- package/lib/types/factories/AaveV2_WrappedAToken.sol/WrappedAToken__factory.js +0 -535
- package/lib/types/factories/AaveV2_WrappedAToken.sol/index.d.ts +0 -2
- package/lib/types/factories/AaveV2_WrappedAToken.sol/index.js +0 -10
- package/lib/types/factories/ERC20__factory.d.ts +0 -239
- package/lib/types/factories/ERC20__factory.js +0 -328
- package/lib/types/factories/ILendingPool__factory.d.ts +0 -134
- package/lib/types/factories/ILendingPool__factory.js +0 -183
- package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.d.ts +0 -18
- package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.d.ts +0 -12
- package/lib/types/factories/ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.js +0 -24
- package/lib/types/factories/ILidoV1Adapter.sol/index.d.ts +0 -3
- package/lib/types/factories/ILidoV1Adapter.sol/index.js +0 -12
- package/lib/types/factories/IPoolV3.sol/IPoolBase__factory.d.ts +0 -80
- package/lib/types/factories/WATokenZapper__factory.d.ts +0 -161
- package/lib/types/factories/WATokenZapper__factory.js +0 -227
- package/lib/types/factories/WETHZapper__factory.d.ts +0 -138
- package/lib/types/factories/WETHZapper__factory.js +0 -198
- package/lib/types/factories/WstETHZapper__factory.d.ts +0 -161
- package/lib/types/factories/WstETHZapper__factory.js +0 -227
- package/lib/types/factories/draft-IERC20Permit.sol/index.d.ts +0 -1
- package/lib/types/factories/draft-IERC20Permit.sol/index.js +0 -8
- /package/lib/{types/AaveV2_WrappedAToken.sol/IWrappedATokenEvents.js → payload/gauge.js} +0 -0
- /package/lib/types/{AaveV2_WrappedAToken.sol/WrappedAToken.js → IAirdropDistributor.sol/IAirdropDistributor.js} +0 -0
- /package/lib/types/{AaveV2_WrappedAToken.sol/index.js → IAirdropDistributor.sol/IAirdropDistributorEvents.js} +0 -0
- /package/lib/types/{ILidoV1Adapter.sol → IAirdropDistributor.sol}/index.js +0 -0
- /package/lib/types/{ERC20.js → IContractsRegister.sol/IContractsRegister.js} +0 -0
- /package/lib/types/{IAToken.js → IContractsRegister.sol/IContractsRegisterEvents.js} +0 -0
- /package/lib/types/{draft-IERC20Permit.sol → IContractsRegister.sol}/index.js +0 -0
- /package/lib/types/{IConvexV1BoosterAdapter.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.js} +0 -0
- /package/lib/types/{ILendingPool.js → IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.js} +0 -0
- /package/lib/types/{ILidoV1Adapter.sol/ILidoV1Adapter.js → IConvexV1BoosterAdapter.sol/index.js} +0 -0
- /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterEvents.js → ICreditConfiguratorV3.sol/ICreditConfiguratorV3.js} +0 -0
- /package/lib/types/{ILidoV1Adapter.sol/ILidoV1AdapterExceptions.js → ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.js} +0 -0
- /package/lib/types/{IPoolV3.sol/IPoolBase.js → ICreditConfiguratorV3.sol/index.js} +0 -0
- /package/lib/types/{WATokenZapper.js → IDegenDistributor.sol/IDegenDistributor.js} +0 -0
- /package/lib/types/{WERC20ZapperBase.js → IDegenDistributor.sol/IDegenDistributorEvents.js} +0 -0
- /package/lib/types/{WETHZapper.js → IDegenDistributor.sol/index.js} +0 -0
- /package/lib/types/{draft-IERC20Permit.sol/IERC20Permit.js → IERC20Permit.js} +0 -0
- /package/lib/types/{WstETHZapper.js → IERC20ZapperDeposits.js} +0 -0
- /package/lib/types/{ZapperBase.js → IETHZapperDeposits.js} +0 -0
- /package/lib/types/factories/{draft-IERC20Permit.sol/IERC20Permit__factory.js → IERC20Permit__factory.js} +0 -0
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { MultiCall } from "../pathfinder/core";
|
|
2
2
|
import { ChartsCreditManagerPayload, CreditManagerDataPayload, QuotaInfo } from "../payload/creditManager";
|
|
3
3
|
import { LinearModel } from "../payload/pool";
|
|
4
|
+
import { Asset } from "./assets";
|
|
5
|
+
import { PoolType } from "./pool";
|
|
4
6
|
export declare class CreditManagerData {
|
|
5
7
|
readonly address: string;
|
|
8
|
+
readonly type: PoolType;
|
|
6
9
|
readonly underlyingToken: string;
|
|
7
10
|
readonly pool: string;
|
|
8
11
|
readonly creditFacade: string;
|
|
@@ -13,7 +16,8 @@ export declare class CreditManagerData {
|
|
|
13
16
|
readonly isPaused: boolean;
|
|
14
17
|
readonly forbiddenTokenMask: bigint;
|
|
15
18
|
readonly maxEnabledTokensLength: number;
|
|
16
|
-
readonly
|
|
19
|
+
readonly name: string;
|
|
20
|
+
readonly baseBorrowRate: number;
|
|
17
21
|
readonly minDebt: bigint;
|
|
18
22
|
readonly maxDebt: bigint;
|
|
19
23
|
readonly availableToBorrow: bigint;
|
|
@@ -28,16 +32,26 @@ export declare class CreditManagerData {
|
|
|
28
32
|
readonly supportedTokens: Record<string, true>;
|
|
29
33
|
readonly adapters: Record<string, string>;
|
|
30
34
|
readonly liquidationThresholds: Record<string, bigint>;
|
|
31
|
-
readonly quotas:
|
|
35
|
+
readonly quotas: Record<string, QuotaInfo>;
|
|
32
36
|
readonly interestModel: LinearModel;
|
|
33
37
|
constructor(payload: CreditManagerDataPayload);
|
|
34
|
-
encodeAddCollateral(accountAddress: string, tokenAddress: string, amount: bigint): MultiCall;
|
|
35
|
-
encodeIncreaseDebt(amount: bigint): MultiCall;
|
|
36
|
-
encodeDecreaseDebt(amount: bigint): MultiCall;
|
|
37
|
-
encodeEnableToken(token: string): MultiCall;
|
|
38
|
-
encodeDisableToken(token: string): MultiCall;
|
|
39
|
-
static withdrawAllAndUnwrap_Convex(address: string, claim: boolean): MultiCall;
|
|
40
38
|
get id(): string;
|
|
39
|
+
isQuoted(token: string): boolean;
|
|
40
|
+
encodeAddCollateralV2(tokenAddress: string, amount: bigint): MultiCall;
|
|
41
|
+
encodeAddCollateralV3(tokenAddress: string, amount: bigint): MultiCall;
|
|
42
|
+
encodeAddCollateralWithPermitV3(tokenAddress: string, amount: bigint, deadline: bigint, v: bigint | number, r: string, s: string): MultiCall;
|
|
43
|
+
encodeIncreaseDebtV2(amount: bigint): MultiCall;
|
|
44
|
+
encodeIncreaseDebtV3(amount: bigint): MultiCall;
|
|
45
|
+
encodeDecreaseDebtV2(amount: bigint): MultiCall;
|
|
46
|
+
encodeDecreaseDebtV3(amount: bigint): MultiCall;
|
|
47
|
+
encodeEnableTokenV2(token: string): MultiCall;
|
|
48
|
+
encodeEnableTokenV3(token: string): MultiCall;
|
|
49
|
+
encodeDisableTokenV2(token: string): MultiCall;
|
|
50
|
+
encodeDisableTokenV3(token: string): MultiCall;
|
|
51
|
+
encodeRevertIfReceivedLessThanV2(assets: Array<Asset>): MultiCall;
|
|
52
|
+
encodeRevertIfReceivedLessThanV3(assets: Array<Asset>): MultiCall;
|
|
53
|
+
encodeUpdateQuotaV3(token: string, quotaChange: bigint, minQuota: bigint): MultiCall;
|
|
54
|
+
static withdrawAllAndUnwrap_Convex(address: string, claim: boolean): MultiCall;
|
|
41
55
|
}
|
|
42
56
|
export declare class ChartsCreditManagerData {
|
|
43
57
|
readonly id: string;
|
|
@@ -4,8 +4,10 @@ exports.ChartsCreditManagerData = exports.CreditManagerData = void 0;
|
|
|
4
4
|
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
5
5
|
const txParser_1 = require("../parsers/txParser");
|
|
6
6
|
const types_1 = require("../types");
|
|
7
|
+
const pool_1 = require("./pool");
|
|
7
8
|
class CreditManagerData {
|
|
8
9
|
address;
|
|
10
|
+
type;
|
|
9
11
|
underlyingToken;
|
|
10
12
|
pool;
|
|
11
13
|
creditFacade; // V2 only: address of creditFacade
|
|
@@ -16,7 +18,8 @@ class CreditManagerData {
|
|
|
16
18
|
isPaused;
|
|
17
19
|
forbiddenTokenMask; // V2 only: mask which forbids some particular tokens
|
|
18
20
|
maxEnabledTokensLength;
|
|
19
|
-
|
|
21
|
+
name;
|
|
22
|
+
baseBorrowRate;
|
|
20
23
|
minDebt;
|
|
21
24
|
maxDebt;
|
|
22
25
|
availableToBorrow;
|
|
@@ -36,6 +39,8 @@ class CreditManagerData {
|
|
|
36
39
|
constructor(payload) {
|
|
37
40
|
this.address = payload.addr.toLowerCase();
|
|
38
41
|
this.underlyingToken = payload.underlying.toLowerCase();
|
|
42
|
+
this.type = pool_1.PoolData.getPoolType(payload.name || "");
|
|
43
|
+
this.name = payload.name;
|
|
39
44
|
this.pool = payload.pool.toLowerCase();
|
|
40
45
|
this.creditFacade = payload.creditFacade.toLowerCase();
|
|
41
46
|
this.creditConfigurator = payload.creditConfigurator.toLowerCase();
|
|
@@ -45,7 +50,7 @@ class CreditManagerData {
|
|
|
45
50
|
this.isPaused = payload.isPaused;
|
|
46
51
|
this.forbiddenTokenMask = (0, sdk_gov_1.toBigInt)(payload.forbiddenTokenMask);
|
|
47
52
|
this.maxEnabledTokensLength = payload.maxEnabledTokensLength;
|
|
48
|
-
this.
|
|
53
|
+
this.baseBorrowRate = Number(((0, sdk_gov_1.toBigInt)(payload.baseBorrowRate) *
|
|
49
54
|
((0, sdk_gov_1.toBigInt)(payload.feeInterest) + sdk_gov_1.PERCENTAGE_FACTOR) *
|
|
50
55
|
sdk_gov_1.PERCENTAGE_DECIMALS) /
|
|
51
56
|
sdk_gov_1.RAY);
|
|
@@ -74,14 +79,17 @@ class CreditManagerData {
|
|
|
74
79
|
acc[address.toLowerCase()] = (0, sdk_gov_1.toBigInt)(threshold);
|
|
75
80
|
return acc;
|
|
76
81
|
}, {});
|
|
77
|
-
this.quotas = payload.quotas.map(q =>
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
this.quotas = Object.fromEntries(payload.quotas.map(q => [
|
|
83
|
+
q.token.toLowerCase(),
|
|
84
|
+
{
|
|
85
|
+
token: q.token.toLowerCase(),
|
|
86
|
+
rate: Number((0, sdk_gov_1.toBigInt)(q.rate) * sdk_gov_1.PERCENTAGE_DECIMALS),
|
|
87
|
+
quotaIncreaseFee: q.quotaIncreaseFee,
|
|
88
|
+
totalQuoted: (0, sdk_gov_1.toBigInt)(q.totalQuoted),
|
|
89
|
+
limit: (0, sdk_gov_1.toBigInt)(q.limit),
|
|
90
|
+
isActive: q.isActive,
|
|
91
|
+
},
|
|
92
|
+
]));
|
|
85
93
|
this.interestModel = {
|
|
86
94
|
interestModel: payload.lirm.interestModel.toLowerCase(),
|
|
87
95
|
U_1: payload.lirm.U_1,
|
|
@@ -91,65 +99,113 @@ class CreditManagerData {
|
|
|
91
99
|
R_slope2: payload.lirm.R_slope2,
|
|
92
100
|
R_slope3: payload.lirm.R_slope3,
|
|
93
101
|
version: payload?.lirm?.version?.toNumber(),
|
|
102
|
+
isBorrowingMoreU2Forbidden: payload?.lirm?.isBorrowingMoreU2Forbidden,
|
|
94
103
|
};
|
|
95
104
|
txParser_1.TxParser.addCreditManager(this.address, this.version);
|
|
96
105
|
if (this.creditFacade !== "" && this.creditFacade !== sdk_gov_1.ADDRESS_0X0) {
|
|
97
|
-
txParser_1.TxParser.addCreditFacade(this.creditFacade, sdk_gov_1.tokenSymbolByAddress[this.underlyingToken]);
|
|
106
|
+
txParser_1.TxParser.addCreditFacade(this.creditFacade, sdk_gov_1.tokenSymbolByAddress[this.underlyingToken], this.version);
|
|
98
107
|
txParser_1.TxParser.addAdapters(payload.adapters.map(a => ({
|
|
99
108
|
adapter: a.adapter,
|
|
100
109
|
contract: a.targetContract,
|
|
101
110
|
})));
|
|
102
111
|
}
|
|
103
112
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
113
|
+
get id() {
|
|
114
|
+
return this.address;
|
|
115
|
+
}
|
|
116
|
+
isQuoted(token) {
|
|
117
|
+
return !!this.quotas[token];
|
|
118
|
+
}
|
|
119
|
+
encodeAddCollateralV2(tokenAddress, amount) {
|
|
107
120
|
return {
|
|
108
121
|
target: this.creditFacade,
|
|
109
|
-
callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("addCollateral", [
|
|
122
|
+
callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("addCollateral", [tokenAddress, amount]),
|
|
110
123
|
};
|
|
111
124
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
125
|
+
encodeAddCollateralV3(tokenAddress, amount) {
|
|
126
|
+
return {
|
|
127
|
+
target: this.creditFacade,
|
|
128
|
+
callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("addCollateral", [tokenAddress, amount]),
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
encodeAddCollateralWithPermitV3(tokenAddress, amount, deadline, v, r, s) {
|
|
132
|
+
return {
|
|
133
|
+
target: this.creditFacade,
|
|
134
|
+
callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("addCollateralWithPermit", [tokenAddress, amount, deadline, v, r, s]),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
encodeIncreaseDebtV2(amount) {
|
|
115
138
|
return {
|
|
116
139
|
target: this.creditFacade,
|
|
117
140
|
callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("increaseDebt", [amount]),
|
|
118
141
|
};
|
|
119
142
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
143
|
+
encodeIncreaseDebtV3(amount) {
|
|
144
|
+
return {
|
|
145
|
+
target: this.creditFacade,
|
|
146
|
+
callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("increaseDebt", [amount]),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
encodeDecreaseDebtV2(amount) {
|
|
123
150
|
return {
|
|
124
151
|
target: this.creditFacade,
|
|
125
152
|
callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("decreaseDebt", [amount]),
|
|
126
153
|
};
|
|
127
154
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
155
|
+
encodeDecreaseDebtV3(amount) {
|
|
156
|
+
return {
|
|
157
|
+
target: this.creditFacade,
|
|
158
|
+
callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("decreaseDebt", [amount]),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
encodeEnableTokenV2(token) {
|
|
131
162
|
return {
|
|
132
163
|
target: this.creditFacade,
|
|
133
164
|
callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("enableToken", [token]),
|
|
134
165
|
};
|
|
135
166
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
167
|
+
encodeEnableTokenV3(token) {
|
|
168
|
+
return {
|
|
169
|
+
target: this.creditFacade,
|
|
170
|
+
callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("enableToken", [token]),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
encodeDisableTokenV2(token) {
|
|
139
174
|
return {
|
|
140
175
|
target: this.creditFacade,
|
|
141
176
|
callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("disableToken", [token]),
|
|
142
177
|
};
|
|
143
178
|
}
|
|
179
|
+
encodeDisableTokenV3(token) {
|
|
180
|
+
return {
|
|
181
|
+
target: this.creditFacade,
|
|
182
|
+
callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("disableToken", [token]),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
encodeRevertIfReceivedLessThanV2(assets) {
|
|
186
|
+
return {
|
|
187
|
+
target: this.creditFacade,
|
|
188
|
+
callData: types_1.ICreditFacadeV2Extended__factory.createInterface().encodeFunctionData("revertIfReceivedLessThan", [assets]),
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
encodeRevertIfReceivedLessThanV3(assets) {
|
|
192
|
+
return {
|
|
193
|
+
target: this.creditFacade,
|
|
194
|
+
callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("revertIfReceivedLessThan", [assets.map(a => ({ token: a.token, amount: a.balance }))]),
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
encodeUpdateQuotaV3(token, quotaChange, minQuota) {
|
|
198
|
+
return {
|
|
199
|
+
target: this.creditFacade,
|
|
200
|
+
callData: types_1.ICreditFacadeV3Multicall__factory.createInterface().encodeFunctionData("updateQuota", [token, quotaChange, minQuota]),
|
|
201
|
+
};
|
|
202
|
+
}
|
|
144
203
|
static withdrawAllAndUnwrap_Convex(address, claim) {
|
|
145
204
|
return {
|
|
146
205
|
target: address,
|
|
147
206
|
callData: types_1.IConvexV1BaseRewardPoolAdapter__factory.createInterface().encodeFunctionData("withdrawAllAndUnwrap", [claim]),
|
|
148
207
|
};
|
|
149
208
|
}
|
|
150
|
-
get id() {
|
|
151
|
-
return this.address;
|
|
152
|
-
}
|
|
153
209
|
}
|
|
154
210
|
exports.CreditManagerData = CreditManagerData;
|
|
155
211
|
class ChartsCreditManagerData {
|
package/lib/core/events.js
CHANGED
|
@@ -124,7 +124,7 @@ class EventAddLiquidity extends eventOrTx_1.EVMEvent {
|
|
|
124
124
|
}
|
|
125
125
|
toString() {
|
|
126
126
|
const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
|
|
127
|
-
return `Pool ${(0, contractsRegister_1.getContractName)(this.pool)}: Deposit ${(0,
|
|
127
|
+
return `Pool ${(0, contractsRegister_1.getContractName)(this.pool)}: Deposit ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol}`;
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
exports.EventAddLiquidity = EventAddLiquidity;
|
|
@@ -142,7 +142,7 @@ class EventRemoveLiquidity extends eventOrTx_1.EVMEvent {
|
|
|
142
142
|
}
|
|
143
143
|
toString() {
|
|
144
144
|
const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.dieselToken);
|
|
145
|
-
return `Pool ${(0, contractsRegister_1.getContractName)(this.pool)}: withdraw ${(0,
|
|
145
|
+
return `Pool ${(0, contractsRegister_1.getContractName)(this.pool)}: withdraw ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol}`;
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
exports.EventRemoveLiquidity = EventRemoveLiquidity;
|
|
@@ -158,7 +158,7 @@ class EventOpenCreditAccount extends eventOrTx_1.EVMEvent {
|
|
|
158
158
|
}
|
|
159
159
|
toString() {
|
|
160
160
|
const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
|
|
161
|
-
return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: opened with debt ${(0,
|
|
161
|
+
return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: opened with debt ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol}`;
|
|
162
162
|
}
|
|
163
163
|
}
|
|
164
164
|
exports.EventOpenCreditAccount = EventOpenCreditAccount;
|
|
@@ -187,7 +187,7 @@ class EventLiquidateCreditAccount extends eventOrTx_1.EVMEvent {
|
|
|
187
187
|
}
|
|
188
188
|
toString() {
|
|
189
189
|
const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
|
|
190
|
-
return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: was liquidated. ${(0,
|
|
190
|
+
return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: was liquidated. ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol} were paid back as remaining funds`;
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
193
|
exports.EventLiquidateCreditAccount = EventLiquidateCreditAccount;
|
|
@@ -216,7 +216,7 @@ class EventAddCollateral extends eventOrTx_1.EVMEvent {
|
|
|
216
216
|
}
|
|
217
217
|
toString() {
|
|
218
218
|
const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.addedToken);
|
|
219
|
-
return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: added ${(0,
|
|
219
|
+
return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: added ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol} as collateral`;
|
|
220
220
|
}
|
|
221
221
|
}
|
|
222
222
|
exports.EventAddCollateral = EventAddCollateral;
|
|
@@ -232,7 +232,7 @@ class EventIncreaseBorrowAmount extends eventOrTx_1.EVMEvent {
|
|
|
232
232
|
}
|
|
233
233
|
toString() {
|
|
234
234
|
const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
|
|
235
|
-
return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: borrowed amount was increased for ${(0,
|
|
235
|
+
return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: borrowed amount was increased for ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol}`;
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
238
|
exports.EventIncreaseBorrowAmount = EventIncreaseBorrowAmount;
|
|
@@ -248,7 +248,7 @@ class EventDecreaseBorrowAmount extends eventOrTx_1.EVMEvent {
|
|
|
248
248
|
}
|
|
249
249
|
toString() {
|
|
250
250
|
const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
|
|
251
|
-
return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: borrowed amount was decreased for ${(0,
|
|
251
|
+
return `Credit account ${(0, contractsRegister_1.getContractName)(this.creditManager)}: borrowed amount was decreased for ${(0, sdk_gov_1.formatBN)(this.amount, decimals)} ${symbol}`;
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
254
|
exports.EventDecreaseBorrowAmount = EventDecreaseBorrowAmount;
|
|
@@ -288,10 +288,10 @@ class EventCMNewParameters extends eventOrTx_1.EVMEvent {
|
|
|
288
288
|
const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
|
|
289
289
|
let msg = `Credit manager ${(0, contractsRegister_1.getContractName)(this.creditManager)} updated: `;
|
|
290
290
|
if (this.minAmount !== this.prevMinAmount) {
|
|
291
|
-
msg += `min amount: ${(0,
|
|
291
|
+
msg += `min amount: ${(0, sdk_gov_1.formatBN)(this.prevMinAmount, decimals)} => ${(0, sdk_gov_1.formatBN)(this.minAmount, decimals)} ${symbol}, `;
|
|
292
292
|
}
|
|
293
293
|
if (this.maxAmount !== this.prevMaxAmount) {
|
|
294
|
-
msg += `max amount: ${(0,
|
|
294
|
+
msg += `max amount: ${(0, sdk_gov_1.formatBN)(this.prevMaxAmount, decimals)} => ${(0, sdk_gov_1.formatBN)(this.maxAmount, decimals)} ${symbol}, `;
|
|
295
295
|
}
|
|
296
296
|
if (this.maxLeverage !== this.prevMaxLeverage) {
|
|
297
297
|
msg += `max leverage: ${this.prevMaxLeverage / Number(sdk_gov_1.LEVERAGE_DECIMALS) + 1} => ${this.maxLeverage / Number(sdk_gov_1.LEVERAGE_DECIMALS) + 1}, `;
|
|
@@ -501,8 +501,8 @@ class EventNewExpectedLiquidityLimit extends eventOrTx_1.EVMEvent {
|
|
|
501
501
|
toString() {
|
|
502
502
|
const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
|
|
503
503
|
return this.prevLimit === 0n
|
|
504
|
-
? `Pool ${(0, contractsRegister_1.getContractName)(this.pool)} updated: expected liquidity limit was set to ${(0,
|
|
505
|
-
: `Pool ${(0, contractsRegister_1.getContractName)(this.pool)} updated: expected liquidity limit was ${this.newLimit > this.prevLimit ? "increased" : "decreased"}: ${(0,
|
|
504
|
+
? `Pool ${(0, contractsRegister_1.getContractName)(this.pool)} updated: expected liquidity limit was set to ${(0, sdk_gov_1.formatBN)(this.newLimit, decimals)} ${symbol}`
|
|
505
|
+
: `Pool ${(0, contractsRegister_1.getContractName)(this.pool)} updated: expected liquidity limit was ${this.newLimit > this.prevLimit ? "increased" : "decreased"}: ${(0, sdk_gov_1.formatBN)(this.prevLimit, decimals)} ${symbol} => ${(0, sdk_gov_1.formatBN)(this.newLimit, decimals)} ${symbol}`;
|
|
506
506
|
}
|
|
507
507
|
}
|
|
508
508
|
exports.EventNewExpectedLiquidityLimit = EventNewExpectedLiquidityLimit;
|
|
@@ -680,10 +680,10 @@ class EventLimitsUpdated extends eventOrTx_1.EVMEvent {
|
|
|
680
680
|
const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.underlyingToken);
|
|
681
681
|
let msg = `Credit manager ${(0, contractsRegister_1.getContractName)(this.creditManager)} updated: `;
|
|
682
682
|
if (this.minBorrowedAmount !== this.prevMinBorrowedAmount) {
|
|
683
|
-
msg += `min amount: ${(0,
|
|
683
|
+
msg += `min amount: ${(0, sdk_gov_1.formatBN)(this.prevMinBorrowedAmount, decimals)} => ${(0, sdk_gov_1.formatBN)(this.minBorrowedAmount, decimals)} ${symbol}, `;
|
|
684
684
|
}
|
|
685
685
|
if (this.maxBorrowedAmount !== this.prevMaxBorrowedAmount) {
|
|
686
|
-
msg += `max amount: ${(0,
|
|
686
|
+
msg += `max amount: ${(0, sdk_gov_1.formatBN)(this.prevMaxBorrowedAmount, decimals)} => ${(0, sdk_gov_1.formatBN)(this.maxBorrowedAmount, decimals)} ${symbol}, `;
|
|
687
687
|
}
|
|
688
688
|
return msg.slice(0, msg.length - 2);
|
|
689
689
|
}
|
|
@@ -838,7 +838,7 @@ class EventLimitPerBlockUpdated extends eventOrTx_1.EVMEvent {
|
|
|
838
838
|
}
|
|
839
839
|
toString() {
|
|
840
840
|
const [symbol, decimals = 18] = (0, sdk_gov_1.extractTokenData)(this.token);
|
|
841
|
-
return `Credit manager ${(0, contractsRegister_1.getContractName)(this.creditManager)}: Limit Per Block Updated ${(0,
|
|
841
|
+
return `Credit manager ${(0, contractsRegister_1.getContractName)(this.creditManager)}: Limit Per Block Updated ${(0, sdk_gov_1.formatBN)(this.prevLimit, decimals)} => ${(0, sdk_gov_1.formatBN)(this.limit, decimals)} ${symbol}`;
|
|
842
842
|
}
|
|
843
843
|
}
|
|
844
844
|
exports.EventLimitPerBlockUpdated = EventLimitPerBlockUpdated;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { GaugeDataPayload, GaugeQuotaParams, GaugeStakingDataPayload } from "../payload/gauge";
|
|
2
|
+
export declare class GaugeData {
|
|
3
|
+
readonly address: string;
|
|
4
|
+
readonly pool: string;
|
|
5
|
+
readonly poolUnderlying: string;
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly symbol: string;
|
|
8
|
+
readonly currentEpoch: number;
|
|
9
|
+
readonly epochFrozen: boolean;
|
|
10
|
+
readonly quotaParams: Record<string, GaugeQuotaParams>;
|
|
11
|
+
constructor(payload: GaugeDataPayload);
|
|
12
|
+
}
|
|
13
|
+
interface WithDrawableGaugeItem {
|
|
14
|
+
amount: bigint;
|
|
15
|
+
epochsLeft: number;
|
|
16
|
+
}
|
|
17
|
+
export declare class GaugeStakingData {
|
|
18
|
+
readonly availableBalance: bigint;
|
|
19
|
+
readonly totalBalance: bigint;
|
|
20
|
+
readonly epoch: number;
|
|
21
|
+
readonly withdrawableNow: bigint;
|
|
22
|
+
readonly withdrawableInEpochsTotal: bigint;
|
|
23
|
+
readonly withdrawableInEpochs: Array<WithDrawableGaugeItem>;
|
|
24
|
+
constructor(payload: GaugeStakingDataPayload);
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GaugeStakingData = exports.GaugeData = void 0;
|
|
4
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
5
|
+
class GaugeData {
|
|
6
|
+
address;
|
|
7
|
+
pool;
|
|
8
|
+
poolUnderlying;
|
|
9
|
+
name;
|
|
10
|
+
symbol;
|
|
11
|
+
currentEpoch;
|
|
12
|
+
epochFrozen;
|
|
13
|
+
quotaParams;
|
|
14
|
+
constructor(payload) {
|
|
15
|
+
this.address = payload.addr.toLowerCase();
|
|
16
|
+
this.pool = payload.pool.toLowerCase();
|
|
17
|
+
this.poolUnderlying = payload.underlying.toLowerCase();
|
|
18
|
+
this.name = payload.name;
|
|
19
|
+
this.symbol = payload.symbol;
|
|
20
|
+
this.currentEpoch = payload.currentEpoch;
|
|
21
|
+
this.epochFrozen = payload.epochFrozen;
|
|
22
|
+
this.quotaParams = Object.fromEntries(payload.quotaParams.map((q) => [
|
|
23
|
+
q.token.toLowerCase(),
|
|
24
|
+
{
|
|
25
|
+
token: q.token.toLowerCase(),
|
|
26
|
+
isActive: q.isActive,
|
|
27
|
+
rate: Number((0, sdk_gov_1.toBigInt)(q.rate) * sdk_gov_1.PERCENTAGE_DECIMALS),
|
|
28
|
+
minRate: Number((0, sdk_gov_1.toBigInt)(q.minRate) * sdk_gov_1.PERCENTAGE_DECIMALS),
|
|
29
|
+
maxRate: Number((0, sdk_gov_1.toBigInt)(q.maxRate) * sdk_gov_1.PERCENTAGE_DECIMALS),
|
|
30
|
+
quotaIncreaseFee: q.quotaIncreaseFee,
|
|
31
|
+
totalQuoted: (0, sdk_gov_1.toBigInt)(q.totalQuoted),
|
|
32
|
+
limit: (0, sdk_gov_1.toBigInt)(q.limit),
|
|
33
|
+
totalVotesLpSide: (0, sdk_gov_1.toBigInt)(q.totalVotesLpSide),
|
|
34
|
+
totalVotesCaSide: (0, sdk_gov_1.toBigInt)(q.totalVotesCaSide),
|
|
35
|
+
stakerVotesLpSide: (0, sdk_gov_1.toBigInt)(q.stakerVotesLpSide),
|
|
36
|
+
stakerVotesCaSide: (0, sdk_gov_1.toBigInt)(q.stakerVotesCaSide),
|
|
37
|
+
},
|
|
38
|
+
]));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.GaugeData = GaugeData;
|
|
42
|
+
class GaugeStakingData {
|
|
43
|
+
availableBalance;
|
|
44
|
+
totalBalance;
|
|
45
|
+
epoch;
|
|
46
|
+
withdrawableNow;
|
|
47
|
+
withdrawableInEpochsTotal;
|
|
48
|
+
withdrawableInEpochs;
|
|
49
|
+
constructor(payload) {
|
|
50
|
+
this.availableBalance = (0, sdk_gov_1.toBigInt)(payload.availableBalance);
|
|
51
|
+
this.totalBalance = (0, sdk_gov_1.toBigInt)(payload.totalBalance);
|
|
52
|
+
this.epoch = payload.epoch;
|
|
53
|
+
this.withdrawableNow = (0, sdk_gov_1.toBigInt)(payload.withdrawableAmounts.withdrawableNow);
|
|
54
|
+
const { total, list } = payload.withdrawableAmounts.withdrawableInEpochs.reduce(({ total, list }, a, i) => {
|
|
55
|
+
const bn = (0, sdk_gov_1.toBigInt)(a);
|
|
56
|
+
list.push({ amount: bn, epochsLeft: i + 1 });
|
|
57
|
+
return { total: total + bn, list };
|
|
58
|
+
}, { total: 0n, list: [] });
|
|
59
|
+
this.withdrawableInEpochsTotal = total;
|
|
60
|
+
this.withdrawableInEpochs = list;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.GaugeStakingData = GaugeStakingData;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { GaugeQuotaParams } from "../payload/gauge";
|
|
2
|
+
export type BaseVoteType = "raise" | "lower";
|
|
3
|
+
export type VoteType = BaseVoteType | "remove";
|
|
4
|
+
export interface BaseVote {
|
|
5
|
+
amount: bigint;
|
|
6
|
+
type: BaseVoteType;
|
|
7
|
+
}
|
|
8
|
+
export interface Vote {
|
|
9
|
+
amount: bigint;
|
|
10
|
+
type: VoteType;
|
|
11
|
+
}
|
|
12
|
+
export interface SingleVoteState {
|
|
13
|
+
available: bigint;
|
|
14
|
+
vote?: BaseVote;
|
|
15
|
+
voteCalls: Array<Vote>;
|
|
16
|
+
}
|
|
17
|
+
export interface VoteProps {
|
|
18
|
+
state: Omit<SingleVoteState, "voteCalls">;
|
|
19
|
+
change?: Vote;
|
|
20
|
+
}
|
|
21
|
+
interface UnvoteProps {
|
|
22
|
+
initialVote?: BaseVote;
|
|
23
|
+
balanceAfter: bigint;
|
|
24
|
+
nextVoteType: BaseVoteType;
|
|
25
|
+
voteAfter?: Omit<SingleVoteState, "available">;
|
|
26
|
+
}
|
|
27
|
+
export interface GetGaugeApyProps {
|
|
28
|
+
quota: Pick<GaugeQuotaParams, "totalVotesCaSide" | "totalVotesLpSide" | "stakerVotesCaSide" | "stakerVotesLpSide" | "minRate" | "maxRate"> | undefined;
|
|
29
|
+
vote?: BaseVote;
|
|
30
|
+
voteAfter?: Omit<SingleVoteState, "available">;
|
|
31
|
+
}
|
|
32
|
+
export declare class GaugeMath {
|
|
33
|
+
static vote({ change, ...rest }: VoteProps): SingleVoteState | undefined;
|
|
34
|
+
private static addVotes;
|
|
35
|
+
private static removeVotes;
|
|
36
|
+
static revertVote({ balanceAfter, initialVote, nextVoteType, voteAfter, }: UnvoteProps): bigint | undefined;
|
|
37
|
+
static getBaseVote: (v: GaugeQuotaParams) => BaseVote | undefined;
|
|
38
|
+
static getGaugeApy({ quota, voteAfter, vote }: GetGaugeApyProps): number | null;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GaugeMath = void 0;
|
|
4
|
+
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
5
|
+
const math_1 = require("../utils/math");
|
|
6
|
+
class GaugeMath {
|
|
7
|
+
static vote({ change, ...rest }) {
|
|
8
|
+
if (change?.type === "remove") {
|
|
9
|
+
return this.removeVotes({ ...rest, change });
|
|
10
|
+
}
|
|
11
|
+
if (change) {
|
|
12
|
+
return this.addVotes({
|
|
13
|
+
...rest,
|
|
14
|
+
change: { ...change, type: change.type },
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return { ...rest.state, voteCalls: [] };
|
|
18
|
+
}
|
|
19
|
+
static addVotes({ state, change }) {
|
|
20
|
+
const { available, vote } = state;
|
|
21
|
+
if (!vote) {
|
|
22
|
+
return {
|
|
23
|
+
available: available - change.amount,
|
|
24
|
+
vote: change,
|
|
25
|
+
voteCalls: [change],
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (vote.type === change.type) {
|
|
29
|
+
return {
|
|
30
|
+
available: available - change.amount,
|
|
31
|
+
vote: { ...change, amount: vote.amount + change.amount },
|
|
32
|
+
voteCalls: [change],
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const remove = { type: "remove", amount: vote.amount };
|
|
36
|
+
return {
|
|
37
|
+
available: available + vote.amount - change.amount,
|
|
38
|
+
vote: { ...change, amount: change.amount },
|
|
39
|
+
voteCalls: [remove, change],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
static removeVotes({ state, change }) {
|
|
43
|
+
const { available, vote } = state;
|
|
44
|
+
if (!vote)
|
|
45
|
+
return { ...state, voteCalls: [] };
|
|
46
|
+
const safeChange = math_1.BigIntMath.min(vote.amount, change.amount);
|
|
47
|
+
const afterVote = vote.amount - safeChange;
|
|
48
|
+
return {
|
|
49
|
+
available: available + safeChange,
|
|
50
|
+
vote: { ...vote, amount: afterVote },
|
|
51
|
+
voteCalls: [{ ...change, amount: safeChange }],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
static revertVote({ balanceAfter, initialVote, nextVoteType, voteAfter, }) {
|
|
55
|
+
// on vote type change unvote previous vote
|
|
56
|
+
const prevUnvoted = !initialVote || initialVote.type === nextVoteType
|
|
57
|
+
? balanceAfter
|
|
58
|
+
: balanceAfter + initialVote.amount;
|
|
59
|
+
if (!voteAfter)
|
|
60
|
+
return prevUnvoted;
|
|
61
|
+
// change call is always last, remove is always first
|
|
62
|
+
const [first, last = first] = voteAfter.voteCalls;
|
|
63
|
+
const removePart = first?.type === "remove" ? first?.amount || 0n : 0n;
|
|
64
|
+
const addPart = last?.type !== "remove" ? last?.amount || 0n : 0n;
|
|
65
|
+
// revert current changes
|
|
66
|
+
return prevUnvoted + addPart - removePart;
|
|
67
|
+
}
|
|
68
|
+
static getBaseVote = (v) => {
|
|
69
|
+
const voteDown = v.stakerVotesCaSide;
|
|
70
|
+
const voteUp = v.stakerVotesLpSide;
|
|
71
|
+
if (!voteDown && !voteUp)
|
|
72
|
+
return undefined;
|
|
73
|
+
if (voteDown > 0) {
|
|
74
|
+
return { type: "lower", amount: voteDown };
|
|
75
|
+
}
|
|
76
|
+
if (voteUp > 0) {
|
|
77
|
+
return { type: "raise", amount: voteUp };
|
|
78
|
+
}
|
|
79
|
+
return undefined;
|
|
80
|
+
};
|
|
81
|
+
// rate = (minRate *(votesFormin + yourvotesformin) +maxRate*(votesFormax +yourvotesformax)/( votesForMin + votesForMax+yourvotes)
|
|
82
|
+
static getGaugeApy({ quota, voteAfter, vote }) {
|
|
83
|
+
if (!quota)
|
|
84
|
+
return null;
|
|
85
|
+
const first = voteAfter?.voteCalls?.[0];
|
|
86
|
+
const last = voteAfter?.voteCalls?.[1] || first;
|
|
87
|
+
const isRemove = first?.type === "remove";
|
|
88
|
+
const removeCaPart = isRemove && vote?.type === "lower" ? first?.amount || 0n : 0n;
|
|
89
|
+
const removeLpPart = isRemove && vote?.type === "raise" ? first?.amount || 0n : 0n;
|
|
90
|
+
const caPart = last?.type === "lower" ? last?.amount || 0n : 0n;
|
|
91
|
+
const lpPart = last?.type === "raise" ? last?.amount || 0n : 0n;
|
|
92
|
+
const caImpact = (0, sdk_gov_1.toBigInt)(quota.minRate) *
|
|
93
|
+
(quota.totalVotesCaSide + caPart - removeCaPart);
|
|
94
|
+
const lpImpact = (0, sdk_gov_1.toBigInt)(quota.maxRate) *
|
|
95
|
+
(quota.totalVotesLpSide + lpPart - removeLpPart);
|
|
96
|
+
const total = quota.totalVotesCaSide +
|
|
97
|
+
quota.totalVotesLpSide +
|
|
98
|
+
caPart +
|
|
99
|
+
lpPart -
|
|
100
|
+
removeCaPart -
|
|
101
|
+
removeLpPart;
|
|
102
|
+
if (total === 0n)
|
|
103
|
+
return quota.minRate;
|
|
104
|
+
const r = (caImpact + lpImpact) / total;
|
|
105
|
+
return Number(r);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.GaugeMath = GaugeMath;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|