@gearbox-protocol/sdk 16.4.0-next.1 → 16.4.0-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/cjs/dev/index.js +3 -2
  2. package/dist/cjs/dev/kycUtils.js +18 -35
  3. package/dist/cjs/dev/midasUtils.js +80 -16
  4. package/dist/cjs/dev/securitizeUtils.js +14 -10
  5. package/dist/cjs/dev/withdrawalUtils.js +3 -6
  6. package/dist/cjs/model/errors/index.js +1 -0
  7. package/dist/cjs/model/errors/operation-errors.js +9 -0
  8. package/dist/cjs/model/index.js +1 -0
  9. package/dist/cjs/onchain/accounts/CreditAccountsServiceV310.js +0 -1
  10. package/dist/cjs/onchain/accounts/intents/borrow.js +139 -0
  11. package/dist/cjs/onchain/accounts/intents/{collateral-money.js → collateral-valuation.js} +7 -7
  12. package/dist/cjs/onchain/accounts/intents/index.js +86 -2
  13. package/dist/cjs/onchain/accounts/intents/leverage-band.js +2 -12
  14. package/dist/cjs/onchain/accounts/intents/maxBorrow.js +89 -0
  15. package/dist/cjs/onchain/accounts/intents/maxWithdrawCollateral.js +14 -14
  16. package/dist/cjs/onchain/accounts/intents/open-strategy.js +6 -45
  17. package/dist/cjs/onchain/accounts/intents/realize.js +44 -0
  18. package/dist/cjs/onchain/accounts/intents/testing/sdk-mock.js +1 -0
  19. package/dist/cjs/onchain/accounts/intents/utils/common.js +19 -0
  20. package/dist/cjs/onchain/accounts/intents/utils/credit-account-slice.js +21 -0
  21. package/dist/cjs/onchain/accounts/intents/utils/index.js +2 -0
  22. package/dist/cjs/onchain/accounts/intents/utils/price-impact.js +3 -3
  23. package/dist/cjs/onchain/accounts/intents/withdraw-limits.js +8 -8
  24. package/dist/cjs/onchain/core/createAddressProvider.js +2 -5
  25. package/dist/cjs/onchain/index.js +4 -0
  26. package/dist/cjs/onchain/market/adapters/contracts/MidasGatewayAdapterContract.js +11 -3
  27. package/dist/cjs/onchain/positions/calcHealthFactor.js +3 -3
  28. package/dist/cjs/onchain/preview/index.js +2 -0
  29. package/dist/cjs/onchain/preview/preview/index.js +2 -0
  30. package/dist/cjs/onchain/preview/preview/midasGreenlistsAccount.js +17 -0
  31. package/dist/cjs/onchain/preview/preview/previewOpenStrategyPosition.js +5 -2
  32. package/dist/cjs/onchain/validation/bundles/checkCreditOperation.js +2 -1
  33. package/dist/cjs/onchain/validation/bundles/checkMidasAccountGreenlist.js +44 -0
  34. package/dist/cjs/onchain/validation/bundles/checkRWAOpening.js +15 -5
  35. package/dist/cjs/onchain/validation/bundles/index.js +2 -0
  36. package/dist/cjs/onchain/validation/index.js +2 -0
  37. package/dist/cjs/sdk/execute/ExecuteApi.js +65 -5
  38. package/dist/cjs/sdk/prepare/PrepareApi.js +86 -12
  39. package/dist/esm/dev/index.js +3 -3
  40. package/dist/esm/dev/kycUtils.js +17 -33
  41. package/dist/esm/dev/midasUtils.js +80 -18
  42. package/dist/esm/dev/securitizeUtils.js +15 -11
  43. package/dist/esm/dev/withdrawalUtils.js +3 -6
  44. package/dist/esm/model/errors/index.js +2 -2
  45. package/dist/esm/model/errors/operation-errors.js +9 -1
  46. package/dist/esm/model/index.js +2 -2
  47. package/dist/esm/onchain/accounts/CreditAccountsServiceV310.js +0 -1
  48. package/dist/esm/onchain/accounts/intents/borrow.js +137 -0
  49. package/dist/esm/onchain/accounts/intents/{collateral-money.js → collateral-valuation.js} +7 -7
  50. package/dist/esm/onchain/accounts/intents/index.js +86 -2
  51. package/dist/esm/onchain/accounts/intents/leverage-band.js +2 -12
  52. package/dist/esm/onchain/accounts/intents/maxBorrow.js +87 -0
  53. package/dist/esm/onchain/accounts/intents/maxWithdrawCollateral.js +14 -14
  54. package/dist/esm/onchain/accounts/intents/open-strategy.js +6 -45
  55. package/dist/esm/onchain/accounts/intents/realize.js +44 -0
  56. package/dist/esm/onchain/accounts/intents/testing/sdk-mock.js +1 -0
  57. package/dist/esm/onchain/accounts/intents/utils/common.js +19 -1
  58. package/dist/esm/onchain/accounts/intents/utils/credit-account-slice.js +21 -1
  59. package/dist/esm/onchain/accounts/intents/utils/index.js +3 -3
  60. package/dist/esm/onchain/accounts/intents/utils/price-impact.js +3 -3
  61. package/dist/esm/onchain/accounts/intents/withdraw-limits.js +8 -8
  62. package/dist/esm/onchain/core/createAddressProvider.js +2 -5
  63. package/dist/esm/onchain/index.js +3 -1
  64. package/dist/esm/onchain/market/adapters/contracts/MidasGatewayAdapterContract.js +11 -3
  65. package/dist/esm/onchain/positions/calcHealthFactor.js +3 -3
  66. package/dist/esm/onchain/preview/index.js +2 -1
  67. package/dist/esm/onchain/preview/preview/index.js +2 -1
  68. package/dist/esm/onchain/preview/preview/midasGreenlistsAccount.js +16 -0
  69. package/dist/esm/onchain/preview/preview/previewOpenStrategyPosition.js +5 -2
  70. package/dist/esm/onchain/validation/bundles/checkCreditOperation.js +2 -1
  71. package/dist/esm/onchain/validation/bundles/checkMidasAccountGreenlist.js +43 -0
  72. package/dist/esm/onchain/validation/bundles/checkRWAOpening.js +15 -5
  73. package/dist/esm/onchain/validation/bundles/index.js +2 -1
  74. package/dist/esm/onchain/validation/index.js +2 -1
  75. package/dist/esm/sdk/execute/ExecuteApi.js +65 -5
  76. package/dist/esm/sdk/prepare/PrepareApi.js +86 -12
  77. package/dist/types/dev/index.d.ts +3 -3
  78. package/dist/types/dev/kycUtils.d.ts +1 -5
  79. package/dist/types/dev/midasUtils.d.ts +15 -4
  80. package/dist/types/model/errors/index.d.ts +2 -2
  81. package/dist/types/model/errors/operation-errors.d.ts +14 -1
  82. package/dist/types/model/index.d.ts +2 -2
  83. package/dist/types/model/previews.d.ts +17 -2
  84. package/dist/types/onchain/accounts/index.d.ts +4 -3
  85. package/dist/types/onchain/accounts/intents/borrow.d.ts +141 -0
  86. package/dist/types/onchain/accounts/intents/{collateral-money.d.ts → collateral-valuation.d.ts} +8 -8
  87. package/dist/types/onchain/accounts/intents/index.d.ts +81 -2
  88. package/dist/types/onchain/accounts/intents/maxBorrow.d.ts +54 -0
  89. package/dist/types/onchain/accounts/intents/maxWithdrawCollateral.d.ts +3 -3
  90. package/dist/types/onchain/accounts/intents/open-strategy.d.ts +3 -17
  91. package/dist/types/onchain/accounts/intents/testing/sdk-mock.d.ts +2 -0
  92. package/dist/types/onchain/accounts/intents/tests/open-strategy.fixtures.d.ts +2 -2
  93. package/dist/types/onchain/accounts/intents/types.d.ts +15 -1
  94. package/dist/types/onchain/accounts/intents/utils/common.d.ts +15 -1
  95. package/dist/types/onchain/accounts/intents/utils/credit-account-slice.d.ts +14 -1
  96. package/dist/types/onchain/accounts/intents/utils/index.d.ts +3 -3
  97. package/dist/types/onchain/accounts/intents/withdraw-limits.d.ts +1 -1
  98. package/dist/types/onchain/index.d.ts +7 -4
  99. package/dist/types/onchain/market/adapters/contracts/MidasGatewayAdapterContract.d.ts +8 -2
  100. package/dist/types/onchain/preview/index.d.ts +2 -1
  101. package/dist/types/onchain/preview/preview/index.d.ts +2 -1
  102. package/dist/types/onchain/preview/preview/midasGreenlistsAccount.d.ts +13 -0
  103. package/dist/types/onchain/validation/bundles/checkCreditOperation.d.ts +2 -2
  104. package/dist/types/onchain/validation/bundles/checkMidasAccountGreenlist.d.ts +22 -0
  105. package/dist/types/onchain/validation/bundles/checkRWAOpening.d.ts +6 -4
  106. package/dist/types/onchain/validation/bundles/index.d.ts +3 -2
  107. package/dist/types/onchain/validation/checks/checkDebtLimits.d.ts +2 -2
  108. package/dist/types/onchain/validation/index.d.ts +3 -2
  109. package/dist/types/sdk/execute/index.d.ts +2 -2
  110. package/dist/types/sdk/execute/types.d.ts +48 -6
  111. package/dist/types/sdk/index.d.ts +5 -4
  112. package/dist/types/sdk/prepare/PrepareApi.d.ts +15 -3
  113. package/dist/types/sdk/prepare/index.d.ts +4 -3
  114. package/dist/types/sdk/prepare/types.d.ts +176 -49
  115. package/package.json +1 -1
@@ -222,6 +222,7 @@ import { checkIncreaseDebt } from "./validation/bundles/checkIncreaseDebt.js";
222
222
  import { checkIncreaseQuota } from "./validation/bundles/checkIncreaseQuota.js";
223
223
  import { checkMarket } from "./validation/bundles/checkMarket.js";
224
224
  import { checkObtained } from "./validation/bundles/checkObtained.js";
225
+ import { checkMidasAccountGreenlist } from "./validation/bundles/checkMidasAccountGreenlist.js";
225
226
  import { checkRWAOpenRequirements } from "./validation/bundles/checkRWAOpenRequirements.js";
226
227
  import { checkRWAOpening } from "./validation/bundles/checkRWAOpening.js";
