@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
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Prerequisite } from "./Prerequisite.js";
|
|
2
|
-
import { erc20Abi } from "viem";
|
|
3
|
-
//#region src/preview/prerequisites/AllowancePrerequisite.ts
|
|
4
|
-
/** Checks that `owner` granted `spender` an ERC-20 allowance >= `required`. */
|
|
5
|
-
var AllowancePrerequisite = class extends Prerequisite {
|
|
6
|
-
#detail;
|
|
7
|
-
constructor(detail) {
|
|
8
|
-
super();
|
|
9
|
-
this.#detail = { ...detail };
|
|
10
|
-
}
|
|
11
|
-
async check(ctx) {
|
|
12
|
-
const actual = await ctx.sdk.client.readContract({
|
|
13
|
-
address: this.#detail.token,
|
|
14
|
-
abi: erc20Abi,
|
|
15
|
-
functionName: "allowance",
|
|
16
|
-
args: [this.#detail.owner, this.#detail.spender],
|
|
17
|
-
blockNumber: ctx.blockNumber
|
|
18
|
-
});
|
|
19
|
-
return {
|
|
20
|
-
kind: "allowance",
|
|
21
|
-
detail: {
|
|
22
|
-
...this.#detail,
|
|
23
|
-
actual
|
|
24
|
-
},
|
|
25
|
-
satisfied: actual >= this.#detail.required
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
errorResult(error) {
|
|
29
|
-
return {
|
|
30
|
-
kind: "allowance",
|
|
31
|
-
detail: this.#detail,
|
|
32
|
-
error
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
//#endregion
|
|
37
|
-
export { AllowancePrerequisite };
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import "../../onchain/constants/addresses.js";
|
|
2
|
-
import { hexEq } from "../../onchain/utils/hex.js";
|
|
3
|
-
import "../../onchain/index.js";
|
|
4
|
-
import { Prerequisite } from "./Prerequisite.js";
|
|
5
|
-
import { erc20Abi } from "viem";
|
|
6
|
-
//#region src/preview/prerequisites/BalancePrerequisite.ts
|
|
7
|
-
/**
|
|
8
|
-
* Checks that `owner` holds a token balance >= `required`. The token is read
|
|
9
|
-
* as an ERC-20, except for the native pseudo-address ({@link NATIVE_ADDRESS},
|
|
10
|
-
* e.g. ETH-zapper deposits) whose balance is read via `getBalance`.
|
|
11
|
-
*/
|
|
12
|
-
var BalancePrerequisite = class extends Prerequisite {
|
|
13
|
-
#detail;
|
|
14
|
-
constructor(detail) {
|
|
15
|
-
super();
|
|
16
|
-
this.#detail = { ...detail };
|
|
17
|
-
}
|
|
18
|
-
async check(ctx) {
|
|
19
|
-
const actual = await this.#readBalance(ctx);
|
|
20
|
-
return {
|
|
21
|
-
kind: "balance",
|
|
22
|
-
detail: {
|
|
23
|
-
...this.#detail,
|
|
24
|
-
actual
|
|
25
|
-
},
|
|
26
|
-
satisfied: actual >= this.#detail.required
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
errorResult(error) {
|
|
30
|
-
return {
|
|
31
|
-
kind: "balance",
|
|
32
|
-
detail: this.#detail,
|
|
33
|
-
error
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
async #readBalance(ctx) {
|
|
37
|
-
if (hexEq(this.#detail.token, "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE")) return ctx.sdk.client.getBalance({
|
|
38
|
-
address: this.#detail.owner,
|
|
39
|
-
blockNumber: ctx.blockNumber
|
|
40
|
-
});
|
|
41
|
-
return ctx.sdk.client.readContract({
|
|
42
|
-
address: this.#detail.token,
|
|
43
|
-
abi: erc20Abi,
|
|
44
|
-
functionName: "balanceOf",
|
|
45
|
-
args: [this.#detail.owner],
|
|
46
|
-
blockNumber: ctx.blockNumber
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
//#endregion
|
|
51
|
-
export { BalancePrerequisite };
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { BaseError, ContractFunctionRevertedError } from "viem";
|
|
2
|
-
//#region src/preview/prerequisites/Prerequisite.ts
|
|
3
|
-
/**
|
|
4
|
-
* Decodes an unknown error into a {@link PrerequisiteError} with a
|
|
5
|
-
* human-readable revert reason. Mirrors the SDK's `extractCallError`: walk the
|
|
6
|
-
* viem error chain for a {@link ContractFunctionRevertedError} and use its
|
|
7
|
-
* `errorName`, otherwise fall back to the error's short message / name.
|
|
8
|
-
*/
|
|
9
|
-
function toPrerequisiteError(cause) {
|
|
10
|
-
if (cause instanceof BaseError) {
|
|
11
|
-
const reverted = cause.walk((e) => e instanceof ContractFunctionRevertedError);
|
|
12
|
-
if (reverted instanceof ContractFunctionRevertedError) return {
|
|
13
|
-
reason: reverted.data?.errorName ?? reverted.shortMessage ?? "reverted",
|
|
14
|
-
cause
|
|
15
|
-
};
|
|
16
|
-
return {
|
|
17
|
-
reason: cause.shortMessage ?? cause.name,
|
|
18
|
-
cause
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
if (cause instanceof Error) return {
|
|
22
|
-
reason: cause.message,
|
|
23
|
-
cause
|
|
24
|
-
};
|
|
25
|
-
return {
|
|
26
|
-
reason: "unknown error",
|
|
27
|
-
cause
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* A single verifiable prerequisite for a transaction. Subclasses implement
|
|
32
|
-
* {@link check} to perform whatever async reads they need (an ERC-20
|
|
33
|
-
* `readContract`, a compressor call, ...) and map the outcome into a
|
|
34
|
-
* {@link PrerequisiteResult}.
|
|
35
|
-
*/
|
|
36
|
-
var Prerequisite = class {
|
|
37
|
-
/**
|
|
38
|
-
* Verifies this prerequisite. Never rejects: any error thrown by
|
|
39
|
-
* {@link check} (revert, RPC/network failure, compressor error) is
|
|
40
|
-
* normalized into an `error` result.
|
|
41
|
-
*/
|
|
42
|
-
async verify(ctx) {
|
|
43
|
-
try {
|
|
44
|
-
return await this.check(ctx);
|
|
45
|
-
} catch (cause) {
|
|
46
|
-
return this.errorResult(toPrerequisiteError(cause));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
//#endregion
|
|
51
|
-
export { Prerequisite };
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Prerequisite } from "./Prerequisite.js";
|
|
2
|
-
//#region src/preview/prerequisites/RWAOpenRequirementsPrerequisite.ts
|
|
3
|
-
/**
|
|
4
|
-
* Checks that the borrower has fulfilled the RWA factory's open-account
|
|
5
|
-
* requirements (issuer-side token registration, EIP-712 signatures).
|
|
6
|
-
*
|
|
7
|
-
* The requirements are fetched at verify time via
|
|
8
|
-
* `sdk.accounts.getOpenAccountRequirements`, so re-running verification picks
|
|
9
|
-
* up off-chain progress (the borrower registering on the issuer's website or
|
|
10
|
-
* signing the factory's message) without rebuilding the prerequisites. The
|
|
11
|
-
* unfulfilled subset is computed by the factory itself
|
|
12
|
-
* (`IRWAFactory.getMissingRequirements`) and exposed on the result's
|
|
13
|
-
* `detail.missing`; the full requirements are kept on `detail.requirements`.
|
|
14
|
-
*/
|
|
15
|
-
var RWAOpenRequirementsPrerequisite = class extends Prerequisite {
|
|
16
|
-
#detail;
|
|
17
|
-
#providedArgs;
|
|
18
|
-
constructor(detail, providedArgs) {
|
|
19
|
-
super();
|
|
20
|
-
this.#detail = { ...detail };
|
|
21
|
-
this.#providedArgs = providedArgs;
|
|
22
|
-
}
|
|
23
|
-
async check(ctx) {
|
|
24
|
-
const requirements = await ctx.sdk.accounts.getOpenAccountRequirements(ctx.wallet, this.#detail.creditManager, { tokenOutAddress: this.#detail.token });
|
|
25
|
-
if (!requirements) return {
|
|
26
|
-
kind: "rwaOpenRequirements",
|
|
27
|
-
detail: this.#detail,
|
|
28
|
-
satisfied: true
|
|
29
|
-
};
|
|
30
|
-
const { rwaFactory } = ctx.sdk.marketRegister.findByCreditManager(this.#detail.creditManager);
|
|
31
|
-
if (!rwaFactory) throw new Error(`no RWA factory found for credit manager ${this.#detail.creditManager}`);
|
|
32
|
-
const missing = rwaFactory.getMissingRequirements(requirements, this.#providedArgs);
|
|
33
|
-
return {
|
|
34
|
-
kind: "rwaOpenRequirements",
|
|
35
|
-
detail: {
|
|
36
|
-
...this.#detail,
|
|
37
|
-
requirements,
|
|
38
|
-
missing
|
|
39
|
-
},
|
|
40
|
-
satisfied: !missing && requirements.securitizeTokensToRegister.length === 0
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
errorResult(error) {
|
|
44
|
-
return {
|
|
45
|
-
kind: "rwaOpenRequirements",
|
|
46
|
-
detail: this.#detail,
|
|
47
|
-
error
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
//#endregion
|
|
52
|
-
export { RWAOpenRequirementsPrerequisite };
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { AssetsMap } from "../../onchain/utils/AssetsMap.js";
|
|
2
|
-
import { AP_WETH_TOKEN } from "../../onchain/constants/address-provider.js";
|
|
3
|
-
import { NATIVE_ADDRESS } from "../../onchain/constants/addresses.js";
|
|
4
|
-
import "../../onchain/index.js";
|
|
5
|
-
import { AllowancePrerequisite } from "./AllowancePrerequisite.js";
|
|
6
|
-
import { BalancePrerequisite } from "./BalancePrerequisite.js";
|
|
7
|
-
import { allowanceAndBalance } from "./helpers.js";
|
|
8
|
-
import { isAddressEqual } from "viem";
|
|
9
|
-
//#region src/preview/prerequisites/buildCollateralPrerequisites.ts
|
|
10
|
-
/**
|
|
11
|
-
* For every `addCollateral` inside a multicall, requires the wallet to approve
|
|
12
|
-
* and hold the collateral token for the collateral spender.
|
|
13
|
-
*
|
|
14
|
-
* The approval spender is resolved via {@link OnchainSDK.accounts.getApprovalAddress}:
|
|
15
|
-
* the credit manager for classic markets, but a per-investor "special wallet"
|
|
16
|
-
* for RWA markets. The resolution happens at build time because the spender is
|
|
17
|
-
* part of the prerequisite's identity and UI detail.
|
|
18
|
-
*
|
|
19
|
-
*/
|
|
20
|
-
async function buildCollateralPrerequisites(spenderOptions, multicall, ctx) {
|
|
21
|
-
const { sdk, wallet, value = 0n } = ctx;
|
|
22
|
-
const required = new AssetsMap();
|
|
23
|
-
for (const op of multicall) {
|
|
24
|
-
if (op.operation !== "AddCollateral" || op.amount === 0n) continue;
|
|
25
|
-
required.inc(op.token, op.amount);
|
|
26
|
-
}
|
|
27
|
-
if (required.size === 0 && value === 0n) return [];
|
|
28
|
-
const prereqs = [];
|
|
29
|
-
if (value > 0n) prereqs.push(new BalancePrerequisite({
|
|
30
|
-
token: NATIVE_ADDRESS,
|
|
31
|
-
owner: wallet,
|
|
32
|
-
required: value
|
|
33
|
-
}));
|
|
34
|
-
if (required.size === 0) return prereqs;
|
|
35
|
-
const spender = await sdk.accounts.getApprovalAddress(spenderOptions);
|
|
36
|
-
const weth = sdk.addressProvider.getAddress(AP_WETH_TOKEN, 0);
|
|
37
|
-
for (const [token, amount] of required.entries()) {
|
|
38
|
-
if (value > 0n && isAddressEqual(token, weth)) {
|
|
39
|
-
prereqs.push(new AllowancePrerequisite({
|
|
40
|
-
token,
|
|
41
|
-
owner: wallet,
|
|
42
|
-
spender,
|
|
43
|
-
required: amount
|
|
44
|
-
}));
|
|
45
|
-
if (amount > value) prereqs.push(new BalancePrerequisite({
|
|
46
|
-
token,
|
|
47
|
-
owner: wallet,
|
|
48
|
-
required: amount - value
|
|
49
|
-
}));
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
|
-
prereqs.push(...allowanceAndBalance({
|
|
53
|
-
token,
|
|
54
|
-
owner: wallet,
|
|
55
|
-
spender,
|
|
56
|
-
required: amount
|
|
57
|
-
}));
|
|
58
|
-
}
|
|
59
|
-
return prereqs;
|
|
60
|
-
}
|
|
61
|
-
//#endregion
|
|
62
|
-
export { buildCollateralPrerequisites };
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { allowanceAndBalance } from "./helpers.js";
|
|
2
|
-
//#region src/preview/prerequisites/buildPartialLiquidationPrerequisites.ts
|
|
3
|
-
/**
|
|
4
|
-
* Partial liquidation pulls the repaid underlying from the liquidator: they
|
|
5
|
-
* must have approved it to the credit manager and hold enough of it.
|
|
6
|
-
*/
|
|
7
|
-
function buildPartialLiquidationPrerequisites(tx, ctx) {
|
|
8
|
-
if (tx.repaidAmount === 0n) return [];
|
|
9
|
-
const suite = ctx.sdk.marketRegister.findByCreditManager(tx.creditManager);
|
|
10
|
-
return allowanceAndBalance({
|
|
11
|
-
token: suite.underlying,
|
|
12
|
-
owner: ctx.wallet,
|
|
13
|
-
spender: tx.creditManager,
|
|
14
|
-
required: tx.repaidAmount
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
//#endregion
|
|
18
|
-
export { buildPartialLiquidationPrerequisites };
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import "../../onchain/constants/addresses.js";
|
|
2
|
-
import "../../onchain/index.js";
|
|
3
|
-
import { AllowancePrerequisite } from "./AllowancePrerequisite.js";
|
|
4
|
-
import { BalancePrerequisite } from "./BalancePrerequisite.js";
|
|
5
|
-
import { allowanceAndBalance } from "./helpers.js";
|
|
6
|
-
import { isAddressEqual } from "viem";
|
|
7
|
-
//#region src/preview/prerequisites/buildPoolPrerequisites.ts
|
|
8
|
-
/**
|
|
9
|
-
* Prerequisites for ERC4626 pool operations (deposit, mint, withdraw, redeem),
|
|
10
|
-
* either direct or zapper-routed.
|
|
11
|
-
*/
|
|
12
|
-
function buildPoolPrerequisites(tx, wallet) {
|
|
13
|
-
switch (tx.operation) {
|
|
14
|
-
case "Deposit":
|
|
15
|
-
if (tx.zapper) {
|
|
16
|
-
if (isAddressEqual(tx.tokenIn, "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE")) return [new BalancePrerequisite({
|
|
17
|
-
token: tx.tokenIn,
|
|
18
|
-
owner: wallet,
|
|
19
|
-
required: tx.assets
|
|
20
|
-
})];
|
|
21
|
-
return allowanceAndBalance({
|
|
22
|
-
token: tx.tokenIn,
|
|
23
|
-
owner: wallet,
|
|
24
|
-
spender: tx.zapper,
|
|
25
|
-
required: tx.assets
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
return allowanceAndBalance({
|
|
29
|
-
token: tx.underlying,
|
|
30
|
-
owner: wallet,
|
|
31
|
-
spender: tx.pool,
|
|
32
|
-
required: tx.assets
|
|
33
|
-
});
|
|
34
|
-
case "Mint": return allowanceAndBalance({
|
|
35
|
-
token: tx.underlying,
|
|
36
|
-
owner: wallet,
|
|
37
|
-
spender: tx.pool,
|
|
38
|
-
required: tx.shares
|
|
39
|
-
});
|
|
40
|
-
case "Redeem":
|
|
41
|
-
if (tx.zapper) return [new BalancePrerequisite({
|
|
42
|
-
token: tx.tokenIn,
|
|
43
|
-
owner: wallet,
|
|
44
|
-
required: tx.shares
|
|
45
|
-
}), new AllowancePrerequisite({
|
|
46
|
-
token: tx.tokenIn,
|
|
47
|
-
owner: wallet,
|
|
48
|
-
spender: tx.zapper,
|
|
49
|
-
required: tx.shares
|
|
50
|
-
})];
|
|
51
|
-
return lpSharePrerequisites(tx.pool, tx.owner, tx.shares, wallet);
|
|
52
|
-
case "Withdraw": return lpSharePrerequisites(tx.pool, tx.owner, tx.assets, wallet);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Direct redeem/withdraw prerequisites: `owner` must hold enough LP (diesel)
|
|
57
|
-
* tokens, and a third-party caller burning on behalf of `owner` needs an LP
|
|
58
|
-
* allowance from them.
|
|
59
|
-
*/
|
|
60
|
-
function lpSharePrerequisites(pool, owner, required, wallet) {
|
|
61
|
-
const prereqs = [new BalancePrerequisite({
|
|
62
|
-
token: pool,
|
|
63
|
-
owner,
|
|
64
|
-
required
|
|
65
|
-
})];
|
|
66
|
-
if (!isAddressEqual(owner, wallet)) prereqs.push(new AllowancePrerequisite({
|
|
67
|
-
token: pool,
|
|
68
|
-
owner,
|
|
69
|
-
spender: wallet,
|
|
70
|
-
required
|
|
71
|
-
}));
|
|
72
|
-
return prereqs;
|
|
73
|
-
}
|
|
74
|
-
//#endregion
|
|
75
|
-
export { buildPoolPrerequisites };
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { AddressSet } from "../../onchain/utils/AddressSet.js";
|
|
2
|
-
import "../../onchain/index.js";
|
|
3
|
-
import { RWAOpenRequirementsPrerequisite } from "./RWAOpenRequirementsPrerequisite.js";
|
|
4
|
-
//#region src/preview/prerequisites/buildRWAPrerequisites.ts
|
|
5
|
-
/**
|
|
6
|
-
* For RWA-factory open-account operations (e.g. `RWAOpenCreditAccount`),
|
|
7
|
-
* builds a prerequisite per RWA token the multicall touches; each one checks
|
|
8
|
-
* the factory's open-account requirements (issuer-side token registration,
|
|
9
|
-
* EIP-712 signatures) at verify time.
|
|
10
|
-
*
|
|
11
|
-
* The `providedArgs` params are the registration values decoded from the
|
|
12
|
-
* transaction calldata itself: signatures already included there satisfy the
|
|
13
|
-
* signature requirement, so a fully built transaction is not reported as
|
|
14
|
-
* missing signatures. In the template flow they are empty and the verified
|
|
15
|
-
* result's `detail.missing` describes what is still unfulfilled; acting on it
|
|
16
|
-
* (signing, rebuilding calldata) is up to the consumer.
|
|
17
|
-
*
|
|
18
|
-
* Returns nothing for non-RWA markets.
|
|
19
|
-
*/
|
|
20
|
-
function buildRWAPrerequisites(multicall, creditManager, providedArgs, ctx) {
|
|
21
|
-
const { rwaFactory } = ctx.sdk.marketRegister.findByCreditManager(creditManager);
|
|
22
|
-
if (!rwaFactory) return [];
|
|
23
|
-
const rwaTokens = new AddressSet(rwaFactory.getTokens());
|
|
24
|
-
const candidates = new AddressSet();
|
|
25
|
-
for (const op of multicall) if (op.operation === "AddCollateral" || op.operation === "UpdateQuota") candidates.add(op.token);
|
|
26
|
-
const prereqs = [];
|
|
27
|
-
for (const token of candidates) {
|
|
28
|
-
if (!rwaTokens.has(token)) continue;
|
|
29
|
-
prereqs.push(new RWAOpenRequirementsPrerequisite({
|
|
30
|
-
token,
|
|
31
|
-
creditManager,
|
|
32
|
-
factory: rwaFactory.address
|
|
33
|
-
}, providedArgs));
|
|
34
|
-
}
|
|
35
|
-
return prereqs;
|
|
36
|
-
}
|
|
37
|
-
//#endregion
|
|
38
|
-
export { buildRWAPrerequisites };
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { isSDKError, sdkOk } from "../../model/result.js";
|
|
2
|
-
import "../../model/index.js";
|
|
3
|
-
import { parseOperationCalldata } from "../parse/parseOperationCalldata.js";
|
|
4
|
-
import "../parse/index.js";
|
|
5
|
-
import { buildCollateralPrerequisites } from "./buildCollateralPrerequisites.js";
|
|
6
|
-
import { buildPartialLiquidationPrerequisites } from "./buildPartialLiquidationPrerequisites.js";
|
|
7
|
-
import { buildPoolPrerequisites } from "./buildPoolPrerequisites.js";
|
|
8
|
-
import { buildRWAPrerequisites } from "./buildRWAPrerequisites.js";
|
|
9
|
-
//#region src/preview/prerequisites/checkPrerequisites.ts
|
|
10
|
-
/**
|
|
11
|
-
* Derives and verifies the on-chain prerequisites for an operation given its
|
|
12
|
-
* raw calldata: the conditions that must hold for the call not to revert and
|
|
13
|
-
* that we can verify with the SDK (token approvals, wallet balances, RWA
|
|
14
|
-
* open-account requirements).
|
|
15
|
-
*
|
|
16
|
-
* Each prerequisite performs its own reads and resolves into a
|
|
17
|
-
* {@link PrerequisiteResult} (`satisfied` or `error`).
|
|
18
|
-
*
|
|
19
|
-
* Only *sender-actionable* prerequisites belong here: conditions the LP
|
|
20
|
-
* provider or borrower can fix themselves before retrying (e.g. approve a
|
|
21
|
-
* token, sign the RWA factory's messages). Non-actionable protocol/admin state
|
|
22
|
-
* (e.g. pool is paused) is intentionally out of scope, since the user cannot
|
|
23
|
-
* resolve it.
|
|
24
|
-
*/
|
|
25
|
-
async function checkPrerequisites(input, options) {
|
|
26
|
-
const { sdk, sender: wallet } = input;
|
|
27
|
-
const tx = parseOperationCalldata(input);
|
|
28
|
-
if (isSDKError(tx)) return tx;
|
|
29
|
-
const ctx = {
|
|
30
|
-
sdk,
|
|
31
|
-
wallet,
|
|
32
|
-
blockNumber: options?.blockNumber,
|
|
33
|
-
value: input.value ?? 0n
|
|
34
|
-
};
|
|
35
|
-
const prereqs = await buildPrerequisites(tx.data, ctx);
|
|
36
|
-
return sdkOk(await Promise.all(prereqs.map((p) => p.verify(ctx))));
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Dispatches a parsed operation to the per-operation-family prerequisite
|
|
40
|
-
* builders.
|
|
41
|
-
*/
|
|
42
|
-
async function buildPrerequisites(tx, ctx) {
|
|
43
|
-
const { wallet } = ctx;
|
|
44
|
-
switch (tx.operation) {
|
|
45
|
-
case "Deposit":
|
|
46
|
-
case "Mint":
|
|
47
|
-
case "Redeem":
|
|
48
|
-
case "Withdraw": return buildPoolPrerequisites(tx, wallet);
|
|
49
|
-
case "MultiCall":
|
|
50
|
-
case "BotMulticall":
|
|
51
|
-
case "OpenCreditAccount":
|
|
52
|
-
case "CloseCreditAccount":
|
|
53
|
-
case "LiquidateCreditAccount": return buildCollateralPrerequisites(tx.operation === "OpenCreditAccount" ? {
|
|
54
|
-
creditManager: tx.creditManager,
|
|
55
|
-
borrower: wallet
|
|
56
|
-
} : {
|
|
57
|
-
creditManager: tx.creditManager,
|
|
58
|
-
creditAccount: tx.creditAccount
|
|
59
|
-
}, tx.multicall, ctx);
|
|
60
|
-
case "RWAOpenCreditAccount": return [...await buildCollateralPrerequisites({
|
|
61
|
-
creditManager: tx.creditManager,
|
|
62
|
-
borrower: wallet
|
|
63
|
-
}, tx.multicall, ctx), ...buildRWAPrerequisites(tx.multicall, tx.creditManager, tx.args, ctx)];
|
|
64
|
-
case "RWAMulticall": return buildCollateralPrerequisites({
|
|
65
|
-
creditManager: tx.creditManager,
|
|
66
|
-
creditAccount: tx.creditAccount
|
|
67
|
-
}, tx.multicall, ctx);
|
|
68
|
-
case "PartiallyLiquidateCreditAccount": return buildPartialLiquidationPrerequisites(tx, ctx);
|
|
69
|
-
default: return [];
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
//#endregion
|
|
73
|
-
export { checkPrerequisites };
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { AllowancePrerequisite } from "./AllowancePrerequisite.js";
|
|
2
|
-
import { BalancePrerequisite } from "./BalancePrerequisite.js";
|
|
3
|
-
//#region src/preview/prerequisites/helpers.ts
|
|
4
|
-
/**
|
|
5
|
-
* The most common prerequisite pair: `owner` must have approved `spender` for
|
|
6
|
-
* `required` of `token` and must hold at least that much of it.
|
|
7
|
-
*/
|
|
8
|
-
function allowanceAndBalance(props) {
|
|
9
|
-
const { token, owner, spender, required } = props;
|
|
10
|
-
return [new AllowancePrerequisite({
|
|
11
|
-
token,
|
|
12
|
-
owner,
|
|
13
|
-
spender,
|
|
14
|
-
required
|
|
15
|
-
}), new BalancePrerequisite({
|
|
16
|
-
token,
|
|
17
|
-
owner,
|
|
18
|
-
required
|
|
19
|
-
})];
|
|
20
|
-
}
|
|
21
|
-
//#endregion
|
|
22
|
-
export { allowanceAndBalance };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Prerequisite } from "./Prerequisite.js";
|
|
2
|
-
import { AllowancePrerequisite } from "./AllowancePrerequisite.js";
|
|
3
|
-
import { BalancePrerequisite } from "./BalancePrerequisite.js";
|
|
4
|
-
import { RWAOpenRequirementsPrerequisite } from "./RWAOpenRequirementsPrerequisite.js";
|
|
5
|
-
import { checkPrerequisites } from "./checkPrerequisites.js";
|
|
6
|
-
import "./types.js";
|
|
7
|
-
export { AllowancePrerequisite, BalancePrerequisite, Prerequisite, RWAOpenRequirementsPrerequisite, checkPrerequisites };
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
//#region src/preview/preview/errors.ts
|
|
2
|
-
const MALFORMED_BRACKET_MESSAGE = {
|
|
3
|
-
nested: "nested storeExpectedBalances/compareBalances bracket",
|
|
4
|
-
unmatchedCompare: "compareBalances without a preceding storeExpectedBalances",
|
|
5
|
-
unmatchedStore: "storeExpectedBalances without a matching compareBalances"
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* Builds a {@link MalformedBracketError} for the given bracket invariant.
|
|
9
|
-
**/
|
|
10
|
-
function malformedBracketError(kind) {
|
|
11
|
-
return {
|
|
12
|
-
code: "malformedBracket",
|
|
13
|
-
message: MALFORMED_BRACKET_MESSAGE[kind],
|
|
14
|
-
kind
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Builds an {@link AdapterCallOutsideBracketError} for `adapter`.
|
|
19
|
-
**/
|
|
20
|
-
function adapterCallOutsideBracketError(adapter) {
|
|
21
|
-
return {
|
|
22
|
-
code: "adapterCallOutsideBracket",
|
|
23
|
-
message: `call to ${adapter} outside of a storeExpectedBalances/compareBalances bracket`,
|
|
24
|
-
adapter
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Builds a {@link NonAdapterCallInBracketError} for `target`.
|
|
29
|
-
**/
|
|
30
|
-
function nonAdapterCallInBracketError(target) {
|
|
31
|
-
return {
|
|
32
|
-
code: "nonAdapterCallInBracket",
|
|
33
|
-
message: `call to ${target} between storeExpectedBalances and compareBalances is not an adapter call`,
|
|
34
|
-
target
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
function asCause(cause) {
|
|
38
|
-
return cause instanceof Error ? cause : new Error(String(cause));
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Builds an {@link UnpreviewableAdapterCallError} for a bracketed adapter
|
|
42
|
-
* call that could not be replayed.
|
|
43
|
-
**/
|
|
44
|
-
function unpreviewableAdapterCallError(adapter, cause) {
|
|
45
|
-
const err = asCause(cause);
|
|
46
|
-
return {
|
|
47
|
-
code: "unpreviewableAdapterCall",
|
|
48
|
-
message: err.message,
|
|
49
|
-
adapter,
|
|
50
|
-
cause: err
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Builds an {@link UnsupportedOutOfBracketCallError} for an allowed
|
|
55
|
-
* out-of-bracket adapter call that could not be replayed.
|
|
56
|
-
**/
|
|
57
|
-
function unsupportedOutOfBracketCallError(adapter, cause) {
|
|
58
|
-
const err = asCause(cause);
|
|
59
|
-
return {
|
|
60
|
-
code: "unsupportedOutOfBracketCall",
|
|
61
|
-
message: err.message,
|
|
62
|
-
adapter,
|
|
63
|
-
cause: err
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Builds an {@link InvalidTransactionValueError} when `msg.value` does not
|
|
68
|
-
* fit into the declared WETH collateral.
|
|
69
|
-
**/
|
|
70
|
-
function invalidTransactionValueError(value, wethCollateral) {
|
|
71
|
-
return {
|
|
72
|
-
code: "invalidTransactionValue",
|
|
73
|
-
message: `transaction value ${value} exceeds WETH collateral ${wethCollateral}`,
|
|
74
|
-
value,
|
|
75
|
-
wethCollateral
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
//#endregion
|
|
79
|
-
export { adapterCallOutsideBracketError, invalidTransactionValueError, malformedBracketError, nonAdapterCallInBracketError, unpreviewableAdapterCallError, unsupportedOutOfBracketCallError };
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { ierc20Abi } from "../../abi/iERC20.js";
|
|
2
|
-
import { sdkErr, sdkOk } from "../../model/result.js";
|
|
3
|
-
import "../../model/index.js";
|
|
4
|
-
import { asPreviewSimulationError } from "../simulate/errors.js";
|
|
5
|
-
import { amountsInOut, previewContract } from "../simulate/simulatePoolOperation.js";
|
|
6
|
-
//#region src/preview/preview/previewPoolPositionOperation.ts
|
|
7
|
-
async function previewPoolPositionOperation(input, operation, options) {
|
|
8
|
-
const { sdk } = input;
|
|
9
|
-
const { tokenIn, tokenOut } = operation;
|
|
10
|
-
const market = sdk.marketRegister.findByPool(operation.pool);
|
|
11
|
-
const pool = market.pool.pool;
|
|
12
|
-
const holder = "owner" in operation ? operation.owner : operation.receiver;
|
|
13
|
-
let previewAmount;
|
|
14
|
-
let shares;
|
|
15
|
-
try {
|
|
16
|
-
[previewAmount, shares] = await sdk.client.multicall({
|
|
17
|
-
contracts: [previewContract(operation), {
|
|
18
|
-
address: operation.pool,
|
|
19
|
-
abi: ierc20Abi,
|
|
20
|
-
functionName: "balanceOf",
|
|
21
|
-
args: [holder]
|
|
22
|
-
}],
|
|
23
|
-
allowFailure: false,
|
|
24
|
-
batchSize: 0,
|
|
25
|
-
blockNumber: options?.blockNumber
|
|
26
|
-
});
|
|
27
|
-
} catch (cause) {
|
|
28
|
-
const error = asPreviewSimulationError(cause, "multicall");
|
|
29
|
-
options?.logger?.error(error, "pool operation simulation failed");
|
|
30
|
-
return sdkErr(error);
|
|
31
|
-
}
|
|
32
|
-
const sim = amountsInOut(operation, previewAmount);
|
|
33
|
-
const inflow = operation.operation === "Deposit" || operation.operation === "Mint";
|
|
34
|
-
const after = shares + (inflow ? sim.amountOut : -sim.amountIn);
|
|
35
|
-
return sdkOk({
|
|
36
|
-
operation: operation.operation,
|
|
37
|
-
pool: operation.pool,
|
|
38
|
-
name: sdk.tokensMeta.mustGetToken(operation.pool).name,
|
|
39
|
-
underlyingToken: market.underlyingToken,
|
|
40
|
-
shareRate: pool.dieselRate,
|
|
41
|
-
tokenIn: market.priceOracle.toTokenAmount(tokenIn, sim.amountIn),
|
|
42
|
-
tokenOut: market.priceOracle.toTokenAmount(tokenOut, sim.amountOut),
|
|
43
|
-
curator: market.curator,
|
|
44
|
-
netValue: market.toUnderlyingAmount(pool.sharesToUnderlying(after > 0n ? after : 0n))
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
//#endregion
|
|
48
|
-
export { previewPoolPositionOperation };
|