@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,391 +1,249 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_sdk_base_SDKConstruct = require("../../base/SDKConstruct.js");
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
require("./utils/
|
|
7
|
-
const
|
|
8
|
-
require("./operations
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const require_sdk_accounts_intents_intents_resume_deposit_deposit = require("./intents/resume/deposit/deposit.js");
|
|
13
|
-
const require_sdk_accounts_intents_intents_resume_increase_leverage_increase_leverage = require("./intents/resume/increase-leverage/increase-leverage.js");
|
|
14
|
-
const require_sdk_accounts_intents_intents_resume_withdraw_withdraw = require("./intents/resume/withdraw/withdraw.js");
|
|
15
|
-
require("./intents/resume/index.js");
|
|
16
|
-
const require_sdk_accounts_intents_quoters_close = require("./quoters/close.js");
|
|
17
|
-
const require_sdk_accounts_intents_quoters_swap = require("./quoters/swap.js");
|
|
18
|
-
require("./quoters/index.js");
|
|
3
|
+
const require_sdk_accounts_intents_types = require("./types.js");
|
|
4
|
+
const require_sdk_accounts_intents_guards = require("./guards.js");
|
|
5
|
+
const require_sdk_accounts_intents_math = require("./math.js");
|
|
6
|
+
const require_sdk_accounts_intents_utils_credit_account_slice = require("./utils/credit-account-slice.js");
|
|
7
|
+
const require_sdk_accounts_intents_open_strategy = require("./open-strategy.js");
|
|
8
|
+
const require_sdk_accounts_intents_operations = require("./operations.js");
|
|
9
|
+
const require_sdk_accounts_intents_plan = require("./plan.js");
|
|
10
|
+
const require_sdk_accounts_intents_realize = require("./realize.js");
|
|
11
|
+
const require_sdk_accounts_intents_view = require("./view.js");
|
|
19
12
|
//#region src/sdk/accounts/intents/index.ts
|
|
13
|
+
/**
|
|
14
|
+
* Previews of everything a wallet can do to an existing credit account.
|
|
15
|
+
*
|
|
16
|
+
* Two halves, deliberately kept apart: `plan.ts` turns an intent into a few
|
|
17
|
+
* steps with pure arithmetic, `realize.ts` turns the steps into router-backed
|
|
18
|
+
* operations. This class only picks the planner and wraps the outcome.
|
|
19
|
+
*/
|
|
20
20
|
var CreditAccountOperationsService = class extends require_sdk_base_SDKConstruct.SDKConstruct {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
intent
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
intent
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
});
|
|
44
|
-
case "WITHDRAW_COLLATERAL": return this.#finishWithdrawCollateralIntent({
|
|
45
|
-
...props,
|
|
46
|
-
intent
|
|
47
|
-
});
|
|
48
|
-
case "DECREASE_LEVERAGE": return this.#finishDecreaseLeverageIntent({
|
|
49
|
-
...props,
|
|
50
|
-
intent
|
|
51
|
-
});
|
|
52
|
-
default: throw new Error(`${props.intent.type} - not implemented`);
|
|
53
|
-
}
|
|
21
|
+
/**
|
|
22
|
+
* Previews an operation on an existing account.
|
|
23
|
+
*
|
|
24
|
+
* @param props - Intent plus account slice, quota reserve and slippage
|
|
25
|
+
* @returns Operations, projected state and calldata, or `{ ok: false, reason }`
|
|
26
|
+
* when the intent cannot be satisfied (e.g. the account lacks the source
|
|
27
|
+
* balance)
|
|
28
|
+
*/
|
|
29
|
+
async startIntent(props) {
|
|
30
|
+
return plain(await this.#preview(props, () => {
|
|
31
|
+
const { intent } = props;
|
|
32
|
+
const view = require_sdk_accounts_intents_view.accountView(props.creditAccount, props.sdk);
|
|
33
|
+
switch (intent.type) {
|
|
34
|
+
case "ADD_COLLATERAL": return require_sdk_accounts_intents_plan.planAddCollateral(intent);
|
|
35
|
+
case "WITHDRAW_ASSET": return require_sdk_accounts_intents_plan.planWithdrawAsset(intent, view);
|
|
36
|
+
case "ADJUST_LEVERAGE": return require_sdk_accounts_intents_plan.planAdjustLeverage(intent, view);
|
|
37
|
+
case "DEPOSIT": return require_sdk_accounts_intents_plan.planDeposit(intent, view);
|
|
38
|
+
case "REPAY": return require_sdk_accounts_intents_plan.planRepay(intent, view);
|
|
39
|
+
case "WITHDRAW": return require_sdk_accounts_intents_plan.planWithdraw(intent, view);
|
|
40
|
+
default: throw new Error(`${intent.type} - not implemented`);
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
54
43
|
}
|
|
55
44
|
/**
|
|
56
|
-
*
|
|
57
|
-
* leverage
|
|
58
|
-
*
|
|
45
|
+
* Largest `WITHDRAW` amount (in underlying) the account can take out while
|
|
46
|
+
* keeping leverage and staying inside the facade's debt band — the ceiling a
|
|
47
|
+
* withdraw form should offer. Taking everything out is the same intent with
|
|
48
|
+
* `MAX_UINT256` for an amount, and needs none of this arithmetic.
|
|
49
|
+
*
|
|
50
|
+
* @param props - Account slice and the SDK holding its market
|
|
51
|
+
* @returns Amount in underlying units; `0n` when nothing can leave
|
|
59
52
|
*/
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
default: return this.#finishClaimOnlyIntentOnchain(props, props.options, buildOperations);
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
#finishClaimOnlyIntentOffchain(props, options, buildOperations) {
|
|
67
|
-
const baseOperations = buildOperations(props.creditAccount, options, this.sdk);
|
|
68
|
-
const state = require_sdk_accounts_intents_utils_simulate_adjust_state.simulateState({
|
|
69
|
-
...props,
|
|
70
|
-
operations: baseOperations
|
|
71
|
-
});
|
|
72
|
-
return {
|
|
73
|
-
ok: true,
|
|
74
|
-
instant: {
|
|
75
|
-
operations: require_sdk_accounts_intents_utils_with_quota_update.getOperationsWithQuotaUpdate({
|
|
76
|
-
operations: baseOperations,
|
|
77
|
-
state,
|
|
78
|
-
creditAccount: props.creditAccount,
|
|
79
|
-
sdk: this.sdk,
|
|
80
|
-
options
|
|
81
|
-
}),
|
|
82
|
-
preview: { min: state.state },
|
|
83
|
-
calls: []
|
|
84
|
-
},
|
|
85
|
-
instantError: void 0,
|
|
86
|
-
delayedBranch: void 0,
|
|
87
|
-
delayedError: void 0
|
|
88
|
-
};
|
|
53
|
+
maxWithdraw(props) {
|
|
54
|
+
const view = require_sdk_accounts_intents_view.accountView(props.creditAccount, props.sdk);
|
|
55
|
+
return require_sdk_accounts_intents_math.maxProportionalWithdrawal(view, view.band);
|
|
89
56
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
operations
|
|
106
|
-
});
|
|
107
|
-
return {
|
|
108
|
-
ok: true,
|
|
109
|
-
instant: {
|
|
110
|
-
operations,
|
|
111
|
-
preview: { min: state.state },
|
|
112
|
-
calls
|
|
113
|
-
},
|
|
114
|
-
instantError: void 0,
|
|
115
|
-
delayedBranch: void 0,
|
|
116
|
-
delayedError: void 0
|
|
117
|
-
};
|
|
57
|
+
/**
|
|
58
|
+
* Debt a `REPAY` would have to cover to settle the account, in underlying
|
|
59
|
+
* units: principal plus the interest and fees accrued as of the read.
|
|
60
|
+
*
|
|
61
|
+
* A repayment of exactly this leaves nothing behind at the block it was read
|
|
62
|
+
* at, and a little behind at any later one, since interest does not stop —
|
|
63
|
+
* so a wallet meaning to clear the account sends this with a buffer on top,
|
|
64
|
+
* which the intent caps at the debt rather than spending. `REPAY` with
|
|
65
|
+
* `MAX_UINT256` sizes that buffer itself.
|
|
66
|
+
*
|
|
67
|
+
* @param props - Account slice and the SDK holding its market
|
|
68
|
+
* @returns Amount in underlying units; `0n` on an account that owes nothing
|
|
69
|
+
*/
|
|
70
|
+
maxRepay(props) {
|
|
71
|
+
return require_sdk_accounts_intents_view.accountView(props.creditAccount, props.sdk).debt;
|
|
118
72
|
}
|
|
119
|
-
#finishAddCollateralIntent = this.#finishClaimOnlyIntent(require_sdk_accounts_intents_intents_resume_add_collateral_add_collateral.buildResumeAddCollateralOperations);
|
|
120
|
-
#finishIncreaseLeverageIntent = this.#finishClaimOnlyIntent(require_sdk_accounts_intents_intents_resume_increase_leverage_increase_leverage.buildResumeIncreaseLeverageOperations);
|
|
121
|
-
#finishDepositIntent = this.#finishClaimOnlyIntent(require_sdk_accounts_intents_intents_resume_deposit_deposit.buildResumeDepositOperations);
|
|
122
|
-
#finishDepositAndIncreaseLeverageIntent = this.#finishClaimOnlyIntent(require_sdk_accounts_intents_intents_resume_deposit_deposit.buildResumeDepositOperations);
|
|
123
73
|
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
74
|
+
* Previews the same operation when its source only redeems through its
|
|
75
|
+
* issuer: a Securitize dsToken, a Mellow share.
|
|
76
|
+
*
|
|
77
|
+
* Sits apart from {@link startIntent} because it is a different trade route,
|
|
78
|
+
* not a different intent: the request goes to the issuer instead of the
|
|
79
|
+
* router, and the proceeds — hence the repayment and the payout — arrive days
|
|
80
|
+
* later. Both routes of one intent are quoted together by
|
|
81
|
+
* {@link intentRoutes}; this is the one to call when the delayed route is the
|
|
82
|
+
* only one of interest.
|
|
83
|
+
*
|
|
84
|
+
* @param props - Intent plus account slice, quota reserve and slippage
|
|
85
|
+
* @returns The request transaction and what it recorded for the tail, or
|
|
86
|
+
* `{ ok: false, reason }` — `noDelayedRoute` when this route does not exist
|
|
87
|
+
* for the account at all
|
|
127
88
|
*/
|
|
128
|
-
async
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
...props,
|
|
137
|
-
options
|
|
138
|
-
});
|
|
139
|
-
} catch {
|
|
140
|
-
return this.#finishCloseAccountIntentOffchain({
|
|
141
|
-
...props,
|
|
142
|
-
options
|
|
143
|
-
});
|
|
89
|
+
async startDelayedIntent(props) {
|
|
90
|
+
const { intent } = props;
|
|
91
|
+
const result = await this.#preview(props, () => {
|
|
92
|
+
const view = require_sdk_accounts_intents_view.accountView(props.creditAccount, props.sdk);
|
|
93
|
+
switch (intent.type) {
|
|
94
|
+
case "ADJUST_LEVERAGE": return require_sdk_accounts_intents_plan.planAdjustLeverageDelayed(intent, view);
|
|
95
|
+
case "WITHDRAW": return require_sdk_accounts_intents_plan.planWithdrawDelayed(intent, view);
|
|
96
|
+
default: throw new Error(`${intent.type} - cannot be delayed`);
|
|
144
97
|
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
async #finishCloseAccountIntentOffchain({ options, ...props }) {
|
|
148
|
-
const quoter = require_sdk_accounts_intents_quoters_close.createCloseOracleQuoter({
|
|
149
|
-
sdk: this.sdk,
|
|
150
|
-
creditAccount: props.creditAccount
|
|
151
98
|
});
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
options
|
|
155
|
-
}, quoter);
|
|
99
|
+
if (!result.ok) return result;
|
|
100
|
+
if (!result.delayed) throw new Error("startDelayedIntent: plan started no withdrawal");
|
|
156
101
|
return {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
operations,
|
|
160
|
-
preview: { min: {
|
|
161
|
-
kind: "close",
|
|
162
|
-
amount: quote.amount,
|
|
163
|
-
minAmount: quote.minAmount,
|
|
164
|
-
underlyingBalance: quote.underlyingBalance
|
|
165
|
-
} },
|
|
166
|
-
calls: []
|
|
167
|
-
},
|
|
168
|
-
instantError: void 0,
|
|
169
|
-
delayedBranch: void 0,
|
|
170
|
-
delayedError: void 0
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
async #finishCloseAccountIntentOnchain({ options, slippage = 0, ...props }) {
|
|
174
|
-
const quoter = require_sdk_accounts_intents_quoters_close.createRouterCloseQuoter({
|
|
175
|
-
sdk: this.sdk,
|
|
176
|
-
creditAccount: props.creditAccount,
|
|
177
|
-
slippage
|
|
178
|
-
});
|
|
179
|
-
const { operations, quote } = await require_sdk_accounts_intents_intents_resume_close_close.buildResumeCloseOperations({
|
|
180
|
-
...props,
|
|
181
|
-
options
|
|
182
|
-
}, quoter);
|
|
183
|
-
const calls = await require_sdk_accounts_intents_utils_assemble_operation_calls.assembleOperationCalls({
|
|
184
|
-
...props,
|
|
185
|
-
operations
|
|
186
|
-
});
|
|
187
|
-
return {
|
|
188
|
-
ok: true,
|
|
189
|
-
instant: {
|
|
190
|
-
operations,
|
|
191
|
-
preview: { min: {
|
|
192
|
-
kind: "close",
|
|
193
|
-
amount: quote.amount,
|
|
194
|
-
minAmount: quote.minAmount,
|
|
195
|
-
underlyingBalance: quote.underlyingBalance
|
|
196
|
-
} },
|
|
197
|
-
calls
|
|
198
|
-
},
|
|
199
|
-
instantError: void 0,
|
|
200
|
-
delayedBranch: void 0,
|
|
201
|
-
delayedError: void 0
|
|
102
|
+
...result,
|
|
103
|
+
delayed: result.delayed
|
|
202
104
|
};
|
|
203
105
|
}
|
|
204
106
|
/**
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
107
|
+
* Previews a delayable intent both ways at once: settled by the router now,
|
|
108
|
+
* and started as a redemption that finishes days later.
|
|
109
|
+
*
|
|
110
|
+
* Which routes an account has depends on the intent and the token it sells,
|
|
111
|
+
* and a form has to know before it can offer a choice — so both are quoted
|
|
112
|
+
* from the same request and each is reported on its own. A route the account
|
|
113
|
+
* cannot take comes back `undefined` with its refusal in `refused`; only when
|
|
114
|
+
* neither answers is the whole result `{ ok: false }`.
|
|
115
|
+
*
|
|
116
|
+
* A route that could not be quoted at all — a pathfinder with no path out of
|
|
117
|
+
* the source, a read that failed — counts as missing rather than fatal, since
|
|
118
|
+
* the other route may be the one the caller wanted. With nothing left to
|
|
119
|
+
* report the failure is rethrown, as {@link startIntent} would have.
|
|
120
|
+
*
|
|
121
|
+
* @param props - A withdraw or adjust-leverage intent plus account slice,
|
|
122
|
+
* quota reserve and slippage
|
|
123
|
+
* @returns Whichever routes are viable, or `{ ok: false, reason }` when none is
|
|
208
124
|
*/
|
|
209
|
-
async
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
options
|
|
219
|
-
});
|
|
220
|
-
} catch {
|
|
221
|
-
return this.#finishWithdrawCollateralIntentOffchain({
|
|
222
|
-
...props,
|
|
223
|
-
options
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
async #finishWithdrawCollateralIntentOffchain({ options, ...props }) {
|
|
229
|
-
const quoter = require_sdk_accounts_intents_quoters_swap.createOracleSwapQuoter({
|
|
230
|
-
sdk: this.sdk,
|
|
231
|
-
creditAccount: props.creditAccount
|
|
232
|
-
});
|
|
233
|
-
const baseOperations = await require_sdk_accounts_intents_intents_resume_withdraw_withdraw.buildResumeWithdrawOperations({
|
|
234
|
-
...props,
|
|
235
|
-
options
|
|
236
|
-
}, quoter);
|
|
237
|
-
const state = require_sdk_accounts_intents_utils_simulate_adjust_state.simulateState({
|
|
238
|
-
...props,
|
|
239
|
-
operations: baseOperations
|
|
240
|
-
});
|
|
241
|
-
return {
|
|
125
|
+
async intentRoutes(props) {
|
|
126
|
+
const [instant, delayed] = await Promise.allSettled([this.startIntent(props), this.startDelayedIntent(props)]);
|
|
127
|
+
const instantRoute = instant.status === "fulfilled" && instant.value.ok ? instant.value : void 0;
|
|
128
|
+
const delayedRoute = delayed.status === "fulfilled" && delayed.value.ok ? delayed.value : void 0;
|
|
129
|
+
const refused = {
|
|
130
|
+
instant: instant.status === "fulfilled" && !instant.value.ok ? instant.value.reason : void 0,
|
|
131
|
+
delayed: delayed.status === "fulfilled" && !delayed.value.ok ? delayed.value.reason : void 0
|
|
132
|
+
};
|
|
133
|
+
if (instantRoute || delayedRoute) return {
|
|
242
134
|
ok: true,
|
|
243
|
-
instant:
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
state,
|
|
247
|
-
creditAccount: props.creditAccount,
|
|
248
|
-
sdk: this.sdk,
|
|
249
|
-
options
|
|
250
|
-
}),
|
|
251
|
-
preview: { min: state.state },
|
|
252
|
-
calls: []
|
|
253
|
-
},
|
|
254
|
-
instantError: void 0,
|
|
255
|
-
delayedBranch: void 0,
|
|
256
|
-
delayedError: void 0
|
|
135
|
+
instant: instantRoute,
|
|
136
|
+
delayed: delayedRoute,
|
|
137
|
+
refused
|
|
257
138
|
};
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
const
|
|
261
|
-
|
|
262
|
-
creditAccount: props.creditAccount,
|
|
263
|
-
slippage
|
|
264
|
-
});
|
|
265
|
-
const baseOperations = await require_sdk_accounts_intents_intents_resume_withdraw_withdraw.buildResumeWithdrawOperations({
|
|
266
|
-
...props,
|
|
267
|
-
options
|
|
268
|
-
}, quoter);
|
|
269
|
-
const state = require_sdk_accounts_intents_utils_simulate_adjust_state.simulateState({
|
|
270
|
-
...props,
|
|
271
|
-
operations: baseOperations
|
|
272
|
-
});
|
|
273
|
-
const operations = require_sdk_accounts_intents_utils_with_quota_update.getOperationsWithQuotaUpdate({
|
|
274
|
-
operations: baseOperations,
|
|
275
|
-
state,
|
|
276
|
-
creditAccount: props.creditAccount,
|
|
277
|
-
sdk: this.sdk,
|
|
278
|
-
options
|
|
279
|
-
});
|
|
280
|
-
const calls = await require_sdk_accounts_intents_utils_assemble_operation_calls.assembleOperationCalls({
|
|
281
|
-
...props,
|
|
282
|
-
operations
|
|
283
|
-
});
|
|
139
|
+
const failed = [instant, delayed].find((s) => s.status === "rejected");
|
|
140
|
+
if (failed?.status === "rejected") throw failed.reason;
|
|
141
|
+
const reason = refused.instant ?? refused.delayed;
|
|
142
|
+
if (reason === void 0) throw new Error("intentRoutes: a route neither answered nor refused");
|
|
284
143
|
return {
|
|
285
|
-
ok:
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
preview: { min: state.state },
|
|
289
|
-
calls
|
|
290
|
-
},
|
|
291
|
-
instantError: void 0,
|
|
292
|
-
delayedBranch: void 0,
|
|
293
|
-
delayedError: void 0
|
|
144
|
+
ok: false,
|
|
145
|
+
reason,
|
|
146
|
+
refused
|
|
294
147
|
};
|
|
295
148
|
}
|
|
296
149
|
/**
|
|
297
|
-
*
|
|
298
|
-
*
|
|
299
|
-
*
|
|
150
|
+
* Previews the tail of a delayed intent, once the withdrawal it started has
|
|
151
|
+
* matured: the claim, then whatever the intent still owes.
|
|
152
|
+
*
|
|
153
|
+
* Serves the two operations that can genuinely be interrupted by a delay — a
|
|
154
|
+
* withdrawal and a deleveraging. For the rest, the claim is the whole tail:
|
|
155
|
+
* the tokens land on the account and only their quota has to catch up.
|
|
156
|
+
*
|
|
157
|
+
* @param props - The recorded intent, the account slice as it stands now, and
|
|
158
|
+
* the matured claimable
|
|
159
|
+
* @returns Shaped exactly like {@link startIntent}'s result, so both halves of
|
|
160
|
+
* an operation are consumed the same way
|
|
300
161
|
*/
|
|
301
|
-
async
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
return
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
162
|
+
async finishIntent(props) {
|
|
163
|
+
const { intent, claimable } = props;
|
|
164
|
+
return plain(await this.#preview(props, () => {
|
|
165
|
+
const view = require_sdk_accounts_intents_view.accountView(props.creditAccount, props.sdk);
|
|
166
|
+
const claimed = () => {
|
|
167
|
+
const output = require_sdk_accounts_intents_operations.instantOutput(claimable.outputs);
|
|
168
|
+
if (!output) throw new require_sdk_accounts_intents_types.IntentPreviewError("insufficientSourceBalance", "finishIntent: the claim credits nothing to spend");
|
|
169
|
+
return output;
|
|
170
|
+
};
|
|
171
|
+
switch (intent.type) {
|
|
172
|
+
case "WITHDRAW_COLLATERAL": return require_sdk_accounts_intents_plan.planFinishWithdraw(intent, claimable, claimed(), view);
|
|
173
|
+
case "DECREASE_LEVERAGE": return require_sdk_accounts_intents_plan.planFinishDecreaseLeverage(claimable, claimed(), view);
|
|
174
|
+
case "ADD_COLLATERAL":
|
|
175
|
+
case "INCREASE_LEVERAGE":
|
|
176
|
+
case "DEPOSIT":
|
|
177
|
+
case "DEPOSIT_AND_INCREASE_LEVERAGE": return require_sdk_accounts_intents_plan.planFinishClaimOnly(claimable);
|
|
178
|
+
default: throw new Error(`${intent.type} - not implemented`);
|
|
317
179
|
}
|
|
318
|
-
}
|
|
180
|
+
}));
|
|
319
181
|
}
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
options
|
|
342
|
-
}),
|
|
343
|
-
preview: { min: state.state },
|
|
344
|
-
calls: []
|
|
345
|
-
},
|
|
346
|
-
instantError: void 0,
|
|
347
|
-
delayedBranch: void 0,
|
|
348
|
-
delayedError: void 0
|
|
349
|
-
};
|
|
182
|
+
/**
|
|
183
|
+
* Previews opening a brand-new leveraged position.
|
|
184
|
+
*
|
|
185
|
+
* Sits apart from {@link startIntent} because there is no account yet: nothing
|
|
186
|
+
* can be projected from existing balances, and the output feeds
|
|
187
|
+
* `sdk.accounts.openCA` rather than a facade multicall assembled here.
|
|
188
|
+
*
|
|
189
|
+
* @param props - Credit manager, wallet collateral, target token and leverage
|
|
190
|
+
* @returns Debt, position size, projected balances and quotas for both the
|
|
191
|
+
* expected and the floor branch, or `{ ok: false, reason }` when the requested
|
|
192
|
+
* leverage or the resulting debt is not viable
|
|
193
|
+
*/
|
|
194
|
+
async openStrategyIntent(props) {
|
|
195
|
+
try {
|
|
196
|
+
return {
|
|
197
|
+
ok: true,
|
|
198
|
+
preview: await require_sdk_accounts_intents_open_strategy.previewOpenStrategy(props)
|
|
199
|
+
};
|
|
200
|
+
} catch (e) {
|
|
201
|
+
return asFailure(e);
|
|
202
|
+
}
|
|
350
203
|
}
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
operations: baseOperations
|
|
364
|
-
});
|
|
365
|
-
const operations = require_sdk_accounts_intents_utils_with_quota_update.getOperationsWithQuotaUpdate({
|
|
366
|
-
operations: baseOperations,
|
|
367
|
-
state,
|
|
368
|
-
creditAccount: props.creditAccount,
|
|
369
|
-
sdk: this.sdk,
|
|
370
|
-
options
|
|
371
|
-
});
|
|
372
|
-
const calls = await require_sdk_accounts_intents_utils_assemble_operation_calls.assembleOperationCalls({
|
|
373
|
-
...props,
|
|
374
|
-
operations
|
|
375
|
-
});
|
|
376
|
-
return {
|
|
377
|
-
ok: true,
|
|
378
|
-
instant: {
|
|
204
|
+
/** Plan → realise → wrap. Unviable requests become `{ ok: false }`. */
|
|
205
|
+
async #preview(props, plan) {
|
|
206
|
+
try {
|
|
207
|
+
require_sdk_accounts_intents_guards.assertMarketOperable(props.sdk.marketRegister.findCreditManager(props.creditAccount.creditManager));
|
|
208
|
+
const { operations, state, calls, delayed } = await require_sdk_accounts_intents_realize.realize(plan(), {
|
|
209
|
+
creditAccount: props.creditAccount,
|
|
210
|
+
sdk: props.sdk,
|
|
211
|
+
slippage: props.slippage ?? 0,
|
|
212
|
+
quotaReserve: props.quotaReserve
|
|
213
|
+
});
|
|
214
|
+
return {
|
|
215
|
+
ok: true,
|
|
379
216
|
operations,
|
|
380
|
-
preview:
|
|
381
|
-
calls
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
}
|
|
217
|
+
preview: state,
|
|
218
|
+
calls,
|
|
219
|
+
delayed
|
|
220
|
+
};
|
|
221
|
+
} catch (e) {
|
|
222
|
+
return asFailure(e);
|
|
223
|
+
}
|
|
387
224
|
}
|
|
388
225
|
};
|
|
226
|
+
/** Drops the delayed half for the flows that cannot produce one. */
|
|
227
|
+
function plain(result) {
|
|
228
|
+
if (!result.ok) return result;
|
|
229
|
+
const { operations, preview, calls } = result;
|
|
230
|
+
return {
|
|
231
|
+
ok: true,
|
|
232
|
+
operations,
|
|
233
|
+
preview,
|
|
234
|
+
calls
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
/** Unviable requests are values; anything else is a genuine failure. */
|
|
238
|
+
function asFailure(e) {
|
|
239
|
+
if (e instanceof require_sdk_accounts_intents_types.IntentPreviewError) return {
|
|
240
|
+
ok: false,
|
|
241
|
+
reason: e.reason
|
|
242
|
+
};
|
|
243
|
+
throw e;
|
|
244
|
+
}
|
|
389
245
|
//#endregion
|
|
390
246
|
exports.CreditAccountOperationsService = CreditAccountOperationsService;
|
|
391
|
-
exports.
|
|
247
|
+
exports.IntentPreviewError = require_sdk_accounts_intents_types.IntentPreviewError;
|
|
248
|
+
exports.fetchCreditAccountSlice = require_sdk_accounts_intents_utils_credit_account_slice.fetchCreditAccountSlice;
|
|
249
|
+
exports.toCreditAccountSlice = require_sdk_accounts_intents_utils_credit_account_slice.toCreditAccountSlice;
|