227
228
  import { checkCreditOperation } from "./validation/bundles/checkCreditOperation.js";
@@ -292,6 +293,7 @@ import { classifyCloseOrRepay, isCloseOrRepay } from "./preview/preview/detectCl
292
293
  import { detectDelayedClaim, resolveDelayedClaimIntent } from "./preview/preview/detectDelayedClaim.js";
293
294
  import { detectDelayedOperation } from "./preview/preview/detectDelayedOperation.js";
294
295
  import { estimateClaimableAt } from "./preview/preview/estimateClaimableAt.js";
296
+ import { midasGreenlistsAccount } from "./preview/preview/midasGreenlistsAccount.js";
295
297
  import { previewAdjustStrategyPosition } from "./preview/preview/previewAdjustStrategyPosition.js";
296
298
  import { previewExitOrRepayStrategyPosition } from "./preview/preview/previewExitOrRepayStrategyPosition.js";
297
299
  import { makeReplayState, replayInnerOperations } from "./preview/preview/replayInnerOperations.js";
@@ -299,4 +301,4 @@ import { replayMulticall } from "./preview/preview/replayMulticall.js";
299
301
  import { previewOperation } from "./preview/preview/previewOperation.js";
300
302
  import "./preview/index.js";
301
303
  import "./types/index.js";
