@gearbox-protocol/sdk 15.1.0-next.1 → 15.1.0-next.10
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/abi/iExpirable.js +15 -0
- package/dist/cjs/common-utils/utils/apy/get-single-quota-borrow-rate.js +2 -0
- package/dist/cjs/common-utils/utils/creditAccount/calc-health-factor.js +24 -22
- package/dist/cjs/common-utils/utils/creditAccount/calc-quota-borrow-rate.js +2 -0
- package/dist/cjs/common-utils/utils/creditAccount/get-time-to-liquidation.js +8 -5
- package/dist/cjs/common-utils/utils/creditAccount/liquidation-price.js +21 -11
- package/dist/cjs/dev/AccountOpener.js +0 -1
- package/dist/cjs/dev/compareOpportunities.js +218 -0
- package/dist/cjs/model/charts.js +147 -0
- package/dist/cjs/model/charts.schema.js +240 -0
- package/dist/cjs/model/index.js +35 -22
- package/dist/cjs/model/liquidations.schema.js +1 -1
- package/dist/cjs/model/notices.schema.js +25 -0
- package/dist/cjs/model/opportunities.schema.js +1 -1
- package/dist/cjs/model/positions.schema.js +48 -2
- package/dist/cjs/new-sdk/AbstractNamespace.js +34 -4
- package/dist/cjs/new-sdk/GearboxSDK.js +72 -3
- package/dist/cjs/new-sdk/execute/ExecuteApi.js +95 -0
- package/dist/cjs/new-sdk/execute/index.js +3 -0
- package/dist/cjs/new-sdk/index.js +7 -0
- package/dist/cjs/new-sdk/opportunities/OpportunitiesNamespace.js +29 -6
- package/dist/cjs/new-sdk/positions/PositionsNamespace.js +3 -6
- package/dist/cjs/new-sdk/simulate/SimulateApi.js +361 -0
- package/dist/cjs/new-sdk/simulate/index.js +4 -0
- package/dist/cjs/new-sdk/utils/index.js +0 -1
- package/dist/cjs/offchain/AbstractOffchainNamespace.js +10 -7
- package/dist/cjs/offchain/GearboxAPI.js +7 -0
- package/dist/cjs/offchain/index.js +3 -0
- package/dist/cjs/offchain/notices/OffchainNotices.js +27 -0
- package/dist/cjs/offchain/notices/index.js +3 -0
- package/dist/cjs/offchain/opportunities/OffchainOpportunities.js +4 -8
- package/dist/cjs/offchain/positions/OffchainPositions.js +12 -12
- package/dist/cjs/preview/preview/CreditAccountState.js +14 -1
- package/dist/cjs/preview/preview/buildDelayedPreview.js +16 -6
- package/dist/cjs/preview/preview/previewAdjustCreditAccount.js +9 -2
- package/dist/cjs/preview/preview/previewOpenCreditAccount.js +11 -3
- package/dist/cjs/preview/preview/previewOperation.js +1 -1
- package/dist/cjs/sdk/MultichainSDK.js +3 -4
- package/dist/cjs/sdk/OnchainSDK.js +42 -13
- package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +2 -8
- package/dist/cjs/sdk/accounts/credit-account-compressor/CreditAccountCompressor.js +2 -90
- package/dist/cjs/sdk/accounts/index.js +5 -2
- package/dist/cjs/sdk/accounts/intents/guards.js +114 -0
- package/dist/cjs/sdk/accounts/intents/index.js +216 -358
- package/dist/cjs/sdk/accounts/intents/math.js +56 -0
- package/dist/cjs/sdk/accounts/intents/open-strategy.js +133 -0
- package/dist/cjs/sdk/accounts/intents/operations.js +165 -0
- package/dist/cjs/sdk/accounts/intents/plan.js +373 -0
- package/dist/cjs/sdk/accounts/intents/realize.js +301 -0
- package/dist/cjs/sdk/accounts/intents/testing/delayed.js +50 -0
- package/dist/cjs/sdk/accounts/intents/testing/market.js +166 -0
- package/dist/cjs/sdk/accounts/intents/testing/sdk-mock.js +194 -35
- package/dist/cjs/sdk/accounts/intents/tests/add-collateral.fixtures.js +123 -0
- package/dist/cjs/sdk/accounts/intents/tests/adjust-leverage.fixtures.js +254 -0
- package/dist/cjs/sdk/accounts/intents/tests/deposit.fixtures.js +324 -0
- package/dist/cjs/sdk/accounts/intents/tests/finish-decrease-leverage.fixtures.js +242 -0
- package/dist/cjs/sdk/accounts/intents/tests/finish-withdraw.fixtures.js +383 -0
- package/dist/cjs/sdk/accounts/intents/tests/open-strategy.fixtures.js +133 -0
- package/dist/cjs/sdk/accounts/intents/tests/withdraw-asset.fixtures.js +131 -0
- package/dist/cjs/sdk/accounts/intents/tests/withdraw.fixtures.js +426 -0
- package/dist/cjs/sdk/accounts/intents/types.js +16 -0
- package/dist/cjs/sdk/accounts/intents/utils/adjust-state-to-snapshot.js +18 -0
- package/dist/cjs/sdk/accounts/intents/utils/credit-account-slice.js +45 -0
- package/dist/cjs/sdk/accounts/intents/utils/index.js +17 -8
- package/dist/cjs/sdk/accounts/intents/utils/ledger.js +94 -0
- package/dist/cjs/sdk/accounts/intents/utils/pick-token.js +72 -0
- package/dist/cjs/sdk/accounts/intents/utils/quotas-for-update.js +27 -0
- package/dist/cjs/sdk/accounts/intents/utils/router-path.js +86 -0
- package/dist/cjs/sdk/accounts/intents/view.js +38 -0
- package/dist/cjs/sdk/accounts/liquidations/LiquidationsService.js +0 -3
- package/dist/cjs/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.js +29 -18
- package/dist/cjs/sdk/base/BaseContract.js +1 -1
- package/dist/cjs/sdk/base/TokensMeta.js +78 -27
- package/dist/cjs/sdk/index.js +30 -7
- package/dist/cjs/sdk/market/MarketRegister.js +16 -7
- package/dist/cjs/sdk/market/ZapperRegister.js +56 -25
- package/dist/cjs/sdk/market/credit/CreditManagerV310Contract.js +1 -12
- package/dist/cjs/sdk/market/credit/CreditSuite.js +28 -9
- package/dist/cjs/sdk/market/credit/index.js +3 -0
- package/dist/cjs/sdk/market/credit/isStrategyCollateral.js +50 -0
- package/dist/cjs/sdk/market/index.js +17 -0
- package/dist/cjs/sdk/market/math.js +57 -44
- package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +10 -3
- package/dist/cjs/sdk/market/pool/PoolV310Contract.js +15 -1
- package/dist/cjs/sdk/market/rwa/RWARegistry.js +22 -0
- package/dist/cjs/sdk/opportunities/index.js +0 -13
- package/dist/cjs/sdk/options.js +1 -5
- package/dist/cjs/sdk/pools/PoolService.js +132 -3
- package/dist/cjs/sdk/pools/index.js +2 -0
- package/dist/cjs/sdk/positions/PositionsService.js +213 -1
- package/dist/cjs/sdk/positions/calcBorrowRate.js +43 -0
- package/dist/cjs/sdk/positions/calcHealthFactor.js +52 -0
- package/dist/cjs/sdk/positions/calcLiquidationPrice.js +23 -0
- package/dist/cjs/sdk/positions/calcLiquidationPriceForTarget.js +30 -0
- package/dist/cjs/sdk/positions/calcTimeToLiquidationMs.js +19 -0
- package/dist/cjs/sdk/positions/index.js +12 -1
- package/dist/cjs/sdk/positions/types.js +31 -0
- package/dist/cjs/sdk/utils/abi-decode.js +2 -2
- package/dist/cjs/sdk/utils/viem/executeMulticallBatches.js +32 -0
- package/dist/cjs/sdk/utils/viem/index.js +2 -0
- package/dist/esm/abi/iExpirable.js +14 -0
- package/dist/esm/common-utils/utils/apy/get-single-quota-borrow-rate.js +2 -0
- package/dist/esm/common-utils/utils/creditAccount/calc-health-factor.js +24 -22
- package/dist/esm/common-utils/utils/creditAccount/calc-quota-borrow-rate.js +2 -0
- package/dist/esm/common-utils/utils/creditAccount/get-time-to-liquidation.js +8 -5
- package/dist/esm/common-utils/utils/creditAccount/liquidation-price.js +21 -11
- package/dist/esm/dev/AccountOpener.js +1 -2
- package/dist/esm/dev/compareOpportunities.js +216 -0
- package/dist/esm/dev/withdrawalUtils.js +1 -1
- package/dist/esm/model/charts.js +140 -0
- package/dist/esm/model/charts.schema.js +226 -0
- package/dist/esm/model/index.js +9 -7
- package/dist/esm/model/liquidations.schema.js +1 -1
- package/dist/esm/model/notices.schema.js +23 -0
- package/dist/esm/model/opportunities.schema.js +1 -1
- package/dist/esm/model/positions.schema.js +46 -4
- package/dist/esm/new-sdk/AbstractNamespace.js +34 -4
- package/dist/esm/new-sdk/GearboxSDK.js +72 -4
- package/dist/esm/new-sdk/execute/ExecuteApi.js +94 -0
- package/dist/esm/new-sdk/execute/index.js +2 -0
- package/dist/esm/new-sdk/index.js +6 -2
- package/dist/esm/new-sdk/opportunities/OpportunitiesNamespace.js +29 -6
- package/dist/esm/new-sdk/positions/PositionsNamespace.js +3 -6
- package/dist/esm/new-sdk/simulate/SimulateApi.js +360 -0
- package/dist/esm/new-sdk/simulate/index.js +3 -0
- package/dist/esm/new-sdk/utils/index.js +0 -1
- package/dist/esm/offchain/AbstractOffchainNamespace.js +10 -7
- package/dist/esm/offchain/GearboxAPI.js +7 -0
- package/dist/esm/offchain/index.js +3 -1
- package/dist/esm/offchain/notices/OffchainNotices.js +26 -0
- package/dist/esm/offchain/notices/index.js +2 -0
- package/dist/esm/offchain/opportunities/OffchainOpportunities.js +4 -8
- package/dist/esm/offchain/positions/OffchainPositions.js +12 -12
- package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +1 -1
- package/dist/esm/preview/preview/CreditAccountState.js +14 -1
- package/dist/esm/preview/preview/buildDelayedPreview.js +16 -6
- package/dist/esm/preview/preview/previewAdjustCreditAccount.js +9 -2
- package/dist/esm/preview/preview/previewOpenCreditAccount.js +11 -3
- package/dist/esm/preview/preview/previewOperation.js +1 -1
- package/dist/esm/preview/simulate/simulatePoolOperation.js +1 -1
- package/dist/esm/preview/trace/extractTransfers.js +1 -1
- package/dist/esm/sdk/MultichainSDK.js +3 -4
- package/dist/esm/sdk/OnchainSDK.js +42 -13
- package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +4 -10
- package/dist/esm/sdk/accounts/credit-account-compressor/CreditAccountCompressor.js +2 -90
- package/dist/esm/sdk/accounts/index.js +3 -2
- package/dist/esm/sdk/accounts/intents/guards.js +108 -0
- package/dist/esm/sdk/accounts/intents/index.js +214 -358
- package/dist/esm/sdk/accounts/intents/math.js +51 -0
- package/dist/esm/sdk/accounts/intents/open-strategy.js +132 -0
- package/dist/esm/sdk/accounts/intents/operations.js +153 -0
- package/dist/esm/sdk/accounts/intents/plan.js +361 -0
- package/dist/esm/sdk/accounts/intents/realize.js +300 -0
- package/dist/esm/sdk/accounts/intents/testing/delayed.js +38 -0
- package/dist/esm/sdk/accounts/intents/testing/market.js +148 -0
- package/dist/esm/sdk/accounts/intents/testing/sdk-mock.js +194 -35
- package/dist/esm/sdk/accounts/intents/tests/add-collateral.fixtures.js +110 -0
- package/dist/esm/sdk/accounts/intents/tests/adjust-leverage.fixtures.js +234 -0
- package/dist/esm/sdk/accounts/intents/tests/deposit.fixtures.js +302 -0
- package/dist/esm/sdk/accounts/intents/tests/finish-decrease-leverage.fixtures.js +220 -0
- package/dist/esm/sdk/accounts/intents/tests/finish-withdraw.fixtures.js +355 -0
- package/dist/esm/sdk/accounts/intents/tests/open-strategy.fixtures.js +119 -0
- package/dist/esm/sdk/accounts/intents/tests/withdraw-asset.fixtures.js +117 -0
- package/dist/esm/sdk/accounts/intents/tests/withdraw.fixtures.js +402 -0
- package/dist/esm/sdk/accounts/intents/types.js +16 -1
- package/dist/esm/sdk/accounts/intents/utils/adjust-state-to-snapshot.js +17 -0
- package/dist/esm/sdk/accounts/intents/utils/credit-account-slice.js +43 -0
- package/dist/esm/sdk/accounts/intents/utils/index.js +9 -7
- package/dist/esm/sdk/accounts/intents/utils/ledger.js +93 -0
- package/dist/esm/sdk/accounts/intents/utils/pick-token.js +68 -0
- package/dist/esm/sdk/accounts/intents/utils/quotas-for-update.js +27 -1
- package/dist/esm/sdk/accounts/intents/utils/router-path.js +85 -0
- package/dist/esm/sdk/accounts/intents/view.js +37 -0
- package/dist/esm/sdk/accounts/liquidations/LiquidationsService.js +1 -4
- package/dist/esm/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.js +29 -18
- package/dist/esm/sdk/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
- package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
- package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
- package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
- package/dist/esm/sdk/base/BaseContract.js +1 -1
- package/dist/esm/sdk/base/TokensMeta.js +80 -29
- package/dist/esm/sdk/chain/detectNetwork.js +1 -1
- package/dist/esm/sdk/core/createAddressProvider.js +1 -1
- package/dist/esm/sdk/index.js +13 -4
- package/dist/esm/sdk/market/MarketRegister.js +16 -7
- package/dist/esm/sdk/market/ZapperRegister.js +56 -25
- package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +1 -1
- package/dist/esm/sdk/market/credit/CreditManagerV310Contract.js +2 -13
- package/dist/esm/sdk/market/credit/CreditSuite.js +29 -10
- package/dist/esm/sdk/market/credit/index.js +2 -1
- package/dist/esm/sdk/market/credit/isStrategyCollateral.js +48 -0
- package/dist/esm/sdk/market/index.js +3 -1
- package/dist/esm/sdk/market/math.js +52 -40
- package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +10 -3
- package/dist/esm/sdk/market/pool/PoolV310Contract.js +17 -3
- package/dist/esm/sdk/market/rwa/RWARegistry.js +22 -0
- package/dist/esm/sdk/market/zapper/IETHZapperContract.js +1 -1
- package/dist/esm/sdk/market/zapper/ZapperContract.js +1 -1
- package/dist/esm/sdk/opportunities/index.js +1 -2
- package/dist/esm/sdk/options.js +1 -5
- package/dist/esm/sdk/pools/PoolService.js +133 -6
- package/dist/esm/sdk/pools/index.js +2 -2
- package/dist/esm/sdk/positions/PositionsService.js +213 -1
- package/dist/esm/sdk/positions/calcBorrowRate.js +42 -0
- package/dist/esm/sdk/positions/calcHealthFactor.js +51 -0
- package/dist/esm/sdk/positions/calcLiquidationPrice.js +22 -0
- package/dist/esm/sdk/positions/calcLiquidationPriceForTarget.js +29 -0
- package/dist/esm/sdk/positions/calcTimeToLiquidationMs.js +18 -0
- package/dist/esm/sdk/positions/index.js +7 -2
- package/dist/esm/sdk/positions/types.js +31 -1
- package/dist/esm/sdk/utils/abi-decode.js +2 -2
- package/dist/esm/sdk/utils/viem/executeMulticallBatches.js +31 -0
- package/dist/esm/sdk/utils/viem/index.js +2 -1
- package/dist/esm/sdk/utils/viem/simulateWithPriceUpdates.js +1 -1
- package/dist/types/abi/iExpirable.d.ts +14 -0
- package/dist/types/common-utils/utils/apy/get-single-quota-borrow-rate.d.ts +2 -0
- package/dist/types/common-utils/utils/creditAccount/calc-health-factor.d.ts +3 -0
- package/dist/types/common-utils/utils/creditAccount/calc-quota-borrow-rate.d.ts +2 -0
- package/dist/types/common-utils/utils/creditAccount/get-time-to-liquidation.d.ts +6 -1
- package/dist/types/common-utils/utils/creditAccount/liquidation-price.d.ts +3 -0
- package/dist/types/dev/compareOpportunities.d.ts +153 -0
- package/dist/types/model/charts.d.ts +349 -0
- package/dist/types/model/charts.schema.d.ts +364 -0
- package/dist/types/model/index.d.ts +8 -6
- package/dist/types/model/notices.d.ts +29 -0
- package/dist/types/model/notices.schema.d.ts +23 -0
- package/dist/types/model/opportunities.d.ts +9 -9
- package/dist/types/model/positions.d.ts +133 -7
- package/dist/types/model/positions.schema.d.ts +128 -1
- package/dist/types/new-sdk/AbstractNamespace.d.ts +15 -2
- package/dist/types/new-sdk/GearboxSDK.d.ts +14 -2
- package/dist/types/new-sdk/execute/ExecuteApi.d.ts +108 -0
- package/dist/types/new-sdk/execute/index.d.ts +2 -0
- package/dist/types/new-sdk/index.d.ts +8 -4
- package/dist/types/new-sdk/opportunities/OpportunitiesNamespace.d.ts +19 -7
- package/dist/types/new-sdk/opportunities/types.d.ts +30 -9
- package/dist/types/new-sdk/positions/PositionsNamespace.d.ts +4 -5
- package/dist/types/new-sdk/positions/types.d.ts +9 -9
- package/dist/types/new-sdk/simulate/SimulateApi.d.ts +90 -0
- package/dist/types/new-sdk/simulate/index.d.ts +3 -0
- package/dist/types/new-sdk/simulate/types.d.ts +508 -0
- package/dist/types/new-sdk/types.d.ts +35 -1
- package/dist/types/new-sdk/utils/index.d.ts +1 -2
- package/dist/types/offchain/AbstractOffchainNamespace.d.ts +5 -21
- package/dist/types/offchain/GearboxAPI.d.ts +6 -0
- package/dist/types/offchain/index.d.ts +4 -2
- package/dist/types/offchain/notices/OffchainNotices.d.ts +19 -0
- package/dist/types/offchain/notices/index.d.ts +2 -0
- package/dist/types/offchain/opportunities/OffchainOpportunities.d.ts +8 -4
- package/dist/types/offchain/positions/OffchainPositions.d.ts +8 -6
- package/dist/types/preview/preview/CreditAccountState.d.ts +6 -0
- package/dist/types/preview/preview/buildDelayedPreview.d.ts +5 -1
- package/dist/types/preview/preview/types.d.ts +4 -2
- package/dist/types/sdk/MultichainSDK.d.ts +0 -5
- package/dist/types/sdk/OnchainSDK.d.ts +1 -5
- package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -7
- package/dist/types/sdk/accounts/credit-account-compressor/CreditAccountCompressor.d.ts +3 -12
- package/dist/types/sdk/accounts/credit-account-compressor/index.d.ts +2 -2
- package/dist/types/sdk/accounts/credit-account-compressor/types.d.ts +1 -19
- package/dist/types/sdk/accounts/index.d.ts +7 -5
- package/dist/types/sdk/accounts/intents/guards.d.ts +72 -0
- package/dist/types/sdk/accounts/intents/index.d.ts +130 -15
- package/dist/types/sdk/accounts/intents/math.d.ts +46 -0
- package/dist/types/sdk/accounts/intents/open-strategy.d.ts +64 -0
- package/dist/types/sdk/accounts/intents/operations.d.ts +215 -0
- package/dist/types/sdk/accounts/intents/plan.d.ts +189 -0
- package/dist/types/sdk/accounts/intents/realize.d.ts +35 -0
- package/dist/types/sdk/accounts/intents/testing/delayed.d.ts +50 -0
- package/dist/types/sdk/accounts/intents/testing/expect.d.ts +17 -21
- package/dist/types/sdk/accounts/intents/testing/market.d.ts +91 -0
- package/dist/types/sdk/accounts/intents/testing/sdk-mock.d.ts +64 -16
- package/dist/types/sdk/accounts/intents/tests/add-collateral.fixtures.d.ts +45 -0
- package/dist/types/sdk/accounts/intents/tests/adjust-leverage.fixtures.d.ts +56 -0
- package/dist/types/sdk/accounts/intents/tests/deposit.fixtures.d.ts +64 -0
- package/dist/types/sdk/accounts/intents/tests/finish-decrease-leverage.fixtures.d.ts +107 -0
- package/dist/types/sdk/accounts/intents/tests/finish-withdraw.fixtures.d.ts +136 -0
- package/dist/types/sdk/accounts/intents/tests/open-strategy.fixtures.d.ts +56 -0
- package/dist/types/sdk/accounts/intents/tests/withdraw-asset.fixtures.d.ts +60 -0
- package/dist/types/sdk/accounts/intents/tests/withdraw.fixtures.d.ts +79 -0
- package/dist/types/sdk/accounts/intents/types.d.ts +369 -43
- package/dist/types/sdk/accounts/intents/utils/adjust-state-to-snapshot.d.ts +13 -0
- package/dist/types/sdk/accounts/intents/utils/assemble-operation-calls.d.ts +1 -1
- package/dist/types/sdk/accounts/intents/utils/credit-account-slice.d.ts +29 -0
- package/dist/types/sdk/accounts/intents/utils/index.d.ts +7 -5
- package/dist/types/sdk/accounts/intents/utils/ledger.d.ts +41 -0
- package/dist/types/sdk/accounts/intents/utils/pick-token.d.ts +55 -0
- package/dist/types/sdk/accounts/intents/utils/quotas-for-update.d.ts +15 -4
- package/dist/types/sdk/accounts/intents/utils/router-path.d.ts +70 -0
- package/dist/types/sdk/accounts/intents/view.d.ts +15 -0
- package/dist/types/sdk/accounts/types.d.ts +17 -14
- package/dist/types/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.d.ts +6 -0
- package/dist/types/sdk/accounts/withdrawal-compressor/types.d.ts +18 -0
- package/dist/types/sdk/base/TokensMeta.d.ts +44 -1
- package/dist/types/sdk/base/index.d.ts +2 -2
- package/dist/types/sdk/base/token-types.d.ts +12 -1
- package/dist/types/sdk/index.d.ts +28 -19
- package/dist/types/sdk/market/MarketRegister.d.ts +7 -3
- package/dist/types/sdk/market/ZapperRegister.d.ts +20 -2
- package/dist/types/sdk/market/credit/CreditManagerV310Contract.d.ts +0 -4
- package/dist/types/sdk/market/credit/CreditSuite.d.ts +6 -3
- package/dist/types/sdk/market/credit/index.d.ts +2 -1
- package/dist/types/sdk/market/credit/isStrategyCollateral.d.ts +74 -0
- package/dist/types/sdk/market/credit/types.d.ts +2 -9
- package/dist/types/sdk/market/index.d.ts +4 -2
- package/dist/types/sdk/market/math.d.ts +44 -34
- package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +6 -2
- package/dist/types/sdk/market/oracle/types.d.ts +10 -2
- package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +5 -0
- package/dist/types/sdk/market/pool/types.d.ts +5 -0
- package/dist/types/sdk/market/rwa/RWARegistry.d.ts +13 -0
- package/dist/types/sdk/market/types.d.ts +5 -1
- package/dist/types/sdk/opportunities/index.d.ts +1 -2
- package/dist/types/sdk/options.d.ts +0 -1
- package/dist/types/sdk/pools/PoolService.d.ts +32 -2
- package/dist/types/sdk/pools/index.d.ts +3 -3
- package/dist/types/sdk/pools/types.d.ts +109 -4
- package/dist/types/sdk/positions/PositionsService.d.ts +33 -2
- package/dist/types/sdk/positions/calcBorrowRate.d.ts +40 -0
- package/dist/types/sdk/positions/calcHealthFactor.d.ts +55 -0
- package/dist/types/sdk/positions/calcLiquidationPrice.d.ts +12 -0
- package/dist/types/sdk/positions/calcLiquidationPriceForTarget.d.ts +43 -0
- package/dist/types/sdk/positions/calcTimeToLiquidationMs.d.ts +16 -0
- package/dist/types/sdk/positions/index.d.ts +7 -2
- package/dist/types/sdk/positions/types.d.ts +58 -1
- package/dist/types/sdk/types/state.d.ts +6 -0
- package/dist/types/sdk/utils/viem/executeMulticallBatches.d.ts +39 -0
- package/dist/types/sdk/utils/viem/index.d.ts +3 -2
- package/package.json +2 -1
- package/dist/cjs/model/history.js +0 -53
- package/dist/cjs/model/history.schema.js +0 -128
- package/dist/cjs/sdk/accounts/intents/intents/index.js +0 -14
- package/dist/cjs/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.fixtures.js +0 -121
- package/dist/cjs/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.js +0 -15
- package/dist/cjs/sdk/accounts/intents/intents/resume/close/close.fixtures.js +0 -108
- package/dist/cjs/sdk/accounts/intents/intents/resume/close/close.js +0 -51
- package/dist/cjs/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.fixtures.js +0 -130
- package/dist/cjs/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.js +0 -83
- package/dist/cjs/sdk/accounts/intents/intents/resume/deposit/deposit.fixtures.js +0 -117
- package/dist/cjs/sdk/accounts/intents/intents/resume/deposit/deposit.js +0 -15
- package/dist/cjs/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.fixtures.js +0 -95
- package/dist/cjs/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.js +0 -15
- package/dist/cjs/sdk/accounts/intents/intents/resume/index.js +0 -13
- package/dist/cjs/sdk/accounts/intents/intents/resume/withdraw/withdraw.fixtures.js +0 -138
- package/dist/cjs/sdk/accounts/intents/intents/resume/withdraw/withdraw.js +0 -161
- package/dist/cjs/sdk/accounts/intents/operations/add-collateral/index.js +0 -17
- package/dist/cjs/sdk/accounts/intents/operations/claim-delayed/index.js +0 -54
- package/dist/cjs/sdk/accounts/intents/operations/close-credit-account/index.js +0 -26
- package/dist/cjs/sdk/accounts/intents/operations/decrease-debt/index.js +0 -12
- package/dist/cjs/sdk/accounts/intents/operations/increase-debt/index.js +0 -12
- package/dist/cjs/sdk/accounts/intents/operations/index.js +0 -27
- package/dist/cjs/sdk/accounts/intents/operations/quota-update/index.js +0 -22
- package/dist/cjs/sdk/accounts/intents/operations/repay-credit-account/index.js +0 -22
- package/dist/cjs/sdk/accounts/intents/operations/start-delayed-withdrawal/index.js +0 -18
- package/dist/cjs/sdk/accounts/intents/operations/swap/index.js +0 -18
- package/dist/cjs/sdk/accounts/intents/operations/unwrap-rwa-collateral/index.js +0 -27
- package/dist/cjs/sdk/accounts/intents/operations/withdraw-collateral/index.js +0 -43
- package/dist/cjs/sdk/accounts/intents/operations/wrap-rwa-collateral/index.js +0 -27
- package/dist/cjs/sdk/accounts/intents/quoters/close.js +0 -58
- package/dist/cjs/sdk/accounts/intents/quoters/index.js +0 -7
- package/dist/cjs/sdk/accounts/intents/quoters/swap.js +0 -79
- package/dist/cjs/sdk/accounts/intents/testing/expect.js +0 -167
- package/dist/cjs/sdk/accounts/intents/testing/resume.js +0 -172
- package/dist/cjs/sdk/accounts/intents/utils/simulate-adjust-state.js +0 -39
- package/dist/cjs/sdk/accounts/intents/utils/simulate-assets.js +0 -69
- package/dist/cjs/sdk/accounts/intents/utils/with-quota-update.js +0 -13
- package/dist/esm/model/history.js +0 -49
- package/dist/esm/model/history.schema.js +0 -116
- package/dist/esm/sdk/accounts/intents/intents/index.js +0 -8
- package/dist/esm/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.fixtures.js +0 -107
- package/dist/esm/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.js +0 -14
- package/dist/esm/sdk/accounts/intents/intents/resume/close/close.fixtures.js +0 -94
- package/dist/esm/sdk/accounts/intents/intents/resume/close/close.js +0 -50
- package/dist/esm/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.fixtures.js +0 -114
- package/dist/esm/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.js +0 -82
- package/dist/esm/sdk/accounts/intents/intents/resume/deposit/deposit.fixtures.js +0 -110
- package/dist/esm/sdk/accounts/intents/intents/resume/deposit/deposit.js +0 -14
- package/dist/esm/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.fixtures.js +0 -88
- package/dist/esm/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.js +0 -14
- package/dist/esm/sdk/accounts/intents/intents/resume/index.js +0 -7
- package/dist/esm/sdk/accounts/intents/intents/resume/withdraw/withdraw.fixtures.js +0 -121
- package/dist/esm/sdk/accounts/intents/intents/resume/withdraw/withdraw.js +0 -160
- package/dist/esm/sdk/accounts/intents/operations/add-collateral/index.js +0 -16
- package/dist/esm/sdk/accounts/intents/operations/claim-delayed/index.js +0 -52
- package/dist/esm/sdk/accounts/intents/operations/close-credit-account/index.js +0 -25
- package/dist/esm/sdk/accounts/intents/operations/decrease-debt/index.js +0 -11
- package/dist/esm/sdk/accounts/intents/operations/increase-debt/index.js +0 -11
- package/dist/esm/sdk/accounts/intents/operations/index.js +0 -14
- package/dist/esm/sdk/accounts/intents/operations/quota-update/index.js +0 -21
- package/dist/esm/sdk/accounts/intents/operations/repay-credit-account/index.js +0 -21
- package/dist/esm/sdk/accounts/intents/operations/start-delayed-withdrawal/index.js +0 -17
- package/dist/esm/sdk/accounts/intents/operations/swap/index.js +0 -17
- package/dist/esm/sdk/accounts/intents/operations/unwrap-rwa-collateral/index.js +0 -26
- package/dist/esm/sdk/accounts/intents/operations/withdraw-collateral/index.js +0 -42
- package/dist/esm/sdk/accounts/intents/operations/wrap-rwa-collateral/index.js +0 -26
- package/dist/esm/sdk/accounts/intents/quoters/close.js +0 -56
- package/dist/esm/sdk/accounts/intents/quoters/index.js +0 -3
- package/dist/esm/sdk/accounts/intents/quoters/swap.js +0 -77
- package/dist/esm/sdk/accounts/intents/testing/expect.js +0 -162
- package/dist/esm/sdk/accounts/intents/testing/resume.js +0 -157
- package/dist/esm/sdk/accounts/intents/utils/simulate-adjust-state.js +0 -38
- package/dist/esm/sdk/accounts/intents/utils/simulate-assets.js +0 -68
- package/dist/esm/sdk/accounts/intents/utils/with-quota-update.js +0 -12
- package/dist/types/model/history.d.ts +0 -153
- package/dist/types/model/history.schema.d.ts +0 -95
- package/dist/types/new-sdk/utils/history.d.ts +0 -18
- package/dist/types/sdk/accounts/intents/intents/index.d.ts +0 -8
- package/dist/types/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.d.ts +0 -13
- package/dist/types/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.fixtures.d.ts +0 -38
- package/dist/types/sdk/accounts/intents/intents/resume/close/close.d.ts +0 -26
- package/dist/types/sdk/accounts/intents/intents/resume/close/close.fixtures.d.ts +0 -63
- package/dist/types/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.d.ts +0 -26
- package/dist/types/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.fixtures.d.ts +0 -86
- package/dist/types/sdk/accounts/intents/intents/resume/deposit/deposit.d.ts +0 -13
- package/dist/types/sdk/accounts/intents/intents/resume/deposit/deposit.fixtures.d.ts +0 -48
- package/dist/types/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.d.ts +0 -13
- package/dist/types/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.fixtures.d.ts +0 -46
- package/dist/types/sdk/accounts/intents/intents/resume/index.d.ts +0 -7
- package/dist/types/sdk/accounts/intents/intents/resume/withdraw/withdraw.d.ts +0 -33
- package/dist/types/sdk/accounts/intents/intents/resume/withdraw/withdraw.fixtures.d.ts +0 -68
- package/dist/types/sdk/accounts/intents/operations/add-collateral/index.d.ts +0 -23
- package/dist/types/sdk/accounts/intents/operations/claim-delayed/index.d.ts +0 -55
- package/dist/types/sdk/accounts/intents/operations/close-credit-account/index.d.ts +0 -22
- package/dist/types/sdk/accounts/intents/operations/decrease-debt/index.d.ts +0 -18
- package/dist/types/sdk/accounts/intents/operations/increase-debt/index.d.ts +0 -18
- package/dist/types/sdk/accounts/intents/operations/index.d.ts +0 -14
- package/dist/types/sdk/accounts/intents/operations/quota-update/index.d.ts +0 -24
- package/dist/types/sdk/accounts/intents/operations/repay-credit-account/index.d.ts +0 -31
- package/dist/types/sdk/accounts/intents/operations/start-delayed-withdrawal/index.d.ts +0 -23
- package/dist/types/sdk/accounts/intents/operations/swap/index.d.ts +0 -28
- package/dist/types/sdk/accounts/intents/operations/types.d.ts +0 -21
- package/dist/types/sdk/accounts/intents/operations/unwrap-rwa-collateral/index.d.ts +0 -30
- package/dist/types/sdk/accounts/intents/operations/withdraw-collateral/index.d.ts +0 -36
- package/dist/types/sdk/accounts/intents/operations/wrap-rwa-collateral/index.d.ts +0 -30
- package/dist/types/sdk/accounts/intents/quoters/close.d.ts +0 -43
- package/dist/types/sdk/accounts/intents/quoters/index.d.ts +0 -3
- package/dist/types/sdk/accounts/intents/quoters/swap.d.ts +0 -43
- package/dist/types/sdk/accounts/intents/testing/resume.d.ts +0 -84
- package/dist/types/sdk/accounts/intents/utils/simulate-adjust-state.d.ts +0 -19
- package/dist/types/sdk/accounts/intents/utils/simulate-assets.d.ts +0 -21
- package/dist/types/sdk/accounts/intents/utils/with-quota-update.d.ts +0 -16
- /package/dist/cjs/{new-sdk/utils/history.js → model/notices.js} +0 -0
- /package/dist/cjs/{sdk/accounts/intents/operations → new-sdk/simulate}/types.js +0 -0
- /package/dist/esm/{new-sdk/utils/history.js → model/notices.js} +0 -0
- /package/dist/esm/{sdk/accounts/intents/operations → new-sdk/simulate}/types.js +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iExpirable = require("../../abi/iExpirable.js");
|
|
2
3
|
const require_abi_iStateSerializer = require("../../abi/iStateSerializer.js");
|
|
3
4
|
const require_abi_iVersion = require("../../abi/iVersion.js");
|
|
4
5
|
const require_sdk_utils_AddressMap = require("../utils/AddressMap.js");
|
|
@@ -7,6 +8,7 @@ const require_sdk_utils_bytes32ToString = require("../utils/bytes32ToString.js")
|
|
|
7
8
|
const require_sdk_chain_chains = require("../chain/chains.js");
|
|
8
9
|
const require_sdk_utils_formatter = require("../utils/formatter.js");
|
|
9
10
|
require("../utils/index.js");
|
|
11
|
+
const require_sdk_utils_viem_executeMulticallBatches = require("../utils/viem/executeMulticallBatches.js");
|
|
10
12
|
//#region src/sdk/base/TokensMeta.ts
|
|
11
13
|
/**
|
|
12
14
|
* Registry of token metadata (symbol, decimals, phantom type) keyed by address.
|
|
@@ -63,7 +65,7 @@ var TokensMeta = class extends require_sdk_utils_AddressMap.AddressMap {
|
|
|
63
65
|
* @returns
|
|
64
66
|
*/
|
|
65
67
|
isPhantomToken(t) {
|
|
66
|
-
if (!this.#tokenDataLoaded.has(t.addr)) throw new Error(`extended token data not loaded for ${t.symbol} (${t.addr})`);
|
|
68
|
+
if (!this.#tokenDataLoaded.has(t.addr)) throw new Error(`extended token data not loaded for ${t.symbol} (${t.addr}), check if the sdk was properly attached or hydrated`);
|
|
67
69
|
return !!t.contractType?.startsWith("PHANTOM_TOKEN::");
|
|
68
70
|
}
|
|
69
71
|
/**
|
|
@@ -168,44 +170,93 @@ var TokensMeta = class extends require_sdk_utils_AddressMap.AddressMap {
|
|
|
168
170
|
return meta;
|
|
169
171
|
}
|
|
170
172
|
/**
|
|
173
|
+
* @internal
|
|
174
|
+
*
|
|
175
|
+
* Returns the multicall batch that loads extended token data (`contractType`
|
|
176
|
+
* and `serialize()`) for the tokens that do not have it yet. Used by the SDK
|
|
177
|
+
* to warm this cache together with other loaders in a single multicall.
|
|
178
|
+
*
|
|
179
|
+
* @param tokens - tokens to load data for, defaults to all tokens
|
|
180
|
+
**/
|
|
181
|
+
getLoadTokenDataMulticall(...tokens) {
|
|
182
|
+
const tokenz = new require_sdk_utils_AddressSet.AddressSet(tokens.length > 0 ? tokens : this.keys());
|
|
183
|
+
const tokensToLoad = Array.from(tokenz.difference(this.#tokenDataLoaded));
|
|
184
|
+
return {
|
|
185
|
+
contracts: tokensToLoad.flatMap((t) => [
|
|
186
|
+
{
|
|
187
|
+
address: t,
|
|
188
|
+
abi: require_abi_iVersion.iVersionAbi,
|
|
189
|
+
functionName: "contractType"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
address: t,
|
|
193
|
+
abi: require_abi_iStateSerializer.iStateSerializerAbi,
|
|
194
|
+
functionName: "serialize"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
address: t,
|
|
198
|
+
abi: require_abi_iExpirable.iExpirableAbi,
|
|
199
|
+
functionName: "isExpired"
|
|
200
|
+
}
|
|
201
|
+
]),
|
|
202
|
+
onResults: (resps) => {
|
|
203
|
+
this.#logger?.debug(`loaded data of ${tokensToLoad.length} tokens`);
|
|
204
|
+
for (let i = 0; i < tokensToLoad.length; i++) {
|
|
205
|
+
this.#overrideTokenMeta(tokensToLoad[i], resps[3 * i], resps[3 * i + 1], resps[3 * i + 2]);
|
|
206
|
+
this.#tokenDataLoaded.add(tokensToLoad[i]);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
171
212
|
* Loads token information about phantom tokens
|
|
172
213
|
* In future other custom tokens types that do not have compressors might be handled here
|
|
173
214
|
*
|
|
215
|
+
* Tokens loaded during SDK attach or restored by {@link hydrate} are skipped,
|
|
216
|
+
* so calling this after either is a no-op.
|
|
217
|
+
*
|
|
174
218
|
* @param tokens - tokens to load data for, defaults to all tokens
|
|
175
219
|
*/
|
|
176
220
|
async loadTokenData(...tokens) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
abi: require_abi_iStateSerializer.iStateSerializerAbi,
|
|
188
|
-
functionName: "serialize"
|
|
189
|
-
}]),
|
|
190
|
-
allowFailure: true,
|
|
191
|
-
batchSize: 0
|
|
192
|
-
});
|
|
193
|
-
this.#logger?.debug(`loaded ${resp.length} contract types`);
|
|
194
|
-
for (let i = 0; i < tokensToLoad.length; i++) {
|
|
195
|
-
this.#overrideTokenMeta(tokensToLoad[i], resp[2 * i], resp[2 * i + 1]);
|
|
196
|
-
this.#tokenDataLoaded.add(tokensToLoad[i]);
|
|
197
|
-
}
|
|
221
|
+
await require_sdk_utils_viem_executeMulticallBatches.executeMulticallBatches(this.#client, [this.getLoadTokenDataMulticall(...tokens)]);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Serializable snapshot of all token metadata, suitable for hydration.
|
|
225
|
+
**/
|
|
226
|
+
get state() {
|
|
227
|
+
return {
|
|
228
|
+
tokens: this.values(),
|
|
229
|
+
extendedLoaded: this.#tokenDataLoaded.asArray()
|
|
230
|
+
};
|
|
198
231
|
}
|
|
199
|
-
|
|
232
|
+
/**
|
|
233
|
+
* Restores token metadata from a previously serialized snapshot,
|
|
234
|
+
* bypassing on-chain reads.
|
|
235
|
+
*
|
|
236
|
+
* Entries are merged into the ones already registered by markets, zappers and
|
|
237
|
+
* the RWA registry (see {@link upsert}), so the snapshot must be applied last
|
|
238
|
+
* for its augmented fields to win.
|
|
239
|
+
*
|
|
240
|
+
* @param state - Token metadata snapshot.
|
|
241
|
+
**/
|
|
242
|
+
hydrate(state) {
|
|
243
|
+
for (const token of state.tokens) this.upsert(token.addr, token);
|
|
244
|
+
for (const token of state.extendedLoaded) this.#tokenDataLoaded.add(token);
|
|
245
|
+
}
|
|
246
|
+
#overrideTokenMeta(token, contractTypeResp, serializeResp, isExpiredResp) {
|
|
200
247
|
const meta = this.mustGet(token);
|
|
248
|
+
const update = { ...meta };
|
|
201
249
|
if (contractTypeResp.status === "success") {
|
|
202
250
|
const contractType = require_sdk_utils_bytes32ToString.bytes32ToString(contractTypeResp.result);
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
contractType
|
|
206
|
-
});
|
|
251
|
+
update.contractType = contractType;
|
|
252
|
+
update.serializedParams = serializeResp.status === "success" ? serializeResp.result : void 0;
|
|
207
253
|
this.#logger?.debug(`token ${meta.symbol} is ${contractType}`);
|
|
208
254
|
}
|
|
255
|
+
if (isExpiredResp.status === "success") {
|
|
256
|
+
update.isExpired = isExpiredResp.result;
|
|
257
|
+
this.#logger?.debug(`token ${meta.symbol} is expirable, expired: ${isExpiredResp.result}`);
|
|
258
|
+
}
|
|
259
|
+
if (contractTypeResp.status === "success" || isExpiredResp.status === "success") this.upsert(token, update);
|
|
209
260
|
return this.mustGet(token);
|
|
210
261
|
}
|
|
211
262
|
};
|
package/dist/cjs/sdk/index.js
CHANGED
|
@@ -31,6 +31,7 @@ const require_sdk_utils_zod = require("./utils/zod.js");
|
|
|
31
31
|
require("./utils/index.js");
|
|
32
32
|
const require_sdk_utils_viem_cast = require("./utils/viem/cast.js");
|
|
33
33
|
const require_sdk_utils_viem_simulateCall = require("./utils/viem/simulateCall.js");
|
|
34
|
+
const require_sdk_utils_viem_executeMulticallBatches = require("./utils/viem/executeMulticallBatches.js");
|
|
34
35
|
const require_sdk_base_TokensMeta = require("./base/TokensMeta.js");
|
|
35
36
|
const require_sdk_base_ChainContractsRegister = require("./base/ChainContractsRegister.js");
|
|
36
37
|
const require_sdk_base_Construct = require("./base/Construct.js");
|
|
@@ -52,6 +53,7 @@ const require_sdk_market_credit_CreditFacadeV310Contract = require("./market/cre
|
|
|
52
53
|
const require_sdk_market_math = require("./market/math.js");
|
|
53
54
|
const require_sdk_market_credit_CreditManagerV310Contract = require("./market/credit/CreditManagerV310Contract.js");
|
|
54
55
|
const require_sdk_market_credit_dominantCollateral = require("./market/credit/dominantCollateral.js");
|
|
56
|
+
const require_sdk_market_credit_isStrategyCollateral = require("./market/credit/isStrategyCollateral.js");
|
|
55
57
|
const require_sdk_market_credit_CreditSuite = require("./market/credit/CreditSuite.js");
|
|
56
58
|
const require_sdk_market_credit_expectedBalanceDeltas = require("./market/credit/expectedBalanceDeltas.js");
|
|
57
59
|
const require_sdk_utils_viem_simulateMulticall = require("./utils/viem/simulateMulticall.js");
|
|
@@ -108,7 +110,8 @@ require("./market/index.js");
|
|
|
108
110
|
const require_sdk_accounts_credit_account_compressor_CreditAccountCompressorV310Contract = require("./accounts/credit-account-compressor/CreditAccountCompressorV310Contract.js");
|
|
109
111
|
const require_sdk_accounts_credit_account_compressor_CreditAccountCompressor = require("./accounts/credit-account-compressor/CreditAccountCompressor.js");
|
|
110
112
|
const require_sdk_accounts_CreditAccountsServiceV310 = require("./accounts/CreditAccountsServiceV310.js");
|
|
111
|
-
const
|
|
113
|
+
const require_sdk_accounts_intents_types = require("./accounts/intents/types.js");
|
|
114
|
+
const require_sdk_accounts_intents_utils_credit_account_slice = require("./accounts/intents/utils/credit-account-slice.js");
|
|
112
115
|
const require_sdk_accounts_intents_index = require("./accounts/intents/index.js");
|
|
113
116
|
const require_sdk_accounts_liquidations_constants = require("./accounts/liquidations/constants.js");
|
|
114
117
|
const require_sdk_accounts_liquidations_LiquidationsService = require("./accounts/liquidations/LiquidationsService.js");
|
|
@@ -137,7 +140,13 @@ const require_sdk_plugins_errors = require("./plugins/errors.js");
|
|
|
137
140
|
require("./plugins/index.js");
|
|
138
141
|
const require_sdk_pools_PoolService = require("./pools/PoolService.js");
|
|
139
142
|
require("./pools/index.js");
|
|
143
|
+
const require_sdk_positions_calcBorrowRate = require("./positions/calcBorrowRate.js");
|
|
144
|
+
const require_sdk_positions_calcHealthFactor = require("./positions/calcHealthFactor.js");
|
|
145
|
+
const require_sdk_positions_calcLiquidationPriceForTarget = require("./positions/calcLiquidationPriceForTarget.js");
|
|
146
|
+
const require_sdk_positions_calcLiquidationPrice = require("./positions/calcLiquidationPrice.js");
|
|
147
|
+
const require_sdk_positions_calcTimeToLiquidationMs = require("./positions/calcTimeToLiquidationMs.js");
|
|
140
148
|
const require_sdk_positions_MultichainPositionsService = require("./positions/MultichainPositionsService.js");
|
|
149
|
+
const require_sdk_positions_types = require("./positions/types.js");
|
|
141
150
|
const require_sdk_positions_PositionsService = require("./positions/PositionsService.js");
|
|
142
151
|
require("./positions/index.js");
|
|
143
152
|
const require_sdk_router_helpers = require("./router/helpers.js");
|
|
@@ -225,6 +234,7 @@ exports.ExternalPriceFeedContract = require_sdk_market_pricefeeds_ExternalPriceF
|
|
|
225
234
|
exports.GaugeContract = require_sdk_market_pool_GaugeContract.GaugeContract;
|
|
226
235
|
exports.IERC20ZapperContract = require_sdk_market_zapper_IERC20ZapperContract.IERC20ZapperContract;
|
|
227
236
|
exports.IETHZapperContract = require_sdk_market_zapper_IETHZapperContract.IETHZapperContract;
|
|
237
|
+
exports.IntentPreviewError = require_sdk_accounts_intents_types.IntentPreviewError;
|
|
228
238
|
exports.InvalidDelayedIntentError = require_sdk_accounts_withdrawal_compressor_errors.InvalidDelayedIntentError;
|
|
229
239
|
exports.LEVERAGE_DECIMALS = require_sdk_constants_math.LEVERAGE_DECIMALS;
|
|
230
240
|
exports.LIQUIDATION_APPROVAL_BUFFER = require_sdk_accounts_liquidations_constants.LIQUIDATION_APPROVAL_BUFFER;
|
|
@@ -232,6 +242,7 @@ exports.LIQUIDATION_COMPRESSOR_V313_ADDRESS = require_sdk_accounts_liquidations_
|
|
|
232
242
|
exports.LinearInterestRateModelContract = require_sdk_market_pool_LinearInterestRateModelContract.LinearInterestRateModelContract;
|
|
233
243
|
exports.LiquidationsService = require_sdk_accounts_liquidations_LiquidationsService.LiquidationsService;
|
|
234
244
|
exports.MAX_INT = require_sdk_constants_math.MAX_INT;
|
|
245
|
+
exports.MAX_LEVERAGE_BUFFER_BPS = require_sdk_market_math.MAX_LEVERAGE_BUFFER_BPS;
|
|
235
246
|
exports.MAX_UINT16 = require_sdk_constants_math.MAX_UINT16;
|
|
236
247
|
exports.MAX_UINT256 = require_sdk_constants_math.MAX_UINT256;
|
|
237
248
|
exports.MIN_INT96 = require_sdk_constants_math.MIN_INT96;
|
|
@@ -247,6 +258,7 @@ exports.MultichainOpportunitiesService = require_sdk_opportunities_MultichainOpp
|
|
|
247
258
|
exports.MultichainPositionsService = require_sdk_positions_MultichainPositionsService.MultichainPositionsService;
|
|
248
259
|
exports.MultichainSDK = require_sdk_MultichainSDK.MultichainSDK;
|
|
249
260
|
exports.NATIVE_ADDRESS = require_sdk_constants_addresses.NATIVE_ADDRESS;
|
|
261
|
+
exports.NON_STRATEGY_PHANTOM_TOKEN_TYPES = require_sdk_market_credit_isStrategyCollateral.NON_STRATEGY_PHANTOM_TOKEN_TYPES;
|
|
250
262
|
exports.NOT_DEPLOYED = require_sdk_constants_addresses.NOT_DEPLOYED;
|
|
251
263
|
exports.NO_VERSION = require_sdk_constants_address_provider.NO_VERSION;
|
|
252
264
|
exports.NetworkType = require_sdk_chain_chains.NetworkType;
|
|
@@ -323,12 +335,21 @@ exports.ZeroPriceFeedContract = require_sdk_market_pricefeeds_ZeroPriceFeed.Zero
|
|
|
323
335
|
exports.ZodAddress = require_sdk_utils_zod.ZodAddress;
|
|
324
336
|
exports.ZodBigInt = require_sdk_utils_zod.ZodBigInt;
|
|
325
337
|
exports.ZodHex = require_sdk_utils_zod.ZodHex;
|
|
326
|
-
exports.
|
|
338
|
+
exports.accountSnapshotFromCreditAccountData = require_sdk_positions_types.accountSnapshotFromCreditAccountData;
|
|
327
339
|
exports.assetsMap = require_sdk_router_helpers.assetsMap;
|
|
328
340
|
exports.attachOptionsSchema = require_sdk_options.attachOptionsSchema;
|
|
329
|
-
exports.borrowApyBps = require_sdk_market_math.borrowApyBps;
|
|
330
341
|
exports.botPermissionsToString = require_sdk_constants_bot_permissions.botPermissionsToString;
|
|
331
342
|
exports.bytes32ToString = require_sdk_utils_bytes32ToString.bytes32ToString;
|
|
343
|
+
exports.calcAdditionalBorrowApy = require_sdk_market_math.calcAdditionalBorrowApy;
|
|
344
|
+
exports.calcBorrowApy = require_sdk_market_math.calcBorrowApy;
|
|
345
|
+
exports.calcBorrowRate = require_sdk_positions_calcBorrowRate.calcBorrowRate;
|
|
346
|
+
exports.calcHealthFactor = require_sdk_positions_calcHealthFactor.calcHealthFactor;
|
|
347
|
+
exports.calcLiquidationPrice = require_sdk_positions_calcLiquidationPrice.calcLiquidationPrice;
|
|
348
|
+
exports.calcLiquidationPriceForTarget = require_sdk_positions_calcLiquidationPriceForTarget.calcLiquidationPriceForTarget;
|
|
349
|
+
exports.calcMaxLeverage = require_sdk_market_math.calcMaxLeverage;
|
|
350
|
+
exports.calcPositionLeverage = require_sdk_market_math.calcPositionLeverage;
|
|
351
|
+
exports.calcTimeToLiquidationMs = require_sdk_positions_calcTimeToLiquidationMs.calcTimeToLiquidationMs;
|
|
352
|
+
exports.calcUtilization = require_sdk_market_math.calcUtilization;
|
|
332
353
|
exports.chains = require_sdk_chain_chains.chains;
|
|
333
354
|
exports.childLogger = require_sdk_utils_childLogger.childLogger;
|
|
334
355
|
exports.createAdapter = require_sdk_market_adapters_createAdapter.createAdapter;
|
|
@@ -348,7 +369,9 @@ exports.estimateRawTxGas = require_sdk_utils_viem_sendRawTx.estimateRawTxGas;
|
|
|
348
369
|
exports.etherscanApiUrl = require_sdk_utils_etherscan.etherscanApiUrl;
|
|
349
370
|
exports.etherscanUrl = require_sdk_utils_etherscan.etherscanUrl;
|
|
350
371
|
exports.executeDelegatedMulticalls = require_sdk_utils_viem_executeDelegatedMulticalls.executeDelegatedMulticalls;
|
|
372
|
+
exports.executeMulticallBatches = require_sdk_utils_viem_executeMulticallBatches.executeMulticallBatches;
|
|
351
373
|
exports.expectedBalanceDeltas = require_sdk_market_credit_expectedBalanceDeltas.expectedBalanceDeltas;
|
|
374
|
+
exports.fetchCreditAccountSlice = require_sdk_accounts_intents_utils_credit_account_slice.fetchCreditAccountSlice;
|
|
352
375
|
exports.fetchRedstonePayloads = require_sdk_market_pricefeeds_updates_fetchRedstonePayloads.fetchRedstonePayloads;
|
|
353
376
|
exports.filterDust = require_sdk_utils_filterDust.filterDust;
|
|
354
377
|
exports.filterDustUSD = require_sdk_utils_filterDust.filterDustUSD;
|
|
@@ -383,6 +406,7 @@ exports.isLPPriceFeed = require_sdk_market_pricefeeds_AbstractLPPriceFeed.isLPPr
|
|
|
383
406
|
exports.isPublicNetwork = require_sdk_chain_chains.isPublicNetwork;
|
|
384
407
|
exports.isRWAFactory = require_sdk_market_rwa_types.isRWAFactory;
|
|
385
408
|
exports.isRWAToken = require_sdk_chain_chains.isRWAToken;
|
|
409
|
+
exports.isStrategyCollateral = require_sdk_market_credit_isStrategyCollateral.isStrategyCollateral;
|
|
386
410
|
exports.isSunsetPool = require_sdk_chain_chains.isSunsetPool;
|
|
387
411
|
exports.isSunsetStrategy = require_sdk_chain_chains.isSunsetStrategy;
|
|
388
412
|
exports.isSupportedNetwork = require_sdk_chain_chains.isSupportedNetwork;
|
|
@@ -391,7 +415,6 @@ exports.isV310 = require_sdk_constants_versions.isV310;
|
|
|
391
415
|
exports.isVersionRange = require_sdk_constants_versions.isVersionRange;
|
|
392
416
|
exports.json_parse = require_sdk_utils_json.json_parse;
|
|
393
417
|
exports.json_stringify = require_sdk_utils_json.json_stringify;
|
|
394
|
-
exports.maxLeverage = require_sdk_market_math.maxLeverage;
|
|
395
418
|
exports.minSeizedAmount = require_sdk_market_math.minSeizedAmount;
|
|
396
419
|
exports.mustGetDominantCollateral = require_sdk_market_credit_dominantCollateral.mustGetDominantCollateral;
|
|
397
420
|
exports.numberWithCommas = require_sdk_utils_formatter.numberWithCommas;
|
|
@@ -399,8 +422,6 @@ exports.onchainSDKOptionsSchema = require_sdk_options.onchainSDKOptionsSchema;
|
|
|
399
422
|
exports.optimalHFForPartialLiquidation = require_sdk_market_math.optimalHFForPartialLiquidation;
|
|
400
423
|
exports.optimalRepaidAmount = require_sdk_market_math.optimalRepaidAmount;
|
|
401
424
|
exports.percentFmt = require_sdk_utils_formatter.percentFmt;
|
|
402
|
-
exports.positionLeverage = require_sdk_market_math.positionLeverage;
|
|
403
|
-
exports.primaryInstantOutput = require_sdk_accounts_intents_operations_claim_delayed_index.primaryInstantOutput;
|
|
404
425
|
exports.rayToBps = require_sdk_market_math.rayToBps;
|
|
405
426
|
exports.rayToNumber = require_sdk_utils_formatter.rayToNumber;
|
|
406
427
|
exports.retry = require_sdk_utils_retry.retry;
|
|
@@ -415,10 +436,12 @@ exports.toBN = require_sdk_utils_formatter.toBN;
|
|
|
415
436
|
exports.toBigInt = require_sdk_utils_formatter.toBigInt;
|
|
416
437
|
exports.toChainIds = require_sdk_chain_chains.toChainIds;
|
|
417
438
|
exports.toClaimableWithdrawal = require_sdk_accounts_withdrawal_compressor_AbstractWithdrawalCompressorContract.toClaimableWithdrawal;
|
|
439
|
+
exports.toCreditAccountSlice = require_sdk_accounts_intents_utils_credit_account_slice.toCreditAccountSlice;
|
|
418
440
|
exports.toPendingWithdrawal = require_sdk_accounts_withdrawal_compressor_AbstractWithdrawalCompressorContract.toPendingWithdrawal;
|
|
419
441
|
exports.toRequestableWithdrawal = require_sdk_accounts_withdrawal_compressor_AbstractWithdrawalCompressorContract.toRequestableWithdrawal;
|
|
442
|
+
exports.toShares = require_sdk_pools_PoolService.toShares;
|
|
443
|
+
exports.toSharesUp = require_sdk_pools_PoolService.toSharesUp;
|
|
420
444
|
exports.toSignificant = require_sdk_utils_formatter.toSignificant;
|
|
421
445
|
exports.toWithdrawalStatus = require_sdk_accounts_withdrawal_compressor_types.toWithdrawalStatus;
|
|
422
446
|
exports.usdToNumber = require_sdk_market_math.usdToNumber;
|
|
423
|
-
exports.utilizationBps = require_sdk_market_math.utilizationBps;
|
|
424
447
|
exports.watchBlocksAsync = require_sdk_utils_viem_watchBlocksAsync.watchBlocksAsync;
|
|
@@ -95,29 +95,38 @@ var MarketRegister = class extends require_sdk_market_ZapperRegister.ZapperRegis
|
|
|
95
95
|
* Otherwise only prices are refreshed.
|
|
96
96
|
*
|
|
97
97
|
* @param ignoreUpdateablePrices - When `true`, skips off-chain price updates.
|
|
98
|
+
* @param extra - Additional multicalls to execute in the same batch, so that
|
|
99
|
+
* other registries can be synced without an extra request.
|
|
100
|
+
* @returns `true` when markets were fully reloaded, so that callers can
|
|
101
|
+
* refresh the caches derived from the market set.
|
|
98
102
|
**/
|
|
99
|
-
async syncState(ignoreUpdateablePrices) {
|
|
103
|
+
async syncState(ignoreUpdateablePrices, extra = []) {
|
|
100
104
|
const dirty = this.markets.some((m) => m.dirty) || this.marketConfigurators.some((c) => c.dirty);
|
|
101
105
|
let multicalls;
|
|
102
106
|
let txs = [];
|
|
103
107
|
if (dirty) {
|
|
104
108
|
this.logger?.debug("some markets or market configurators are dirty, reloading everything");
|
|
105
|
-
multicalls = this.getLoadMulticalls([...this.marketFilter.configurators]);
|
|
109
|
+
multicalls = [...this.getLoadMulticalls([...this.marketFilter.configurators]), ...extra];
|
|
106
110
|
if (!ignoreUpdateablePrices) {
|
|
107
111
|
const updatables = await this.sdk.priceFeeds.getPartialUpdatablePriceFeeds([...this.marketFilter.configurators]);
|
|
108
112
|
txs = (await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(updatables)).txs;
|
|
109
113
|
}
|
|
110
114
|
} else if (!ignoreUpdateablePrices) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
115
|
+
const oracles = this.#getOracleSyncMulticalls();
|
|
116
|
+
multicalls = [...oracles, ...extra];
|
|
117
|
+
if (!multicalls.length) return false;
|
|
118
|
+
if (oracles.length) {
|
|
119
|
+
this.logger?.debug(`syncing prices on ${oracles.length} oracles`);
|
|
120
|
+
txs = (await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs()).txs;
|
|
121
|
+
}
|
|
122
|
+
} else if (extra.length) multicalls = extra;
|
|
123
|
+
else return false;
|
|
116
124
|
await require_sdk_utils_viem_executeDelegatedMulticalls.executeDelegatedMulticalls(this.client, multicalls, {
|
|
117
125
|
priceUpdates: txs,
|
|
118
126
|
blockNumber: this.sdk.currentBlock,
|
|
119
127
|
gas: this.sdk.gasLimit
|
|
120
128
|
});
|
|
129
|
+
return dirty;
|
|
121
130
|
}
|
|
122
131
|
#getOracleSyncMulticalls(oracles) {
|
|
123
132
|
const uniqOracles = new require_sdk_utils_AddressMap.AddressMap();
|
|
@@ -5,53 +5,84 @@ const require_sdk_constants_versions = require("../constants/versions.js");
|
|
|
5
5
|
require("../constants/index.js");
|
|
6
6
|
const require_sdk_utils_hex = require("../utils/hex.js");
|
|
7
7
|
require("../utils/index.js");
|
|
8
|
+
const require_sdk_utils_viem_executeMulticallBatches = require("../utils/viem/executeMulticallBatches.js");
|
|
8
9
|
const require_sdk_base_SDKConstruct = require("../base/SDKConstruct.js");
|
|
9
10
|
require("../base/index.js");
|
|
10
11
|
const require_abi_compressors_peripheryCompressor = require("../../abi/compressors/peripheryCompressor.js");
|
|
12
|
+
require("../utils/viem/index.js");
|
|
11
13
|
const require_sdk_market_zapper_createZapper = require("./zapper/createZapper.js");
|
|
12
14
|
require("./zapper/index.js");
|
|
13
15
|
//#region src/sdk/market/ZapperRegister.ts
|
|
14
16
|
var ZapperRegister = class extends require_sdk_base_SDKConstruct.SDKConstruct {
|
|
15
17
|
/**
|
|
16
18
|
* Mapping pool.address -> Zapper[]
|
|
17
|
-
*
|
|
19
|
+
* Loaded during SDK attach, or restored by hydration
|
|
18
20
|
*/
|
|
19
21
|
#zappers;
|
|
20
22
|
/**
|
|
21
|
-
*
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
* @internal
|
|
24
|
+
*
|
|
25
|
+
* Returns the multicall batch that loads zappers of all pools from the
|
|
26
|
+
* periphery compressor. Used by the SDK to warm this cache together with
|
|
27
|
+
* other loaders in a single multicall.
|
|
28
|
+
*
|
|
29
|
+
* Returns an empty batch when zappers are already loaded and `force` is not set.
|
|
30
|
+
*
|
|
31
|
+
* @param force - reload zappers even when they are already loaded
|
|
32
|
+
**/
|
|
33
|
+
getLoadZappersMulticall(force) {
|
|
34
|
+
if (!force && this.#zappers) return {
|
|
35
|
+
contracts: [],
|
|
36
|
+
onResults: () => {}
|
|
37
|
+
};
|
|
38
|
+
this.#zappers = new require_sdk_utils_AddressMap.AddressMap(void 0, "zappers");
|
|
39
|
+
const compressor = this.sdk.addressProvider.getLatest(require_sdk_constants_address_provider.AP_PERIPHERY_COMPRESSOR, require_sdk_constants_versions.VERSION_RANGE_310);
|
|
40
|
+
if (!compressor) {
|
|
41
|
+
this.logger?.warn("no periphery compressor on this chain, skipping zappers");
|
|
42
|
+
return {
|
|
43
|
+
contracts: [],
|
|
44
|
+
onResults: () => {}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const [pcAddr] = compressor;
|
|
26
48
|
this.logger?.debug(`loading zappers with periphery compressor ${pcAddr}`);
|
|
27
49
|
const markets = this.sdk.marketRegister.markets;
|
|
28
|
-
|
|
50
|
+
return {
|
|
29
51
|
contracts: markets.map((m) => ({
|
|
30
52
|
abi: require_abi_compressors_peripheryCompressor.peripheryCompressorAbi,
|
|
31
53
|
address: pcAddr,
|
|
32
54
|
functionName: "getZappers",
|
|
33
55
|
args: [m.configurator.address, m.pool.pool.address]
|
|
34
56
|
})),
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
57
|
+
onResults: (resps) => {
|
|
58
|
+
for (let i = 0; i < resps.length; i++) {
|
|
59
|
+
const { status, result, error } = resps[i];
|
|
60
|
+
const marketConfigurator = markets[i].configurator.address;
|
|
61
|
+
const pool = markets[i].pool.pool.address;
|
|
62
|
+
if (status === "success") for (const z of result) this.#addZapper({
|
|
63
|
+
...z,
|
|
64
|
+
pool,
|
|
65
|
+
type: "base"
|
|
66
|
+
});
|
|
67
|
+
else this.logger?.error(`failed to load zapper for market configurator ${this.labelAddress(marketConfigurator)} and pool ${this.labelAddress(pool)}: ${error}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Load zappers for all pools using periphery compressor, adds hardcoded zappers
|
|
74
|
+
*
|
|
75
|
+
* Zappers loaded during SDK attach or restored by hydration are kept unless
|
|
76
|
+
* `force` is set, so calling this after either is a no-op.
|
|
77
|
+
*/
|
|
78
|
+
async loadZappers(force) {
|
|
79
|
+
await require_sdk_utils_viem_executeMulticallBatches.executeMulticallBatches(this.client, [this.getLoadZappersMulticall(force)]);
|
|
50
80
|
}
|
|
51
81
|
/**
|
|
52
82
|
* Serializable snapshot of all loaded zappers, suitable for hydration.
|
|
53
|
-
* Returns `undefined` when zappers were never loaded (i.e.
|
|
54
|
-
*
|
|
83
|
+
* Returns `undefined` when zappers were never loaded (i.e. the SDK was
|
|
84
|
+
* attached without market configurators), so the not-loaded state round-trips
|
|
85
|
+
* cleanly.
|
|
55
86
|
**/
|
|
56
87
|
get zappersState() {
|
|
57
88
|
if (!this.#zappers) return;
|
|
@@ -103,7 +134,7 @@ var ZapperRegister = class extends require_sdk_base_SDKConstruct.SDKConstruct {
|
|
|
103
134
|
}
|
|
104
135
|
}
|
|
105
136
|
get zappers() {
|
|
106
|
-
if (!this.#zappers) throw new Error("zappers not loaded,
|
|
137
|
+
if (!this.#zappers) throw new Error("zappers are not loaded, check if the sdk was properly attached or hydrated");
|
|
107
138
|
return this.#zappers;
|
|
108
139
|
}
|
|
109
140
|
poolZappers(pool) {
|
|
@@ -10,7 +10,6 @@ require("../../base/index.js");
|
|
|
10
10
|
const require_sdk_market_adapters_createAdapter = require("../adapters/createAdapter.js");
|
|
11
11
|
require("../adapters/index.js");
|
|
12
12
|
const require_sdk_market_math = require("../math.js");
|
|
13
|
-
let viem = require("viem");
|
|
14
13
|
//#region src/sdk/market/credit/CreditManagerV310Contract.ts
|
|
15
14
|
const abi = require_abi_310_generated.iCreditManagerV310Abi;
|
|
16
15
|
var CreditManagerV310Contract = class extends require_sdk_base_BaseContract.BaseContract {
|
|
@@ -65,20 +64,10 @@ var CreditManagerV310Contract = class extends require_sdk_base_BaseContract.Base
|
|
|
65
64
|
return this.liquidationThresholds.keys();
|
|
66
65
|
}
|
|
67
66
|
/**
|
|
68
|
-
* {@inheritDoc ICreditManagerContract.leverageableCollaterals}
|
|
69
|
-
*/
|
|
70
|
-
get leverageableCollaterals() {
|
|
71
|
-
return this.collateralTokens.filter((token) => {
|
|
72
|
-
if ((0, viem.isAddressEqual)(token, this.underlying)) return false;
|
|
73
|
-
const lt = this.liquidationThresholds.get(token);
|
|
74
|
-
return !!lt && lt > 0 && lt < Number(10000n);
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
67
|
* {@inheritDoc ICreditManagerContract.maxLeverage}
|
|
79
68
|
*/
|
|
80
69
|
maxLeverage(collateral) {
|
|
81
|
-
return require_sdk_market_math.
|
|
70
|
+
return require_sdk_market_math.calcMaxLeverage(this.liquidationThresholds.mustGet(collateral));
|
|
82
71
|
}
|
|
83
72
|
/**
|
|
84
73
|
* {@inheritDoc ICreditManagerContract.liquidationPremium}
|
|
@@ -12,6 +12,7 @@ const require_sdk_market_credit_createCreditConfigurator = require("./createCred
|
|
|
12
12
|
const require_sdk_market_credit_createCreditFacade = require("./createCreditFacade.js");
|
|
13
13
|
const require_sdk_market_credit_createCreditManager = require("./createCreditManager.js");
|
|
14
14
|
const require_sdk_market_credit_dominantCollateral = require("./dominantCollateral.js");
|
|
15
|
+
const require_sdk_market_credit_isStrategyCollateral = require("./isStrategyCollateral.js");
|
|
15
16
|
//#region src/sdk/market/credit/CreditSuite.ts
|
|
16
17
|
/**
|
|
17
18
|
* SDK aggregate for one credit-manager branch inside a market.
|
|
@@ -171,13 +172,31 @@ var CreditSuite = class extends require_sdk_base_SDKConstruct.SDKConstruct {
|
|
|
171
172
|
return this.creditFacade.isPaused || this.market.pool.isPaused;
|
|
172
173
|
}
|
|
173
174
|
/**
|
|
174
|
-
* Collateral tokens a leveraged position can be built around in this suite
|
|
175
|
-
*
|
|
176
|
-
*
|
|
175
|
+
* Collateral tokens a leveraged position can be built around in this suite,
|
|
176
|
+
* see {@link isStrategyCollateral} for the per-token criteria.
|
|
177
|
+
*
|
|
178
|
+
* A suite where no debt can be drawn at all ({@link maxBorrowAmount} is `0`,
|
|
179
|
+
* e.g. its debt limit is exhausted or zeroed out) offers no strategies,
|
|
180
|
+
* whatever its collaterals are.
|
|
177
181
|
*/
|
|
178
182
|
get strategyCollaterals() {
|
|
179
|
-
|
|
180
|
-
|
|
183
|
+
if (this.maxBorrowAmount === 0n) return [];
|
|
184
|
+
const { pqk, unwrappedUnderlying } = this.market.pool;
|
|
185
|
+
const { mainPrices } = this.market.priceOracle;
|
|
186
|
+
const { tokensMeta, creditManager } = this;
|
|
187
|
+
return creditManager.collateralTokens.filter((token) => {
|
|
188
|
+
const meta = tokensMeta.mustGet(token);
|
|
189
|
+
return require_sdk_market_credit_isStrategyCollateral.isStrategyCollateral({
|
|
190
|
+
token,
|
|
191
|
+
underlying: creditManager.underlying,
|
|
192
|
+
unwrappedUnderlying,
|
|
193
|
+
liquidationThreshold: creditManager.liquidationThresholds.mustGet(token),
|
|
194
|
+
contractType: meta.contractType,
|
|
195
|
+
isExpired: meta.isExpired,
|
|
196
|
+
mainPrice: mainPrices.get(token)?.price,
|
|
197
|
+
hasActiveQuota: pqk.hasActiveQuota(token)
|
|
198
|
+
});
|
|
199
|
+
});
|
|
181
200
|
}
|
|
182
201
|
/**
|
|
183
202
|
* Largest debt a single new position can take on right now: the tightest of
|
|
@@ -221,16 +240,16 @@ var CreditSuite = class extends require_sdk_base_SDKConstruct.SDKConstruct {
|
|
|
221
240
|
curator: market.curator,
|
|
222
241
|
underlyingToken: market.underlyingToken,
|
|
223
242
|
totalBorrow: oracle.toAmount(pool.underlying, borrowed),
|
|
224
|
-
collateralTokens:
|
|
243
|
+
collateralTokens: this.strategyCollaterals.map((t) => this.tokensMeta.mustGetToken(t)),
|
|
225
244
|
paused: this.isPaused,
|
|
226
245
|
rwa: market.rwa,
|
|
227
|
-
sunset: require_sdk_chain_chains.isSunsetStrategy(cm.address, collateral, this.sdk.networkType),
|
|
246
|
+
sunset: market.sunset || require_sdk_chain_chains.isSunsetStrategy(cm.address, collateral, this.sdk.networkType),
|
|
228
247
|
liquidationThreshold,
|
|
229
248
|
liquidationPremium: cm.liquidationPremium,
|
|
230
249
|
liquidationFee: cm.feeLiquidation,
|
|
231
250
|
expirationDate: this.expirationDate,
|
|
232
|
-
borrowApy: require_sdk_market_math.
|
|
233
|
-
additionalBorrowApy: require_sdk_market_math.
|
|
251
|
+
borrowApy: require_sdk_market_math.calcBorrowApy(pool.baseInterestRate, cm.feeInterest),
|
|
252
|
+
additionalBorrowApy: require_sdk_market_math.calcAdditionalBorrowApy(market.pool.pqk.quotaRate(collateral), cm.feeInterest, maxLeverage),
|
|
234
253
|
maxBorrowAmount: oracle.toAmount(pool.underlying, this.maxBorrowAmount),
|
|
235
254
|
maxLeverage
|
|
236
255
|
};
|
|
@@ -4,6 +4,7 @@ const require_sdk_market_credit_CreditFacadeV310BaseContract = require("./Credit
|
|
|
4
4
|
const require_sdk_market_credit_CreditFacadeV310Contract = require("./CreditFacadeV310Contract.js");
|
|
5
5
|
const require_sdk_market_credit_CreditManagerV310Contract = require("./CreditManagerV310Contract.js");
|
|
6
6
|
const require_sdk_market_credit_dominantCollateral = require("./dominantCollateral.js");
|
|
7
|
+
const require_sdk_market_credit_isStrategyCollateral = require("./isStrategyCollateral.js");
|
|
7
8
|
const require_sdk_market_credit_CreditSuite = require("./CreditSuite.js");
|
|
8
9
|
const require_sdk_market_credit_expectedBalanceDeltas = require("./expectedBalanceDeltas.js");
|
|
9
10
|
require("./types.js");
|
|
@@ -12,7 +13,9 @@ exports.CreditFacadeV310BaseContract = require_sdk_market_credit_CreditFacadeV31
|
|
|
12
13
|
exports.CreditFacadeV310Contract = require_sdk_market_credit_CreditFacadeV310Contract.CreditFacadeV310Contract;
|
|
13
14
|
exports.CreditManagerV310Contract = require_sdk_market_credit_CreditManagerV310Contract.CreditManagerV310Contract;
|
|
14
15
|
exports.CreditSuite = require_sdk_market_credit_CreditSuite.CreditSuite;
|
|
16
|
+
exports.NON_STRATEGY_PHANTOM_TOKEN_TYPES = require_sdk_market_credit_isStrategyCollateral.NON_STRATEGY_PHANTOM_TOKEN_TYPES;
|
|
15
17
|
exports.creditFacadeV310Abi = require_sdk_market_credit_CreditFacadeV310BaseContract.creditFacadeV310Abi;
|
|
16
18
|
exports.dominantCollateral = require_sdk_market_credit_dominantCollateral.dominantCollateral;
|
|
17
19
|
exports.expectedBalanceDeltas = require_sdk_market_credit_expectedBalanceDeltas.expectedBalanceDeltas;
|
|
20
|
+
exports.isStrategyCollateral = require_sdk_market_credit_isStrategyCollateral.isStrategyCollateral;
|
|
18
21
|
exports.mustGetDominantCollateral = require_sdk_market_credit_dominantCollateral.mustGetDominantCollateral;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../../constants/math.js");
|
|
3
|
+
require("../../constants/index.js");
|
|
4
|
+
let viem = require("viem");
|
|
5
|
+
//#region src/sdk/market/credit/isStrategyCollateral.ts
|
|
6
|
+
/**
|
|
7
|
+
* Withdrawal and redemption phantom tokens that can never be acquired as a
|
|
8
|
+
* strategy target. Other `PHANTOM_TOKEN::*` types (Convex, Infrared, staking
|
|
9
|
+
* rewards) can.
|
|
10
|
+
*/
|
|
11
|
+
const NON_STRATEGY_PHANTOM_TOKEN_TYPES = [
|
|
12
|
+
"PHANTOM_TOKEN::INFINIFI_UNWIND",
|
|
13
|
+
"PHANTOM_TOKEN::MELLOW_WITHDRAWAL",
|
|
14
|
+
"PHANTOM_TOKEN::MIDAS_REDEMPTION",
|
|
15
|
+
"PHANTOM_TOKEN::SECURITIZE_RD",
|
|
16
|
+
"PHANTOM_TOKEN::UPSHIFT_WITHDRAW"
|
|
17
|
+
];
|
|
18
|
+
const NON_STRATEGY_PHANTOM_TOKEN_TYPE_SET = new Set(NON_STRATEGY_PHANTOM_TOKEN_TYPES);
|
|
19
|
+
const RWA_UNDERLYING_PREFIX = "RWA_UNDERLYING::";
|
|
20
|
+
/**
|
|
21
|
+
* Whether a collateral token can be the target of a leveraged strategy.
|
|
22
|
+
*
|
|
23
|
+
* A token qualifies when it
|
|
24
|
+
*
|
|
25
|
+
* - has a liquidation threshold above `0` and below `100%`, and is not the
|
|
26
|
+
* suite's underlying — borrowing an asset against itself is not a position,
|
|
27
|
+
* and an LT of `0` or at least `100%` would mean unbounded leverage;
|
|
28
|
+
* - is not the token the market's underlying wraps, which for an RWA market
|
|
29
|
+
* is the same exposure as the underlying itself (also rejected when
|
|
30
|
+
* `contractType` starts with `"RWA_UNDERLYING::"`);
|
|
31
|
+
* - is not a withdrawal or redemption phantom token listed in
|
|
32
|
+
* {@link NON_STRATEGY_PHANTOM_TOKEN_TYPES} — those only ever appear as the
|
|
33
|
+
* intermediate step of a withdrawal and cannot be acquired;
|
|
34
|
+
* - is not an expired token, e.g. a matured Pendle PT;
|
|
35
|
+
* - has a non-zero main price in the market's oracle — a zero or missing
|
|
36
|
+
* answer (e.g. a failed or zero price feed) means the position cannot be
|
|
37
|
+
* valued;
|
|
38
|
+
* - the market still accepts quota for.
|
|
39
|
+
*/
|
|
40
|
+
function isStrategyCollateral({ token, underlying, unwrappedUnderlying, liquidationThreshold, contractType, isExpired, mainPrice, hasActiveQuota }) {
|
|
41
|
+
if ((0, viem.isAddressEqual)(token, underlying) || (0, viem.isAddressEqual)(token, unwrappedUnderlying)) return false;
|
|
42
|
+
if (liquidationThreshold <= 0 || liquidationThreshold >= Number(10000n)) return false;
|
|
43
|
+
if (contractType && (NON_STRATEGY_PHANTOM_TOKEN_TYPE_SET.has(contractType) || contractType.startsWith(RWA_UNDERLYING_PREFIX))) return false;
|
|
44
|
+
if (isExpired) return false;
|
|
45
|
+
if (!mainPrice) return false;
|
|
46
|
+
return hasActiveQuota;
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
exports.NON_STRATEGY_PHANTOM_TOKEN_TYPES = NON_STRATEGY_PHANTOM_TOKEN_TYPES;
|
|
50
|
+
exports.isStrategyCollateral = isStrategyCollateral;
|