@gearbox-protocol/sdk 16.1.2 → 16.3.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/history/assembleOperations.js +3 -3
- package/dist/cjs/history/classifyMulticallOperations.js +7 -7
- package/dist/cjs/history/index.js +13 -0
- package/dist/cjs/history/parseCreditAccountTransaction.js +5 -5
- package/dist/cjs/{preview → history}/trace/errors.js +1 -1
- package/dist/cjs/{preview → history}/trace/extractAdapterCallTraces.js +1 -1
- package/dist/cjs/{preview → history}/trace/extractTransfers.js +3 -3
- package/dist/cjs/{preview → history}/trace/findFacadeCalls.js +3 -3
- package/dist/cjs/history/trace/index.js +14 -0
- package/dist/cjs/model/errors/index.js +37 -0
- package/dist/cjs/model/errors/liquidation-errors.js +32 -0
- package/dist/cjs/model/errors/operation-errors.js +135 -0
- package/dist/cjs/{onchain/market/oracle/errors.js → model/errors/oracle-errors.js} +1 -1
- package/dist/cjs/model/errors/prepare-errors.js +108 -0
- package/dist/cjs/model/errors/preview-errors.js +12 -0
- package/dist/cjs/model/index.js +40 -2
- package/dist/cjs/model/positions.js +1 -1
- package/dist/cjs/model/result.js +0 -8
- package/dist/cjs/model/rwa.js +40 -0
- package/dist/cjs/onchain/accounts/CreditAccountsServiceV310.js +2 -2
- package/dist/cjs/onchain/accounts/index.js +0 -2
- package/dist/cjs/onchain/accounts/intents/guards.js +42 -66
- package/dist/cjs/onchain/accounts/intents/index.js +38 -35
- package/dist/cjs/onchain/accounts/intents/leverage-band.js +1 -1
- package/dist/cjs/onchain/accounts/intents/math.js +19 -15
- package/dist/cjs/onchain/accounts/intents/open-strategy.js +44 -8
- package/dist/cjs/onchain/accounts/intents/plan.js +52 -48
- package/dist/cjs/onchain/accounts/intents/realize.js +26 -24
- package/dist/cjs/onchain/accounts/intents/tail.js +15 -12
- package/dist/cjs/onchain/accounts/intents/testing/sdk-mock.js +7 -0
- package/dist/cjs/onchain/accounts/intents/tests/finish-withdraw.fixtures.js +6 -6
- package/dist/cjs/onchain/accounts/intents/tests/withdraw.fixtures.js +12 -12
- package/dist/cjs/onchain/accounts/intents/view.js +1 -1
- package/dist/cjs/onchain/accounts/withdrawal-compressor/index.js +0 -1
- package/dist/cjs/onchain/index.js +122 -36
- package/dist/cjs/onchain/market/MarketSuite.js +7 -1
- package/dist/cjs/onchain/market/adapters/index.js +1 -0
- package/dist/cjs/onchain/market/credit/CreditSuite.js +47 -15
- package/dist/cjs/onchain/market/index.js +0 -6
- package/dist/cjs/onchain/market/oracle/PriceOracleBaseContract.js +6 -6
- package/dist/cjs/onchain/market/oracle/index.js +0 -2
- package/dist/cjs/onchain/market/pool/PoolQuotaKeeperV310Contract.js +8 -0
- package/dist/cjs/onchain/market/rwa/RWARegistry.js +3 -2
- package/dist/cjs/onchain/market/rwa/index.js +0 -4
- package/dist/cjs/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +7 -7
- package/dist/cjs/onchain/market/rwa/securitize/constants.js +0 -2
- package/dist/cjs/onchain/market/rwa/securitize/index.js +1 -3
- package/dist/cjs/onchain/market/rwa/securitize/types.js +0 -29
- package/dist/cjs/onchain/market/rwa/types.js +0 -7
- package/dist/cjs/onchain/market/zapper/index.js +0 -1
- package/dist/cjs/onchain/pools/PoolService.js +10 -16
- package/dist/cjs/onchain/preview/index.js +41 -0
- package/dist/cjs/{preview → onchain/preview}/parse/classifyInnerOperations.js +2 -3
- package/dist/cjs/onchain/preview/parse/index.js +14 -0
- package/dist/cjs/{preview → onchain/preview}/parse/parseFacadeOperationCalldata.js +3 -3
- package/dist/cjs/{preview → onchain/preview}/parse/parseOperationCalldata.js +16 -17
- package/dist/cjs/{preview → onchain/preview}/parse/parsePoolOperationCalldata.js +3 -3
- package/dist/cjs/{preview → onchain/preview}/parse/parseRWAFactoryOperationCalldata.js +11 -12
- package/dist/cjs/{preview → onchain/preview}/parse/types.js +1 -1
- package/dist/cjs/{preview → onchain/preview}/preview/CreditAccountState.js +3 -4
- package/dist/cjs/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.js +10 -11
- package/dist/cjs/{preview → onchain/preview}/preview/detectCloseOrRepay.js +2 -3
- package/dist/cjs/{preview → onchain/preview}/preview/detectDelayedClaim.js +4 -5
- package/dist/cjs/{preview → onchain/preview}/preview/detectDelayedOperation.js +5 -6
- package/dist/cjs/{preview → onchain/preview}/preview/estimateClaimableAt.js +1 -1
- package/dist/cjs/onchain/preview/preview/index.js +26 -0
- package/dist/cjs/{preview → onchain/preview}/preview/previewAdjustStrategyPosition.js +18 -22
- package/dist/cjs/{preview → onchain/preview}/preview/previewExitOrRepayStrategyPosition.js +22 -28
- package/dist/cjs/onchain/preview/preview/previewOpenStrategyPosition.js +60 -0
- package/dist/cjs/onchain/preview/preview/previewOperation.js +119 -0
- package/dist/cjs/{preview/simulate/simulatePoolOperation.js → onchain/preview/preview/previewPoolPositionOperation.js} +46 -32
- package/dist/cjs/onchain/preview/preview/replayInnerOperations.js +109 -0
- package/dist/cjs/onchain/preview/preview/replayMulticall.js +22 -0
- package/dist/cjs/{preview → onchain/preview}/preview/unwrapNativeCollateral.js +11 -14
- package/dist/cjs/onchain/validation/bundles/checkAccountQuotas.js +20 -0
- package/dist/cjs/onchain/validation/bundles/checkCollateralFunding.js +59 -0
- package/dist/cjs/onchain/validation/bundles/checkCreditOperation.js +65 -0
- package/dist/cjs/onchain/validation/bundles/checkDraw.js +28 -0
- package/dist/cjs/onchain/validation/bundles/checkHealthFactors.js +27 -0
- package/dist/cjs/onchain/validation/bundles/checkLiquidationEligibility.js +33 -0
- package/dist/cjs/onchain/validation/bundles/checkLiquidationFunding.js +29 -0
- package/dist/cjs/onchain/validation/bundles/checkMarket.js +24 -0
- package/dist/cjs/onchain/validation/bundles/checkObtained.js +13 -0
- package/dist/cjs/onchain/validation/bundles/checkPoolFunding.js +22 -0
- package/dist/cjs/onchain/validation/bundles/checkPoolOperation.js +35 -0
- package/dist/cjs/onchain/validation/bundles/checkQuotasAsked.js +20 -0
- package/dist/cjs/onchain/validation/bundles/checkRWAOpenRequirements.js +33 -0
- package/dist/cjs/onchain/validation/bundles/checkRWAOpening.js +24 -0
- package/dist/cjs/onchain/validation/bundles/checkWallet.js +22 -0
- package/dist/cjs/onchain/validation/bundles/checkWalletAllowance.js +32 -0
- package/dist/cjs/onchain/validation/bundles/checkWalletBalance.js +41 -0
- package/dist/cjs/onchain/validation/bundles/index.js +35 -0
- package/dist/cjs/onchain/validation/checkLiquidation.js +22 -0
- package/dist/cjs/onchain/validation/checkOperation.js +62 -0
- package/dist/cjs/onchain/validation/checkSimulation.js +60 -0
- package/dist/cjs/onchain/validation/checks/checkBorrowLimit.js +25 -0
- package/dist/cjs/onchain/validation/checks/checkCollateralised.js +26 -0
- package/dist/cjs/onchain/validation/checks/checkCreditAccountFrozen.js +10 -0
- package/dist/cjs/onchain/validation/checks/checkCreditManagerPaused.js +10 -0
- package/dist/cjs/onchain/validation/checks/checkDebtLimits.js +18 -0
- package/dist/cjs/onchain/validation/checks/checkEmergencyLiquidator.js +13 -0
- package/dist/cjs/onchain/validation/checks/checkForbiddenToken.js +10 -0
- package/dist/cjs/onchain/validation/checks/checkLeverage.js +13 -0
- package/dist/cjs/onchain/validation/checks/checkLiquidatorEligible.js +10 -0
- package/dist/cjs/onchain/validation/checks/checkMarketExpired.js +10 -0
- package/dist/cjs/onchain/validation/checks/checkPoolLiquidity.js +25 -0
- package/dist/cjs/onchain/validation/checks/checkPoolPaused.js +10 -0
- package/dist/cjs/onchain/validation/checks/checkPoolSunset.js +10 -0
- package/dist/cjs/onchain/validation/checks/checkQuotaCount.js +10 -0
- package/dist/cjs/onchain/validation/checks/checkQuotaLimit.js +18 -0
- package/dist/cjs/onchain/validation/checks/index.js +31 -0
- package/dist/cjs/onchain/validation/helpers/amount.js +12 -0
- package/dist/cjs/onchain/validation/helpers/health-factor-limits.js +25 -0
- package/dist/cjs/onchain/validation/helpers/index.js +11 -0
- package/dist/cjs/onchain/validation/{token.js → helpers/token.js} +4 -4
- package/dist/cjs/onchain/validation/index.js +85 -27
- package/dist/cjs/onchain/validation/raise.js +33 -0
- package/dist/cjs/sdk/execute/ExecuteApi.js +1 -0
- package/dist/cjs/sdk/index.js +6 -9
- package/dist/cjs/sdk/liquidations/LiquidationsNamespace.js +9 -0
- package/dist/cjs/sdk/prepare/PrepareApi.js +55 -48
- package/dist/cjs/sdk/prepare/index.js +7 -9
- package/dist/cjs/sdk/prepare/types.js +0 -4
- package/dist/cjs/sdk/preview/PreviewNamespace.js +24 -13
- package/dist/esm/history/assembleOperations.js +2 -2
- package/dist/esm/history/classifyMulticallOperations.js +2 -2
- package/dist/esm/history/index.js +6 -1
- package/dist/esm/history/parseCreditAccountTransaction.js +3 -3
- package/dist/esm/{preview → history}/trace/errors.js +1 -1
- package/dist/esm/{preview → history}/trace/extractAdapterCallTraces.js +1 -1
- package/dist/esm/{preview → history}/trace/extractTransfers.js +1 -1
- package/dist/esm/{preview → history}/trace/findFacadeCalls.js +1 -1
- package/dist/esm/model/errors/index.js +7 -0
- package/dist/esm/model/errors/liquidation-errors.js +29 -0
- package/dist/esm/model/errors/operation-errors.js +121 -0
- package/dist/esm/{onchain/market/oracle/errors.js → model/errors/oracle-errors.js} +1 -1
- package/dist/esm/model/errors/prepare-errors.js +97 -0
- package/dist/esm/model/errors/preview-errors.js +11 -0
- package/dist/esm/model/index.js +9 -3
- package/dist/esm/model/positions.js +1 -1
- package/dist/esm/model/result.js +1 -8
- package/dist/esm/model/rwa.js +37 -0
- package/dist/esm/onchain/accounts/CreditAccountsServiceV310.js +2 -2
- package/dist/esm/onchain/accounts/index.js +1 -2
- package/dist/esm/onchain/accounts/intents/guards.js +29 -52
- package/dist/esm/onchain/accounts/intents/index.js +39 -35
- package/dist/esm/onchain/accounts/intents/leverage-band.js +1 -1
- package/dist/esm/onchain/accounts/intents/math.js +18 -14
- package/dist/esm/onchain/accounts/intents/open-strategy.js +46 -10
- package/dist/esm/onchain/accounts/intents/plan.js +51 -47
- package/dist/esm/onchain/accounts/intents/realize.js +26 -24
- package/dist/esm/onchain/accounts/intents/tail.js +14 -11
- package/dist/esm/onchain/accounts/intents/testing/sdk-mock.js +7 -0
- package/dist/esm/onchain/accounts/intents/tests/finish-withdraw.fixtures.js +6 -6
- package/dist/esm/onchain/accounts/intents/tests/withdraw.fixtures.js +12 -12
- package/dist/esm/onchain/accounts/intents/view.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/index.js +0 -1
- package/dist/esm/onchain/index.js +61 -10
- package/dist/esm/onchain/market/MarketSuite.js +7 -1
- package/dist/esm/onchain/market/adapters/index.js +1 -0
- package/dist/esm/onchain/market/credit/CreditSuite.js +47 -15
- package/dist/esm/onchain/market/index.js +3 -5
- package/dist/esm/onchain/market/oracle/PriceOracleBaseContract.js +1 -1
- package/dist/esm/onchain/market/oracle/index.js +1 -2
- package/dist/esm/onchain/market/pool/PoolQuotaKeeperV310Contract.js +8 -0
- package/dist/esm/onchain/market/rwa/RWARegistry.js +2 -1
- package/dist/esm/onchain/market/rwa/index.js +3 -4
- package/dist/esm/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +2 -2
- package/dist/esm/onchain/market/rwa/securitize/constants.js +1 -2
- package/dist/esm/onchain/market/rwa/securitize/index.js +3 -3
- package/dist/esm/onchain/market/rwa/securitize/types.js +1 -29
- package/dist/esm/onchain/market/rwa/types.js +1 -7
- package/dist/esm/onchain/market/zapper/index.js +0 -1
- package/dist/esm/onchain/pools/PoolService.js +10 -16
- package/dist/esm/onchain/preview/index.js +20 -0
- package/dist/esm/{preview → onchain/preview}/parse/classifyInnerOperations.js +2 -3
- package/dist/esm/{preview → onchain/preview}/parse/index.js +0 -1
- package/dist/esm/{preview → onchain/preview}/parse/parseFacadeOperationCalldata.js +1 -1
- package/dist/esm/{preview → onchain/preview}/parse/parseOperationCalldata.js +10 -11
- package/dist/esm/{preview → onchain/preview}/parse/parsePoolOperationCalldata.js +3 -3
- package/dist/esm/{preview → onchain/preview}/parse/parseRWAFactoryOperationCalldata.js +8 -9
- package/dist/esm/{preview → onchain/preview}/parse/types.js +1 -1
- package/dist/esm/{preview → onchain/preview}/preview/CreditAccountState.js +3 -4
- package/dist/esm/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.js +10 -11
- package/dist/esm/{preview → onchain/preview}/preview/detectCloseOrRepay.js +2 -3
- package/dist/esm/{preview → onchain/preview}/preview/detectDelayedClaim.js +4 -5
- package/dist/esm/{preview → onchain/preview}/preview/detectDelayedOperation.js +5 -6
- package/dist/esm/{preview → onchain/preview}/preview/estimateClaimableAt.js +1 -1
- package/dist/esm/{preview → onchain/preview}/preview/index.js +3 -4
- package/dist/esm/{preview → onchain/preview}/preview/previewAdjustStrategyPosition.js +17 -21
- package/dist/esm/{preview → onchain/preview}/preview/previewExitOrRepayStrategyPosition.js +20 -26
- package/dist/esm/{preview → onchain/preview}/preview/previewOpenStrategyPosition.js +25 -15
- package/dist/esm/{preview → onchain/preview}/preview/previewOperation.js +54 -35
- package/dist/esm/{preview/simulate/simulatePoolOperation.js → onchain/preview/preview/previewPoolPositionOperation.js} +46 -30
- package/dist/esm/onchain/preview/preview/replayInnerOperations.js +107 -0
- package/dist/esm/onchain/preview/preview/replayMulticall.js +21 -0
- package/dist/esm/{preview → onchain/preview}/preview/unwrapNativeCollateral.js +11 -14
- package/dist/esm/onchain/validation/bundles/checkAccountQuotas.js +19 -0
- package/dist/esm/onchain/validation/bundles/checkCollateralFunding.js +58 -0
- package/dist/esm/onchain/validation/bundles/checkCreditOperation.js +64 -0
- package/dist/esm/onchain/validation/bundles/checkDraw.js +27 -0
- package/dist/esm/onchain/validation/bundles/checkHealthFactors.js +26 -0
- package/dist/esm/onchain/validation/bundles/checkLiquidationEligibility.js +32 -0
- package/dist/esm/onchain/validation/bundles/checkLiquidationFunding.js +28 -0
- package/dist/esm/onchain/validation/bundles/checkMarket.js +23 -0
- package/dist/esm/onchain/validation/bundles/checkObtained.js +12 -0
- package/dist/esm/onchain/validation/bundles/checkPoolFunding.js +21 -0
- package/dist/esm/onchain/validation/bundles/checkPoolOperation.js +34 -0
- package/dist/esm/onchain/validation/bundles/checkQuotasAsked.js +19 -0
- package/dist/esm/onchain/validation/bundles/checkRWAOpenRequirements.js +32 -0
- package/dist/esm/onchain/validation/bundles/checkRWAOpening.js +23 -0
- package/dist/esm/onchain/validation/bundles/checkWallet.js +21 -0
- package/dist/esm/onchain/validation/bundles/checkWalletAllowance.js +31 -0
- package/dist/esm/onchain/validation/bundles/checkWalletBalance.js +40 -0
- package/dist/esm/onchain/validation/bundles/index.js +18 -0
- package/dist/esm/onchain/validation/checkLiquidation.js +21 -0
- package/dist/esm/onchain/validation/checkOperation.js +61 -0
- package/dist/esm/onchain/validation/checkSimulation.js +59 -0
- package/dist/esm/onchain/validation/checks/checkBorrowLimit.js +24 -0
- package/dist/esm/onchain/validation/checks/checkCollateralised.js +25 -0
- package/dist/esm/onchain/validation/checks/checkCreditAccountFrozen.js +9 -0
- package/dist/esm/onchain/validation/checks/checkCreditManagerPaused.js +9 -0
- package/dist/esm/onchain/validation/checks/checkDebtLimits.js +17 -0
- package/dist/esm/onchain/validation/checks/checkEmergencyLiquidator.js +12 -0
- package/dist/esm/onchain/validation/checks/checkForbiddenToken.js +9 -0
- package/dist/esm/onchain/validation/checks/checkLeverage.js +12 -0
- package/dist/esm/onchain/validation/checks/checkLiquidatorEligible.js +9 -0
- package/dist/esm/onchain/validation/checks/checkMarketExpired.js +9 -0
- package/dist/esm/onchain/validation/checks/checkPoolLiquidity.js +24 -0
- package/dist/esm/onchain/validation/checks/checkPoolPaused.js +9 -0
- package/dist/esm/onchain/validation/checks/checkPoolSunset.js +9 -0
- package/dist/esm/onchain/validation/checks/checkQuotaCount.js +9 -0
- package/dist/esm/onchain/validation/checks/checkQuotaLimit.js +17 -0
- package/dist/esm/onchain/validation/checks/index.js +16 -0
- package/dist/esm/onchain/validation/helpers/amount.js +11 -0
- package/dist/esm/onchain/validation/helpers/health-factor-limits.js +21 -0
- package/dist/esm/onchain/validation/helpers/index.js +4 -0
- package/dist/esm/onchain/validation/{token.js → helpers/token.js} +3 -3
- package/dist/esm/onchain/validation/index.js +43 -4
- package/dist/esm/onchain/validation/raise.js +31 -0
- package/dist/esm/sdk/execute/ExecuteApi.js +1 -0
- package/dist/esm/sdk/index.js +2 -3
- package/dist/esm/sdk/liquidations/LiquidationsNamespace.js +9 -0
- package/dist/esm/sdk/prepare/PrepareApi.js +43 -36
- package/dist/esm/sdk/prepare/index.js +3 -3
- package/dist/esm/sdk/prepare/types.js +1 -2
- package/dist/esm/sdk/preview/PreviewNamespace.js +24 -13
- package/dist/types/history/assembleOperations.d.ts +4 -5
- package/dist/types/history/classifyMulticallOperations.d.ts +3 -4
- package/dist/types/history/index.d.ts +8 -2
- package/dist/types/history/mapOperations.d.ts +1 -1
- package/dist/types/{preview → history}/trace/errors.d.ts +1 -1
- package/dist/types/{preview → history}/trace/extractAdapterCallTraces.d.ts +1 -1
- package/dist/types/{preview → history}/trace/extractTransfers.d.ts +2 -3
- package/dist/types/{preview → history}/trace/findFacadeCalls.d.ts +1 -1
- package/dist/types/{preview → history}/trace/types.d.ts +1 -1
- package/dist/types/history/types.d.ts +2 -3
- package/dist/types/model/errors/base.d.ts +28 -0
- package/dist/types/model/errors/index.d.ts +7 -0
- package/dist/types/model/errors/liquidation-errors.d.ts +45 -0
- package/dist/types/model/errors/operation-errors.d.ts +216 -0
- package/dist/types/{onchain/market/oracle/errors.d.ts → model/errors/oracle-errors.d.ts} +3 -5
- package/dist/types/model/errors/prepare-errors.d.ts +131 -0
- package/dist/types/model/errors/preview-errors.d.ts +72 -0
- package/dist/types/model/index.d.ts +11 -4
- package/dist/types/model/opportunities.d.ts +3 -2
- package/dist/types/model/positions.d.ts +2 -2
- package/dist/types/model/previews.d.ts +52 -113
- package/dist/types/model/result.d.ts +4 -8
- package/dist/types/model/rwa.d.ts +143 -0
- package/dist/types/onchain/accounts/CreditAccountsServiceV310.d.ts +3 -1
- package/dist/types/onchain/accounts/index.d.ts +2 -4
- package/dist/types/onchain/accounts/intents/guards.d.ts +8 -18
- package/dist/types/onchain/accounts/intents/index.d.ts +20 -19
- package/dist/types/onchain/accounts/intents/leverage-band.d.ts +1 -1
- package/dist/types/onchain/accounts/intents/math.d.ts +6 -6
- package/dist/types/onchain/accounts/intents/open-strategy.d.ts +34 -3
- package/dist/types/onchain/accounts/intents/operations.d.ts +2 -2
- package/dist/types/onchain/accounts/intents/plan.d.ts +9 -9
- package/dist/types/onchain/accounts/intents/tail.d.ts +2 -2
- package/dist/types/onchain/accounts/intents/testing/expect.d.ts +3 -3
- package/dist/types/onchain/accounts/intents/tests/finish-withdraw.fixtures.d.ts +6 -6
- package/dist/types/onchain/accounts/intents/tests/open-strategy.fixtures.d.ts +2 -2
- package/dist/types/onchain/accounts/intents/tests/withdraw.fixtures.d.ts +12 -12
- package/dist/types/onchain/accounts/intents/types.d.ts +32 -30
- package/dist/types/onchain/accounts/types.d.ts +4 -2
- package/dist/types/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.d.ts +1 -1
- package/dist/types/onchain/accounts/withdrawal-compressor/index.d.ts +1 -2
- package/dist/types/onchain/accounts/withdrawal-compressor/types.d.ts +1 -1
- package/dist/types/onchain/index.d.ts +68 -13
- package/dist/types/onchain/market/MarketSuite.d.ts +5 -1
- package/dist/types/onchain/market/adapters/index.d.ts +2 -1
- package/dist/types/onchain/market/adapters/transfers.d.ts +0 -7
- package/dist/types/onchain/market/credit/CreditSuite.d.ts +20 -8
- package/dist/types/onchain/market/credit/index.d.ts +2 -2
- package/dist/types/onchain/market/credit/types.d.ts +11 -1
- package/dist/types/onchain/market/index.d.ts +6 -7
- package/dist/types/onchain/market/oracle/PriceOracleBaseContract.d.ts +1 -1
- package/dist/types/onchain/market/oracle/index.d.ts +1 -2
- package/dist/types/onchain/market/oracle/types.d.ts +1 -1
- package/dist/types/onchain/market/pool/PoolQuotaKeeperV310Contract.d.ts +5 -0
- package/dist/types/onchain/market/rwa/index.d.ts +4 -4
- package/dist/types/onchain/market/rwa/securitize/SecuritizeRWAFactory.d.ts +3 -2
- package/dist/types/onchain/market/rwa/securitize/constants.d.ts +1 -2
- package/dist/types/onchain/market/rwa/securitize/index.d.ts +3 -3
- package/dist/types/onchain/market/rwa/securitize/types.d.ts +4 -110
- package/dist/types/onchain/market/rwa/types.d.ts +6 -32
- package/dist/types/onchain/market/zapper/ZapperContract.d.ts +1 -1
- package/dist/types/onchain/market/zapper/index.d.ts +1 -2
- package/dist/types/onchain/market/zapper/types.d.ts +1 -1
- package/dist/types/onchain/pools/types.d.ts +2 -2
- package/dist/types/onchain/preview/index.d.ts +24 -0
- package/dist/types/{preview → onchain/preview}/parse/classifyInnerOperations.d.ts +4 -4
- package/dist/types/{preview → onchain/preview}/parse/index.d.ts +2 -4
- package/dist/types/{preview → onchain/preview}/parse/parseFacadeOperationCalldata.d.ts +4 -4
- package/dist/types/onchain/preview/parse/parseOperationCalldata.d.ts +18 -0
- package/dist/types/{preview → onchain/preview}/parse/parsePoolOperationCalldata.d.ts +7 -7
- package/dist/types/{preview → onchain/preview}/parse/parseRWAFactoryOperationCalldata.d.ts +4 -4
- package/dist/types/{preview → onchain/preview}/parse/types-adapters.d.ts +5 -16
- package/dist/types/{preview → onchain/preview}/parse/types-facades.d.ts +3 -3
- package/dist/types/{preview → onchain/preview}/parse/types-pools.d.ts +1 -1
- package/dist/types/{preview → onchain/preview}/parse/types-rwa.d.ts +3 -3
- package/dist/types/{preview → onchain/preview}/parse/types.d.ts +3 -3
- package/dist/types/{preview → onchain/preview}/preview/CreditAccountState.d.ts +5 -5
- package/dist/types/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.d.ts +5 -5
- package/dist/types/{preview → onchain/preview}/preview/detectCloseOrRepay.d.ts +1 -1
- package/dist/types/{preview → onchain/preview}/preview/detectDelayedClaim.d.ts +8 -8
- package/dist/types/{preview → onchain/preview}/preview/detectDelayedOperation.d.ts +9 -9
- package/dist/types/{preview → onchain/preview}/preview/estimateClaimableAt.d.ts +6 -6
- package/dist/types/{preview → onchain/preview}/preview/index.d.ts +3 -4
- package/dist/types/onchain/preview/preview/previewAdjustStrategyPosition.d.ts +20 -0
- package/dist/types/onchain/preview/preview/previewExitOrRepayStrategyPosition.d.ts +21 -0
- package/dist/types/onchain/preview/preview/previewOpenStrategyPosition.d.ts +14 -0
- package/dist/types/onchain/preview/preview/previewOperation.d.ts +32 -0
- package/dist/types/onchain/preview/preview/previewPoolPositionOperation.d.ts +13 -0
- package/dist/types/{preview → onchain/preview}/preview/replayInnerOperations.d.ts +11 -11
- package/dist/types/{preview → onchain/preview}/preview/replayMulticall.d.ts +10 -10
- package/dist/types/{preview → onchain/preview}/preview/unwrapNativeCollateral.d.ts +10 -20
- package/dist/types/onchain/validation/bundles/checkAccountQuotas.d.ts +16 -0
- package/dist/types/onchain/validation/bundles/checkCollateralFunding.d.ts +22 -0
- package/dist/types/onchain/validation/bundles/checkCreditOperation.d.ts +31 -0
- package/dist/types/onchain/validation/bundles/checkDraw.d.ts +20 -0
- package/dist/types/onchain/validation/bundles/checkHealthFactors.d.ts +39 -0
- package/dist/types/onchain/validation/bundles/checkLiquidationEligibility.d.ts +20 -0
- package/dist/types/onchain/validation/bundles/checkLiquidationFunding.d.ts +18 -0
- package/dist/types/onchain/validation/bundles/checkMarket.d.ts +15 -0
- package/dist/types/onchain/validation/bundles/checkObtained.d.ts +9 -0
- package/dist/types/onchain/validation/bundles/checkPoolFunding.d.ts +19 -0
- package/dist/types/onchain/validation/bundles/checkPoolOperation.d.ts +31 -0
- package/dist/types/onchain/validation/bundles/checkQuotasAsked.d.ts +10 -0
- package/dist/types/onchain/validation/bundles/checkRWAOpenRequirements.d.ts +21 -0
- package/dist/types/onchain/validation/bundles/checkRWAOpening.d.ts +19 -0
- package/dist/types/onchain/validation/bundles/checkWallet.d.ts +23 -0
- package/dist/types/onchain/validation/bundles/checkWalletAllowance.d.ts +18 -0
- package/dist/types/onchain/validation/bundles/checkWalletBalance.d.ts +17 -0
- package/dist/types/onchain/validation/bundles/index.d.ts +18 -0
- package/dist/types/onchain/validation/checkLiquidation.d.ts +23 -0
- package/dist/types/onchain/validation/checkOperation.d.ts +32 -0
- package/dist/types/onchain/validation/checkSimulation.d.ts +56 -0
- package/dist/types/onchain/validation/checks/checkBorrowLimit.d.ts +21 -0
- package/dist/types/onchain/validation/checks/checkCollateralised.d.ts +25 -0
- package/dist/types/onchain/validation/checks/checkCreditAccountFrozen.d.ts +12 -0
- package/dist/types/onchain/validation/checks/checkCreditManagerPaused.d.ts +12 -0
- package/dist/types/onchain/validation/checks/checkDebtLimits.d.ts +21 -0
- package/dist/types/onchain/validation/checks/checkEmergencyLiquidator.d.ts +17 -0
- package/dist/types/onchain/validation/checks/checkForbiddenToken.d.ts +12 -0
- package/dist/types/onchain/validation/checks/checkLeverage.d.ts +12 -0
- package/dist/types/onchain/validation/checks/checkLiquidatorEligible.d.ts +13 -0
- package/dist/types/onchain/validation/checks/checkMarketExpired.d.ts +14 -0
- package/dist/types/onchain/validation/checks/checkPoolLiquidity.d.ts +20 -0
- package/dist/types/onchain/validation/checks/checkPoolPaused.d.ts +12 -0
- package/dist/types/onchain/validation/checks/checkPoolSunset.d.ts +13 -0
- package/dist/types/onchain/validation/checks/checkQuotaCount.d.ts +11 -0
- package/dist/types/onchain/validation/checks/checkQuotaLimit.d.ts +18 -0
- package/dist/types/onchain/validation/checks/index.d.ts +16 -0
- package/dist/types/onchain/validation/helpers/amount.d.ts +7 -0
- package/dist/types/onchain/validation/helpers/health-factor-limits.d.ts +21 -0
- package/dist/types/onchain/validation/helpers/index.d.ts +4 -0
- package/dist/types/onchain/validation/{token.d.ts → helpers/token.d.ts} +4 -4
- package/dist/types/onchain/validation/index.d.ts +43 -4
- package/dist/types/onchain/validation/raise.d.ts +33 -0
- package/dist/types/sdk/execute/types.d.ts +2 -2
- package/dist/types/sdk/index.d.ts +5 -6
- package/dist/types/sdk/liquidations/LiquidationsNamespace.d.ts +5 -0
- package/dist/types/sdk/liquidations/types.d.ts +8 -0
- package/dist/types/sdk/prepare/PrepareApi.d.ts +6 -5
- package/dist/types/sdk/prepare/index.d.ts +5 -5
- package/dist/types/sdk/prepare/types.d.ts +65 -23
- package/dist/types/sdk/preview/PreviewNamespace.d.ts +13 -3
- package/dist/types/sdk/preview/index.d.ts +2 -2
- package/dist/types/sdk/preview/types.d.ts +30 -7
- package/package.json +1 -6
- package/dist/cjs/onchain/accounts/withdrawal-compressor/errors.js +0 -1
- package/dist/cjs/onchain/market/zapper/errors.js +0 -1
- package/dist/cjs/onchain/validation/checks.js +0 -258
- package/dist/cjs/onchain/validation/refusal.js +0 -39
- package/dist/cjs/preview/index.js +0 -86
- package/dist/cjs/preview/package.json +0 -1
- package/dist/cjs/preview/parse/errors.js +0 -1
- package/dist/cjs/preview/parse/index.js +0 -15
- package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +0 -38
- package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +0 -52
- package/dist/cjs/preview/prerequisites/Prerequisite.js +0 -52
- package/dist/cjs/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +0 -53
- package/dist/cjs/preview/prerequisites/buildCollateralPrerequisites.js +0 -63
- package/dist/cjs/preview/prerequisites/buildPartialLiquidationPrerequisites.js +0 -19
- package/dist/cjs/preview/prerequisites/buildPoolPrerequisites.js +0 -76
- package/dist/cjs/preview/prerequisites/buildRWAPrerequisites.js +0 -39
- package/dist/cjs/preview/prerequisites/checkPrerequisites.js +0 -74
- package/dist/cjs/preview/prerequisites/helpers.js +0 -23
- package/dist/cjs/preview/prerequisites/index.js +0 -12
- package/dist/cjs/preview/preview/errors.js +0 -85
- package/dist/cjs/preview/preview/index.js +0 -33
- package/dist/cjs/preview/preview/previewOpenStrategyPosition.js +0 -50
- package/dist/cjs/preview/preview/previewOperation.js +0 -100
- package/dist/cjs/preview/preview/previewPoolPositionOperation.js +0 -49
- package/dist/cjs/preview/preview/replayInnerOperations.js +0 -109
- package/dist/cjs/preview/preview/replayMulticall.js +0 -19
- package/dist/cjs/preview/simulate/errors.js +0 -73
- package/dist/cjs/preview/simulate/index.js +0 -11
- package/dist/cjs/preview/simulate/simulateFacadeOperation.js +0 -15
- package/dist/cjs/preview/simulate/simulateOperation.js +0 -29
- package/dist/cjs/preview/simulate/simulateRWAOperation.js +0 -15
- package/dist/cjs/preview/simulate/types.js +0 -1
- package/dist/cjs/preview/trace/index.js +0 -14
- package/dist/cjs/preview/trace/types.js +0 -1
- package/dist/cjs/preview/types.js +0 -1
- package/dist/cjs/preview/validate/checkOperation.js +0 -187
- package/dist/cjs/preview/validate/checkSimulation.js +0 -39
- package/dist/cjs/preview/validate/index.js +0 -8
- package/dist/cjs/sdk/prepare/errors.js +0 -93
- package/dist/esm/onchain/accounts/withdrawal-compressor/errors.js +0 -1
- package/dist/esm/onchain/market/zapper/errors.js +0 -1
- package/dist/esm/onchain/validation/checks.js +0 -238
- package/dist/esm/onchain/validation/refusal.js +0 -36
- package/dist/esm/preview/index.js +0 -38
- package/dist/esm/preview/package.json +0 -1
- package/dist/esm/preview/parse/errors.js +0 -1
- package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +0 -37
- package/dist/esm/preview/prerequisites/BalancePrerequisite.js +0 -51
- package/dist/esm/preview/prerequisites/Prerequisite.js +0 -51
- package/dist/esm/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +0 -52
- package/dist/esm/preview/prerequisites/buildCollateralPrerequisites.js +0 -62
- package/dist/esm/preview/prerequisites/buildPartialLiquidationPrerequisites.js +0 -18
- package/dist/esm/preview/prerequisites/buildPoolPrerequisites.js +0 -75
- package/dist/esm/preview/prerequisites/buildRWAPrerequisites.js +0 -38
- package/dist/esm/preview/prerequisites/checkPrerequisites.js +0 -73
- package/dist/esm/preview/prerequisites/helpers.js +0 -22
- package/dist/esm/preview/prerequisites/index.js +0 -7
- package/dist/esm/preview/preview/errors.js +0 -79
- package/dist/esm/preview/preview/previewPoolPositionOperation.js +0 -48
- package/dist/esm/preview/preview/replayInnerOperations.js +0 -107
- package/dist/esm/preview/preview/replayMulticall.js +0 -18
- package/dist/esm/preview/simulate/errors.js +0 -71
- package/dist/esm/preview/simulate/index.js +0 -6
- package/dist/esm/preview/simulate/simulateFacadeOperation.js +0 -14
- package/dist/esm/preview/simulate/simulateOperation.js +0 -28
- package/dist/esm/preview/simulate/simulateRWAOperation.js +0 -14
- package/dist/esm/preview/simulate/types.js +0 -1
- package/dist/esm/preview/trace/types.js +0 -1
- package/dist/esm/preview/types.js +0 -1
- package/dist/esm/preview/validate/checkOperation.js +0 -183
- package/dist/esm/preview/validate/checkSimulation.js +0 -38
- package/dist/esm/preview/validate/index.js +0 -3
- package/dist/esm/sdk/prepare/errors.js +0 -89
- package/dist/types/model/errors.d.ts +0 -46
- package/dist/types/onchain/accounts/withdrawal-compressor/errors.d.ts +0 -20
- package/dist/types/onchain/market/zapper/errors.d.ts +0 -18
- package/dist/types/onchain/validation/checks.d.ts +0 -164
- package/dist/types/onchain/validation/refusal.d.ts +0 -242
- package/dist/types/preview/index.d.ts +0 -47
- package/dist/types/preview/parse/errors.d.ts +0 -29
- package/dist/types/preview/parse/parseOperationCalldata.d.ts +0 -18
- package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +0 -26
- package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +0 -29
- package/dist/types/preview/prerequisites/Prerequisite.d.ts +0 -26
- package/dist/types/preview/prerequisites/RWAOpenRequirementsPrerequisite.d.ts +0 -55
- package/dist/types/preview/prerequisites/buildCollateralPrerequisites.d.ts +0 -20
- package/dist/types/preview/prerequisites/buildPartialLiquidationPrerequisites.d.ts +0 -12
- package/dist/types/preview/prerequisites/buildPoolPrerequisites.d.ts +0 -12
- package/dist/types/preview/prerequisites/buildRWAPrerequisites.d.ts +0 -26
- package/dist/types/preview/prerequisites/checkPrerequisites.d.ts +0 -28
- package/dist/types/preview/prerequisites/helpers.d.ts +0 -10
- package/dist/types/preview/prerequisites/index.d.ts +0 -7
- package/dist/types/preview/prerequisites/types.d.ts +0 -53
- package/dist/types/preview/preview/errors.d.ts +0 -44
- package/dist/types/preview/preview/previewAdjustStrategyPosition.d.ts +0 -19
- package/dist/types/preview/preview/previewExitOrRepayStrategyPosition.d.ts +0 -18
- package/dist/types/preview/preview/previewOpenStrategyPosition.d.ts +0 -12
- package/dist/types/preview/preview/previewOperation.d.ts +0 -32
- package/dist/types/preview/preview/previewPoolPositionOperation.d.ts +0 -13
- package/dist/types/preview/simulate/errors.d.ts +0 -52
- package/dist/types/preview/simulate/index.d.ts +0 -7
- package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +0 -16
- package/dist/types/preview/simulate/simulateOperation.d.ts +0 -12
- package/dist/types/preview/simulate/simulatePoolOperation.d.ts +0 -42
- package/dist/types/preview/simulate/simulateRWAOperation.d.ts +0 -16
- package/dist/types/preview/simulate/types.d.ts +0 -48
- package/dist/types/preview/types.d.ts +0 -65
- package/dist/types/preview/validate/checkOperation.d.ts +0 -71
- package/dist/types/preview/validate/checkSimulation.d.ts +0 -32
- package/dist/types/preview/validate/index.d.ts +0 -3
- package/dist/types/sdk/prepare/errors.d.ts +0 -319
- /package/dist/cjs/{preview/prerequisites → history/trace}/types.js +0 -0
- /package/dist/cjs/model/{errors.js → errors/base.js} +0 -0
- /package/dist/cjs/{preview → onchain/preview}/parse/types-adapters.js +0 -0
- /package/dist/cjs/{preview → onchain/preview}/parse/types-facades.js +0 -0
- /package/dist/cjs/{preview → onchain/preview}/parse/types-pools.js +0 -0
- /package/dist/cjs/{preview → onchain/preview}/parse/types-rwa.js +0 -0
- /package/dist/esm/{preview → history}/trace/index.js +0 -0
- /package/dist/esm/{preview/prerequisites → history/trace}/types.js +0 -0
- /package/dist/esm/model/{errors.js → errors/base.js} +0 -0
- /package/dist/esm/{preview → onchain/preview}/parse/types-adapters.js +0 -0
- /package/dist/esm/{preview → onchain/preview}/parse/types-facades.js +0 -0
- /package/dist/esm/{preview → onchain/preview}/parse/types-pools.js +0 -0
- /package/dist/esm/{preview → onchain/preview}/parse/types-rwa.js +0 -0
- /package/dist/types/{preview → history}/trace/index.d.ts +0 -0
|
@@ -1,27 +1,26 @@
|
|
|
1
|
-
import { CreditFacadeV310Contract } from "../../
|
|
2
|
-
import {
|
|
3
|
-
import "
|
|
4
|
-
import { PoolV310Contract } from "../../
|
|
5
|
-
import { ZapperContract } from "../../
|
|
6
|
-
import { isRWAFactory } from "../../
|
|
7
|
-
import "../../onchain/index.js";
|
|
1
|
+
import { CreditFacadeV310Contract } from "../../market/credit/CreditFacadeV310Contract.js";
|
|
2
|
+
import { sdkErr, sdkOk } from "../../../model/result.js";
|
|
3
|
+
import "../../../model/index.js";
|
|
4
|
+
import { PoolV310Contract } from "../../market/pool/PoolV310Contract.js";
|
|
5
|
+
import { ZapperContract } from "../../market/zapper/ZapperContract.js";
|
|
6
|
+
import { isRWAFactory } from "../../market/rwa/types.js";
|
|
8
7
|
import { parseFacadeOperationCalldata } from "./parseFacadeOperationCalldata.js";
|
|
9
8
|
import { parsePoolOperationCalldata } from "./parsePoolOperationCalldata.js";
|
|
10
9
|
import { parseRWAFactoryOperationCalldata } from "./parseRWAFactoryOperationCalldata.js";
|
|
11
|
-
//#region src/preview/parse/parseOperationCalldata.ts
|
|
10
|
+
//#region src/onchain/preview/parse/parseOperationCalldata.ts
|
|
12
11
|
/**
|
|
13
12
|
* Decodes raw operation calldata into an {@link Operation}.
|
|
14
13
|
*
|
|
15
14
|
* Support parsing of pool operations (including via zappers),
|
|
16
15
|
* credit facade operations and RWA factory operations.
|
|
17
16
|
*/
|
|
18
|
-
function parseOperationCalldata(input) {
|
|
19
|
-
const {
|
|
17
|
+
function parseOperationCalldata(sdk, input) {
|
|
18
|
+
const { to, calldata, value, sender } = input;
|
|
20
19
|
const contract = sdk.getContract(to);
|
|
21
20
|
if (contract instanceof PoolV310Contract) return parsePoolOperationCalldata(sdk, contract, calldata);
|
|
22
21
|
if (contract instanceof ZapperContract) {
|
|
23
22
|
const answer = contract.parseOperation(calldata, value);
|
|
24
|
-
if (
|
|
23
|
+
if (!answer.ok) return answer;
|
|
25
24
|
const parsed = answer.data;
|
|
26
25
|
if (parsed.operation === "Deposit") {
|
|
27
26
|
const op = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { sdkErr, sdkOk } from "
|
|
2
|
-
import "
|
|
3
|
-
//#region src/preview/parse/parsePoolOperationCalldata.ts
|
|
1
|
+
import { sdkErr, sdkOk } from "../../../model/result.js";
|
|
2
|
+
import "../../../model/index.js";
|
|
3
|
+
//#region src/onchain/preview/parse/parsePoolOperationCalldata.ts
|
|
4
4
|
/**
|
|
5
5
|
* Decodes pool calldata into a {@link PoolOperation}.
|
|
6
6
|
*
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { hexEq } from "../../
|
|
2
|
-
import { AbstractAdapterContract } from "../../
|
|
3
|
-
import { CreditFacadeV310Contract } from "../../
|
|
4
|
-
import { RWA_FACTORY_SECURITIZE } from "
|
|
5
|
-
import
|
|
6
|
-
import "../../
|
|
1
|
+
import { hexEq } from "../../utils/hex.js";
|
|
2
|
+
import { AbstractAdapterContract } from "../../market/adapters/contracts/AbstractAdapter.js";
|
|
3
|
+
import { CreditFacadeV310Contract } from "../../market/credit/CreditFacadeV310Contract.js";
|
|
4
|
+
import { RWA_FACTORY_SECURITIZE } from "../../../model/rwa.js";
|
|
5
|
+
import "../../../model/index.js";
|
|
6
|
+
import { isRWAFactory } from "../../market/rwa/types.js";
|
|
7
7
|
import { classifyInnerOperations } from "./classifyInnerOperations.js";
|
|
8
|
-
//#region src/preview/parse/parseRWAFactoryOperationCalldata.ts
|
|
8
|
+
//#region src/onchain/preview/parse/parseRWAFactoryOperationCalldata.ts
|
|
9
9
|
/**
|
|
10
10
|
* Decodes a RWA-factory entry-point call into the matching
|
|
11
11
|
* {@link RWAOperation}.
|
|
@@ -24,8 +24,7 @@ function parseRWAFactoryOperationCalldata(sdk, factory, calldata) {
|
|
|
24
24
|
* Securitize branch of {@link parseRWAFactoryOperationCalldata}
|
|
25
25
|
*
|
|
26
26
|
* In the template flow `tokensToRegister`/`signaturesToCache` are empty; the
|
|
27
|
-
* real values come from the factory's open-account requirements
|
|
28
|
-
* `checkPrerequisites`).
|
|
27
|
+
* real values come from the factory's open-account requirements.
|
|
29
28
|
*/
|
|
30
29
|
function parseSecuritizeOperationCalldata(sdk, factory, calldata) {
|
|
31
30
|
const parsed = sdk.parseFunctionDataV2(factory.address, calldata);
|
|
@@ -2,7 +2,7 @@ import "./types-adapters.js";
|
|
|
2
2
|
import "./types-facades.js";
|
|
3
3
|
import "./types-pools.js";
|
|
4
4
|
import "./types-rwa.js";
|
|
5
|
-
//#region src/preview/parse/types.ts
|
|
5
|
+
//#region src/onchain/preview/parse/types.ts
|
|
6
6
|
/**
|
|
7
7
|
* Narrows an {@link Operation} to a {@link PoolOperation} (deposit, mint,
|
|
8
8
|
* withdraw or redeem). Used by the UI to decide whether a custom view exists for
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { AssetsMap } from "../../
|
|
2
|
-
import { DUST_THRESHOLD } from "../../
|
|
3
|
-
import "../../onchain/index.js";
|
|
1
|
+
import { AssetsMap } from "../../utils/AssetsMap.js";
|
|
2
|
+
import { DUST_THRESHOLD } from "../../constants/math.js";
|
|
4
3
|
import { zeroAddress } from "viem";
|
|
5
|
-
//#region src/preview/preview/CreditAccountState.ts
|
|
4
|
+
//#region src/onchain/preview/preview/CreditAccountState.ts
|
|
6
5
|
/**
|
|
7
6
|
* A snapshot of a credit account's economic state (balances, quotas, debt)
|
|
8
7
|
* as used by operation previews, together with the account's identity.
|
package/dist/esm/{preview → onchain/preview}/preview/buildDelayedStrategyPositionOperationPreview.js
RENAMED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { AssetsMap } from "../../
|
|
2
|
-
import { BigIntMath } from "../../
|
|
3
|
-
import { DUST_THRESHOLD } from "../../
|
|
4
|
-
import { asEstimated } from "
|
|
5
|
-
import "
|
|
6
|
-
import "../../onchain/index.js";
|
|
1
|
+
import { AssetsMap } from "../../utils/AssetsMap.js";
|
|
2
|
+
import { BigIntMath } from "../../utils/bigint-math.js";
|
|
3
|
+
import { DUST_THRESHOLD } from "../../constants/math.js";
|
|
4
|
+
import { asEstimated } from "../../../model/previews.js";
|
|
5
|
+
import "../../../model/index.js";
|
|
7
6
|
import { isAddressEqual } from "viem";
|
|
8
|
-
//#region src/preview/preview/buildDelayedStrategyPositionOperationPreview.ts
|
|
7
|
+
//#region src/onchain/preview/preview/buildDelayedStrategyPositionOperationPreview.ts
|
|
9
8
|
/**
|
|
10
9
|
* Builds the best-effort preview of the account state after the detected
|
|
11
10
|
* delayed withdrawal is claimed and its intent (if any) is resumed:
|
|
@@ -65,11 +64,11 @@ function applyClaim(post, request) {
|
|
|
65
64
|
/**
|
|
66
65
|
* `WITHDRAW_COLLATERAL` operation tail:
|
|
67
66
|
* after the claim, `withdrawAmount` of `withdrawToken` goes to the
|
|
68
|
-
* user's wallet and the rest of the claim
|
|
67
|
+
* user's wallet and the rest of the claim repays the debt.
|
|
69
68
|
*
|
|
70
69
|
* Tokens involved (Securitize ACRED redemption as the example):
|
|
71
|
-
* - claim token (`request.claimToken`) - the token the claim
|
|
72
|
-
* redeeming ACRED
|
|
70
|
+
* - claim token (`request.claimToken`) - the token the claim settles in;
|
|
71
|
+
* redeeming ACRED settles in USDC.
|
|
73
72
|
* - withdraw token (`intent.withdrawToken`) - the token the user receives
|
|
74
73
|
* in the wallet. It can be the claim token itself (withdraw USDC) or a
|
|
75
74
|
* different token (withdraw RLUSD, bought with the claimed USDC).
|
|
@@ -86,7 +85,7 @@ function applyClaim(post, request) {
|
|
|
86
85
|
* 2. If the account holds less than `withdrawAmount` of `withdrawToken`,
|
|
87
86
|
* buy the missing part with the claim-token balance. This happens when
|
|
88
87
|
* the withdraw token differs from the claim token: e.g. withdrawing
|
|
89
|
-
* RLUSD from a claim that
|
|
88
|
+
* RLUSD from a claim that settled in USDC - RLUSD is bought with the
|
|
90
89
|
* claimed USDC. If even the whole claim balance cannot cover it, spend
|
|
91
90
|
* all of it and withdraw whatever it buys.
|
|
92
91
|
* 3. Convert the claim tokens still left into the underlying and repay the
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import "../../
|
|
2
|
-
import "../../onchain/index.js";
|
|
1
|
+
import "../../constants/math.js";
|
|
3
2
|
import { isAddressEqual } from "viem";
|
|
4
|
-
//#region src/preview/preview/detectCloseOrRepay.ts
|
|
3
|
+
//#region src/onchain/preview/preview/detectCloseOrRepay.ts
|
|
5
4
|
/**
|
|
6
5
|
* Detects whether a credit-facade multicall fully closes or repays the
|
|
7
6
|
* account: any multicall that calls `decreaseDebt(MAX_UINT256)`.
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { AbstractAdapterContract } from "../../
|
|
2
|
-
import { sdkOk } from "
|
|
3
|
-
import "
|
|
4
|
-
|
|
5
|
-
//#region src/preview/preview/detectDelayedClaim.ts
|
|
1
|
+
import { AbstractAdapterContract } from "../../market/adapters/contracts/AbstractAdapter.js";
|
|
2
|
+
import { sdkOk } from "../../../model/result.js";
|
|
3
|
+
import "../../../model/index.js";
|
|
4
|
+
//#region src/onchain/preview/preview/detectDelayedClaim.ts
|
|
6
5
|
/**
|
|
7
6
|
* Scans a credit-facade multicall for a delayed-withdrawal claim call.
|
|
8
7
|
*
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { AbstractAdapterContract } from "../../
|
|
2
|
-
import { sdkErr, sdkOk } from "
|
|
3
|
-
import "
|
|
4
|
-
import { decodeDelayedIntent } from "../../
|
|
5
|
-
import "../../onchain/index.js";
|
|
1
|
+
import { AbstractAdapterContract } from "../../market/adapters/contracts/AbstractAdapter.js";
|
|
2
|
+
import { sdkErr, sdkOk } from "../../../model/result.js";
|
|
3
|
+
import "../../../model/index.js";
|
|
4
|
+
import { decodeDelayedIntent } from "../../accounts/withdrawal-compressor/intent-codec.js";
|
|
6
5
|
import { isAddressEqual } from "viem";
|
|
7
|
-
//#region src/preview/preview/detectDelayedOperation.ts
|
|
6
|
+
//#region src/onchain/preview/preview/detectDelayedOperation.ts
|
|
8
7
|
/**
|
|
9
8
|
* Scans a credit-facade multicall for a delayed-withdrawal request.
|
|
10
9
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isAddressEqual } from "viem";
|
|
2
|
-
//#region src/preview/preview/estimateClaimableAt.ts
|
|
2
|
+
//#region src/onchain/preview/preview/estimateClaimableAt.ts
|
|
3
3
|
/**
|
|
4
4
|
* Estimates when a newly requested delayed withdrawal becomes claimable:
|
|
5
5
|
* `now + withdrawalLength` of the cached withdrawable asset whose phantom
|
|
@@ -3,11 +3,10 @@ import { CreditAccountState } from "./CreditAccountState.js";
|
|
|
3
3
|
import { classifyCloseOrRepay, isCloseOrRepay } from "./detectCloseOrRepay.js";
|
|
4
4
|
import { detectDelayedClaim, resolveDelayedClaimIntent } from "./detectDelayedClaim.js";
|
|
5
5
|
import { detectDelayedOperation } from "./detectDelayedOperation.js";
|
|
6
|
-
import { adapterCallOutsideBracketError, invalidTransactionValueError, malformedBracketError, nonAdapterCallInBracketError, unpreviewableAdapterCallError, unsupportedOutOfBracketCallError } from "./errors.js";
|
|
7
6
|
import { estimateClaimableAt } from "./estimateClaimableAt.js";
|
|
8
|
-
import { makeReplayState, replayInnerOperations } from "./replayInnerOperations.js";
|
|
9
|
-
import { replayMulticall } from "./replayMulticall.js";
|
|
10
7
|
import { previewAdjustStrategyPosition } from "./previewAdjustStrategyPosition.js";
|
|
11
8
|
import { previewExitOrRepayStrategyPosition } from "./previewExitOrRepayStrategyPosition.js";
|
|
9
|
+
import { makeReplayState, replayInnerOperations } from "./replayInnerOperations.js";
|
|
10
|
+
import { replayMulticall } from "./replayMulticall.js";
|
|
12
11
|
import { previewOperation } from "./previewOperation.js";
|
|
13
|
-
export { CreditAccountState,
|
|
12
|
+
export { CreditAccountState, buildDelayedStrategyPositionOperationPreview, classifyCloseOrRepay, detectDelayedClaim, detectDelayedOperation, estimateClaimableAt, isCloseOrRepay, makeReplayState, previewAdjustStrategyPosition, previewExitOrRepayStrategyPosition, previewOperation, replayInnerOperations, replayMulticall, resolveDelayedClaimIntent };
|
|
@@ -1,33 +1,29 @@
|
|
|
1
|
-
import { AP_WETH_TOKEN } from "../../
|
|
2
|
-
import { DUST_THRESHOLD } from "../../
|
|
3
|
-
import { asEstimated } from "
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
6
|
-
import { replayMulticall } from "./replayMulticall.js";
|
|
1
|
+
import { AP_WETH_TOKEN } from "../../constants/address-provider.js";
|
|
2
|
+
import { DUST_THRESHOLD } from "../../constants/math.js";
|
|
3
|
+
import { asEstimated } from "../../../model/previews.js";
|
|
4
|
+
import { sdkOk } from "../../../model/result.js";
|
|
5
|
+
import "../../../model/index.js";
|
|
7
6
|
import { unwrapNativeCollateral } from "./unwrapNativeCollateral.js";
|
|
8
|
-
//#region src/preview/preview/previewAdjustStrategyPosition.ts
|
|
7
|
+
//#region src/onchain/preview/preview/previewAdjustStrategyPosition.ts
|
|
9
8
|
/**
|
|
10
9
|
* Previews a `multicall`/`botMulticall` operation on an existing credit
|
|
11
|
-
* account:
|
|
12
|
-
* pre-
|
|
13
|
-
* minimal guaranteed post-state alongside the changes relative to the
|
|
14
|
-
* pre-state.
|
|
10
|
+
* account: reports the replayed post-state alongside the changes relative
|
|
11
|
+
* to the pre-state.
|
|
15
12
|
*/
|
|
16
|
-
function previewAdjustStrategyPosition(input, operation,
|
|
17
|
-
const {
|
|
13
|
+
function previewAdjustStrategyPosition(sdk, input, operation, replay) {
|
|
14
|
+
const { value = 0n } = input;
|
|
18
15
|
const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
|
|
19
16
|
const suite = sdk.marketRegister.findCreditManager(operation.creditManager);
|
|
20
17
|
const oracle = market.priceOracle;
|
|
21
|
-
const { before, after
|
|
18
|
+
const { before, after } = replay;
|
|
22
19
|
const account = after.account;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
const unwrapped = unwrapNativeCollateral(after.collateralAdded.toAssets(), value, sdk.addressProvider.getAddress(AP_WETH_TOKEN, 0));
|
|
21
|
+
if (!unwrapped.ok) return unwrapped;
|
|
22
|
+
const collateralAdded = unwrapped.data;
|
|
26
23
|
const assetsChange = account.balances.difference(before.balances).toAssets(DUST_THRESHOLD);
|
|
27
24
|
const priced = oracle.safeConvertAssets(account.balances.toAssets(), market.underlying);
|
|
28
|
-
warning ??= priced.error;
|
|
29
25
|
const snap = account.toSnapshot(priced.value);
|
|
30
|
-
return {
|
|
26
|
+
return sdkOk({
|
|
31
27
|
operation: "AdjustCreditAccount",
|
|
32
28
|
...asEstimated(sdk.positions.projection(snap, { availableLiquidityChange: before.totalDebt - account.totalDebt })),
|
|
33
29
|
creditAccount: operation.creditAccount,
|
|
@@ -41,8 +37,8 @@ function previewAdjustStrategyPosition(input, operation, options) {
|
|
|
41
37
|
...oracle.toAmount(market.underlying, q.balance)
|
|
42
38
|
})),
|
|
43
39
|
assetsChange: assetsChange.map((a) => oracle.toTokenAmount(a.token, a.balance)),
|
|
44
|
-
warning
|
|
45
|
-
};
|
|
40
|
+
warning: priced.error
|
|
41
|
+
});
|
|
46
42
|
}
|
|
47
43
|
//#endregion
|
|
48
44
|
export { previewAdjustStrategyPosition };
|
|
@@ -1,34 +1,28 @@
|
|
|
1
|
-
import { AP_WETH_TOKEN } from "../../
|
|
2
|
-
import "../../
|
|
3
|
-
import { asEstimated } from "
|
|
4
|
-
import "
|
|
5
|
-
import "
|
|
1
|
+
import { AP_WETH_TOKEN } from "../../constants/address-provider.js";
|
|
2
|
+
import "../../constants/math.js";
|
|
3
|
+
import { asEstimated } from "../../../model/previews.js";
|
|
4
|
+
import { sdkOk } from "../../../model/result.js";
|
|
5
|
+
import "../../../model/index.js";
|
|
6
6
|
import { classifyCloseOrRepay } from "./detectCloseOrRepay.js";
|
|
7
|
-
import { replayMulticall } from "./replayMulticall.js";
|
|
8
7
|
import { unwrapNativeCollateral } from "./unwrapNativeCollateral.js";
|
|
9
|
-
//#region src/preview/preview/previewExitOrRepayStrategyPosition.ts
|
|
10
|
-
function previewExitOrRepayStrategyPosition(input, operation, permanent,
|
|
11
|
-
const { sdk } = input;
|
|
8
|
+
//#region src/onchain/preview/preview/previewExitOrRepayStrategyPosition.ts
|
|
9
|
+
function previewExitOrRepayStrategyPosition(sdk, input, operation, permanent, replay) {
|
|
12
10
|
const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
|
|
13
11
|
const exitTokens = [market.underlying];
|
|
14
12
|
const meta = sdk.tokensMeta.get(market.underlying);
|
|
15
13
|
if (meta && sdk.tokensMeta.isRWAUnderlying(meta)) exitTokens.push(meta.asset);
|
|
16
|
-
|
|
17
|
-
return classifyCloseOrRepay(operation.multicall, exitTokens) === "close" ? previewCloseCreditAccount(input, operation, permanent, replay) : previewRepayCreditAccount(input, operation, permanent, replay);
|
|
14
|
+
return classifyCloseOrRepay(operation.multicall, exitTokens) === "close" ? sdkOk(previewCloseCreditAccount(sdk, operation, permanent, replay)) : previewRepayCreditAccount(sdk, input, operation, permanent, replay);
|
|
18
15
|
}
|
|
19
16
|
/**
|
|
20
17
|
* Previews a credit account closure: all collateral is swapped into
|
|
21
18
|
* underlying, the debt is fully repaid and the remaining underlying is
|
|
22
19
|
* withdrawn to the user.
|
|
23
20
|
*/
|
|
24
|
-
function previewCloseCreditAccount(
|
|
25
|
-
const { sdk } = input;
|
|
21
|
+
function previewCloseCreditAccount(sdk, operation, permanent, replay) {
|
|
26
22
|
const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
|
|
27
|
-
const { before, after
|
|
23
|
+
const { before, after } = replay;
|
|
28
24
|
const account = after.account;
|
|
29
|
-
let warning = replayWarning;
|
|
30
25
|
const priced = market.priceOracle.safeConvertAssets(account.balances.toAssets(), market.underlying);
|
|
31
|
-
warning ??= priced.error;
|
|
32
26
|
const suite = sdk.marketRegister.findCreditManager(operation.creditManager);
|
|
33
27
|
let receivedToken = market.underlying;
|
|
34
28
|
for (const m of operation.multicall) if (m.operation === "WithdrawCollateral" && m.amount === 115792089237316195423570985008687907853269984665640564039457584007913129639935n) {
|
|
@@ -43,7 +37,7 @@ function previewCloseCreditAccount(input, operation, permanent, replay) {
|
|
|
43
37
|
name: suite.accountStrategyName(operation.creditAccount),
|
|
44
38
|
targetCollateral: suite.accountTargetCollateral(operation.creditAccount),
|
|
45
39
|
receivedAmount: market.priceOracle.toTokenAmount(receivedToken, after.collateralWithdrawn.getOrZero(receivedToken)),
|
|
46
|
-
warning
|
|
40
|
+
warning: priced.error
|
|
47
41
|
};
|
|
48
42
|
}
|
|
49
43
|
/**
|
|
@@ -51,17 +45,17 @@ function previewCloseCreditAccount(input, operation, permanent, replay) {
|
|
|
51
45
|
* from the wallet when needed) and collateral is returned to the user
|
|
52
46
|
* in-kind.
|
|
53
47
|
*/
|
|
54
|
-
function previewRepayCreditAccount(input, operation, permanent, replay) {
|
|
55
|
-
const {
|
|
48
|
+
function previewRepayCreditAccount(sdk, input, operation, permanent, replay) {
|
|
49
|
+
const { value = 0n } = input;
|
|
56
50
|
const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
|
|
57
|
-
const { before, after
|
|
51
|
+
const { before, after } = replay;
|
|
58
52
|
const account = after.account;
|
|
59
|
-
const
|
|
60
|
-
|
|
53
|
+
const unwrapped = unwrapNativeCollateral(after.collateralAdded.toAssets(), value, sdk.addressProvider.getAddress(AP_WETH_TOKEN, 0));
|
|
54
|
+
if (!unwrapped.ok) return unwrapped;
|
|
55
|
+
const collateralAdded = unwrapped.data;
|
|
61
56
|
const priced = market.priceOracle.safeConvertAssets(account.balances.toAssets(), market.underlying);
|
|
62
|
-
warning ??= priced.error;
|
|
63
57
|
const suite = sdk.marketRegister.findCreditManager(operation.creditManager);
|
|
64
|
-
return {
|
|
58
|
+
return sdkOk({
|
|
65
59
|
operation: "RepayCreditAccount",
|
|
66
60
|
permanent,
|
|
67
61
|
...asEstimated(sdk.positions.projection(account.toSnapshot(priced.value), { availableLiquidityChange: before.totalDebt - account.totalDebt })),
|
|
@@ -71,8 +65,8 @@ function previewRepayCreditAccount(input, operation, permanent, replay) {
|
|
|
71
65
|
collateralAdded: collateralAdded.map((a) => market.priceOracle.toTokenAmount(a.token, a.balance)),
|
|
72
66
|
debtRepaid: market.toUnderlyingAmount(before.totalDebt - account.totalDebt),
|
|
73
67
|
collateralWithdrawn: after.collateralWithdrawn.toAssets().map((a) => market.priceOracle.toTokenAmount(a.token, a.balance)),
|
|
74
|
-
warning
|
|
75
|
-
};
|
|
68
|
+
warning: priced.error
|
|
69
|
+
});
|
|
76
70
|
}
|
|
77
71
|
//#endregion
|
|
78
72
|
export { previewExitOrRepayStrategyPosition };
|
|
@@ -1,35 +1,45 @@
|
|
|
1
|
-
import { AP_WETH_TOKEN } from "../../
|
|
2
|
-
import { asEstimated } from "
|
|
3
|
-
import "
|
|
4
|
-
import "
|
|
1
|
+
import { AP_WETH_TOKEN } from "../../constants/address-provider.js";
|
|
2
|
+
import { asEstimated } from "../../../model/previews.js";
|
|
3
|
+
import { sdkErr, sdkOk } from "../../../model/result.js";
|
|
4
|
+
import "../../../model/index.js";
|
|
5
5
|
import { CreditAccountState } from "./CreditAccountState.js";
|
|
6
|
-
import { makeReplayState, replayInnerOperations } from "./replayInnerOperations.js";
|
|
7
6
|
import { unwrapNativeCollateral } from "./unwrapNativeCollateral.js";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
import { makeReplayState, replayInnerOperations } from "./replayInnerOperations.js";
|
|
8
|
+
//#region src/onchain/preview/preview/previewOpenStrategyPosition.ts
|
|
9
|
+
function previewOpenStrategyPosition(sdk, input, operation) {
|
|
10
|
+
const { value = 0n } = input;
|
|
11
11
|
const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
|
|
12
12
|
const oracle = market.priceOracle;
|
|
13
13
|
const state = makeReplayState(CreditAccountState.beforeOpen(operation.creditManager, market.underlying));
|
|
14
|
-
|
|
14
|
+
const replayError = replayInnerOperations(sdk, operation.multicall, state);
|
|
15
|
+
if (replayError) return sdkErr(replayError);
|
|
15
16
|
const account = state.account;
|
|
16
|
-
let
|
|
17
|
+
let warning;
|
|
17
18
|
const netValue = state.collateralAdded.sum((token, balance) => {
|
|
18
19
|
const priced = oracle.safeConvert(token, market.underlying, balance);
|
|
19
|
-
|
|
20
|
+
warning ??= priced.error;
|
|
20
21
|
return priced.value;
|
|
21
22
|
});
|
|
22
|
-
const
|
|
23
|
-
|
|
23
|
+
const unwrapped = unwrapNativeCollateral(state.collateralAdded.toAssets(), value, sdk.addressProvider.getAddress(AP_WETH_TOKEN, 0));
|
|
24
|
+
if (!unwrapped.ok) return unwrapped;
|
|
25
|
+
const collateral = unwrapped.data;
|
|
24
26
|
const snap = account.toSnapshot(netValue + account.totalDebt);
|
|
25
27
|
const targetAsset = inferTargetAsset(operation.multicall, account.balances);
|
|
26
|
-
|
|
27
|
-
operation: operation.operation,
|
|
28
|
+
const projection = {
|
|
28
29
|
...asEstimated(sdk.positions.projection(snap, { availableLiquidityChange: -account.totalDebt })),
|
|
29
30
|
targetCollateral: targetAsset ? oracle.toTokenAmount(targetAsset.token, targetAsset.balance) : void 0,
|
|
30
31
|
collateralAdded: collateral.map((a) => oracle.toTokenAmount(a.token, a.balance)),
|
|
31
32
|
warning
|
|
32
33
|
};
|
|
34
|
+
if (operation.operation === "RWAOpenCreditAccount") return sdkOk({
|
|
35
|
+
...projection,
|
|
36
|
+
operation: "RWAOpenCreditAccount",
|
|
37
|
+
rwaArgs: operation.args
|
|
38
|
+
});
|
|
39
|
+
return sdkOk({
|
|
40
|
+
...projection,
|
|
41
|
+
operation: "OpenCreditAccount"
|
|
42
|
+
});
|
|
33
43
|
}
|
|
34
44
|
/**
|
|
35
45
|
* Infers the strategy target token of an account opening: the first quoted
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "
|
|
1
|
+
import { creditAccountNotFound } from "../../../model/errors/prepare-errors.js";
|
|
2
|
+
import { sdkErr, sdkOk } from "../../../model/result.js";
|
|
3
|
+
import "../../../model/index.js";
|
|
3
4
|
import { parseOperationCalldata } from "../parse/parseOperationCalldata.js";
|
|
4
5
|
import { isPoolOperation } from "../parse/types.js";
|
|
5
6
|
import "../parse/index.js";
|
|
@@ -8,12 +9,12 @@ import { isCloseOrRepay } from "./detectCloseOrRepay.js";
|
|
|
8
9
|
import { resolveDelayedClaimIntent } from "./detectDelayedClaim.js";
|
|
9
10
|
import { detectDelayedOperation } from "./detectDelayedOperation.js";
|
|
10
11
|
import { estimateClaimableAt } from "./estimateClaimableAt.js";
|
|
11
|
-
import { replayMulticall } from "./replayMulticall.js";
|
|
12
12
|
import { previewAdjustStrategyPosition } from "./previewAdjustStrategyPosition.js";
|
|
13
13
|
import { previewExitOrRepayStrategyPosition } from "./previewExitOrRepayStrategyPosition.js";
|
|
14
14
|
import { previewOpenStrategyPosition } from "./previewOpenStrategyPosition.js";
|
|
15
15
|
import { previewPoolPositionOperation } from "./previewPoolPositionOperation.js";
|
|
16
|
-
|
|
16
|
+
import { replayMulticall } from "./replayMulticall.js";
|
|
17
|
+
//#region src/onchain/preview/preview/previewOperation.ts
|
|
17
18
|
/**
|
|
18
19
|
* Previews a raw operation calldata: decodes it into a typed operation and
|
|
19
20
|
* assembles an operation-specific, human-displayable preview.
|
|
@@ -21,24 +22,37 @@ import { previewPoolPositionOperation } from "./previewPoolPositionOperation.js"
|
|
|
21
22
|
* Answers an {@link SDKReturn} envelope: the preview behind `ok: true`, or —
|
|
22
23
|
* when the transaction is one the previewer refuses to read — a
|
|
23
24
|
* {@link PreviewOperationError} behind `ok: false`. A thrown exception
|
|
24
|
-
* still means the SDK could not do its job (a read failed,
|
|
25
|
-
*
|
|
25
|
+
* still means the SDK could not do its job (a read failed), not a refusal
|
|
26
|
+
* of the transaction.
|
|
27
|
+
*
|
|
28
|
+
* `input.chainId` and `sdk` both name the chain; the engine does not read
|
|
29
|
+
* `input.chainId`.
|
|
26
30
|
*/
|
|
27
|
-
async function previewOperation(input, options) {
|
|
28
|
-
const parsed = parseOperationCalldata(input);
|
|
29
|
-
if (
|
|
31
|
+
async function previewOperation(sdk, input, options, creditAccount) {
|
|
32
|
+
const parsed = parseOperationCalldata(sdk, input);
|
|
33
|
+
if (!parsed.ok) return parsed;
|
|
30
34
|
const operation = parsed.data;
|
|
31
|
-
if (isPoolOperation(operation)) return previewPoolPositionOperation(
|
|
32
|
-
if (operation.operation === "OpenCreditAccount" || operation.operation === "RWAOpenCreditAccount") return
|
|
35
|
+
if (isPoolOperation(operation)) return previewPoolPositionOperation(sdk, operation, options);
|
|
36
|
+
if (operation.operation === "OpenCreditAccount" || operation.operation === "RWAOpenCreditAccount") return previewOpenStrategyPosition(sdk, input, operation);
|
|
33
37
|
if (operation.operation === "CloseCreditAccount") {
|
|
34
|
-
const resolved = await resolveCreditAccount(
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
if (
|
|
38
|
-
preview
|
|
39
|
-
|
|
38
|
+
const resolved = await resolveCreditAccount(sdk, operation, options, creditAccount);
|
|
39
|
+
if (!resolved.ok) return resolved;
|
|
40
|
+
const replayed = replayMulticall(sdk, operation, resolved.data);
|
|
41
|
+
if (!replayed.ok) return replayed;
|
|
42
|
+
const preview = previewExitOrRepayStrategyPosition(sdk, input, operation, true, replayed.data);
|
|
43
|
+
if (!preview.ok) return preview;
|
|
44
|
+
const intent = await resolveDelayedClaimIntent(sdk, operation.multicall, options?.blockNumber);
|
|
45
|
+
if (!intent.ok) return intent;
|
|
46
|
+
preview.data.intent = intent.data;
|
|
47
|
+
return preview;
|
|
48
|
+
}
|
|
49
|
+
if (operation.operation === "MultiCall" || operation.operation === "BotMulticall" || operation.operation === "RWAMulticall") {
|
|
50
|
+
const resolved = await resolveCreditAccount(sdk, operation, options, creditAccount);
|
|
51
|
+
if (!resolved.ok) return resolved;
|
|
52
|
+
const replayed = replayMulticall(sdk, operation, resolved.data);
|
|
53
|
+
if (!replayed.ok) return replayed;
|
|
54
|
+
return previewMulticallOperation(sdk, input, operation, replayed.data, options?.blockNumber);
|
|
40
55
|
}
|
|
41
|
-
if (operation.operation === "MultiCall" || operation.operation === "BotMulticall" || operation.operation === "RWAMulticall") return previewMulticallOperation(input, operation, await resolveCreditAccount(input, operation, options));
|
|
42
56
|
return sdkErr({
|
|
43
57
|
code: "unsupportedOperation",
|
|
44
58
|
message: `operation "${operation.operation}" is not supported by previewOperation`,
|
|
@@ -47,17 +61,14 @@ async function previewOperation(input, options) {
|
|
|
47
61
|
}
|
|
48
62
|
/**
|
|
49
63
|
* Resolves the pre-state of the credit account an operation targets: uses the
|
|
50
|
-
* state
|
|
51
|
-
*
|
|
64
|
+
* injected state when present, otherwise fetches it from the credit account
|
|
65
|
+
* compressor.
|
|
52
66
|
*/
|
|
53
|
-
async function resolveCreditAccount(
|
|
54
|
-
let
|
|
55
|
-
if (!
|
|
56
|
-
if (!
|
|
57
|
-
return
|
|
58
|
-
...options,
|
|
59
|
-
creditAccount
|
|
60
|
-
};
|
|
67
|
+
async function resolveCreditAccount(sdk, operation, options, creditAccount) {
|
|
68
|
+
let resolved = creditAccount;
|
|
69
|
+
if (!resolved) resolved = await sdk.accounts.getCreditAccountData(operation.creditAccount, options?.blockNumber);
|
|
70
|
+
if (!resolved) return sdkErr(creditAccountNotFound(operation.creditAccount));
|
|
71
|
+
return sdkOk(resolved);
|
|
61
72
|
}
|
|
62
73
|
/**
|
|
63
74
|
* Previews a plain/bot/RWA multicall: classifies the instant preview
|
|
@@ -66,19 +77,27 @@ async function resolveCreditAccount(input, operation, options) {
|
|
|
66
77
|
* `DelayedCreditAccountOperation` together with the best-effort preview of
|
|
67
78
|
* the state after the withdrawal is claimed.
|
|
68
79
|
*/
|
|
69
|
-
async function previewMulticallOperation(input, operation,
|
|
70
|
-
|
|
71
|
-
|
|
80
|
+
async function previewMulticallOperation(sdk, input, operation, replay, blockNumber) {
|
|
81
|
+
let instantPreview;
|
|
82
|
+
if (isCloseOrRepay(operation.multicall)) {
|
|
83
|
+
const instant = previewExitOrRepayStrategyPosition(sdk, input, operation, false, replay);
|
|
84
|
+
if (!instant.ok) return instant;
|
|
85
|
+
instantPreview = instant.data;
|
|
86
|
+
} else {
|
|
87
|
+
const instant = previewAdjustStrategyPosition(sdk, input, operation, replay);
|
|
88
|
+
if (!instant.ok) return instant;
|
|
89
|
+
instantPreview = instant.data;
|
|
90
|
+
}
|
|
72
91
|
const detected = detectDelayedOperation(sdk, operation.multicall);
|
|
73
|
-
if (
|
|
92
|
+
if (!detected.ok) return detected;
|
|
74
93
|
const delayed = detected.data;
|
|
75
94
|
if (!delayed) {
|
|
76
|
-
const intent = await resolveDelayedClaimIntent(sdk, operation.multicall,
|
|
77
|
-
if (
|
|
95
|
+
const intent = await resolveDelayedClaimIntent(sdk, operation.multicall, blockNumber);
|
|
96
|
+
if (!intent.ok) return intent;
|
|
78
97
|
instantPreview.intent = intent.data;
|
|
79
98
|
return sdkOk(instantPreview);
|
|
80
99
|
}
|
|
81
|
-
const { before, after } =
|
|
100
|
+
const { before, after } = replay;
|
|
82
101
|
const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
|
|
83
102
|
const meta = sdk.tokensMeta.get(market.underlying);
|
|
84
103
|
const receivedToken = meta && sdk.tokensMeta.isRWAUnderlying(meta) ? meta.asset : market.underlying;
|