@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,29 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_bundles_checkWalletAllowance = require("./checkWalletAllowance.js");
|
|
3
|
+
const require_onchain_validation_bundles_checkWalletBalance = require("./checkWalletBalance.js");
|
|
4
|
+
//#region src/onchain/validation/bundles/checkLiquidationFunding.ts
|
|
5
|
+
/**
|
|
6
|
+
* What the liquidator wallet must hold and have approved.
|
|
7
|
+
*/
|
|
8
|
+
async function checkLiquidationFunding(input) {
|
|
9
|
+
const { sdk, details, liquidator, blockNumber } = input;
|
|
10
|
+
const reads = [];
|
|
11
|
+
if (details.repaymentAmount.value > 0n) reads.push(require_onchain_validation_bundles_checkWalletBalance.checkWalletBalance({
|
|
12
|
+
sdk,
|
|
13
|
+
token: details.repaymentAmount.token.address,
|
|
14
|
+
holder: liquidator,
|
|
15
|
+
required: details.repaymentAmount.value,
|
|
16
|
+
blockNumber
|
|
17
|
+
}));
|
|
18
|
+
if (details.approve) reads.push(require_onchain_validation_bundles_checkWalletAllowance.checkWalletAllowance({
|
|
19
|
+
sdk,
|
|
20
|
+
token: details.approve.token.address,
|
|
21
|
+
owner: liquidator,
|
|
22
|
+
spender: details.approve.spender,
|
|
23
|
+
required: details.approve.value,
|
|
24
|
+
blockNumber
|
|
25
|
+
}));
|
|
26
|
+
return (await Promise.all(reads)).flat();
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
exports.checkLiquidationFunding = checkLiquidationFunding;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_checks_checkCreditManagerPaused = require("../checks/checkCreditManagerPaused.js");
|
|
3
|
+
const require_onchain_validation_checks_checkMarketExpired = require("../checks/checkMarketExpired.js");
|
|
4
|
+
require("../checks/index.js");
|
|
5
|
+
//#region src/onchain/validation/bundles/checkMarket.ts
|
|
6
|
+
/**
|
|
7
|
+
* What the market itself stops, whatever the operation does.
|
|
8
|
+
*
|
|
9
|
+
* Neither state is anything the sender can fix, which is why it comes first
|
|
10
|
+
* wherever it is composed in.
|
|
11
|
+
*/
|
|
12
|
+
function checkMarket(suite) {
|
|
13
|
+
const creditManager = suite.creditManager.address;
|
|
14
|
+
return [...require_onchain_validation_checks_checkCreditManagerPaused.checkCreditManagerPaused({
|
|
15
|
+
isPaused: suite.isPaused,
|
|
16
|
+
creditManager
|
|
17
|
+
}), ...require_onchain_validation_checks_checkMarketExpired.checkMarketExpired({
|
|
18
|
+
isExpired: suite.isExpired,
|
|
19
|
+
creditManager,
|
|
20
|
+
expirationDate: suite.creditFacade.expirationDate
|
|
21
|
+
})];
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.checkMarket = checkMarket;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_checks_checkForbiddenToken = require("../checks/checkForbiddenToken.js");
|
|
3
|
+
require("../checks/index.js");
|
|
4
|
+
//#region src/onchain/validation/bundles/checkObtained.ts
|
|
5
|
+
/** Every token the operation buys more of, against what the market forbids. */
|
|
6
|
+
function checkObtained(suite, preview) {
|
|
7
|
+
return (preview.operation === "AdjustCreditAccount" ? preview.assetsChange : preview.estAssets).filter((asset) => asset.value > 0n).flatMap((asset) => require_onchain_validation_checks_checkForbiddenToken.checkForbiddenToken({
|
|
8
|
+
token: asset.token,
|
|
9
|
+
isForbidden: suite.isForbidden(asset.token.address)
|
|
10
|
+
}));
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
exports.checkObtained = checkObtained;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_bundles_checkWallet = require("./checkWallet.js");
|
|
3
|
+
//#region src/onchain/validation/bundles/checkPoolFunding.ts
|
|
4
|
+
/**
|
|
5
|
+
* What the wallet must hold (and approve) for a pool deposit, mint, withdraw
|
|
6
|
+
* or redeem, read off the preview's `tokenIn`, `zapper` and `holder`.
|
|
7
|
+
*/
|
|
8
|
+
async function checkPoolFunding(input) {
|
|
9
|
+
const { sdk, preview, sender, blockNumber } = input;
|
|
10
|
+
const { tokenIn: { token: { address: token }, value: required }, pool, zapper, holder } = preview;
|
|
11
|
+
const isDeposit = preview.operation === "Deposit" || preview.operation === "Mint";
|
|
12
|
+
return require_onchain_validation_bundles_checkWallet.checkWallet({
|
|
13
|
+
sdk,
|
|
14
|
+
token,
|
|
15
|
+
required,
|
|
16
|
+
blockNumber,
|
|
17
|
+
holder: isDeposit || zapper ? sender : holder,
|
|
18
|
+
spender: zapper ?? (isDeposit ? pool : sender)
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
exports.checkPoolFunding = checkPoolFunding;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_checks_checkPoolLiquidity = require("../checks/checkPoolLiquidity.js");
|
|
3
|
+
const require_onchain_validation_checks_checkPoolPaused = require("../checks/checkPoolPaused.js");
|
|
4
|
+
const require_onchain_validation_checks_checkPoolSunset = require("../checks/checkPoolSunset.js");
|
|
5
|
+
require("../checks/index.js");
|
|
6
|
+
//#region src/onchain/validation/bundles/checkPoolOperation.ts
|
|
7
|
+
/**
|
|
8
|
+
* What the pool's own state stops, whichever side of it the wallet is on.
|
|
9
|
+
*
|
|
10
|
+
* The liquidity read is the market's rather than the trimmed figure a
|
|
11
|
+
* simulation carries: a withdrawal sized against that figure has to pass the
|
|
12
|
+
* check that follows it.
|
|
13
|
+
*/
|
|
14
|
+
function checkPoolOperation(args) {
|
|
15
|
+
const { sdk, pool, isDeposit, tokenOut } = args;
|
|
16
|
+
const market = sdk.marketRegister.findByPool(pool);
|
|
17
|
+
return [
|
|
18
|
+
...require_onchain_validation_checks_checkPoolPaused.checkPoolPaused({
|
|
19
|
+
isPaused: market.pool.pool.isPaused,
|
|
20
|
+
pool
|
|
21
|
+
}),
|
|
22
|
+
...require_onchain_validation_checks_checkPoolSunset.checkPoolSunset({
|
|
23
|
+
isSunset: market.sunset,
|
|
24
|
+
isDeposit,
|
|
25
|
+
pool
|
|
26
|
+
}),
|
|
27
|
+
...isDeposit ? [] : require_onchain_validation_checks_checkPoolLiquidity.checkPoolLiquidity({
|
|
28
|
+
requested: tokenOut.value,
|
|
29
|
+
available: market.pool.pool.availableLiquidity,
|
|
30
|
+
underlying: tokenOut.token
|
|
31
|
+
})
|
|
32
|
+
];
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
exports.checkPoolOperation = checkPoolOperation;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_checks_checkQuotaLimit = require("../checks/checkQuotaLimit.js");
|
|
3
|
+
require("../checks/index.js");
|
|
4
|
+
//#region src/onchain/validation/bundles/checkQuotasAsked.ts
|
|
5
|
+
/** Every quota the operation raises, against the room the keeper has left. */
|
|
6
|
+
function checkQuotasAsked(market, preview, underlying) {
|
|
7
|
+
const increases = preview.operation === "AdjustCreditAccount" ? preview.quotasChange : preview.quotas;
|
|
8
|
+
const { pqk } = market.pool;
|
|
9
|
+
return increases.filter((q) => q.value > 0n).flatMap((q) => {
|
|
10
|
+
const quoted = pqk.hasActiveQuota(q.token.address);
|
|
11
|
+
return require_onchain_validation_checks_checkQuotaLimit.checkQuotaLimit({
|
|
12
|
+
token: q.token,
|
|
13
|
+
requested: quoted ? q.value : void 0,
|
|
14
|
+
available: quoted ? pqk.quotaAvailable(q.token.address) : 0n,
|
|
15
|
+
underlying
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
exports.checkQuotasAsked = checkQuotasAsked;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_errors_operation_errors = require("../../../model/errors/operation-errors.js");
|
|
3
|
+
const require_model_errors_prepare_errors = require("../../../model/errors/prepare-errors.js");
|
|
4
|
+
require("../../../model/index.js");
|
|
5
|
+
const require_onchain_validation_helpers_token = require("../helpers/token.js");
|
|
6
|
+
require("../helpers/index.js");
|
|
7
|
+
//#region src/onchain/validation/bundles/checkRWAOpenRequirements.ts
|
|
8
|
+
/**
|
|
9
|
+
* The RWA factory is satisfied that `wallet` may open on `token` with the
|
|
10
|
+
* registration args already on the transaction.
|
|
11
|
+
*/
|
|
12
|
+
async function checkRWAOpenRequirements(input) {
|
|
13
|
+
const { sdk, wallet, creditManager, token, providedArgs } = input;
|
|
14
|
+
try {
|
|
15
|
+
const requirements = await sdk.accounts.getOpenAccountRequirements(wallet, creditManager, { tokenOutAddress: token });
|
|
16
|
+
if (!requirements) return [];
|
|
17
|
+
const { rwaFactory } = sdk.marketRegister.findByCreditManager(creditManager);
|
|
18
|
+
if (!rwaFactory) throw new Error(`no RWA factory for credit manager ${creditManager}`);
|
|
19
|
+
const missing = rwaFactory.getMissingRequirements(requirements, providedArgs);
|
|
20
|
+
if (!missing && requirements.securitizeTokensToRegister.length === 0) return [];
|
|
21
|
+
return [require_model_errors_operation_errors.rwaOpenRequirementsNotMet({
|
|
22
|
+
token: require_onchain_validation_helpers_token.toToken(sdk, token),
|
|
23
|
+
creditManager,
|
|
24
|
+
factory: rwaFactory.address,
|
|
25
|
+
requirements,
|
|
26
|
+
...missing === void 0 ? {} : { missing }
|
|
27
|
+
})];
|
|
28
|
+
} catch (cause) {
|
|
29
|
+
return [require_model_errors_prepare_errors.unexpectedFailure(cause, "read the RWA opening requirements")];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
exports.checkRWAOpenRequirements = checkRWAOpenRequirements;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_utils_AddressSet = require("../../utils/AddressSet.js");
|
|
3
|
+
const require_onchain_validation_bundles_checkRWAOpenRequirements = require("./checkRWAOpenRequirements.js");
|
|
4
|
+
//#region src/onchain/validation/bundles/checkRWAOpening.ts
|
|
5
|
+
/**
|
|
6
|
+
* Per factory-gated token among `collateralAdded ∪ quotas`, whether the
|
|
7
|
+
* borrower still has to register or sign before this opening can land.
|
|
8
|
+
*/
|
|
9
|
+
async function checkRWAOpening(input) {
|
|
10
|
+
const { sdk, preview, sender } = input;
|
|
11
|
+
const { rwaFactory } = sdk.marketRegister.findByCreditManager(preview.creditManager);
|
|
12
|
+
if (!rwaFactory) return [];
|
|
13
|
+
const gated = new require_onchain_utils_AddressSet.AddressSet(rwaFactory.getTokens());
|
|
14
|
+
const candidates = new require_onchain_utils_AddressSet.AddressSet([...preview.collateralAdded.map((a) => a.token.address), ...preview.quotas.map((q) => q.token.address)]);
|
|
15
|
+
return (await Promise.all([...candidates].filter((token) => gated.has(token)).map((token) => require_onchain_validation_bundles_checkRWAOpenRequirements.checkRWAOpenRequirements({
|
|
16
|
+
sdk,
|
|
17
|
+
wallet: sender,
|
|
18
|
+
creditManager: preview.creditManager,
|
|
19
|
+
token,
|
|
20
|
+
providedArgs: preview.rwaArgs
|
|
21
|
+
})))).flat();
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.checkRWAOpening = checkRWAOpening;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../../constants/addresses.js");
|
|
3
|
+
require("../../constants/index.js");
|
|
4
|
+
const require_onchain_validation_bundles_checkWalletAllowance = require("./checkWalletAllowance.js");
|
|
5
|
+
const require_onchain_validation_bundles_checkWalletBalance = require("./checkWalletBalance.js");
|
|
6
|
+
let viem = require("viem");
|
|
7
|
+
//#region src/onchain/validation/bundles/checkWallet.ts
|
|
8
|
+
/**
|
|
9
|
+
* The wallet's whole side for one token: always the balance; the allowance
|
|
10
|
+
* only when it can matter (an ERC-20, with a spender who is not the holder).
|
|
11
|
+
*/
|
|
12
|
+
async function checkWallet(input) {
|
|
13
|
+
const { spender, ...rest } = input;
|
|
14
|
+
const needsAllowance = spender !== void 0 && !(0, viem.isAddressEqual)(rest.token, "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE") && !(0, viem.isAddressEqual)(spender, rest.holder);
|
|
15
|
+
return (await Promise.all([require_onchain_validation_bundles_checkWalletBalance.checkWalletBalance(rest), needsAllowance ? require_onchain_validation_bundles_checkWalletAllowance.checkWalletAllowance({
|
|
16
|
+
...rest,
|
|
17
|
+
owner: rest.holder,
|
|
18
|
+
spender
|
|
19
|
+
}) : []])).flat();
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
exports.checkWallet = checkWallet;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iERC20 = require("../../../abi/iERC20.js");
|
|
3
|
+
const require_model_errors_operation_errors = require("../../../model/errors/operation-errors.js");
|
|
4
|
+
const require_model_errors_prepare_errors = require("../../../model/errors/prepare-errors.js");
|
|
5
|
+
require("../../../model/index.js");
|
|
6
|
+
const require_onchain_validation_helpers_token = require("../helpers/token.js");
|
|
7
|
+
require("../helpers/index.js");
|
|
8
|
+
//#region src/onchain/validation/bundles/checkWalletAllowance.ts
|
|
9
|
+
/** `owner` has approved `spender` for at least `required` of `token`. */
|
|
10
|
+
async function checkWalletAllowance(input) {
|
|
11
|
+
const { sdk, token, owner, spender, required, blockNumber } = input;
|
|
12
|
+
try {
|
|
13
|
+
const allowed = await sdk.client.readContract({
|
|
14
|
+
address: token,
|
|
15
|
+
abi: require_abi_iERC20.ierc20Abi,
|
|
16
|
+
functionName: "allowance",
|
|
17
|
+
args: [owner, spender],
|
|
18
|
+
blockNumber
|
|
19
|
+
});
|
|
20
|
+
return allowed >= required ? [] : [require_model_errors_operation_errors.insufficientAllowance({
|
|
21
|
+
owner,
|
|
22
|
+
spender,
|
|
23
|
+
required: require_onchain_validation_helpers_token.toTokenAmount(sdk, token, required),
|
|
24
|
+
allowed: require_onchain_validation_helpers_token.toTokenAmount(sdk, token, allowed)
|
|
25
|
+
})];
|
|
26
|
+
} catch (cause) {
|
|
27
|
+
const { symbol } = require_onchain_validation_helpers_token.toToken(sdk, token);
|
|
28
|
+
return [require_model_errors_prepare_errors.unexpectedFailure(cause, `read the ${symbol} allowance`)];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
exports.checkWalletAllowance = checkWalletAllowance;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iERC20 = require("../../../abi/iERC20.js");
|
|
3
|
+
require("../../constants/addresses.js");
|
|
4
|
+
require("../../constants/index.js");
|
|
5
|
+
const require_model_errors_operation_errors = require("../../../model/errors/operation-errors.js");
|
|
6
|
+
const require_model_errors_prepare_errors = require("../../../model/errors/prepare-errors.js");
|
|
7
|
+
require("../../../model/index.js");
|
|
8
|
+
const require_onchain_validation_helpers_amount = require("../helpers/amount.js");
|
|
9
|
+
const require_onchain_validation_helpers_token = require("../helpers/token.js");
|
|
10
|
+
require("../helpers/index.js");
|
|
11
|
+
let viem = require("viem");
|
|
12
|
+
//#region src/onchain/validation/bundles/checkWalletBalance.ts
|
|
13
|
+
/** `holder` holds at least `required` of `token` (ERC-20 or native). */
|
|
14
|
+
async function checkWalletBalance(input) {
|
|
15
|
+
const { sdk, token, holder, required, blockNumber } = input;
|
|
16
|
+
try {
|
|
17
|
+
const held = (0, viem.isAddressEqual)(token, "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE") ? await sdk.client.getBalance({
|
|
18
|
+
address: holder,
|
|
19
|
+
blockNumber
|
|
20
|
+
}) : await sdk.client.readContract({
|
|
21
|
+
address: token,
|
|
22
|
+
abi: require_abi_iERC20.ierc20Abi,
|
|
23
|
+
functionName: "balanceOf",
|
|
24
|
+
args: [holder],
|
|
25
|
+
blockNumber
|
|
26
|
+
});
|
|
27
|
+
if (required <= held) return [];
|
|
28
|
+
const meta = require_onchain_validation_helpers_token.toToken(sdk, token);
|
|
29
|
+
return [require_model_errors_operation_errors.insufficientBalance({
|
|
30
|
+
required: require_onchain_validation_helpers_amount.amountOf(meta, required),
|
|
31
|
+
held: require_onchain_validation_helpers_amount.amountOf(meta, held),
|
|
32
|
+
holderKind: "wallet",
|
|
33
|
+
holder
|
|
34
|
+
})];
|
|
35
|
+
} catch (cause) {
|
|
36
|
+
const { symbol } = require_onchain_validation_helpers_token.toToken(sdk, token);
|
|
37
|
+
return [require_model_errors_prepare_errors.unexpectedFailure(cause, `read the ${symbol} balance`)];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
exports.checkWalletBalance = checkWalletBalance;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_bundles_checkAccountQuotas = require("./checkAccountQuotas.js");
|
|
3
|
+
const require_onchain_validation_bundles_checkWalletAllowance = require("./checkWalletAllowance.js");
|
|
4
|
+
const require_onchain_validation_bundles_checkWalletBalance = require("./checkWalletBalance.js");
|
|
5
|
+
const require_onchain_validation_bundles_checkCollateralFunding = require("./checkCollateralFunding.js");
|
|
6
|
+
const require_onchain_validation_bundles_checkDraw = require("./checkDraw.js");
|
|
7
|
+
const require_onchain_validation_bundles_checkHealthFactors = require("./checkHealthFactors.js");
|
|
8
|
+
const require_onchain_validation_bundles_checkMarket = require("./checkMarket.js");
|
|
9
|
+
const require_onchain_validation_bundles_checkObtained = require("./checkObtained.js");
|
|
10
|
+
const require_onchain_validation_bundles_checkQuotasAsked = require("./checkQuotasAsked.js");
|
|
11
|
+
const require_onchain_validation_bundles_checkRWAOpenRequirements = require("./checkRWAOpenRequirements.js");
|
|
12
|
+
const require_onchain_validation_bundles_checkRWAOpening = require("./checkRWAOpening.js");
|
|
13
|
+
const require_onchain_validation_bundles_checkCreditOperation = require("./checkCreditOperation.js");
|
|
14
|
+
const require_onchain_validation_bundles_checkLiquidationEligibility = require("./checkLiquidationEligibility.js");
|
|
15
|
+
const require_onchain_validation_bundles_checkLiquidationFunding = require("./checkLiquidationFunding.js");
|
|
16
|
+
const require_onchain_validation_bundles_checkWallet = require("./checkWallet.js");
|
|
17
|
+
const require_onchain_validation_bundles_checkPoolFunding = require("./checkPoolFunding.js");
|
|
18
|
+
const require_onchain_validation_bundles_checkPoolOperation = require("./checkPoolOperation.js");
|
|
19
|
+
exports.checkAccountQuotas = require_onchain_validation_bundles_checkAccountQuotas.checkAccountQuotas;
|
|
20
|
+
exports.checkCollateralFunding = require_onchain_validation_bundles_checkCollateralFunding.checkCollateralFunding;
|
|
21
|
+
exports.checkCreditOperation = require_onchain_validation_bundles_checkCreditOperation.checkCreditOperation;
|
|
22
|
+
exports.checkDraw = require_onchain_validation_bundles_checkDraw.checkDraw;
|
|
23
|
+
exports.checkHealthFactors = require_onchain_validation_bundles_checkHealthFactors.checkHealthFactors;
|
|
24
|
+
exports.checkLiquidationEligibility = require_onchain_validation_bundles_checkLiquidationEligibility.checkLiquidationEligibility;
|
|
25
|
+
exports.checkLiquidationFunding = require_onchain_validation_bundles_checkLiquidationFunding.checkLiquidationFunding;
|
|
26
|
+
exports.checkMarket = require_onchain_validation_bundles_checkMarket.checkMarket;
|
|
27
|
+
exports.checkObtained = require_onchain_validation_bundles_checkObtained.checkObtained;
|
|
28
|
+
exports.checkPoolFunding = require_onchain_validation_bundles_checkPoolFunding.checkPoolFunding;
|
|
29
|
+
exports.checkPoolOperation = require_onchain_validation_bundles_checkPoolOperation.checkPoolOperation;
|
|
30
|
+
exports.checkQuotasAsked = require_onchain_validation_bundles_checkQuotasAsked.checkQuotasAsked;
|
|
31
|
+
exports.checkRWAOpenRequirements = require_onchain_validation_bundles_checkRWAOpenRequirements.checkRWAOpenRequirements;
|
|
32
|
+
exports.checkRWAOpening = require_onchain_validation_bundles_checkRWAOpening.checkRWAOpening;
|
|
33
|
+
exports.checkWallet = require_onchain_validation_bundles_checkWallet.checkWallet;
|
|
34
|
+
exports.checkWalletAllowance = require_onchain_validation_bundles_checkWalletAllowance.checkWalletAllowance;
|
|
35
|
+
exports.checkWalletBalance = require_onchain_validation_bundles_checkWalletBalance.checkWalletBalance;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_bundles_checkLiquidationEligibility = require("./bundles/checkLiquidationEligibility.js");
|
|
3
|
+
const require_onchain_validation_bundles_checkLiquidationFunding = require("./bundles/checkLiquidationFunding.js");
|
|
4
|
+
//#region src/onchain/validation/checkLiquidation.ts
|
|
5
|
+
/**
|
|
6
|
+
* Whether `liquidator` may send a full liquidation of this account
|
|
7
|
+
*/
|
|
8
|
+
async function checkLiquidation(sdk, input, options = {}) {
|
|
9
|
+
const { details, liquidator } = input;
|
|
10
|
+
return [...require_onchain_validation_bundles_checkLiquidationEligibility.checkLiquidationEligibility({
|
|
11
|
+
sdk,
|
|
12
|
+
details,
|
|
13
|
+
liquidator
|
|
14
|
+
}), ...await require_onchain_validation_bundles_checkLiquidationFunding.checkLiquidationFunding({
|
|
15
|
+
sdk,
|
|
16
|
+
details,
|
|
17
|
+
liquidator,
|
|
18
|
+
blockNumber: options.blockNumber
|
|
19
|
+
})];
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
exports.checkLiquidation = checkLiquidation;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_validation_bundles_checkCollateralFunding = require("./bundles/checkCollateralFunding.js");
|
|
3
|
+
const require_onchain_validation_bundles_checkMarket = require("./bundles/checkMarket.js");
|
|
4
|
+
const require_onchain_validation_bundles_checkCreditOperation = require("./bundles/checkCreditOperation.js");
|
|
5
|
+
const require_onchain_validation_bundles_checkPoolFunding = require("./bundles/checkPoolFunding.js");
|
|
6
|
+
const require_onchain_validation_bundles_checkPoolOperation = require("./bundles/checkPoolOperation.js");
|
|
7
|
+
//#region src/onchain/validation/checkOperation.ts
|
|
8
|
+
/**
|
|
9
|
+
* Whether a parsed operation may be signed by `sender`: protocol state first,
|
|
10
|
+
* then what the wallet has to approve, hold or sign.
|
|
11
|
+
*
|
|
12
|
+
* The array is in check order, most fundamental first, so a caller with room
|
|
13
|
+
* for one verdict reports the first entry. Approve and sign errors are picked
|
|
14
|
+
* out by `code`, not by position.
|
|
15
|
+
*/
|
|
16
|
+
async function checkOperation(input, options = {}) {
|
|
17
|
+
const { sdk, preview, sender } = input;
|
|
18
|
+
const { blockNumber, ...thresholds } = options;
|
|
19
|
+
const wallet = {
|
|
20
|
+
sdk,
|
|
21
|
+
sender,
|
|
22
|
+
blockNumber
|
|
23
|
+
};
|
|
24
|
+
switch (preview.operation) {
|
|
25
|
+
case "Deposit":
|
|
26
|
+
case "Mint":
|
|
27
|
+
case "Withdraw":
|
|
28
|
+
case "Redeem": {
|
|
29
|
+
const isDeposit = preview.operation === "Deposit" || preview.operation === "Mint";
|
|
30
|
+
return [...require_onchain_validation_bundles_checkPoolOperation.checkPoolOperation({
|
|
31
|
+
sdk,
|
|
32
|
+
pool: preview.pool,
|
|
33
|
+
isDeposit,
|
|
34
|
+
tokenOut: preview.tokenOut
|
|
35
|
+
}), ...await require_onchain_validation_bundles_checkPoolFunding.checkPoolFunding({
|
|
36
|
+
...wallet,
|
|
37
|
+
preview
|
|
38
|
+
})];
|
|
39
|
+
}
|
|
40
|
+
case "DelayedCreditAccountOperation": return checkOperation({
|
|
41
|
+
sdk,
|
|
42
|
+
preview: preview.instantPreview,
|
|
43
|
+
sender
|
|
44
|
+
}, options);
|
|
45
|
+
case "OpenCreditAccount":
|
|
46
|
+
case "RWAOpenCreditAccount":
|
|
47
|
+
case "AdjustCreditAccount": return require_onchain_validation_bundles_checkCreditOperation.checkCreditOperation({
|
|
48
|
+
sdk,
|
|
49
|
+
preview,
|
|
50
|
+
sender,
|
|
51
|
+
blockNumber,
|
|
52
|
+
...thresholds
|
|
53
|
+
});
|
|
54
|
+
case "RepayCreditAccount": return [...require_onchain_validation_bundles_checkMarket.checkMarket(sdk.marketRegister.findCreditManager(preview.creditManager)), ...await require_onchain_validation_bundles_checkCollateralFunding.checkCollateralFunding({
|
|
55
|
+
...wallet,
|
|
56
|
+
preview
|
|
57
|
+
})];
|
|
58
|
+
case "CloseCreditAccount": return require_onchain_validation_bundles_checkMarket.checkMarket(sdk.marketRegister.findCreditManager(preview.creditManager));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//#endregion
|
|
62
|
+
exports.checkOperation = checkOperation;
|
|
@@ -0,0 +1,60 @@
|
|
|
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("./bundles/checkAccountQuotas.js");
|
|
7
|
+
const require_onchain_validation_bundles_checkHealthFactors = require("./bundles/checkHealthFactors.js");
|
|
8
|
+
const require_onchain_validation_bundles_checkMarket = require("./bundles/checkMarket.js");
|
|
9
|
+
const require_onchain_validation_bundles_checkPoolOperation = require("./bundles/checkPoolOperation.js");
|
|
10
|
+
//#region src/onchain/validation/checkSimulation.ts
|
|
11
|
+
/**
|
|
12
|
+
* Whether a simulated operation clears the caller's own thresholds.
|
|
13
|
+
*
|
|
14
|
+
* The engine holds an account to the facade's `1.0`, because its guards answer
|
|
15
|
+
* "would this revert". A form is wiser to ask for more, and the engine's own
|
|
16
|
+
* note says so — a caller wanting the stricter threshold applies it itself.
|
|
17
|
+
* This is that second opinion, over the numbers the engine already reported.
|
|
18
|
+
*
|
|
19
|
+
* Three of the checks on a credit account the engine does not make at all:
|
|
20
|
+
* both health-factor thresholds are its own `1.0`, and the quota count it never
|
|
21
|
+
* weighs. The other two run against the same numbers the engine used, and are
|
|
22
|
+
* here so that a change in the engine cannot pass silently.
|
|
23
|
+
*
|
|
24
|
+
* What is deliberately absent: the forbidden-token, quota-limit and funding
|
|
25
|
+
* checks all need the *delta* an operation applies, and `OperationState` reports
|
|
26
|
+
* only the state after it. Weighing them against absolutes would stop a
|
|
27
|
+
* forbidden token the account merely holds, or a quota the operation never
|
|
28
|
+
* touched. The engine performed all three during the walk, so a simulation that
|
|
29
|
+
* came back `ok` has already passed them.
|
|
30
|
+
*
|
|
31
|
+
* A pool operation has no account to weigh, so what is left is the pool's own
|
|
32
|
+
* state — which the engine does not read either.
|
|
33
|
+
*/
|
|
34
|
+
function checkSimulation(sdk, input, options = {}) {
|
|
35
|
+
if ("pool" in input) {
|
|
36
|
+
const { pool, state, isDeposit } = input;
|
|
37
|
+
return require_onchain_validation_bundles_checkPoolOperation.checkPoolOperation({
|
|
38
|
+
sdk,
|
|
39
|
+
pool,
|
|
40
|
+
isDeposit,
|
|
41
|
+
tokenOut: state.tokenOut
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const { state } = input;
|
|
45
|
+
const suite = sdk.marketRegister.findCreditManager(state.creditManager);
|
|
46
|
+
return [
|
|
47
|
+
...require_onchain_validation_bundles_checkMarket.checkMarket(suite),
|
|
48
|
+
...require_onchain_validation_checks_checkDebtLimits.checkDebtLimits({
|
|
49
|
+
debt: state.totalDebt.value,
|
|
50
|
+
minDebt: suite.creditFacade.minDebt,
|
|
51
|
+
maxDebt: suite.creditFacade.maxDebt,
|
|
52
|
+
underlying: require_onchain_validation_helpers_token.toToken(sdk, suite.market.pool.underlying),
|
|
53
|
+
allowZero: true
|
|
54
|
+
}),
|
|
55
|
+
...require_onchain_validation_bundles_checkAccountQuotas.checkAccountQuotas(suite, state),
|
|
56
|
+
...require_onchain_validation_bundles_checkHealthFactors.checkHealthFactors(state, options)
|
|
57
|
+
];
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
exports.checkSimulation = checkSimulation;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_errors_operation_errors = require("../../../model/errors/operation-errors.js");
|
|
3
|
+
require("../../../model/index.js");
|
|
4
|
+
const require_onchain_validation_helpers_amount = require("../helpers/amount.js");
|
|
5
|
+
require("../helpers/index.js");
|
|
6
|
+
//#region src/onchain/validation/checks/checkBorrowLimit.ts
|
|
7
|
+
/**
|
|
8
|
+
* What the pool will hand over, against what is asked for.
|
|
9
|
+
*
|
|
10
|
+
* `available` and `limit` are the caller's reading of which limit is in the
|
|
11
|
+
* way; this check only compares. `maxBorrowAmount` is the largest debt still
|
|
12
|
+
* takeable, left out when none is.
|
|
13
|
+
*/
|
|
14
|
+
function checkBorrowLimit(args) {
|
|
15
|
+
const { requested, available, limit, underlying, maxBorrowAmount } = args;
|
|
16
|
+
if (requested <= available) return [];
|
|
17
|
+
return [require_model_errors_operation_errors.insufficientPoolLiquidity({
|
|
18
|
+
requested: require_onchain_validation_helpers_amount.amountOf(underlying, requested),
|
|
19
|
+
available: require_onchain_validation_helpers_amount.amountOf(underlying, available),
|
|
20
|
+
limit,
|
|
21
|
+
...maxBorrowAmount === void 0 ? {} : { maxBorrowAmount: require_onchain_validation_helpers_amount.amountOf(underlying, maxBorrowAmount) }
|
|
22
|
+
})];
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
exports.checkBorrowLimit = checkBorrowLimit;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_errors_operation_errors = require("../../../model/errors/operation-errors.js");
|
|
3
|
+
require("../../../model/index.js");
|
|
4
|
+
//#region src/onchain/validation/checks/checkCollateralised.ts
|
|
5
|
+
/**
|
|
6
|
+
* The account against its debt, at whichever threshold the caller holds it to.
|
|
7
|
+
*
|
|
8
|
+
* An unread factor counts as failing: a check that cannot see the number is
|
|
9
|
+
* not evidence that the number is fine.
|
|
10
|
+
*/
|
|
11
|
+
function checkCollateralised(args) {
|
|
12
|
+
const { healthFactor, healthFactorThreshold, safePrices, improvesFrom } = args;
|
|
13
|
+
if (healthFactor === void 0) return [require_model_errors_operation_errors.insufficientCollateral({
|
|
14
|
+
healthFactor: 0,
|
|
15
|
+
healthFactorThreshold,
|
|
16
|
+
safePrices
|
|
17
|
+
})];
|
|
18
|
+
if (healthFactor >= healthFactorThreshold || improvesFrom !== void 0 && healthFactor > improvesFrom) return [];
|
|
19
|
+
return [require_model_errors_operation_errors.insufficientCollateral({
|
|
20
|
+
healthFactor,
|
|
21
|
+
healthFactorThreshold,
|
|
22
|
+
safePrices
|
|
23
|
+
})];
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.checkCollateralised = checkCollateralised;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_errors_liquidation_errors = require("../../../model/errors/liquidation-errors.js");
|
|
3
|
+
require("../../../model/index.js");
|
|
4
|
+
//#region src/onchain/validation/checks/checkCreditAccountFrozen.ts
|
|
5
|
+
/** An RWA factory freeze stops the account's collateral from moving. */
|
|
6
|
+
function checkCreditAccountFrozen(args) {
|
|
7
|
+
return args.frozen ? [require_model_errors_liquidation_errors.creditAccountFrozen(args.creditAccount)] : [];
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
exports.checkCreditAccountFrozen = checkCreditAccountFrozen;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_errors_operation_errors = require("../../../model/errors/operation-errors.js");
|
|
3
|
+
require("../../../model/index.js");
|
|
4
|
+
//#region src/onchain/validation/checks/checkCreditManagerPaused.ts
|
|
5
|
+
/** The credit manager takes no multicall while it is paused. */
|
|
6
|
+
function checkCreditManagerPaused(args) {
|
|
7
|
+
return args.isPaused ? [require_model_errors_operation_errors.creditManagerPaused(args.creditManager)] : [];
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
exports.checkCreditManagerPaused = checkCreditManagerPaused;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_errors_operation_errors = require("../../../model/errors/operation-errors.js");
|
|
3
|
+
require("../../../model/index.js");
|
|
4
|
+
const require_onchain_validation_helpers_amount = require("../helpers/amount.js");
|
|
5
|
+
require("../helpers/index.js");
|
|
6
|
+
//#region src/onchain/validation/checks/checkDebtLimits.ts
|
|
7
|
+
/** A debt the facade would revert on. */
|
|
8
|
+
function checkDebtLimits(args) {
|
|
9
|
+
const { debt, minDebt, maxDebt, underlying, allowZero } = args;
|
|
10
|
+
if (!(debt > maxDebt || debt < minDebt && !(allowZero && debt === 0n))) return [];
|
|
11
|
+
return [require_model_errors_operation_errors.debtOutOfRange({
|
|
12
|
+
requested: require_onchain_validation_helpers_amount.amountOf(underlying, debt),
|
|
13
|
+
minDebt: require_onchain_validation_helpers_amount.amountOf(underlying, minDebt),
|
|
14
|
+
maxDebt: require_onchain_validation_helpers_amount.amountOf(underlying, maxDebt)
|
|
15
|
+
})];
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
exports.checkDebtLimits = checkDebtLimits;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_errors_liquidation_errors = require("../../../model/errors/liquidation-errors.js");
|
|
3
|
+
require("../../../model/index.js");
|
|
4
|
+
//#region src/onchain/validation/checks/checkEmergencyLiquidator.ts
|
|
5
|
+
/**
|
|
6
|
+
* A paused market only accepts liquidations from its emergency liquidators.
|
|
7
|
+
* An unpaused market does not consult the list.
|
|
8
|
+
*/
|
|
9
|
+
function checkEmergencyLiquidator(args) {
|
|
10
|
+
return args.paused && !args.isEmergencyLiquidator ? [require_model_errors_liquidation_errors.notEmergencyLiquidator(args.creditManager, args.liquidator)] : [];
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
exports.checkEmergencyLiquidator = checkEmergencyLiquidator;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_errors_operation_errors = require("../../../model/errors/operation-errors.js");
|
|
3
|
+
require("../../../model/index.js");
|
|
4
|
+
//#region src/onchain/validation/checks/checkForbiddenToken.ts
|
|
5
|
+
/** A token the market will not let the account hold more of. */
|
|
6
|
+
function checkForbiddenToken(args) {
|
|
7
|
+
return args.isForbidden ? [require_model_errors_operation_errors.forbiddenToken(args.token)] : [];
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
exports.checkForbiddenToken = checkForbiddenToken;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_errors_operation_errors = require("../../../model/errors/operation-errors.js");
|
|
3
|
+
require("../../../model/index.js");
|
|
4
|
+
//#region src/onchain/validation/checks/checkLeverage.ts
|
|
5
|
+
/** Leverage below 1x is not a position, it is a withdrawal. */
|
|
6
|
+
function checkLeverage(args) {
|
|
7
|
+
return args.leverage < args.min ? [require_model_errors_operation_errors.leverageOutOfRange({
|
|
8
|
+
requested: args.leverage,
|
|
9
|
+
min: args.min
|
|
10
|
+
})] : [];
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
exports.checkLeverage = checkLeverage;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_errors_liquidation_errors = require("../../../model/errors/liquidation-errors.js");
|
|
3
|
+
require("../../../model/index.js");
|
|
4
|
+
//#region src/onchain/validation/checks/checkLiquidatorEligible.ts
|
|
5
|
+
/** The compressor's KYC check of this wallet against the liquidated assets. */
|
|
6
|
+
function checkLiquidatorEligible(args) {
|
|
7
|
+
return args.eligible ? [] : [require_model_errors_liquidation_errors.liquidatorNotEligible(args.kycProtocol, args.kycToken)];
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
exports.checkLiquidatorEligible = checkLiquidatorEligible;
|