302
- export { ADDRESS_0X0, ADDRESS_PROVIDER_V310, AP_ACCOUNT_FACTORY, AP_ACL, AP_BOT_LIST, AP_BYTECODE_REPOSITORY, AP_CONTRACTS_REGISTER, AP_CONTROLLER_TIMELOCK, AP_CREDIT_ACCOUNT_COMPRESSOR, AP_CREDIT_SUITE_COMPRESSOR, AP_DATA_COMPRESSOR, AP_DELEVERAGE_BOT_HV, AP_DELEVERAGE_BOT_LV, AP_DELEVERAGE_BOT_PEGGED, AP_GAUGE_COMPRESSOR, AP_GEAR_STAKING, AP_GEAR_TOKEN, AP_INFLATION_ATTACK_BLOCKER, AP_INSOLVENCY_CHECKER, AP_MARKET_COMPRESSOR, AP_MARKET_CONFIGURATOR, AP_PARTIAL_LIQUIDATION_BOT, AP_PERIPHERY_COMPRESSOR, AP_PRICE_FEED_COMPRESSOR, AP_PRICE_FEED_STORE, AP_PRICE_ORACLE, AP_REDEMPTION_LOGGER, AP_REWARDS_COMPRESSOR, AP_ROUTER, AP_RWA_COMPRESSOR, AP_TOKEN_COMPRESSOR, AP_TREASURY, AP_WETH_GATEWAY, AP_WETH_TOKEN, AP_ZAPPER_REGISTER, AP_ZERO_PRICE_FEED, AbstractAdapterContract, AbstractLPPriceFeedContract, AbstractPriceFeedContract, AbstractWithdrawalCompressorContract, AccountBotsService, AccountMigratorAdapterContract, AdapterType, AddressMap, AddressProviderV310Contract, AddressSet, AssetsMap, BLOCKS_PER_WEEK_BY_NETWORK, BalancerStablePriceFeedContract, BalancerV3PoolStatus, BalancerV3RouterAdapterContract, BalancerV3WrapperAdapterContract, BalancerWeightedPriceFeedContract, BaseContract, BasePlugin, BigIntMath, BotPermissions, BoundedPriceFeedContract, CamelotV3AdapterContract, ChainContractsRegister, ChainNotConfiguredError, CompositePriceFeedContract, Construct, ContractParseError, ConvexV1BaseRewardPoolAdapterContract, ConvexV1BoosterAdapterContract, CreditAccountCompressor, CreditAccountCompressorV310Contract, CreditAccountOperationsService, CreditAccountState, CreditAccountsServiceV310, CreditConfiguratorV310Contract, CreditFacadeV310BaseContract, CreditFacadeV310Contract, CreditManagerV310Contract, CreditSuite, Curve2AssetsAdapterContract, Curve3AssetsAdapterContract, Curve4AssetsAdapterContract, CurveCryptoPriceFeedContract, CurveStablePriceFeedContract, CurveUSDPriceFeedContract, CurveV1AdapterStETHContract, CurveV1StableNGAdapterContract, DEFAULT_QUOTA_BUFFER_BPS, DEGEN_NFT_MIDAS, DEGEN_NFT_SECURITIZE, DELAYED_INTENT_TYPES, DELAYED_INTENT_VERSION, DUST_THRESHOLD, DaiUsdsAdapterContract, ERC4626AdapterContract, ERC4626ReferralAdapterContract, EXECUTE_BYTES_SELECTOR, Erc4626PriceFeedContract, ExternalPriceFeedContract, FluidDexAdapterContract, GaugeContract, IERC20ZapperContract, IETHZapperContract, InfinifiGatewayAdapterContract, InfinifiUnwindingGatewayAdapterContract, KelpLRTDepositPoolAdapterContract, KelpLRTWithdrawalManagerAdapterContract, LEVERAGE_DECIMALS, LIQUIDATION_APPROVAL_BUFFER, LIQUIDATION_COMPRESSOR_V313_ADDRESS, LidoV1AdapterContract, LinearInterestRateModelContract, LiquidationsService, MAX_INT, MAX_LEVERAGE_BUFFER_BPS, MAX_UINT16, MAX_UINT256, MIN_HEALTH_FACTOR_FACADE, MIN_HEALTH_FACTOR_FORM, MIN_HF_LIMITED, MIN_INT96, MIN_SAFE_HEALTH_FACTOR_FORM, MULTICALL_ADDRESS, MarketRegister, MarketSuite, MellowClaimerAdapterContract, MellowDVVAdapterContract, MellowERC4626VaultAdapterContract, MellowLRTPriceFeedContract, MellowWrapperAdapterContract, MidasDegenNFT, MidasGatewayAdapterContract, MidasIssuanceVaultAdapterContract, MidasLiquidatorContract, MidasRedemptionVaultAdapterContract, MissingSerializedParamsError, MultichainConstruct, MultichainLiquidationsService, MultichainOpportunitiesService, MultichainPositionsService, MultichainSDK, NATIVE_ADDRESS, NON_STRATEGY_PHANTOM_TOKEN_TYPES, NOT_DEPLOYED, NO_VERSION, NetworkType, OnchainSDK, OpportunitiesService, PARTIAL_LIQUIDATION_BUFFER_BPS, PERCENTAGE_DECIMALS, PERCENTAGE_FACTOR, PERCENTAGE_FACTOR_1KK, PERIPHERY_CONTRACTS, PHANTOM_TOKEN_CONTRACT_TYPES, PHANTOM_TOKEN_MIDAS_REDEMPTION, PHANTOM_TOKEN_SECURITIZE_REDEMPTION, PRICE_DECIMALS, PRICE_DECIMALS_POW, PartialPriceFeedInitError, PendlePairStatus, PendleRouterAdapterContract, PendleTWAPPTPriceFeed, PendleTokenType, PeripheryCompressorV310Contract, PluginStateVersionError, PoolService, PoolSuite, PoolV310Contract, PositionsService, PriceFeedRef, PriceFeedRegister, PriceOracleV310Contract, PythPriceFeed, RAMP_DURATION_BY_NETWORK, RAY, RAY_DECIMALS_POW, RWARegistry, RWA_LIQUIDATOR_MIDAS, RWA_LIQUIDATOR_SECURITIZE, RWA_ON_DEMAND_LP_MONOPOLIZED, RWA_UNDERLYING_DEFAULT, RWA_UNDERLYING_ON_DEMAND, RedemptionLoggerV310Contract, RedstonePriceFeedContract, RouterV310Contract, SDKConstruct, SECONDS_PER_YEAR, SLIPPAGE_DECIMALS, STATE_VERSION, SUPPORTED_NETWORKS, SdkAlreadyAttachedError, SdkChainMismatchError, SdkMissingChainStateError, SdkNotAttachedError, SdkRWADataNotLoadedError, SdkStateVersionMismatchError, SdkSyncFailedError, SecuritizeDegenNFT, SecuritizeLiquidatorContract, SecuritizeOnRampAdapterContract, SecuritizeRWAFactory, SecuritizeRedemptionGatewayAdapterContract, SimulateWithPriceUpdatesError, SimulationError, StakingRewardsAdapterContract, TokensMeta, TraderJoePoolVersion, TraderJoeRouterAdapterContract, TypedObjectUtils, UniswapV2AdapterContract, UniswapV3AdapterContract, UniswapV4AdapterContract, UpshiftVaultAdapterContract, VERSION_RANGE_310, VelodromeV2RouterAdapterContract, VotingContractStatus, WAD, WAD_DECIMALS_POW, WithdrawalCompressorV310Contract, WithdrawalCompressorV311Contract, WithdrawalCompressorV313Contract, WstETHPriceFeedContract, WstETHV1AdapterContract, YearnPriceFeedContract, ZapperContract, ZeroPriceFeedContract, ZodAddress, ZodBigInt, ZodHex, accountSnapshotFromCreditAccountData, adapterActionAbi, adapterActionSelectors, adapterActionSignatures, adapterConstructorAbi, allTransfersAsTokenAmounts, amountOf, assetsMap, attachOptionsSchema, botPermissionsToString, bpsToRay, buildDelayedStrategyPositionOperationPreview, bytes32ToString, calcBorrowApy, calcBorrowRate, calcDefaultQuota, calcEffectiveBorrowApy, calcHealthFactor, calcLiquidationPrice, calcLiquidationPriceForTarget, calcMaxLeverage, calcNetStrategyApy, calcPositionLeverage, calcQuotaRate, calcQuotaUpdate, calcRecommendedQuota, calcTimeToLiquidationMs, calcUtilization, calcUtilizationRaw, chains, checkAccountQuotas, checkBorrowLimit, checkCollateralFunding, checkCollateralised, checkCreditAccountFrozen, checkCreditManagerPaused, checkCreditOperation, checkDebtLimits, checkEmergencyLiquidator, checkForbiddenToken, checkHealthFactors, checkIncreaseDebt, checkIncreaseQuota, checkLeverage, checkLiquidation, checkLiquidationEligibility, checkLiquidationFunding, checkLiquidatorEligible, checkMarket, checkMarketExpired, checkObtained, checkOperation, checkPoolFunding, checkPoolLiquidity, checkPoolOperation, checkPoolPaused, checkPoolSunset, checkQuotaCount, checkQuotaLimit, checkRWAOpenRequirements, checkRWAOpening, checkReservePriceLimited, checkSimulation, checkWallet, checkWalletAllowance, checkWalletBalance, childLogger, classifyCloseOrRepay, classifyCurveOperation, classifyInnerOperations, collateralPriceInUnderlying, collectTraces, createAdapter, createAddressProvider, createPriceOracle, createRawTx, createRedemptionLogger, createRouter, createWithdrawalCompressor, createZapper, abi as creditFacadeV310Abi, curveAddLiquidityFromTransfers, curveRemoveLiquidityFromTransfers, decodeDelayedIntent, detectDelayedClaim, detectDelayedOperation, detectNetwork, dominantCollateral, encodeDelayedIntent, erc4626ReferralAdapterAbi, estimateClaimableAt, estimateRawTxGas, etherscanApiUrl, etherscanUrl, executeDelegatedMulticalls, executeMulticallBatches, expectedBalanceDeltas, fetchCreditAccountSlice, fetchRedstonePayloads, filterDust, filterDustUSD, findCallTo, findCallWithInput, findCuratorMarketConfigurator, findExecuteBytes, fmtBinaryMask, fnSigToName, formatBN, formatBNvalue, formatDuration, formatLeverage, formatNumberToString_, formatPercentage, formatTimestamp, functionArgsToMap, functionArgsToRecord, generateCastTraceCall, getAccountTargetCollateral, getAdapterActionAbi, getAdapterDeployParamsAbi, getAdapterType, getAssetType, getCastTraceArgs, getChain, getCuratorName, getFunctionSignature, getLegacyStrategyTarget, getNetworkType, getRawPriceUpdates, getSimulateWithPriceUpdatesError, getWithdrawalCompressorAddress, halfRAY, hasAdapterDeployParamsAbi, healthFactorBps, hexEq, hydrateAddressProvider, iBalancerV3RouterAbi, iBalancerV3RouterAdapterAbi, iBalancerV3WrapperAbi, iBalancerV3WrapperAdapterAbi, iBaseOnRampAbi, iBaseRewardPoolAbi, iBoosterAbi, iCamelotV3AdapterAbi, iCamelotV3RouterAbi, iConvexV1BaseRewardPoolAdapterAbi, iConvexV1BoosterAdapterAbi, iCreditAccountAbi, iCurvePoolAbi, iCurvePoolStableNGAbi, iCurvePool_2Abi, iCurvePool_3Abi, iCurvePool_4Abi, iCurveV1StableNgAdapterAbi, iCurveV1_2AssetsAdapterAbi, iCurveV1_3AssetsAdapterAbi, iCurveV1_4AssetsAdapterAbi, iDaiUsdsAbi, iDaiUsdsAdapterAbi, iERC4626Abi, iERC4626ReferralAbi, iFluidDexAbi, iFluidDexAdapterAbi, iInfinifiGatewayAbi, iInfinifiGatewayAdapterAbi, iInfinifiUnwindingGatewayAbi, iInfinifiUnwindingGatewayAdapterAbi, iKelpLRTDepositPoolGatewayAbi, iKelpLRTWithdrawalManagerGatewayAbi, iKelpLrtDepositPoolAdapterAbi, iKelpLrtDepositPoolGatewayAbi, iKelpLrtWithdrawalManagerAdapterAbi, iKelpLrtWithdrawalManagerGatewayAbi, iLidoV1AdapterAbi, iMellow4626VaultAdapterAbi, iMellowClaimerAbi, iMellowClaimerAdapterAbi, iMellowWrapperAbi, iMellowWrapperAdapterAbi, iMidasGatewayAdapterV311Abi, iMidasGatewayV311Abi, iMidasIssuanceVaultAdapterV310Abi, iMidasIssuanceVaultV310Abi, iMidasRedemptionVaultAdapterV310Abi, iMidasRedemptionVaultGatewayV310Abi, iPendleRouterAbi, iPendleRouterAdapterAbi, iSecuritizeOnRampAbi, iSecuritizeOnRampAdapterV310Abi, iSecuritizeRedemptionGatewayAdapterV311Abi, iSecuritizeRedemptionGatewayV311Abi, iStakingRewardsAbi, iStakingRewardsAdapterAbi, iTraderJoeRouterAbi, iTraderJoeRouterAdapterAbi, iUniswapV2AdapterAbi, iUniswapV2Router02Abi, iUniswapV3Abi, iUniswapV3AdapterAbi, iUniswapV4AdapterAbi, iUniswapV4GatewayAbi, iUpshiftVaultAdapterAbi, iUpshiftVaultGatewayAbi, iVelodromeV2RouterAbi, iVelodromeV2RouterAdapterAbi, isCloseOrRepay, isDust, isLPPriceFeed, isPhantomToken, isPoolOperation, isPublicNetwork, isRWAFactory, isRWAOperation, isRWAToken, isStrategyCollateral, isSunsetPool, isSunsetStrategy, isSupportedNetwork, isUpdatablePriceFeed, isV310, isVersionRange, isZeroBalance, iwstETHAbi, iwstEthv1AdapterAbi, json_parse, json_stringify, lidoV1_WETHGatewayAbi, makeReplayState, mellowDvvAdapterAbi, minSeizedAmount, numberWithCommas, onchainSDKOptionsSchema, optimalHFForPartialLiquidation, optimalRepaidAmount, parseAdapterAction, parseAdapterDeployParams, parseFacadeOperationCalldata, parseOperationCalldata, parsePoolOperationCalldata, parsePosNegAmount, parseRWAFactoryOperationCalldata, percentFmt, pickStrategyTargetCollateral, previewAdjustStrategyPosition, previewExitOrRepayStrategyPosition, previewOperation, raise, rayToBps, rayToNumber, replayInnerOperations, replayMulticall, resolveDelayedClaimIntent, resolveProtocolCall, retry, rewardsFromTransfers, roundUpQuota, sendRawTx, shortAddress, shortHash, simulateCall, simulateMulticall, simulateWithPriceUpdates, soleNonUnderlyingCollateral, strategyName, swapFromTransfers, toAddress, toBN, toBigInt, toChainIds, toClaimableWithdrawal, toCreditAccountSlice, toNetTransfers, toPendingWithdrawal, toRequestableWithdrawal, toSignificant, toToken, toTokenAmount, toWithdrawalStatus, usdToNumber, watchBlocksAsync };
304
+ export { ADDRESS_0X0, ADDRESS_PROVIDER_V310, AP_ACCOUNT_FACTORY, AP_ACL, AP_BOT_LIST, AP_BYTECODE_REPOSITORY, AP_CONTRACTS_REGISTER, AP_CONTROLLER_TIMELOCK, AP_CREDIT_ACCOUNT_COMPRESSOR, AP_CREDIT_SUITE_COMPRESSOR, AP_DATA_COMPRESSOR, AP_DELEVERAGE_BOT_HV, AP_DELEVERAGE_BOT_LV, AP_DELEVERAGE_BOT_PEGGED, AP_GAUGE_COMPRESSOR, AP_GEAR_STAKING, AP_GEAR_TOKEN, AP_INFLATION_ATTACK_BLOCKER, AP_INSOLVENCY_CHECKER, AP_MARKET_COMPRESSOR, AP_MARKET_CONFIGURATOR, AP_PARTIAL_LIQUIDATION_BOT, AP_PERIPHERY_COMPRESSOR, AP_PRICE_FEED_COMPRESSOR, AP_PRICE_FEED_STORE, AP_PRICE_ORACLE, AP_REDEMPTION_LOGGER, AP_REWARDS_COMPRESSOR, AP_ROUTER, AP_RWA_COMPRESSOR, AP_TOKEN_COMPRESSOR, AP_TREASURY, AP_WETH_GATEWAY, AP_WETH_TOKEN, AP_ZAPPER_REGISTER, AP_ZERO_PRICE_FEED, AbstractAdapterContract, AbstractLPPriceFeedContract, AbstractPriceFeedContract, AbstractWithdrawalCompressorContract, AccountBotsService, AccountMigratorAdapterContract, AdapterType, AddressMap, AddressProviderV310Contract, AddressSet, AssetsMap, BLOCKS_PER_WEEK_BY_NETWORK, BalancerStablePriceFeedContract, BalancerV3PoolStatus, BalancerV3RouterAdapterContract, BalancerV3WrapperAdapterContract, BalancerWeightedPriceFeedContract, BaseContract, BasePlugin, BigIntMath, BotPermissions, BoundedPriceFeedContract, CamelotV3AdapterContract, ChainContractsRegister, ChainNotConfiguredError, CompositePriceFeedContract, Construct, ContractParseError, ConvexV1BaseRewardPoolAdapterContract, ConvexV1BoosterAdapterContract, CreditAccountCompressor, CreditAccountCompressorV310Contract, CreditAccountOperationsService, CreditAccountState, CreditAccountsServiceV310, CreditConfiguratorV310Contract, CreditFacadeV310BaseContract, CreditFacadeV310Contract, CreditManagerV310Contract, CreditSuite, Curve2AssetsAdapterContract, Curve3AssetsAdapterContract, Curve4AssetsAdapterContract, CurveCryptoPriceFeedContract, CurveStablePriceFeedContract, CurveUSDPriceFeedContract, CurveV1AdapterStETHContract, CurveV1StableNGAdapterContract, DEFAULT_QUOTA_BUFFER_BPS, DEGEN_NFT_MIDAS, DEGEN_NFT_SECURITIZE, DELAYED_INTENT_TYPES, DELAYED_INTENT_VERSION, DUST_THRESHOLD, DaiUsdsAdapterContract, ERC4626AdapterContract, ERC4626ReferralAdapterContract, EXECUTE_BYTES_SELECTOR, Erc4626PriceFeedContract, ExternalPriceFeedContract, FluidDexAdapterContract, GaugeContract, IERC20ZapperContract, IETHZapperContract, InfinifiGatewayAdapterContract, InfinifiUnwindingGatewayAdapterContract, KelpLRTDepositPoolAdapterContract, KelpLRTWithdrawalManagerAdapterContract, LEVERAGE_DECIMALS, LIQUIDATION_APPROVAL_BUFFER, LIQUIDATION_COMPRESSOR_V313_ADDRESS, LidoV1AdapterContract, LinearInterestRateModelContract, LiquidationsService, MAX_INT, MAX_LEVERAGE_BUFFER_BPS, MAX_UINT16, MAX_UINT256, MIN_HEALTH_FACTOR_FACADE, MIN_HEALTH_FACTOR_FORM, MIN_HF_LIMITED, MIN_INT96, MIN_SAFE_HEALTH_FACTOR_FORM, MULTICALL_ADDRESS, MarketRegister, MarketSuite, MellowClaimerAdapterContract, MellowDVVAdapterContract, MellowERC4626VaultAdapterContract, MellowLRTPriceFeedContract, MellowWrapperAdapterContract, MidasDegenNFT, MidasGatewayAdapterContract, MidasIssuanceVaultAdapterContract, MidasLiquidatorContract, MidasRedemptionVaultAdapterContract, MissingSerializedParamsError, MultichainConstruct, MultichainLiquidationsService, MultichainOpportunitiesService, MultichainPositionsService, MultichainSDK, NATIVE_ADDRESS, NON_STRATEGY_PHANTOM_TOKEN_TYPES, NOT_DEPLOYED, NO_VERSION, NetworkType, OnchainSDK, OpportunitiesService, PARTIAL_LIQUIDATION_BUFFER_BPS, PERCENTAGE_DECIMALS, PERCENTAGE_FACTOR, PERCENTAGE_FACTOR_1KK, PERIPHERY_CONTRACTS, PHANTOM_TOKEN_CONTRACT_TYPES, PHANTOM_TOKEN_MIDAS_REDEMPTION, PHANTOM_TOKEN_SECURITIZE_REDEMPTION, PRICE_DECIMALS, PRICE_DECIMALS_POW, PartialPriceFeedInitError, PendlePairStatus, PendleRouterAdapterContract, PendleTWAPPTPriceFeed, PendleTokenType, PeripheryCompressorV310Contract, PluginStateVersionError, PoolService, PoolSuite, PoolV310Contract, PositionsService, PriceFeedRef, PriceFeedRegister, PriceOracleV310Contract, PythPriceFeed, RAMP_DURATION_BY_NETWORK, RAY, RAY_DECIMALS_POW, RWARegistry, RWA_LIQUIDATOR_MIDAS, RWA_LIQUIDATOR_SECURITIZE, RWA_ON_DEMAND_LP_MONOPOLIZED, RWA_UNDERLYING_DEFAULT, RWA_UNDERLYING_ON_DEMAND, RedemptionLoggerV310Contract, RedstonePriceFeedContract, RouterV310Contract, SDKConstruct, SECONDS_PER_YEAR, SLIPPAGE_DECIMALS, STATE_VERSION, SUPPORTED_NETWORKS, SdkAlreadyAttachedError, SdkChainMismatchError, SdkMissingChainStateError, SdkNotAttachedError, SdkRWADataNotLoadedError, SdkStateVersionMismatchError, SdkSyncFailedError, SecuritizeDegenNFT, SecuritizeLiquidatorContract, SecuritizeOnRampAdapterContract, SecuritizeRWAFactory, SecuritizeRedemptionGatewayAdapterContract, SimulateWithPriceUpdatesError, SimulationError, StakingRewardsAdapterContract, TokensMeta, TraderJoePoolVersion, TraderJoeRouterAdapterContract, TypedObjectUtils, UniswapV2AdapterContract, UniswapV3AdapterContract, UniswapV4AdapterContract, UpshiftVaultAdapterContract, VERSION_RANGE_310, VelodromeV2RouterAdapterContract, VotingContractStatus, WAD, WAD_DECIMALS_POW, WithdrawalCompressorV310Contract, WithdrawalCompressorV311Contract, WithdrawalCompressorV313Contract, WstETHPriceFeedContract, WstETHV1AdapterContract, YearnPriceFeedContract, ZapperContract, ZeroPriceFeedContract, ZodAddress, ZodBigInt, ZodHex, accountSnapshotFromCreditAccountData, adapterActionAbi, adapterActionSelectors, adapterActionSignatures, adapterConstructorAbi, allTransfersAsTokenAmounts, amountOf, assetsMap, attachOptionsSchema, botPermissionsToString, bpsToRay, buildDelayedStrategyPositionOperationPreview, bytes32ToString, calcBorrowApy, calcBorrowRate, calcDefaultQuota, calcEffectiveBorrowApy, calcHealthFactor, calcLiquidationPrice, calcLiquidationPriceForTarget, calcMaxLeverage, calcNetStrategyApy, calcPositionLeverage, calcQuotaRate, calcQuotaUpdate, calcRecommendedQuota, calcTimeToLiquidationMs, calcUtilization, calcUtilizationRaw, chains, checkAccountQuotas, checkBorrowLimit, checkCollateralFunding, checkCollateralised, checkCreditAccountFrozen, checkCreditManagerPaused, checkCreditOperation, checkDebtLimits, checkEmergencyLiquidator, checkForbiddenToken, checkHealthFactors, checkIncreaseDebt, checkIncreaseQuota, checkLeverage, checkLiquidation, checkLiquidationEligibility, checkLiquidationFunding, checkLiquidatorEligible, checkMarket, checkMarketExpired, checkMidasAccountGreenlist, checkObtained, checkOperation, checkPoolFunding, checkPoolLiquidity, checkPoolOperation, checkPoolPaused, checkPoolSunset, checkQuotaCount, checkQuotaLimit, checkRWAOpenRequirements, checkRWAOpening, checkReservePriceLimited, checkSimulation, checkWallet, checkWalletAllowance, checkWalletBalance, childLogger, classifyCloseOrRepay, classifyCurveOperation, classifyInnerOperations, collateralPriceInUnderlying, collectTraces, createAdapter, createAddressProvider, createPriceOracle, createRawTx, createRedemptionLogger, createRouter, createWithdrawalCompressor, createZapper, abi as creditFacadeV310Abi, curveAddLiquidityFromTransfers, curveRemoveLiquidityFromTransfers, decodeDelayedIntent, detectDelayedClaim, detectDelayedOperation, detectNetwork, dominantCollateral, encodeDelayedIntent, erc4626ReferralAdapterAbi, estimateClaimableAt, estimateRawTxGas, etherscanApiUrl, etherscanUrl, executeDelegatedMulticalls, executeMulticallBatches, expectedBalanceDeltas, fetchCreditAccountSlice, fetchRedstonePayloads, filterDust, filterDustUSD, findCallTo, findCallWithInput, findCuratorMarketConfigurator, findExecuteBytes, fmtBinaryMask, fnSigToName, formatBN, formatBNvalue, formatDuration, formatLeverage, formatNumberToString_, formatPercentage, formatTimestamp, functionArgsToMap, functionArgsToRecord, generateCastTraceCall, getAccountTargetCollateral, getAdapterActionAbi, getAdapterDeployParamsAbi, getAdapterType, getAssetType, getCastTraceArgs, getChain, getCuratorName, getFunctionSignature, getLegacyStrategyTarget, getNetworkType, getRawPriceUpdates, getSimulateWithPriceUpdatesError, getWithdrawalCompressorAddress, halfRAY, hasAdapterDeployParamsAbi, healthFactorBps, hexEq, hydrateAddressProvider, iBalancerV3RouterAbi, iBalancerV3RouterAdapterAbi, iBalancerV3WrapperAbi, iBalancerV3WrapperAdapterAbi, iBaseOnRampAbi, iBaseRewardPoolAbi, iBoosterAbi, iCamelotV3AdapterAbi, iCamelotV3RouterAbi, iConvexV1BaseRewardPoolAdapterAbi, iConvexV1BoosterAdapterAbi, iCreditAccountAbi, iCurvePoolAbi, iCurvePoolStableNGAbi, iCurvePool_2Abi, iCurvePool_3Abi, iCurvePool_4Abi, iCurveV1StableNgAdapterAbi, iCurveV1_2AssetsAdapterAbi, iCurveV1_3AssetsAdapterAbi, iCurveV1_4AssetsAdapterAbi, iDaiUsdsAbi, iDaiUsdsAdapterAbi, iERC4626Abi, iERC4626ReferralAbi, iFluidDexAbi, iFluidDexAdapterAbi, iInfinifiGatewayAbi, iInfinifiGatewayAdapterAbi, iInfinifiUnwindingGatewayAbi, iInfinifiUnwindingGatewayAdapterAbi, iKelpLRTDepositPoolGatewayAbi, iKelpLRTWithdrawalManagerGatewayAbi, iKelpLrtDepositPoolAdapterAbi, iKelpLrtDepositPoolGatewayAbi, iKelpLrtWithdrawalManagerAdapterAbi, iKelpLrtWithdrawalManagerGatewayAbi, iLidoV1AdapterAbi, iMellow4626VaultAdapterAbi, iMellowClaimerAbi, iMellowClaimerAdapterAbi, iMellowWrapperAbi, iMellowWrapperAdapterAbi, iMidasGatewayAdapterV311Abi, iMidasGatewayV311Abi, iMidasIssuanceVaultAdapterV310Abi, iMidasIssuanceVaultV310Abi, iMidasRedemptionVaultAdapterV310Abi, iMidasRedemptionVaultGatewayV310Abi, iPendleRouterAbi, iPendleRouterAdapterAbi, iSecuritizeOnRampAbi, iSecuritizeOnRampAdapterV310Abi, iSecuritizeRedemptionGatewayAdapterV311Abi, iSecuritizeRedemptionGatewayV311Abi, iStakingRewardsAbi, iStakingRewardsAdapterAbi, iTraderJoeRouterAbi, iTraderJoeRouterAdapterAbi, iUniswapV2AdapterAbi, iUniswapV2Router02Abi, iUniswapV3Abi, iUniswapV3AdapterAbi, iUniswapV4AdapterAbi, iUniswapV4GatewayAbi, iUpshiftVaultAdapterAbi, iUpshiftVaultGatewayAbi, iVelodromeV2RouterAbi, iVelodromeV2RouterAdapterAbi, isCloseOrRepay, isDust, isLPPriceFeed, isPhantomToken, isPoolOperation, isPublicNetwork, isRWAFactory, isRWAOperation, isRWAToken, isStrategyCollateral, isSunsetPool, isSunsetStrategy, isSupportedNetwork, isUpdatablePriceFeed, isV310, isVersionRange, isZeroBalance, iwstETHAbi, iwstEthv1AdapterAbi, json_parse, json_stringify, lidoV1_WETHGatewayAbi, makeReplayState, mellowDvvAdapterAbi, midasGreenlistsAccount, minSeizedAmount, numberWithCommas, onchainSDKOptionsSchema, optimalHFForPartialLiquidation, optimalRepaidAmount, parseAdapterAction, parseAdapterDeployParams, parseFacadeOperationCalldata, parseOperationCalldata, parsePoolOperationCalldata, parsePosNegAmount, parseRWAFactoryOperationCalldata, percentFmt, pickStrategyTargetCollateral, previewAdjustStrategyPosition, previewExitOrRepayStrategyPosition, previewOperation, raise, rayToBps, rayToNumber, replayInnerOperations, replayMulticall, resolveDelayedClaimIntent, resolveProtocolCall, retry, rewardsFromTransfers, roundUpQuota, sendRawTx, shortAddress, shortHash, simulateCall, simulateMulticall, simulateWithPriceUpdates, soleNonUnderlyingCollateral, strategyName, swapFromTransfers, toAddress, toBN, toBigInt, toChainIds, toClaimableWithdrawal, toCreditAccountSlice, toNetTransfers, toPendingWithdrawal, toRequestableWithdrawal, toSignificant, toToken, toTokenAmount, toWithdrawalStatus, usdToNumber, watchBlocksAsync };
@@ -169,13 +169,21 @@ var MidasGatewayAdapterContract = class extends AbstractAdapterContract {
169
169
  return { redeemer };
170
170
  }
