@gearbox-protocol/sdk 16.2.0 → 16.3.0-next.2
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/rwa/iMidasAccessControl.js +23 -0
- package/dist/cjs/abi/rwa/iMidasDegenNFT.js +92 -0
- 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 +45 -2
- package/dist/cjs/model/opportunities.schema.js +3 -1
- package/dist/cjs/model/positions.js +1 -1
- package/dist/cjs/model/result.js +0 -8
- package/dist/cjs/model/rwa.js +53 -0
- package/dist/cjs/model/rwa.schema.js +20 -0
- package/dist/cjs/offchain/opportunities/OffchainOpportunities.js +1 -1
- 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 +6 -4
- 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/liquidations/LiquidationsService.js +2 -2
- package/dist/cjs/onchain/accounts/withdrawal-compressor/index.js +0 -1
- package/dist/cjs/onchain/index.js +130 -38
- package/dist/cjs/onchain/market/MarketSuite.js +10 -4
- package/dist/cjs/onchain/market/adapters/index.js +1 -0
- package/dist/cjs/onchain/market/credit/CreditSuite.js +77 -15
- package/dist/cjs/onchain/market/index.js +8 -8
- 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/createDegenNFT.js +53 -0
- package/dist/cjs/onchain/market/rwa/index.js +7 -5
- package/dist/cjs/onchain/market/rwa/midas/MidasDegenNFT.js +56 -0
- package/dist/cjs/onchain/market/rwa/midas/constants.js +2 -0
- package/dist/cjs/onchain/market/rwa/midas/index.js +3 -0
- package/dist/cjs/onchain/market/rwa/securitize/SecuritizeDegenNFT.js +22 -3
- package/dist/cjs/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +9 -9
- package/dist/cjs/onchain/market/rwa/securitize/constants.js +2 -2
- package/dist/cjs/onchain/market/rwa/securitize/index.js +4 -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/opportunities/MultichainOpportunitiesService.js +2 -2
- package/dist/cjs/onchain/opportunities/OpportunitiesService.js +11 -3
- 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/index.js +6 -11
- package/dist/cjs/sdk/liquidations/LiquidationsNamespace.js +9 -0
- package/dist/cjs/sdk/opportunities/OpportunitiesNamespace.js +19 -4
- package/dist/cjs/sdk/prepare/PrepareApi.js +40 -50
- package/dist/cjs/sdk/prepare/index.js +7 -11
- package/dist/cjs/sdk/prepare/types.js +0 -4
- package/dist/cjs/sdk/preview/PreviewNamespace.js +24 -13
- package/dist/esm/abi/rwa/iMidasAccessControl.js +22 -0
- package/dist/esm/abi/rwa/iMidasDegenNFT.js +91 -0
- package/dist/esm/dev/AccountOpener.js +1 -1
- package/dist/esm/dev/withdrawalUtils.js +1 -1
- 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 +2 -2
- 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 +10 -3
- package/dist/esm/model/opportunities.schema.js +3 -1
- package/dist/esm/model/positions.js +1 -1
- package/dist/esm/model/result.js +1 -8
- package/dist/esm/model/rwa.js +48 -0
- package/dist/esm/model/rwa.schema.js +18 -0
- package/dist/esm/offchain/opportunities/OffchainOpportunities.js +1 -1
- 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 +8 -6
- 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/liquidations/LiquidationsService.js +3 -3
- package/dist/esm/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
- package/dist/esm/onchain/accounts/withdrawal-compressor/index.js +0 -1
- package/dist/esm/onchain/base/TokensMeta.js +3 -3
- package/dist/esm/onchain/core/createAddressProvider.js +1 -1
- package/dist/esm/onchain/index.js +64 -11
- package/dist/esm/onchain/market/MarketSuite.js +10 -4
- package/dist/esm/onchain/market/adapters/contracts/AccountMigratorAdapterContract.js +1 -1
- package/dist/esm/onchain/market/adapters/contracts/ERC4626AdapterContract.js +1 -1
- package/dist/esm/onchain/market/adapters/index.js +1 -0
- package/dist/esm/onchain/market/credit/CreditFacadeV310BaseContract.js +1 -1
- package/dist/esm/onchain/market/credit/CreditSuite.js +77 -15
- package/dist/esm/onchain/market/index.js +6 -6
- 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/pool/PoolV310Contract.js +1 -1
- package/dist/esm/onchain/market/rwa/RWARegistry.js +2 -1
- package/dist/esm/onchain/market/rwa/createDegenNFT.js +52 -0
- package/dist/esm/onchain/market/rwa/index.js +6 -5
- package/dist/esm/onchain/market/rwa/midas/MidasDegenNFT.js +55 -0
- package/dist/esm/onchain/market/rwa/midas/constants.js +2 -1
- package/dist/esm/onchain/market/rwa/midas/index.js +3 -2
- package/dist/esm/onchain/market/rwa/securitize/SecuritizeDegenNFT.js +20 -2
- package/dist/esm/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +4 -4
- package/dist/esm/onchain/market/rwa/securitize/constants.js +2 -2
- package/dist/esm/onchain/market/rwa/securitize/index.js +4 -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/IETHZapperContract.js +1 -1
- package/dist/esm/onchain/market/zapper/ZapperContract.js +1 -1
- package/dist/esm/onchain/market/zapper/index.js +0 -1
- package/dist/esm/onchain/opportunities/MultichainOpportunitiesService.js +2 -2
- package/dist/esm/onchain/opportunities/OpportunitiesService.js +11 -3
- 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/utils/viem/simulateWithPriceUpdates.js +1 -1
- 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/index.js +2 -3
- package/dist/esm/sdk/liquidations/LiquidationsNamespace.js +9 -0
- package/dist/esm/sdk/opportunities/OpportunitiesNamespace.js +19 -4
- package/dist/esm/sdk/prepare/PrepareApi.js +25 -35
- 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/abi/rwa/iMidasAccessControl.d.ts +22 -0
- package/dist/types/abi/rwa/iMidasDegenNFT.d.ts +82 -0
- 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 +12 -4
- package/dist/types/model/opportunities.d.ts +12 -2
- package/dist/types/model/opportunities.schema.d.ts +30 -0
- 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 +167 -0
- package/dist/types/model/rwa.schema.d.ts +29 -0
- package/dist/types/offchain/opportunities/OffchainOpportunities.d.ts +2 -1
- package/dist/types/offchain/opportunities/types.d.ts +4 -1
- 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/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/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 +2 -1
- 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 +73 -16
- 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 +30 -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 +11 -10
- 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/RWARegistry.d.ts +1 -1
- package/dist/types/onchain/market/rwa/createDegenNFT.d.ts +12 -0
- package/dist/types/onchain/market/rwa/index.d.ts +10 -8
- package/dist/types/onchain/market/rwa/midas/MidasDegenNFT.d.ts +98 -0
- package/dist/types/onchain/market/rwa/midas/constants.d.ts +2 -1
- package/dist/types/onchain/market/rwa/midas/index.d.ts +3 -2
- package/dist/types/onchain/market/rwa/securitize/SecuritizeDegenNFT.d.ts +8 -2
- package/dist/types/onchain/market/rwa/securitize/SecuritizeRWAFactory.d.ts +4 -3
- package/dist/types/onchain/market/rwa/securitize/constants.d.ts +2 -2
- package/dist/types/onchain/market/rwa/securitize/index.d.ts +5 -4
- package/dist/types/onchain/market/rwa/securitize/types.d.ts +4 -110
- package/dist/types/onchain/market/rwa/types.d.ts +24 -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/opportunities/MultichainOpportunitiesService.d.ts +2 -1
- package/dist/types/onchain/opportunities/OpportunitiesService.d.ts +5 -1
- package/dist/types/onchain/opportunities/types.d.ts +3 -2
- 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/opportunities/OpportunitiesNamespace.d.ts +2 -1
- package/dist/types/sdk/opportunities/types.d.ts +8 -2
- package/dist/types/sdk/prepare/PrepareApi.d.ts +5 -4
- package/dist/types/sdk/prepare/index.d.ts +5 -5
- package/dist/types/sdk/prepare/types.d.ts +41 -22
- 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 -114
- 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 -108
- 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 -343
- /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
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_errors_prepare_errors = require("../../../model/errors/prepare-errors.js");
|
|
3
|
+
const require_model_result = require("../../../model/result.js");
|
|
4
|
+
require("../../../model/index.js");
|
|
5
|
+
const require_onchain_preview_parse_parseOperationCalldata = require("../parse/parseOperationCalldata.js");
|
|
6
|
+
const require_onchain_preview_parse_types = require("../parse/types.js");
|
|
7
|
+
require("../parse/index.js");
|
|
8
|
+
const require_onchain_preview_preview_buildDelayedStrategyPositionOperationPreview = require("./buildDelayedStrategyPositionOperationPreview.js");
|
|
9
|
+
const require_onchain_preview_preview_detectCloseOrRepay = require("./detectCloseOrRepay.js");
|
|
10
|
+
const require_onchain_preview_preview_detectDelayedClaim = require("./detectDelayedClaim.js");
|
|
11
|
+
const require_onchain_preview_preview_detectDelayedOperation = require("./detectDelayedOperation.js");
|
|
12
|
+
const require_onchain_preview_preview_estimateClaimableAt = require("./estimateClaimableAt.js");
|
|
13
|
+
const require_onchain_preview_preview_previewAdjustStrategyPosition = require("./previewAdjustStrategyPosition.js");
|
|
14
|
+
const require_onchain_preview_preview_previewExitOrRepayStrategyPosition = require("./previewExitOrRepayStrategyPosition.js");
|
|
15
|
+
const require_onchain_preview_preview_previewOpenStrategyPosition = require("./previewOpenStrategyPosition.js");
|
|
16
|
+
const require_onchain_preview_preview_previewPoolPositionOperation = require("./previewPoolPositionOperation.js");
|
|
17
|
+
const require_onchain_preview_preview_replayMulticall = require("./replayMulticall.js");
|
|
18
|
+
//#region src/onchain/preview/preview/previewOperation.ts
|
|
19
|
+
/**
|
|
20
|
+
* Previews a raw operation calldata: decodes it into a typed operation and
|
|
21
|
+
* assembles an operation-specific, human-displayable preview.
|
|
22
|
+
*
|
|
23
|
+
* Answers an {@link SDKReturn} envelope: the preview behind `ok: true`, or —
|
|
24
|
+
* when the transaction is one the previewer refuses to read — a
|
|
25
|
+
* {@link PreviewOperationError} behind `ok: false`. A thrown exception
|
|
26
|
+
* still means the SDK could not do its job (a read failed), not a refusal
|
|
27
|
+
* of the transaction.
|
|
28
|
+
*
|
|
29
|
+
* `input.chainId` and `sdk` both name the chain; the engine does not read
|
|
30
|
+
* `input.chainId`.
|
|
31
|
+
*/
|
|
32
|
+
async function previewOperation(sdk, input, options, creditAccount) {
|
|
33
|
+
const parsed = require_onchain_preview_parse_parseOperationCalldata.parseOperationCalldata(sdk, input);
|
|
34
|
+
if (!parsed.ok) return parsed;
|
|
35
|
+
const operation = parsed.data;
|
|
36
|
+
if (require_onchain_preview_parse_types.isPoolOperation(operation)) return require_onchain_preview_preview_previewPoolPositionOperation.previewPoolPositionOperation(sdk, operation, options);
|
|
37
|
+
if (operation.operation === "OpenCreditAccount" || operation.operation === "RWAOpenCreditAccount") return require_onchain_preview_preview_previewOpenStrategyPosition.previewOpenStrategyPosition(sdk, input, operation);
|
|
38
|
+
if (operation.operation === "CloseCreditAccount") {
|
|
39
|
+
const resolved = await resolveCreditAccount(sdk, operation, options, creditAccount);
|
|
40
|
+
if (!resolved.ok) return resolved;
|
|
41
|
+
const replayed = require_onchain_preview_preview_replayMulticall.replayMulticall(sdk, operation, resolved.data);
|
|
42
|
+
if (!replayed.ok) return replayed;
|
|
43
|
+
const preview = require_onchain_preview_preview_previewExitOrRepayStrategyPosition.previewExitOrRepayStrategyPosition(sdk, input, operation, true, replayed.data);
|
|
44
|
+
if (!preview.ok) return preview;
|
|
45
|
+
const intent = await require_onchain_preview_preview_detectDelayedClaim.resolveDelayedClaimIntent(sdk, operation.multicall, options?.blockNumber);
|
|
46
|
+
if (!intent.ok) return intent;
|
|
47
|
+
preview.data.intent = intent.data;
|
|
48
|
+
return preview;
|
|
49
|
+
}
|
|
50
|
+
if (operation.operation === "MultiCall" || operation.operation === "BotMulticall" || operation.operation === "RWAMulticall") {
|
|
51
|
+
const resolved = await resolveCreditAccount(sdk, operation, options, creditAccount);
|
|
52
|
+
if (!resolved.ok) return resolved;
|
|
53
|
+
const replayed = require_onchain_preview_preview_replayMulticall.replayMulticall(sdk, operation, resolved.data);
|
|
54
|
+
if (!replayed.ok) return replayed;
|
|
55
|
+
return previewMulticallOperation(sdk, input, operation, replayed.data, options?.blockNumber);
|
|
56
|
+
}
|
|
57
|
+
return require_model_result.sdkErr({
|
|
58
|
+
code: "unsupportedOperation",
|
|
59
|
+
message: `operation "${operation.operation}" is not supported by previewOperation`,
|
|
60
|
+
operation: operation.operation
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Resolves the pre-state of the credit account an operation targets: uses the
|
|
65
|
+
* injected state when present, otherwise fetches it from the credit account
|
|
66
|
+
* compressor.
|
|
67
|
+
*/
|
|
68
|
+
async function resolveCreditAccount(sdk, operation, options, creditAccount) {
|
|
69
|
+
let resolved = creditAccount;
|
|
70
|
+
if (!resolved) resolved = await sdk.accounts.getCreditAccountData(operation.creditAccount, options?.blockNumber);
|
|
71
|
+
if (!resolved) return require_model_result.sdkErr(require_model_errors_prepare_errors.creditAccountNotFound(operation.creditAccount));
|
|
72
|
+
return require_model_result.sdkOk(resolved);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Previews a plain/bot/RWA multicall: classifies the instant preview
|
|
76
|
+
* (zero-debt closure/repay vs adjustment) and, when the multicall requests a
|
|
77
|
+
* delayed withdrawal, wraps the instant preview into a
|
|
78
|
+
* `DelayedCreditAccountOperation` together with the best-effort preview of
|
|
79
|
+
* the state after the withdrawal is claimed.
|
|
80
|
+
*/
|
|
81
|
+
async function previewMulticallOperation(sdk, input, operation, replay, blockNumber) {
|
|
82
|
+
let instantPreview;
|
|
83
|
+
if (require_onchain_preview_preview_detectCloseOrRepay.isCloseOrRepay(operation.multicall)) {
|
|
84
|
+
const instant = require_onchain_preview_preview_previewExitOrRepayStrategyPosition.previewExitOrRepayStrategyPosition(sdk, input, operation, false, replay);
|
|
85
|
+
if (!instant.ok) return instant;
|
|
86
|
+
instantPreview = instant.data;
|
|
87
|
+
} else {
|
|
88
|
+
const instant = require_onchain_preview_preview_previewAdjustStrategyPosition.previewAdjustStrategyPosition(sdk, input, operation, replay);
|
|
89
|
+
if (!instant.ok) return instant;
|
|
90
|
+
instantPreview = instant.data;
|
|
91
|
+
}
|
|
92
|
+
const detected = require_onchain_preview_preview_detectDelayedOperation.detectDelayedOperation(sdk, operation.multicall);
|
|
93
|
+
if (!detected.ok) return detected;
|
|
94
|
+
const delayed = detected.data;
|
|
95
|
+
if (!delayed) {
|
|
96
|
+
const intent = await require_onchain_preview_preview_detectDelayedClaim.resolveDelayedClaimIntent(sdk, operation.multicall, blockNumber);
|
|
97
|
+
if (!intent.ok) return intent;
|
|
98
|
+
instantPreview.intent = intent.data;
|
|
99
|
+
return require_model_result.sdkOk(instantPreview);
|
|
100
|
+
}
|
|
101
|
+
const { before, after } = replay;
|
|
102
|
+
const market = sdk.marketRegister.findByCreditManager(operation.creditManager);
|
|
103
|
+
const meta = sdk.tokensMeta.get(market.underlying);
|
|
104
|
+
const receivedToken = meta && sdk.tokensMeta.isRWAUnderlying(meta) ? meta.asset : market.underlying;
|
|
105
|
+
const suite = sdk.marketRegister.findCreditManager(operation.creditManager);
|
|
106
|
+
return require_model_result.sdkOk({
|
|
107
|
+
operation: "DelayedCreditAccountOperation",
|
|
108
|
+
creditAccount: operation.creditAccount,
|
|
109
|
+
...suite.creditOperationMarket(),
|
|
110
|
+
name: suite.accountStrategyName(operation.creditAccount),
|
|
111
|
+
targetCollateral: suite.accountTargetCollateral(operation.creditAccount),
|
|
112
|
+
intent: delayed.intent,
|
|
113
|
+
estClaimableAt: require_onchain_preview_preview_estimateClaimableAt.estimateClaimableAt(sdk, delayed.request.phantomToken),
|
|
114
|
+
instantPreview,
|
|
115
|
+
delayedPreview: require_onchain_preview_preview_buildDelayedStrategyPositionOperationPreview.buildDelayedStrategyPositionOperationPreview(after.account, before, delayed, receivedToken, sdk)
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
//#endregion
|
|
119
|
+
exports.previewOperation = previewOperation;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
require("
|
|
6
|
-
|
|
7
|
-
//#region src/preview/
|
|
2
|
+
const require_abi_iERC20 = require("../../../abi/iERC20.js");
|
|
3
|
+
const require_abi_iZapper = require("../../../abi/iZapper.js");
|
|
4
|
+
const require_abi_310_generated = require("../../../abi/310/generated.js");
|
|
5
|
+
const require_model_result = require("../../../model/result.js");
|
|
6
|
+
require("../../../model/index.js");
|
|
7
|
+
//#region src/onchain/preview/preview/previewPoolPositionOperation.ts
|
|
8
8
|
function previewRead(operation) {
|
|
9
9
|
switch (operation.operation) {
|
|
10
10
|
case "Deposit": return {
|
|
@@ -74,36 +74,50 @@ function amountsInOut(operation, previewAmount) {
|
|
|
74
74
|
};
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
* `previewDeposit`/`previewMint`/`previewWithdraw`/`previewRedeem`, or the
|
|
85
|
-
* zapper's `previewDeposit`/`previewRedeem`) to convert the calldata-known
|
|
86
|
-
* amount into its counterpart. It works on every network the SDK supports.
|
|
87
|
-
*
|
|
88
|
-
* It does not execute the calldata, so it ignores balance/allowance
|
|
89
|
-
* prerequisites (preview reads succeed regardless).
|
|
90
|
-
*/
|
|
91
|
-
async function simulatePoolOperation(input, options = {}) {
|
|
92
|
-
const { sdk, operation } = input;
|
|
93
|
-
const { blockNumber, logger } = options;
|
|
77
|
+
async function previewPoolPositionOperation(sdk, operation, options) {
|
|
78
|
+
const { tokenIn, tokenOut } = operation;
|
|
79
|
+
const market = sdk.marketRegister.findByPool(operation.pool);
|
|
80
|
+
const pool = market.pool.pool;
|
|
81
|
+
const holder = "owner" in operation ? operation.owner : operation.receiver;
|
|
82
|
+
let previewAmount;
|
|
83
|
+
let shares;
|
|
94
84
|
try {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
85
|
+
[previewAmount, shares] = await sdk.client.multicall({
|
|
86
|
+
contracts: [previewContract(operation), {
|
|
87
|
+
address: operation.pool,
|
|
88
|
+
abi: require_abi_iERC20.ierc20Abi,
|
|
89
|
+
functionName: "balanceOf",
|
|
90
|
+
args: [holder]
|
|
91
|
+
}],
|
|
92
|
+
allowFailure: false,
|
|
93
|
+
batchSize: 0,
|
|
94
|
+
blockNumber: options?.blockNumber
|
|
98
95
|
});
|
|
99
|
-
return require_model_result.sdkOk(amountsInOut(operation, previewAmount));
|
|
100
96
|
} catch (cause) {
|
|
101
|
-
const error =
|
|
102
|
-
|
|
97
|
+
const error = {
|
|
98
|
+
code: "poolOperationPreviewError",
|
|
99
|
+
message: cause instanceof Error ? cause.message : String(cause),
|
|
100
|
+
pool: operation.pool,
|
|
101
|
+
cause: cause instanceof Error ? cause : new Error(String(cause))
|
|
102
|
+
};
|
|
103
103
|
return require_model_result.sdkErr(error);
|
|
104
104
|
}
|
|
105
|
+
const sim = amountsInOut(operation, previewAmount);
|
|
106
|
+
const inflow = operation.operation === "Deposit" || operation.operation === "Mint";
|
|
107
|
+
const after = shares + (inflow ? sim.amountOut : -sim.amountIn);
|
|
108
|
+
return require_model_result.sdkOk({
|
|
109
|
+
operation: operation.operation,
|
|
110
|
+
pool: operation.pool,
|
|
111
|
+
zapper: operation.zapper,
|
|
112
|
+
holder,
|
|
113
|
+
name: sdk.tokensMeta.mustGetToken(operation.pool).name,
|
|
114
|
+
underlyingToken: market.underlyingToken,
|
|
115
|
+
shareRate: pool.dieselRate,
|
|
116
|
+
tokenIn: market.priceOracle.toTokenAmount(tokenIn, sim.amountIn),
|
|
117
|
+
tokenOut: market.priceOracle.toTokenAmount(tokenOut, sim.amountOut),
|
|
118
|
+
curator: market.curator,
|
|
119
|
+
netValue: market.toUnderlyingAmount(pool.sharesToUnderlying(after > 0n ? after : 0n))
|
|
120
|
+
});
|
|
105
121
|
}
|
|
106
122
|
//#endregion
|
|
107
|
-
exports.
|
|
108
|
-
exports.previewContract = previewContract;
|
|
109
|
-
exports.simulatePoolOperation = simulatePoolOperation;
|
|
123
|
+
exports.previewPoolPositionOperation = previewPoolPositionOperation;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_utils_AssetsMap = require("../../utils/AssetsMap.js");
|
|
3
|
+
require("../../constants/math.js");
|
|
4
|
+
const require_onchain_market_adapters_contracts_AbstractAdapter = require("../../market/adapters/contracts/AbstractAdapter.js");
|
|
5
|
+
const require_model_errors_preview_errors = require("../../../model/errors/preview-errors.js");
|
|
6
|
+
require("../../../model/index.js");
|
|
7
|
+
//#region src/onchain/preview/preview/replayInnerOperations.ts
|
|
8
|
+
/**
|
|
9
|
+
* Creates a {@link ReplayState} around the given account seed, with empty
|
|
10
|
+
* bookkeeping.
|
|
11
|
+
*/
|
|
12
|
+
function makeReplayState(account) {
|
|
13
|
+
return {
|
|
14
|
+
account,
|
|
15
|
+
collateralAdded: new require_onchain_utils_AssetsMap.AssetsMap(),
|
|
16
|
+
collateralWithdrawn: new require_onchain_utils_AssetsMap.AssetsMap()
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Replays a credit-facade multicall over `state`, mutating it in place in
|
|
21
|
+
* facade execution order. The result is the *minimal guaranteed* post-state.
|
|
22
|
+
*
|
|
23
|
+
* The function assumes that the call was generated by our frontend using
|
|
24
|
+
* router/withdrawal compressor, otherwise it answers the error on a malformed
|
|
25
|
+
* multicall; state is left as replayed up to that op.
|
|
26
|
+
*
|
|
27
|
+
* @returns `undefined` on success, the error on a malformed multicall.
|
|
28
|
+
*/
|
|
29
|
+
function replayInnerOperations(sdk, multicall, state) {
|
|
30
|
+
let inBracket = false;
|
|
31
|
+
for (const op of multicall) switch (op.operation) {
|
|
32
|
+
case "AddCollateral":
|
|
33
|
+
applyAddCollateral(state, op);
|
|
34
|
+
break;
|
|
35
|
+
case "WithdrawCollateral":
|
|
36
|
+
applyWithdrawCollateral(state, op);
|
|
37
|
+
break;
|
|
38
|
+
case "IncreaseBorrowedAmount":
|
|
39
|
+
state.account.increaseDebt(op.amount);
|
|
40
|
+
break;
|
|
41
|
+
case "DecreaseBorrowedAmount":
|
|
42
|
+
state.account.repay(op.amount);
|
|
43
|
+
break;
|
|
44
|
+
case "UpdateQuota":
|
|
45
|
+
state.account.updateQuota(op.token, op.change);
|
|
46
|
+
break;
|
|
47
|
+
case "StoreExpectedBalances":
|
|
48
|
+
if (inBracket) return require_model_errors_preview_errors.malformedTransaction("nested storeExpectedBalances/compareBalances bracket");
|
|
49
|
+
inBracket = true;
|
|
50
|
+
for (const { token, balance } of op.deltas) state.account.balances.inc(token, balance);
|
|
51
|
+
break;
|
|
52
|
+
case "CompareBalances":
|
|
53
|
+
if (!inBracket) return require_model_errors_preview_errors.malformedTransaction("compareBalances without a preceding storeExpectedBalances");
|
|
54
|
+
inBracket = false;
|
|
55
|
+
break;
|
|
56
|
+
case "Execute": {
|
|
57
|
+
const error = applyExecute(sdk, op, inBracket, state.account.balances);
|
|
58
|
+
if (error) return error;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (inBracket) return require_model_errors_preview_errors.malformedTransaction("storeExpectedBalances without a matching compareBalances");
|
|
63
|
+
}
|
|
64
|
+
function applyAddCollateral(state, op) {
|
|
65
|
+
state.collateralAdded.inc(op.token, op.amount);
|
|
66
|
+
state.account.balances.inc(op.token, op.amount);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* `MAX_UINT256` is the facade sentinel for "withdraw the entire balance", so
|
|
70
|
+
* it is resolved against the running balance at the point of the call.
|
|
71
|
+
*/
|
|
72
|
+
function applyWithdrawCollateral(state, op) {
|
|
73
|
+
const running = state.account.balances.getOrZero(op.token);
|
|
74
|
+
const amount = op.amount === 115792089237316195423570985008687907853269984665640564039457584007913129639935n ? running > 0n ? running : 0n : op.amount;
|
|
75
|
+
state.account.balances.dec(op.token, amount);
|
|
76
|
+
state.collateralWithdrawn.inc(op.token, amount);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Replays an adapter `Execute` call against the running balances.
|
|
80
|
+
*
|
|
81
|
+
* Inside a bracket, the adapter's balance changes are previewed via
|
|
82
|
+
* {@link AbstractAdapterContract.previewBalanceChanges}. Outside a bracket,
|
|
83
|
+
* only calls that {@link AbstractAdapterContract.replayOutOfBracketCall}
|
|
84
|
+
* accepts are allowed; nothing enforces the outcome of any other out-of-bracket
|
|
85
|
+
* adapter call on-chain, so its effect on balances cannot be previewed.
|
|
86
|
+
*/
|
|
87
|
+
function applyExecute(sdk, op, inBracket, balances) {
|
|
88
|
+
const adapter = sdk.getContract(op.adapter);
|
|
89
|
+
if (!inBracket) {
|
|
90
|
+
if (adapter instanceof require_onchain_market_adapters_contracts_AbstractAdapter.AbstractAdapterContract) try {
|
|
91
|
+
if (adapter.replayOutOfBracketCall(balances, op.calldata)) return;
|
|
92
|
+
} catch (e) {
|
|
93
|
+
const cause = e instanceof Error ? e : new Error(String(e));
|
|
94
|
+
return require_model_errors_preview_errors.malformedTransaction(`cannot replay out-of-bracket call to ${op.adapter}: ${cause.message}`, cause);
|
|
95
|
+
}
|
|
96
|
+
return require_model_errors_preview_errors.malformedTransaction(`call to ${op.adapter} outside of a storeExpectedBalances/compareBalances bracket`);
|
|
97
|
+
}
|
|
98
|
+
if (!(adapter instanceof require_onchain_market_adapters_contracts_AbstractAdapter.AbstractAdapterContract)) return require_model_errors_preview_errors.malformedTransaction(`call to ${op.adapter} between storeExpectedBalances and compareBalances is not an adapter call`);
|
|
99
|
+
try {
|
|
100
|
+
adapter.previewBalanceChanges(balances, op.calldata);
|
|
101
|
+
return;
|
|
102
|
+
} catch (e) {
|
|
103
|
+
const cause = e instanceof Error ? e : new Error(String(e));
|
|
104
|
+
return require_model_errors_preview_errors.malformedTransaction(`cannot replay adapter call to ${op.adapter}: ${cause.message}`, cause);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//#endregion
|
|
108
|
+
exports.makeReplayState = makeReplayState;
|
|
109
|
+
exports.replayInnerOperations = replayInnerOperations;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_result = require("../../../model/result.js");
|
|
3
|
+
require("../../../model/index.js");
|
|
4
|
+
const require_onchain_preview_preview_CreditAccountState = require("./CreditAccountState.js");
|
|
5
|
+
const require_onchain_preview_preview_replayInnerOperations = require("./replayInnerOperations.js");
|
|
6
|
+
//#region src/onchain/preview/preview/replayMulticall.ts
|
|
7
|
+
/**
|
|
8
|
+
* Replays the operation's multicall over the account's pre-resolved
|
|
9
|
+
* pre-state via {@link replayInnerOperations}.
|
|
10
|
+
*/
|
|
11
|
+
function replayMulticall(sdk, operation, creditAccount) {
|
|
12
|
+
const before = require_onchain_preview_preview_CreditAccountState.CreditAccountState.fromCreditAccountData(creditAccount);
|
|
13
|
+
const after = require_onchain_preview_preview_replayInnerOperations.makeReplayState(before.clone());
|
|
14
|
+
const error = require_onchain_preview_preview_replayInnerOperations.replayInnerOperations(sdk, operation.multicall, after);
|
|
15
|
+
if (error) return require_model_result.sdkErr(error);
|
|
16
|
+
return require_model_result.sdkOk({
|
|
17
|
+
before,
|
|
18
|
+
after
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
exports.replayMulticall = replayMulticall;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_onchain_utils_AssetsMap = require("../../
|
|
3
|
-
const require_onchain_constants_addresses = require("../../
|
|
4
|
-
require("
|
|
5
|
-
const
|
|
6
|
-
|
|
2
|
+
const require_onchain_utils_AssetsMap = require("../../utils/AssetsMap.js");
|
|
3
|
+
const require_onchain_constants_addresses = require("../../constants/addresses.js");
|
|
4
|
+
const require_model_errors_preview_errors = require("../../../model/errors/preview-errors.js");
|
|
5
|
+
const require_model_result = require("../../../model/result.js");
|
|
6
|
+
require("../../../model/index.js");
|
|
7
|
+
//#region src/onchain/preview/preview/unwrapNativeCollateral.ts
|
|
7
8
|
/**
|
|
8
9
|
* Represents the transaction's attached native value as a `NATIVE_ADDRESS`
|
|
9
10
|
* entry in the collateral list.
|
|
@@ -15,26 +16,22 @@ const require_preview_preview_errors = require("./errors.js");
|
|
|
15
16
|
* reaches zero). Other entries are preserved.
|
|
16
17
|
*
|
|
17
18
|
* When `nativeAmount` is positive but the WETH collateral is missing or
|
|
18
|
-
* smaller than it, the transaction is malformed
|
|
19
|
-
* as-is (no unwrapping) together with an `invalidTransactionValue` warning.
|
|
19
|
+
* smaller than it, the transaction is malformed.
|
|
20
20
|
*
|
|
21
21
|
* @param collateral - Collateral assets as declared by the multicall.
|
|
22
22
|
* @param nativeAmount - Transaction `msg.value`.
|
|
23
23
|
* @param wethToken - Wrapped native token address.
|
|
24
24
|
* @returns Collateral with the native amount unwrapped from the WETH entry,
|
|
25
|
-
*
|
|
25
|
+
* or `malformedTransaction` when `msg.value` does not fit the declared WETH.
|
|
26
26
|
*/
|
|
27
27
|
function unwrapNativeCollateral(collateral, nativeAmount, wethToken) {
|
|
28
|
-
if (nativeAmount === 0n) return
|
|
28
|
+
if (nativeAmount === 0n) return require_model_result.sdkOk(collateral);
|
|
29
29
|
const balances = new require_onchain_utils_AssetsMap.AssetsMap(collateral);
|
|
30
30
|
const wethBalance = balances.get(wethToken) ?? 0n;
|
|
31
|
-
if (wethBalance < nativeAmount) return {
|
|
32
|
-
assets: collateral,
|
|
33
|
-
warning: require_preview_preview_errors.invalidTransactionValueError(nativeAmount, wethBalance)
|
|
34
|
-
};
|
|
31
|
+
if (wethBalance < nativeAmount) return require_model_result.sdkErr(require_model_errors_preview_errors.malformedTransaction(`transaction value ${nativeAmount} exceeds WETH collateral ${wethBalance}`));
|
|
35
32
|
balances.upsert(wethToken, wethBalance === nativeAmount ? void 0 : wethBalance - nativeAmount);
|
|
36
33
|
balances.inc(require_onchain_constants_addresses.NATIVE_ADDRESS, nativeAmount);
|
|
37
|
-
return
|
|
34
|
+
return require_model_result.sdkOk(balances.toAssets());
|
|
38
35
|
}
|
|
39
36
|
//#endregion
|
|
40
37
|
exports.unwrapNativeCollateral = unwrapNativeCollateral;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_checks_checkQuotaCount = require("../checks/checkQuotaCount.js");
|
|
3
|
+
require("../checks/index.js");
|
|
4
|
+
//#region src/onchain/validation/bundles/checkAccountQuotas.ts
|
|
5
|
+
/**
|
|
6
|
+
* How many quoted tokens the account would end up holding, against the number
|
|
7
|
+
* the facade enables at once.
|
|
8
|
+
*
|
|
9
|
+
* Reads nothing but the projected account, so a parsed transaction and a
|
|
10
|
+
* simulated one are held to it by the same code — including the reading that a
|
|
11
|
+
* quota the operation zeroed out is no longer held.
|
|
12
|
+
*/
|
|
13
|
+
function checkAccountQuotas(suite, account) {
|
|
14
|
+
return require_onchain_validation_checks_checkQuotaCount.checkQuotaCount({
|
|
15
|
+
count: account.quotas.filter((q) => q.value > 0n).length,
|
|
16
|
+
max: suite.creditManager.maxEnabledTokens
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
exports.checkAccountQuotas = checkAccountQuotas;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_utils_AssetsMap = require("../../utils/AssetsMap.js");
|
|
3
|
+
const require_onchain_constants_address_provider = require("../../constants/address-provider.js");
|
|
4
|
+
const require_onchain_constants_addresses = require("../../constants/addresses.js");
|
|
5
|
+
require("../../constants/index.js");
|
|
6
|
+
const require_model_errors_prepare_errors = require("../../../model/errors/prepare-errors.js");
|
|
7
|
+
require("../../../model/index.js");
|
|
8
|
+
const require_onchain_validation_bundles_checkWalletAllowance = require("./checkWalletAllowance.js");
|
|
9
|
+
const require_onchain_validation_bundles_checkWalletBalance = require("./checkWalletBalance.js");
|
|
10
|
+
//#region src/onchain/validation/bundles/checkCollateralFunding.ts
|
|
11
|
+
/**
|
|
12
|
+
* What the wallet must hold and have approved for the collateral the
|
|
13
|
+
* operation adds. Native value is already split out of `collateralAdded` as a
|
|
14
|
+
* `NATIVE_ADDRESS` entry; the facade wraps it into WETH, so the WETH allowance
|
|
15
|
+
* covers both halves.
|
|
16
|
+
*/
|
|
17
|
+
async function checkCollateralFunding(input) {
|
|
18
|
+
const { sdk, preview, sender, blockNumber } = input;
|
|
19
|
+
const held = new require_onchain_utils_AssetsMap.AssetsMap(preview.collateralAdded.map((a) => ({
|
|
20
|
+
token: a.token.address,
|
|
21
|
+
balance: a.value
|
|
22
|
+
})));
|
|
23
|
+
if (held.size === 0) return [];
|
|
24
|
+
let spender;
|
|
25
|
+
try {
|
|
26
|
+
if (preview.operation === "OpenCreditAccount" || preview.operation === "RWAOpenCreditAccount") spender = await sdk.accounts.getApprovalAddress({
|
|
27
|
+
creditManager: preview.creditManager,
|
|
28
|
+
borrower: sender
|
|
29
|
+
});
|
|
30
|
+
else spender = await sdk.accounts.getApprovalAddress({
|
|
31
|
+
creditManager: preview.creditManager,
|
|
32
|
+
creditAccount: preview.creditAccount
|
|
33
|
+
});
|
|
34
|
+
} catch (cause) {
|
|
35
|
+
return [require_model_errors_prepare_errors.unexpectedFailure(cause, "resolve the approval address")];
|
|
36
|
+
}
|
|
37
|
+
const approved = held.clone();
|
|
38
|
+
const native = approved.get("0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE") ?? 0n;
|
|
39
|
+
if (native > 0n) {
|
|
40
|
+
approved.delete(require_onchain_constants_addresses.NATIVE_ADDRESS);
|
|
41
|
+
approved.inc(sdk.addressProvider.getAddress(require_onchain_constants_address_provider.AP_WETH_TOKEN, 0), native);
|
|
42
|
+
}
|
|
43
|
+
return (await Promise.all([...held.entries().map(([token, required]) => require_onchain_validation_bundles_checkWalletBalance.checkWalletBalance({
|
|
44
|
+
sdk,
|
|
45
|
+
token,
|
|
46
|
+
holder: sender,
|
|
47
|
+
required,
|
|
48
|
+
blockNumber
|
|
49
|
+
})), ...approved.entries().map(([token, required]) => require_onchain_validation_bundles_checkWalletAllowance.checkWalletAllowance({
|
|
50
|
+
sdk,
|
|
51
|
+
token,
|
|
52
|
+
owner: sender,
|
|
53
|
+
spender,
|
|
54
|
+
required,
|
|
55
|
+
blockNumber
|
|
56
|
+
}))])).flat();
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
exports.checkCollateralFunding = checkCollateralFunding;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_helpers_token = require("../helpers/token.js");
|
|
3
|
+
require("../helpers/index.js");
|
|
4
|
+
const require_onchain_validation_checks_checkDebtLimits = require("../checks/checkDebtLimits.js");
|
|
5
|
+
require("../checks/index.js");
|
|
6
|
+
const require_onchain_validation_bundles_checkAccountQuotas = require("./checkAccountQuotas.js");
|
|
7
|
+
const require_onchain_validation_bundles_checkCollateralFunding = require("./checkCollateralFunding.js");
|
|
8
|
+
const require_onchain_validation_bundles_checkDraw = require("./checkDraw.js");
|
|
9
|
+
const require_onchain_validation_bundles_checkHealthFactors = require("./checkHealthFactors.js");
|
|
10
|
+
const require_onchain_validation_bundles_checkMarket = require("./checkMarket.js");
|
|
11
|
+
const require_onchain_validation_bundles_checkObtained = require("./checkObtained.js");
|
|
12
|
+
const require_onchain_validation_bundles_checkQuotasAsked = require("./checkQuotasAsked.js");
|
|
13
|
+
const require_onchain_validation_bundles_checkRWAOpening = require("./checkRWAOpening.js");
|
|
14
|
+
//#region src/onchain/validation/bundles/checkCreditOperation.ts
|
|
15
|
+
/**
|
|
16
|
+
* What the protocol stops a credit operation for, then what the wallet still
|
|
17
|
+
* has to hold, approve or sign.
|
|
18
|
+
*
|
|
19
|
+
* The array is in check order, most fundamental first: the market's own state,
|
|
20
|
+
* then what the facade would revert on, then what the operation asks the
|
|
21
|
+
* market for, then the account it leaves behind, and last the wallet's side.
|
|
22
|
+
*/
|
|
23
|
+
async function checkCreditOperation(args) {
|
|
24
|
+
const { sdk, preview, sender, blockNumber, ...thresholds } = args;
|
|
25
|
+
const suite = sdk.marketRegister.findCreditManager(preview.creditManager);
|
|
26
|
+
const market = suite.market;
|
|
27
|
+
const underlying = require_onchain_validation_helpers_token.toToken(sdk, market.pool.underlying);
|
|
28
|
+
const isOpening = preview.operation === "OpenCreditAccount" || preview.operation === "RWAOpenCreditAccount";
|
|
29
|
+
const protocol = [
|
|
30
|
+
...require_onchain_validation_bundles_checkMarket.checkMarket(suite),
|
|
31
|
+
...require_onchain_validation_checks_checkDebtLimits.checkDebtLimits({
|
|
32
|
+
debt: preview.totalDebt.value,
|
|
33
|
+
minDebt: suite.creditFacade.minDebt,
|
|
34
|
+
maxDebt: suite.creditFacade.maxDebt,
|
|
35
|
+
underlying,
|
|
36
|
+
allowZero: !isOpening
|
|
37
|
+
}),
|
|
38
|
+
...require_onchain_validation_bundles_checkDraw.checkDraw(suite, preview, underlying),
|
|
39
|
+
...require_onchain_validation_bundles_checkObtained.checkObtained(suite, preview),
|
|
40
|
+
...require_onchain_validation_bundles_checkAccountQuotas.checkAccountQuotas(suite, preview),
|
|
41
|
+
...require_onchain_validation_bundles_checkQuotasAsked.checkQuotasAsked(market, preview, underlying),
|
|
42
|
+
...require_onchain_validation_bundles_checkHealthFactors.checkHealthFactors({
|
|
43
|
+
totalDebt: preview.totalDebt,
|
|
44
|
+
healthFactor: preview.estHealthFactor,
|
|
45
|
+
safeHealthFactor: preview.estSafeHealthFactor
|
|
46
|
+
}, thresholds)
|
|
47
|
+
];
|
|
48
|
+
const [funding, rwa] = await Promise.all([require_onchain_validation_bundles_checkCollateralFunding.checkCollateralFunding({
|
|
49
|
+
sdk,
|
|
50
|
+
preview,
|
|
51
|
+
sender,
|
|
52
|
+
blockNumber
|
|
53
|
+
}), preview.operation === "RWAOpenCreditAccount" ? require_onchain_validation_bundles_checkRWAOpening.checkRWAOpening({
|
|
54
|
+
sdk,
|
|
55
|
+
preview,
|
|
56
|
+
sender
|
|
57
|
+
}) : []]);
|
|
58
|
+
return [
|
|
59
|
+
...protocol,
|
|
60
|
+
...funding,
|
|
61
|
+
...rwa
|
|
62
|
+
];
|
|
63
|
+
}
|
|
64
|
+
//#endregion
|
|
65
|
+
exports.checkCreditOperation = checkCreditOperation;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_checks_checkBorrowLimit = require("../checks/checkBorrowLimit.js");
|
|
3
|
+
require("../checks/index.js");
|
|
4
|
+
//#region src/onchain/validation/bundles/checkDraw.ts
|
|
5
|
+
/**
|
|
6
|
+
* What the transaction draws, against what the market can lend right now.
|
|
7
|
+
*
|
|
8
|
+
* Only a draw is weighed: repaying, or leaving the debt alone, can never exceed
|
|
9
|
+
* a ceiling. Opening borrows the whole debt; adjusting borrows
|
|
10
|
+
* `totalDebtChange`.
|
|
11
|
+
*
|
|
12
|
+
* The engine holds every simulation to this already (`assertCanBorrow`), so
|
|
13
|
+
* this is here for the transactions it never saw — a pasted calldata reaches
|
|
14
|
+
* the confirm screen with nothing else standing between it and a revert.
|
|
15
|
+
*/
|
|
16
|
+
function checkDraw(suite, preview, underlying) {
|
|
17
|
+
const drawn = preview.operation === "AdjustCreditAccount" ? preview.totalDebtChange.value : preview.totalDebt.value;
|
|
18
|
+
if (drawn <= 0n) return [];
|
|
19
|
+
const { value, limit } = suite.maxBorrowAmount();
|
|
20
|
+
return require_onchain_validation_checks_checkBorrowLimit.checkBorrowLimit({
|
|
21
|
+
requested: drawn,
|
|
22
|
+
available: value,
|
|
23
|
+
limit,
|
|
24
|
+
underlying
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
exports.checkDraw = checkDraw;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_checks_checkCollateralised = require("../checks/checkCollateralised.js");
|
|
3
|
+
require("../checks/index.js");
|
|
4
|
+
//#region src/onchain/validation/bundles/checkHealthFactors.ts
|
|
5
|
+
/**
|
|
6
|
+
* The account against whichever thresholds the caller holds it to, so a parsed
|
|
7
|
+
* transaction and a simulated one are weighed by the same code.
|
|
8
|
+
*
|
|
9
|
+
* A loan-free account is nothing to weigh: the health factor reports its
|
|
10
|
+
* zero-debt sentinel and no threshold applies.
|
|
11
|
+
*/
|
|
12
|
+
function checkHealthFactors(account, thresholds) {
|
|
13
|
+
const { minHealthFactor, minSafeHealthFactor, currentHealthFactor } = thresholds;
|
|
14
|
+
if (account.totalDebt.value === 0n) return [];
|
|
15
|
+
return [...minHealthFactor === void 0 ? [] : require_onchain_validation_checks_checkCollateralised.checkCollateralised({
|
|
16
|
+
healthFactor: account.healthFactor,
|
|
17
|
+
healthFactorThreshold: minHealthFactor,
|
|
18
|
+
safePrices: false,
|
|
19
|
+
improvesFrom: currentHealthFactor
|
|
20
|
+
}), ...minSafeHealthFactor === void 0 ? [] : require_onchain_validation_checks_checkCollateralised.checkCollateralised({
|
|
21
|
+
healthFactor: account.safeHealthFactor,
|
|
22
|
+
healthFactorThreshold: minSafeHealthFactor,
|
|
23
|
+
safePrices: true
|
|
24
|
+
})];
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
exports.checkHealthFactors = checkHealthFactors;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_checks_checkCreditAccountFrozen = require("../checks/checkCreditAccountFrozen.js");
|
|
3
|
+
const require_onchain_validation_checks_checkEmergencyLiquidator = require("../checks/checkEmergencyLiquidator.js");
|
|
4
|
+
const require_onchain_validation_checks_checkLiquidatorEligible = require("../checks/checkLiquidatorEligible.js");
|
|
5
|
+
require("../checks/index.js");
|
|
6
|
+
//#region src/onchain/validation/bundles/checkLiquidationEligibility.ts
|
|
7
|
+
/**
|
|
8
|
+
* Whether this wallet may liquidate this account, from the facts the
|
|
9
|
+
* compressor already reported and the market's emergency-liquidator list.
|
|
10
|
+
*/
|
|
11
|
+
function checkLiquidationEligibility(input) {
|
|
12
|
+
const { sdk, details, liquidator } = input;
|
|
13
|
+
const market = sdk.marketRegister.findByCreditManager(details.creditManager);
|
|
14
|
+
return [
|
|
15
|
+
...require_onchain_validation_checks_checkCreditAccountFrozen.checkCreditAccountFrozen({
|
|
16
|
+
frozen: details.isCreditAccountFrozen,
|
|
17
|
+
creditAccount: details.creditAccount
|
|
18
|
+
}),
|
|
19
|
+
...require_onchain_validation_checks_checkEmergencyLiquidator.checkEmergencyLiquidator({
|
|
20
|
+
paused: details.paused,
|
|
21
|
+
isEmergencyLiquidator: market.isEmergencyLiquidator(liquidator),
|
|
22
|
+
creditManager: details.creditManager,
|
|
23
|
+
liquidator
|
|
24
|
+
}),
|
|
25
|
+
...require_onchain_validation_checks_checkLiquidatorEligible.checkLiquidatorEligible({
|
|
26
|
+
eligible: details.isLiquidatorEligible,
|
|
27
|
+
kycProtocol: details.kycProtocol,
|
|
28
|
+
kycToken: details.kycToken
|
|
29
|
+
})
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
exports.checkLiquidationEligibility = checkLiquidationEligibility;
|