171
171
  /**
172
+ * Whether `calldata` is `receiveGreenlist()`, the call that grants the
173
+ * Midas greenlisted role to the credit account.
174
+ */
175
+ isReceiveGreenlist(calldata) {
176
+ return calldata === receiveGreenlistCalldata;
177
+ }
178
+ /**
172
179
  * `receiveGreenlist()` is prepended by `prependMidasReceiveGreenlist`
173
180
  * before the balance bracket when the multicall mints a permissioned
174
- * mToken: it only greenlists the credit account and is balance-neutral,
175
- * so it is legal outside a bracket and leaves balances untouched.
181
+ * mToken: it only grants the Midas greenlisted role to the credit
182
+ * account and is balance-neutral, so it is legal outside a bracket and
183
+ * leaves balances untouched.
176
184
  */
177
185
  replayOutOfBracketCall(_balances, calldata) {
178
- return calldata === receiveGreenlistCalldata;
186
+ return this.isReceiveGreenlist(calldata);
179
187
  }
180
188
  applyBalanceChanges(balances, decoded) {
181
189
  switch (decoded.functionName) {
@@ -35,7 +35,7 @@ function calcHealthFactor(props) {
35
35
  const scale = 10n ** BigInt(decimalsByToken.get(token) ?? 18);
36
36
  return amount * price / scale;
37
37
  };
38
- const assetMoney = snapshot.assets.reduce((acc, { token, balance }) => {
38
+ const assetValue = snapshot.assets.reduce((acc, { token, balance }) => {
39
39
  if (balance <= 10n) return acc;
40
40
  const lt = BigInt(lts.get(token) ?? 0);
41
41
  const tokenLtWeighted = (convertToUSD(token, balance, true) ?? 0n) * lt;
@@ -44,8 +44,8 @@ function calcHealthFactor(props) {
44
44
  const quotaWeighted = (convertToUSD(underlying, quotaBalance) ?? 0n) * PERCENTAGE_FACTOR;
45
45
  return acc + (quota ? BigIntMath.min(quotaWeighted, tokenLtWeighted) : tokenLtWeighted);
46
46
  }, 0n);
47
- const borrowedMoney = convertToUSD(underlying, snapshot.totalDebt) ?? 0n;
48
- const hf = borrowedMoney > 0n ? assetMoney / borrowedMoney : 0n;
47
+ const borrowedValue = convertToUSD(underlying, snapshot.totalDebt) ?? 0n;
48
+ const hf = borrowedValue > 0n ? assetValue / borrowedValue : 0n;
49
49
  return Number(hf);
50
50
  }
51
51
  //#endregion
@@ -11,10 +11,11 @@ import { classifyCloseOrRepay, isCloseOrRepay } from "./preview/detectCloseOrRep
11
11
  import { detectDelayedClaim, resolveDelayedClaimIntent } from "./preview/detectDelayedClaim.js";
12
12
  import { detectDelayedOperation } from "./preview/detectDelayedOperation.js";
13
13
  import { estimateClaimableAt } from "./preview/estimateClaimableAt.js";
14
+ import { midasGreenlistsAccount } from "./preview/midasGreenlistsAccount.js";
14
15
  import { previewAdjustStrategyPosition } from "./preview/previewAdjustStrategyPosition.js";
15
16
  import { previewExitOrRepayStrategyPosition } from "./preview/previewExitOrRepayStrategyPosition.js";
16
17
  import { makeReplayState, replayInnerOperations } from "./preview/replayInnerOperations.js";
17
18
  import { replayMulticall } from "./preview/replayMulticall.js";
18
19
  import { previewOperation } from "./preview/previewOperation.js";
19
20
  import "./preview/index.js";
20
- export { CreditAccountState, buildDelayedStrategyPositionOperationPreview, classifyCloseOrRepay, classifyInnerOperations, detectDelayedClaim, detectDelayedOperation, estimateClaimableAt, isCloseOrRepay, isPoolOperation, isRWAOperation, makeReplayState, parseFacadeOperationCalldata, parseOperationCalldata, parsePoolOperationCalldata, parseRWAFactoryOperationCalldata, previewAdjustStrategyPosition, previewExitOrRepayStrategyPosition, previewOperation, replayInnerOperations, replayMulticall, resolveDelayedClaimIntent };
21
+ export { CreditAccountState, buildDelayedStrategyPositionOperationPreview, classifyCloseOrRepay, classifyInnerOperations, detectDelayedClaim, detectDelayedOperation, estimateClaimableAt, isCloseOrRepay, isPoolOperation, isRWAOperation, makeReplayState, midasGreenlistsAccount, parseFacadeOperationCalldata, parseOperationCalldata, parsePoolOperationCalldata, parseRWAFactoryOperationCalldata, previewAdjustStrategyPosition, previewExitOrRepayStrategyPosition, previewOperation, replayInnerOperations, replayMulticall, resolveDelayedClaimIntent };
@@ -4,9 +4,10 @@ import { classifyCloseOrRepay, isCloseOrRepay } from "./detectCloseOrRepay.js";
4
4
  import { detectDelayedClaim, resolveDelayedClaimIntent } from "./detectDelayedClaim.js";
5
5
  import { detectDelayedOperation } from "./detectDelayedOperation.js";
6
6
  import { estimateClaimableAt } from "./estimateClaimableAt.js";
7
+ import { midasGreenlistsAccount } from "./midasGreenlistsAccount.js";
7
8
  import { previewAdjustStrategyPosition } from "./previewAdjustStrategyPosition.js";
8
9
  import { previewExitOrRepayStrategyPosition } from "./previewExitOrRepayStrategyPosition.js";
9
10
  import { makeReplayState, replayInnerOperations } from "./replayInnerOperations.js";
10
11
  import { replayMulticall } from "./replayMulticall.js";
11
12
  import { previewOperation } from "./previewOperation.js";
12
- export { CreditAccountState, buildDelayedStrategyPositionOperationPreview, classifyCloseOrRepay, detectDelayedClaim, detectDelayedOperation, estimateClaimableAt, isCloseOrRepay, makeReplayState, previewAdjustStrategyPosition, previewExitOrRepayStrategyPosition, previewOperation, replayInnerOperations, replayMulticall, resolveDelayedClaimIntent };
13
+ export { CreditAccountState, buildDelayedStrategyPositionOperationPreview, classifyCloseOrRepay, detectDelayedClaim, detectDelayedOperation, estimateClaimableAt, isCloseOrRepay, makeReplayState, midasGreenlistsAccount, previewAdjustStrategyPosition, previewExitOrRepayStrategyPosition, previewOperation, replayInnerOperations, replayMulticall, resolveDelayedClaimIntent };
@@ -0,0 +1,16 @@
1
+ import { MidasGatewayAdapterContract } from "../../market/adapters/contracts/MidasGatewayAdapterContract.js";
2
+ //#region src/onchain/preview/preview/midasGreenlistsAccount.ts
3
+ /**
4
+ * Whether the multicall grants the Midas greenlisted role to the credit
5
+ * account via `receiveGreenlist()`.
6
+ */
7
+ function midasGreenlistsAccount(sdk, multicall) {
8
+ for (const op of multicall) {
9
+ if (op.operation !== "Execute") continue;
10
+ const adapter = sdk.getContract(op.adapter);
11
+ if (adapter instanceof MidasGatewayAdapterContract && adapter.isReceiveGreenlist(op.calldata)) return true;
12
+ }
13
+ return false;
14
+ }
15
+ //#endregion
16
+ export { midasGreenlistsAccount };
@@ -2,6 +2,7 @@ import { AP_WETH_TOKEN } from "../../constants/address-provider.js";
2
2
  import { asEstimated } from "../../../model/previews.js";
3
3
  import { sdkOk } from "../../../model/result.js";
4
4
  import "../../../model/index.js";
5
+ import { midasGreenlistsAccount } from "./midasGreenlistsAccount.js";
5
6
  import { unwrapNativeCollateral } from "./unwrapNativeCollateral.js";
6
7
  //#region src/onchain/preview/preview/previewOpenStrategyPosition.ts
7
8
  function previewOpenStrategyPosition(sdk, input, operation, replay) {
@@ -16,7 +17,7 @@ function previewOpenStrategyPosition(sdk, input, operation, replay) {
16
17
  warning ??= priced.error;
17
18
  return priced.value;
18
19
  };
19
- const netValue = before.balances.sum(price) + after.collateralAdded.sum(price);
20
+ const netValue = before.balances.sum(price) + after.collateralAdded.sum(price) - after.collateralWithdrawn.sum(price);
20
21
  const unwrapped = unwrapNativeCollateral(after.collateralAdded.toAssets(), value, sdk.addressProvider.getAddress(AP_WETH_TOKEN, 0));
21
22
  if (!unwrapped.ok) return unwrapped;
22
23
  const collateral = unwrapped.data;
@@ -26,13 +27,15 @@ function previewOpenStrategyPosition(sdk, input, operation, replay) {
26
27
  ...asEstimated(sdk.positions.projection(snap, { availableLiquidityChange: -account.totalDebt })),
27
28
  targetCollateral: targetAsset ? oracle.toTokenAmount(targetAsset.token, targetAsset.balance) : void 0,
28
29
  collateralAdded: collateral.map((a) => oracle.toTokenAmount(a.token, a.balance)),
30
+ collateralWithdrawn: after.collateralWithdrawn.toAssets().map((a) => oracle.toTokenAmount(a.token, a.balance)),
29
31
  warning
30
32
  };
31
33
  return sdkOk({
32
34
  ...projection,
33
35
  operation: "OpenCreditAccount",
34
36
  ...operation.operation === "MultiCall" || operation.operation === "BotMulticall" || operation.operation === "RWAMulticall" ? { creditAccount: operation.creditAccount } : {},
35
- ..."args" in operation ? { rwaArgs: operation.args } : {}
37
+ ..."args" in operation ? { rwaArgs: operation.args } : {},
38
+ midasGreenlistsAccount: midasGreenlistsAccount(sdk, operation.multicall)
36
39
  });
37
40
  }
38
41
  /**
@@ -26,6 +26,7 @@ async function checkCreditOperation(args) {
26
26
  const market = suite.market;
27
27
  const underlying = toToken(sdk, market.pool.underlying);
28
28
  const isOpening = preview.operation === "OpenCreditAccount";
29
+ const isEmptyOpening = preview.operation === "OpenCreditAccount" && preview.totalDebt.value === 0n && preview.collateralAdded.length === 0 && preview.quotas.length === 0;
29
30
  const protocol = [
30
31
  ...checkMarket(suite),
31
32
  ...checkDebtLimits({
@@ -33,7 +34,7 @@ async function checkCreditOperation(args) {
33
34
  minDebt: suite.creditFacade.minDebt,
34
35
  maxDebt: suite.creditFacade.maxDebt,
35
36
  underlying,
36
- allowZero: !isOpening,
37
+ allowZero: !isOpening || isEmptyOpening,
37
38
  maxBorrowAmount: suite.maxBorrowAmount()
38
39
  }),
39
40
  ...checkIncreaseDebt(suite, preview, underlying),
@@ -0,0 +1,43 @@
1
+ import { accountNotMidasGreenlisted } from "../../../model/errors/operation-errors.js";
2
+ import { unexpectedFailure } from "../../../model/errors/prepare-errors.js";
3
+ import "../../../model/index.js";
4
+ import { toToken } from "../helpers/token.js";
5
+ import "../helpers/index.js";
6
+ //#region src/onchain/validation/bundles/checkMidasAccountGreenlist.ts
7
+ /**
8
+ * Whether the credit account already holds the Midas greenlisted role
9
+ * this permissioned mToken requires of its holder.
10
+ */
11
+ async function checkMidasAccountGreenlist(input) {
12
+ const { sdk, preview, nft, tokens } = input;
13
+ if (nft.protocol !== "midas") return [];
14
+ if (tokens.length === 0) return [];
15
+ const account = preview.creditAccount;
16
+ if (!account) return tokens.map((token) => accountNotMidasGreenlisted({
17
+ token: toToken(sdk, token),
18
+ creditManager: preview.creditManager
19
+ }));
20
+ return (await Promise.all(tokens.map((token) => checkAccountRole({
21
+ sdk,
22
+ nft,
23
+ account,
24
+ token,
25
+ preview
26
+ })))).flat();
27
+ }
28
+ async function checkAccountRole(input) {
29
+ const { sdk, nft, account, token, preview } = input;
30
+ try {
31
+ const requirements = await nft.getOpenAccountRequirements(account, { tokenOutAddress: token });
32
+ if (nft.isRegistered(requirements)) return [];
33
+ return [accountNotMidasGreenlisted({
34
+ token: toToken(sdk, token),
35
+ creditManager: preview.creditManager,
36
+ creditAccount: account
37
+ })];
38
+ } catch (cause) {
39
+ return [unexpectedFailure(cause, "read the Midas account greenlist")];
40
+ }
41
+ }
42
+ //#endregion
43
+ export { checkMidasAccountGreenlist };
@@ -1,23 +1,33 @@
1
1
  import { AddressSet } from "../../utils/AddressSet.js";
2
+ import { checkMidasAccountGreenlist } from "./checkMidasAccountGreenlist.js";
2
3
  import { checkRWAOpenRequirements } from "./checkRWAOpenRequirements.js";
3
4
  //#region src/onchain/validation/bundles/checkRWAOpening.ts
4
5
  /**
5
6
  * Per KYC-gated token among `collateralAdded ∪ quotas`, whether the
6
- * borrower still has to register or sign before this opening can land.
7
+ * borrower still has to register or sign before this opening can land,
8
+ * and whether a Midas credit account may hold the mToken.
7
9
  */
8
10
  async function checkRWAOpening(input) {
9
11
  const { sdk, preview, sender } = input;
10
12
  const nft = await sdk.marketRegister.findCreditManager(preview.creditManager).degenNFT();
11
13
  if (!nft) return [];
12
- const gated = new AddressSet(await nft.getTokens());
13
- const candidates = new AddressSet([...preview.collateralAdded.map((a) => a.token.address), ...preview.quotas.map((q) => q.token.address)]);
14
- return (await Promise.all([...candidates].filter((token) => gated.has(token)).map((token) => checkRWAOpenRequirements({
14
+ const nftTokens = new AddressSet(await nft.getTokens());
15
+ let candidates = new AddressSet([...preview.collateralAdded.map((a) => a.token.address), ...preview.quotas.map((q) => q.token.address)]).asArray();
16
+ candidates = candidates.filter((token) => nftTokens.has(token));
17
+ let tokensToCheck = candidates;
18
+ if (tokensToCheck.length === 0 && !preview.creditAccount && nft.protocol === "midas") tokensToCheck = nftTokens.asArray();
19
+ return (await Promise.all([...tokensToCheck.map((token) => checkRWAOpenRequirements({
15
20
  sdk,
16
21
  wallet: sender,
17
22
  creditManager: preview.creditManager,
18
23
  token,
19
24
  providedArgs: preview.rwaArgs
20
- })))).flat();
25
+ })), checkMidasAccountGreenlist({
26
+ sdk,
27
+ preview,
28
+ nft,
29
+ tokens: candidates
30
+ })])).flat();
21
31
  }
22
32
  //#endregion
23
33
  export { checkRWAOpening };
@@ -7,6 +7,7 @@ import { checkIncreaseDebt } from "./checkIncreaseDebt.js";
7
7
  import { checkIncreaseQuota } from "./checkIncreaseQuota.js";
8
8
  import { checkMarket } from "./checkMarket.js";
9
9
  import { checkObtained } from "./checkObtained.js";
10
+ import { checkMidasAccountGreenlist } from "./checkMidasAccountGreenlist.js";
10
11
  import { checkRWAOpenRequirements } from "./checkRWAOpenRequirements.js";
11
12
  import { checkRWAOpening } from "./checkRWAOpening.js";
12
13
  import { checkCreditOperation } from "./checkCreditOperation.js";
@@ -15,4 +16,4 @@ import { checkLiquidationFunding } from "./checkLiquidationFunding.js";
15
16
  import { checkWallet } from "./checkWallet.js";
16
17
  import { checkPoolFunding } from "./checkPoolFunding.js";
17
18
  import { checkPoolOperation } from "./checkPoolOperation.js";
18
- export { checkAccountQuotas, checkCollateralFunding, checkCreditOperation, checkHealthFactors, checkIncreaseDebt, checkIncreaseQuota, checkLiquidationEligibility, checkLiquidationFunding, checkMarket, checkObtained, checkPoolFunding, checkPoolOperation, checkRWAOpenRequirements, checkRWAOpening, checkWallet, checkWalletAllowance, checkWalletBalance };
19
+ export { checkAccountQuotas, checkCollateralFunding, checkCreditOperation, checkHealthFactors, checkIncreaseDebt, checkIncreaseQuota, checkLiquidationEligibility, checkLiquidationFunding, checkMarket, checkMidasAccountGreenlist, checkObtained, checkPoolFunding, checkPoolOperation, checkRWAOpenRequirements, checkRWAOpening, checkWallet, checkWalletAllowance, checkWalletBalance };
@@ -28,6 +28,7 @@ import { checkIncreaseDebt } from "./bundles/checkIncreaseDebt.js";
28
28
  import { checkIncreaseQuota } from "./bundles/checkIncreaseQuota.js";
29
29
  import { checkMarket } from "./bundles/checkMarket.js";
30
30
  import { checkObtained } from "./bundles/checkObtained.js";
31
+ import { checkMidasAccountGreenlist } from "./bundles/checkMidasAccountGreenlist.js";
31
32
  import { checkRWAOpenRequirements } from "./bundles/checkRWAOpenRequirements.js";
32
33
  import { checkRWAOpening } from "./bundles/checkRWAOpening.js";
33
34
  import { checkCreditOperation } from "./bundles/checkCreditOperation.js";
@@ -41,4 +42,4 @@ import { checkLiquidation } from "./checkLiquidation.js";
41
42
  import { checkOperation } from "./checkOperation.js";
42
43
  import { checkSimulation } from "./checkSimulation.js";
43
44
  import { raise } from "./raise.js";
44
- export { MIN_HEALTH_FACTOR_FACADE, MIN_HEALTH_FACTOR_FORM, MIN_HF_LIMITED, MIN_SAFE_HEALTH_FACTOR_FORM, amountOf, checkAccountQuotas, checkBorrowLimit, checkCollateralFunding, checkCollateralised, checkCreditAccountFrozen, checkCreditManagerPaused, checkCreditOperation, checkDebtLimits, checkEmergencyLiquidator, checkForbiddenToken, checkHealthFactors, checkIncreaseDebt, checkIncreaseQuota, checkLeverage, checkLiquidation, checkLiquidationEligibility, checkLiquidationFunding, checkLiquidatorEligible, checkMarket, checkMarketExpired, checkObtained, checkOperation, checkPoolFunding, checkPoolLiquidity, checkPoolOperation, checkPoolPaused, checkPoolSunset, checkQuotaCount, checkQuotaLimit, checkRWAOpenRequirements, checkRWAOpening, checkReservePriceLimited, checkSimulation, checkWallet, checkWalletAllowance, checkWalletBalance, raise, toToken, toTokenAmount };
45
+ export { MIN_HEALTH_FACTOR_FACADE, MIN_HEALTH_FACTOR_FORM, MIN_HF_LIMITED, MIN_SAFE_HEALTH_FACTOR_FORM, amountOf, checkAccountQuotas, checkBorrowLimit, checkCollateralFunding, checkCollateralised, checkCreditAccountFrozen, checkCreditManagerPaused, checkCreditOperation, checkDebtLimits, checkEmergencyLiquidator, checkForbiddenToken, checkHealthFactors, checkIncreaseDebt, checkIncreaseQuota, checkLeverage, checkLiquidation, checkLiquidationEligibility, checkLiquidationFunding, checkLiquidatorEligible, checkMarket, checkMarketExpired, checkMidasAccountGreenlist, checkObtained, checkOperation, checkPoolFunding, checkPoolLiquidity, checkPoolOperation, checkPoolPaused, checkPoolSunset, checkQuotaCount, checkQuotaLimit, checkRWAOpenRequirements, checkRWAOpening, checkReservePriceLimited, checkSimulation, checkWallet, checkWalletAllowance, checkWalletBalance, raise, toToken, toTokenAmount };
@@ -16,6 +16,8 @@ var ExecuteApi = class {
16
16
  switch (request.kind) {
17
17
  case "pool": return poolTx(sdk, request);
18
18
  case "open": return openTx(sdk, request);
19
+ case "openEmpty": return openEmptyTx(sdk, request);
20
+ case "borrow": return borrowTx(sdk, request);
19
21
  case "account": return accountTx(sdk, request);
20
22
  }
21
23
  }
@@ -62,17 +64,75 @@ async function openTx(sdk, request) {
62
64
  reopenCreditAccount: state.creditAccount,
63
65
  permits: {},
64
66
  referralCode: 0n,
65
- rwaOptions: await openRwaOptions(sdk, request)
67
+ rwaOptions: await openRwaOptions(sdk, request, request.targetToken)
68
+ });
69
+ }
70
+ /**
71
+ * The opening with nothing in it: no debt to draw, no collateral to take, no
72
+ * path to run and no quota to buy, so `openCA` is left with the price updates
73
+ * the market demands and the facade's own `openCreditAccount`.
74
+ *
75
+ * Nothing is read off the preparation because there is nothing on it. The
76
+ * account holds no token, so an RWA market has none to gate on either.
77
+ **/
78
+ function openEmptyTx(sdk, request) {
79
+ return sdk.accounts.openCA({
80
+ creditManager: request.creditManager,
81
+ to: request.wallet,
82
+ collateral: [],
83
+ ethAmount: 0n,
84
+ debt: 0n,
85
+ calls: [],
86
+ averageQuota: [],
87
+ minQuota: [],
88
+ permits: {},
89
+ referralCode: 0n
90
+ });
91
+ }
92
+ /**
93
+ * A loan is an opening whose debt leaves again, so it is the same `openCA`
94
+ * with `withdrawToken` set: the facade draws the debt, takes the collateral,
95
+ * runs whatever path buys the payout, and sweeps that payout to the wallet.
96
+ *
97
+ * Both quota branches are the one the state carries. An opening has two
98
+ * because the balances it lands on are a router quote; here the account is
99
+ * left holding the collateral the caller named, and a named amount has no
100
+ * floor to differ from.
101
+ **/
102
+ async function borrowTx(sdk, request) {
103
+ const { creditManager, wallet, ethAmount, sim } = request;
104
+ const { state } = sim.data;
105
+ const collateral = {
106
+ token: state.collateral.token.address,
107
+ balance: state.collateral.value
108
+ };
109
+ return sdk.accounts.openCA({
110
+ creditManager,
111
+ to: wallet,
112
+ collateral: [collateral],
113
+ ethAmount,
114
+ debt: state.totalDebt.value,
115
+ calls: state.calls,
116
+ withdrawToken: state.borrowed.token.address,
117
+ averageQuota: state.quotaIncrease,
118
+ minQuota: state.quotaIncrease,
119
+ reopenCreditAccount: state.creditAccount,
120
+ permits: {},
121
+ referralCode: 0n,
122
+ rwaOptions: await openRwaOptions(sdk, request, collateral.token)
66
123
  });
67
124
  }
68
125
  /**
69
126
  * The documented `openCA` contract: ask the market for its open requirements
70
127
  * and hand them back as operation args, with the caller's cached signatures
71
- * attached. `undefined` on non-RWA markets and when no target token is named.
128
+ * attached. `undefined` on non-RWA markets and when no token is named.
129
+ *
130
+ * `token` is the one the account ends up holding, which is what an RWA market
131
+ * gates on: the opening's target, and the borrow's collateral.
72
132
  **/
73
- async function openRwaOptions(sdk, request) {
74
- if (!request.targetToken) return;
75
- const requirements = await sdk.accounts.getOpenAccountRequirements(request.wallet, request.creditManager, { tokenOutAddress: request.targetToken });
133
+ async function openRwaOptions(sdk, request, token) {
134
+ if (!token) return;
135
+ const requirements = await sdk.accounts.getOpenAccountRequirements(request.wallet, request.creditManager, { tokenOutAddress: token });
76
136
  if (requirements?.protocol !== "securitize") return;
77
137
  return {
78
138
  protocol: "securitize",
@@ -195,26 +195,33 @@ var PrepareApi = class extends MultichainConstruct {
195
195
  }
196
196
  }
197
197
  /**
198
+ * {@inheritDoc IOpportunitiesPrepare.openEmptyCreditAccount}
199
+ **/
200
+ async openEmptyCreditAccount(strategy) {
201
+ try {
202
+ const sdk = await this.#chain(strategy.chainId);
203
+ const at = stateBlock(sdk);
204
+ const result = await service(sdk).openEmptyAccountIntent({
205
+ sdk,
206
+ creditManager: strategy.creditManager
207
+ });
208
+ return result.ok ? sdkOk(at) : methodError(result);
209
+ } catch (e) {
210
+ return sdkErr(unexpectedFailure(e));
211
+ }
212
+ }
213
+ /**
198
214
  * {@inheritDoc IOpportunitiesPrepare.openNewStrategy}
199
215
  **/
200
216
  async openNewStrategy(strategy, params) {
201
217
  try {
202
218
  const sdk = await this.#chain(strategy.chainId);
203
219
  const at = stateBlock(sdk);
204
- if (params.empty) return opened(await service(sdk).openStrategyIntent({
205
- sdk,
206
- creditManager: strategy.creditManager,
207
- empty: true
208
- }), at);
209
220
  const targetToken = params.targetToken ?? sdk.marketRegister.findCreditManager(strategy.creditManager).strategyTargetCollateral;
210
221
  if (!targetToken) return sdkErr(noStrategyTargetCollateral(strategy.creditManager));
211
- let creditAccount;
212
- if (params.creditAccount) {
213
- const reused = await slice(sdk, params.creditAccount);
214
- if (!reused || !isAddressEqual(reused.creditManager, strategy.creditManager)) return sdkErr(creditAccountNotFound(params.creditAccount));
215
- if (reused.totalDebt > 0n || reused.tokens.some((t) => t.quota > 0n)) return sdkErr(creditAccountNotEmpty(params.creditAccount));
216
- creditAccount = reused;
217
- }
222
+ const reused = await reusable(sdk, strategy, params.creditAccount);
223
+ if (reused && "error" in reused) return reused;
224
+ const creditAccount = reused?.account;
218
225
  return opened(await service(sdk).openStrategyIntent({
219
226
  sdk,
220
227
  creditManager: strategy.creditManager,
@@ -231,6 +238,30 @@ var PrepareApi = class extends MultichainConstruct {
231
238
  }
232
239
  }
233
240
  /**
241
+ * {@inheritDoc IOpportunitiesPrepare.borrow}
242
+ **/
243
+ async borrow(strategy, params) {
244
+ try {
245
+ const sdk = await this.#chain(strategy.chainId);
246
+ const at = stateBlock(sdk);
247
+ const reused = await reusable(sdk, strategy, params.creditAccount);
248
+ if (reused && "error" in reused) return reused;
249
+ return borrowed(await service(sdk).borrowIntent({
250
+ sdk,
251
+ creditManager: strategy.creditManager,
252
+ collateralToken: params.collateralToken,
253
+ collateralAmount: params.collateralAmount,
254
+ borrowToken: params.borrowToken,
255
+ borrowAmount: params.borrowAmount,
256
+ slippage: params.slippage,
257
+ quotaReserve: params.quotaReserve,
258
+ creditAccount: reused?.account
259
+ }), at);
260
+ } catch (e) {
261
+ return sdkErr(unexpectedFailure(e));
262
+ }
263
+ }
264
+ /**
234
265
  * {@inheritDoc IOpportunitiesPrepare.depositStrategy}
235
266
  **/
236
267
  async depositStrategy(position, params) {
@@ -353,6 +384,21 @@ var PrepareApi = class extends MultichainConstruct {
353
384
  });
354
385
  }
355
386
  /**
387
+ * {@inheritDoc IOpportunitiesPrepare.maxBorrow}
388
+ **/
389
+ maxBorrow(strategy, params) {
390
+ const sdk = this.sdk.chain(strategy.chainId);
391
+ return service(sdk).maxBorrow({
392
+ sdk,
393
+ creditManager: strategy.creditManager,
394
+ collateralToken: params.collateralToken,
395
+ collateralAmount: params.collateralAmount,
396
+ borrowToken: params.borrowToken,
397
+ targetHF: params.targetHF,
398
+ quotaReserve: params.quotaReserve
399
+ });
400
+ }
401
+ /**
356
402
  * The account a bare `max*` read weighs. These reads answer a number, not
357
403
  * an envelope, so an account the markets do not hold is thrown rather than
358
404
  * described, see {@link IOpportunitiesPrepare.maxWithdraw}.
@@ -438,6 +484,25 @@ async function slice(sdk, creditAccount) {
438
484
  return data && toCreditAccountSlice(data);
439
485
  }
440
486
  /**
487
+ * The pre-opened account a request asks to be run on, held to what "pre-opened"
488
+ * means: this manager's, owing nothing and holding no quota.
489
+ *
490
+ * Shared by the two flows that put something on a fresh account — an opening
491
+ * and a borrow — so both hold a reused one to the same terms. Whatever
492
+ * balances sit on it are left to the flow: an opening routes them, a borrow
493
+ * leaves them where they are.
494
+ *
495
+ * @returns Nothing when the request named no account, the refusal to answer
496
+ * with when it named one that does not qualify, and the slice otherwise
497
+ **/
498
+ async function reusable(sdk, strategy, creditAccount) {
499
+ if (!creditAccount) return;
500
+ const account = await slice(sdk, creditAccount);
501
+ if (!account || !isAddressEqual(account.creditManager, strategy.creditManager)) return sdkErr(creditAccountNotFound(creditAccount));
502
+ if (account.totalDebt > 0n || account.tokens.some((t) => t.quota > 0n)) return sdkErr(creditAccountNotEmpty(creditAccount));
503
+ return { account };
504
+ }
505
+ /**
441
506
  * The operation a claim resumes, or `undefined` when there is none to resume:
442
507
  * a withdrawal requested without an intent, or one read through a compressor
443
508
  * too old to report it. Every intent the engine records can be finished,
@@ -537,6 +602,15 @@ function opened(result, at) {
537
602
  }
538
603
  /**
539
604
  * {@inheritDoc planned}
605
+ **/
606
+ function borrowed(result, at) {
607
+ return result.ok ? sdkOk({
608
+ state: result.state,
609
+ ...at
610
+ }) : methodError(result);
611
+ }
612
+ /**
613
+ * {@inheritDoc planned}
540
614
  *
541
615
  * Both routes are payload, error and all: `errors` says why a missing one is
542
616
  * missing, and it stays on the error when neither route answered, since that is
@@ -11,10 +11,10 @@ import { detectChain } from "./detectChain.js";
11
11
  import { isOutOfSyncError } from "./isOutOfSyncError.js";
12
12
  import { isRateLimitError } from "./isRateLimitError.js";
13
13
  import { isTransientError } from "./isTransientError.js";
14
- import { GreenlistMidasGatewayProps, RWAKycFailure, RegisterMidasInvestorProps, RegisterRWAInvestorProps, RegisterRWAInvestorResult, RegisterSecuritizeInvestorProps, greenlistMidasGateway, registerMidasInvestor, registerRWAInvestor, registerSecuritizeInvestor, writeAndWait } from "./kycUtils.js";
14
+ import { GreenlistMidasGatewayProps, RWAKycFailure, RegisterMidasInvestorProps, RegisterRWAInvestorProps, RegisterRWAInvestorResult, RegisterSecuritizeInvestorProps, greenlistMidasGateway, registerMidasInvestor, registerRWAInvestor, registerSecuritizeInvestor } from "./kycUtils.js";
15
15
  import { LogSplitterTransportOptions, isRangeError, logSplitterTransport } from "./logSplitterTransport.js";
16
16
  import { setLTZero, setLTs } from "./ltUtils.js";
17
- import { RestoreMidasIssuanceVaultPause, UnpauseMidasIssuanceVaultProps, unpauseMidasIssuanceVault } from "./midasUtils.js";
17
+ import { RestoreMidasIssuanceVaultPause, UnpauseMidasIssuanceVaultProps, collectMidasGateways, collectMidasMTokens, unpauseMidasIssuanceVault } from "./midasUtils.js";
18
18
  import { migrateFaucet } from "./migrateFaucet.js";
19
19
  import { IMinter } from "./mint/types.js";
20
20
  import { createMinter } from "./mint/factory.js";
@@ -26,4 +26,4 @@ import { EnableDSTokenBackDatingProps, RestoreDSTokenBackDating, claimDSToken, c
26
26
  import { httpTransportOptionsSchema } from "./transports.js";
27
27
  import { ONCHAIN_EXECUTION_ID_ADDRESS, VerifyTestnetParams, verifyTestnet } from "./verifyTestnet.js";
28
28
  import { MakePendingWithdrawalsClaimableOptions, makePendingWithdrawalsClaimable } from "./withdrawalUtils.js";
29
- export { AccountOpener, AccountOpenerOptions, AnvilActions, AnvilClient, AnvilClientConfig, AnvilDealParameters, AnvilNodeInfo, AnvilRPCSchema, CheckMulticallFn, Create2Deployer, Create2Parameters, DEFAULT_CREATE2_SALT, DetectedCall, EnableDSTokenBackDatingProps, EnsureExistsUsingPublicCreate2ReturnType, EthCallMethod, EthCallRequest, EthCallSpy, GetCreate2AddressParameters, GreenlistMidasGatewayProps, IMinter, type LogSplitterTransportOptions, MakePendingWithdrawalsClaimableOptions, NoAvailableTransportsError, ONCHAIN_EXECUTION_ID_ADDRESS, OpenAccountHumanizedPreview, OpenAccountResult, OpenAccountsResult, OpenTxRevertedError, PUBLIC_CREATE2_FACTORY, PoolDepositResult, ProviderConfig, ProviderStatus, RWAKycFailure, RegisterMidasInvestorProps, RegisterRWAInvestorProps, RegisterRWAInvestorResult, RegisterSecuritizeInvestorProps, ReplaceStorageParams, ResilientTransportOptions, RestoreDSTokenBackDating, RestoreMidasIssuanceVaultPause, RevolverTransport, RevolverTransportConfig, RevolverTransportValue, RpcErrorResult, RpcProvider, RpcResponse, RpcSuccessResult, SUPPORTED_RPC_PROVIDERS, SelectionStrategy, TargetAccount, UnpauseMidasIssuanceVaultProps, VerifyTestnetParams, anvilNodeInfo, calcLiquidatableLTs, claimDSToken, claimDSTokens, claimFromFaucet, createAnvilClient, createMinter, deployUsingPublicCreate2, detectChain, enableDSTokenBackDating, evmMineDetailed, extendAnvilClient, getAlchemyUrl, getAnkrUrl, getDrpcUrl, getErpcKey, getPublicCreate2Address, getRpcProviderUrl, getThirdWebUrl, greenlistMidasGateway, httpTransportOptionsSchema, iDegenNftv2Abi, iFaucetAbi, iOnchainExecutionIdAbi, iOwnableAbi, iaclTraitAbi, isAnvil, isDeployedUsingPublicCreate2, isOutOfSyncError, isRangeError, isRateLimitError, isTransientError, logSplitterTransport, makePendingWithdrawalsClaimable, migrateFaucet, providerConfigSchema, registerMidasInvestor, registerRWAInvestor, registerSecuritizeInvestor, replaceStorage, resilientTransport, resilientTransportOptionsSchema, revolverTransportConfigBaseSchema, revolverTransportConfigSchema, rpcProvidersSchema, setLTZero, setLTs, unpauseMidasIssuanceVault, verifyTestnet, writeAndWait };
29
+ export { AccountOpener, AccountOpenerOptions, AnvilActions, AnvilClient, AnvilClientConfig, AnvilDealParameters, AnvilNodeInfo, AnvilRPCSchema, CheckMulticallFn, Create2Deployer, Create2Parameters, DEFAULT_CREATE2_SALT, DetectedCall, EnableDSTokenBackDatingProps, EnsureExistsUsingPublicCreate2ReturnType, EthCallMethod, EthCallRequest, EthCallSpy, GetCreate2AddressParameters, GreenlistMidasGatewayProps, IMinter, type LogSplitterTransportOptions, MakePendingWithdrawalsClaimableOptions, NoAvailableTransportsError, ONCHAIN_EXECUTION_ID_ADDRESS, OpenAccountHumanizedPreview, OpenAccountResult, OpenAccountsResult, OpenTxRevertedError, PUBLIC_CREATE2_FACTORY, PoolDepositResult, ProviderConfig, ProviderStatus, RWAKycFailure, RegisterMidasInvestorProps, RegisterRWAInvestorProps, RegisterRWAInvestorResult, RegisterSecuritizeInvestorProps, ReplaceStorageParams, ResilientTransportOptions, RestoreDSTokenBackDating, RestoreMidasIssuanceVaultPause, RevolverTransport, RevolverTransportConfig, RevolverTransportValue, RpcErrorResult, RpcProvider, RpcResponse, RpcSuccessResult, SUPPORTED_RPC_PROVIDERS, SelectionStrategy, TargetAccount, UnpauseMidasIssuanceVaultProps, VerifyTestnetParams, anvilNodeInfo, calcLiquidatableLTs, claimDSToken, claimDSTokens, claimFromFaucet, collectMidasGateways, collectMidasMTokens, createAnvilClient, createMinter, deployUsingPublicCreate2, detectChain, enableDSTokenBackDating, evmMineDetailed, extendAnvilClient, getAlchemyUrl, getAnkrUrl, getDrpcUrl, getErpcKey, getPublicCreate2Address, getRpcProviderUrl, getThirdWebUrl, greenlistMidasGateway, httpTransportOptionsSchema, iDegenNftv2Abi, iFaucetAbi, iOnchainExecutionIdAbi, iOwnableAbi, iaclTraitAbi, isAnvil, isDeployedUsingPublicCreate2, isOutOfSyncError, isRangeError, isRateLimitError, isTransientError, logSplitterTransport, makePendingWithdrawalsClaimable, migrateFaucet, providerConfigSchema, registerMidasInvestor, registerRWAInvestor, registerSecuritizeInvestor, replaceStorage, resilientTransport, resilientTransportOptionsSchema, revolverTransportConfigBaseSchema, revolverTransportConfigSchema, rpcProvidersSchema, setLTZero, setLTs, unpauseMidasIssuanceVault, verifyTestnet };
@@ -4,10 +4,6 @@ import "../onchain/index.js";
4
4
  import { AnvilClient } from "./createAnvilClient.js";
5
5
  import { Address, Hex } from "viem";
6
6
  //#region src/dev/kycUtils.d.ts
7
- /**
8
- * Writes to a contract, mines a block and waits for the receipt
9
- */
10
- declare function writeAndWait(anvil: AnvilClient, params: Parameters<AnvilClient["writeContract"]>[0]): Promise<Hex>;
11
7
  interface RegisterSecuritizeInvestorProps {
12
8
  anvil: AnvilClient;
13
9
  /**
@@ -138,4 +134,4 @@ interface RegisterRWAInvestorResult {
138
134
  */
139
135
  declare function registerRWAInvestor(props: RegisterRWAInvestorProps): Promise<RegisterRWAInvestorResult>;
140
136
  //#endregion
141
- export { GreenlistMidasGatewayProps, RWAKycFailure, RegisterMidasInvestorProps, RegisterRWAInvestorProps, RegisterRWAInvestorResult, RegisterSecuritizeInvestorProps, greenlistMidasGateway, registerMidasInvestor, registerRWAInvestor, registerSecuritizeInvestor, writeAndWait };
137
+ export { GreenlistMidasGatewayProps, RWAKycFailure, RegisterMidasInvestorProps, RegisterRWAInvestorProps, RegisterRWAInvestorResult, RegisterSecuritizeInvestorProps, greenlistMidasGateway, registerMidasInvestor, registerRWAInvestor, registerSecuritizeInvestor };