@gearbox-protocol/sdk 14.12.0-next.1 → 14.12.0-next.11
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/iZapper.js +62 -24
- package/dist/cjs/dev/AccountOpener.js +7 -13
- package/dist/cjs/history/classifyMulticallOperations.js +2 -0
- package/dist/cjs/history/mapOperations.js +7 -0
- package/dist/cjs/plugins/adapters/abi/iConvexV1BoosterAdapter.js +143 -0
- package/dist/cjs/plugins/adapters/abi/index.js +2 -0
- package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +36 -0
- package/dist/cjs/plugins/adapters/contracts/AbstractCurveAdapter.js +66 -0
- package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +19 -0
- package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +20 -0
- package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +18 -0
- package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +28 -2
- package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -7
- package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -7
- package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -7
- package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -7
- package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -7
- package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +14 -0
- package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +14 -0
- package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +21 -0
- package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +10 -0
- package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +11 -0
- package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +11 -0
- package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +10 -0
- package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +12 -0
- package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +58 -0
- package/dist/cjs/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +11 -0
- package/dist/cjs/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +22 -1
- package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +17 -0
- package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +10 -0
- package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +10 -0
- package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +20 -0
- package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +14 -0
- package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +10 -0
- package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +15 -0
- package/dist/cjs/preview/index.js +2 -4
- package/dist/cjs/preview/parse/classifyInnerOperations.js +14 -1
- package/dist/cjs/preview/parse/errors.js +5 -2
- package/dist/cjs/preview/parse/index.js +2 -2
- package/dist/cjs/preview/parse/parseFacadeOperationCalldata.js +5 -12
- package/dist/cjs/preview/parse/parseOperationCalldata.js +40 -1
- package/dist/cjs/preview/parse/parsePoolOperationCalldata.js +14 -2
- package/dist/cjs/preview/parse/parseRWAFactoryOperationCalldata.js +104 -0
- package/dist/cjs/preview/parse/types-rwa.js +16 -0
- package/dist/cjs/preview/parse/types.js +9 -2
- package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +13 -13
- package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +32 -14
- package/dist/cjs/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +66 -0
- package/dist/cjs/preview/prerequisites/buildPrerequisites.js +124 -14
- package/dist/cjs/preview/prerequisites/index.js +2 -0
- package/dist/cjs/preview/preview/applyInnerOperations.js +130 -0
- package/dist/cjs/preview/preview/errors.js +52 -0
- package/dist/cjs/preview/preview/index.js +30 -0
- package/dist/cjs/preview/preview/previewAdjustCreditAccount.js +90 -0
- package/dist/cjs/preview/preview/previewOpenCreditAccount.js +67 -0
- package/dist/cjs/preview/preview/previewOperation.js +45 -0
- package/dist/cjs/preview/preview/previewPoolOperation.js +75 -0
- package/dist/cjs/preview/preview/types.js +16 -0
- package/dist/cjs/{sdk/market/zapper/Zapper.js → preview/preview/unwrapNativeCollateral.js} +20 -22
- package/dist/cjs/preview/simulate/errors.js +0 -7
- package/dist/cjs/preview/simulate/index.js +5 -5
- package/dist/cjs/preview/simulate/simulateOperation.js +4 -0
- package/dist/cjs/preview/simulate/simulatePoolOperation.js +60 -31
- package/dist/cjs/preview/simulate/{constants.js → simulateRWAOperation.js} +8 -6
- package/dist/cjs/sdk/MultichainSDK.js +1 -0
- package/dist/cjs/sdk/OnchainSDK.js +7 -3
- package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +53 -23
- package/dist/cjs/sdk/base/BaseContract.js +4 -2
- package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -0
- package/dist/cjs/sdk/market/MarketRegister.js +10 -5
- package/dist/cjs/sdk/market/ZapperRegister.js +54 -0
- package/dist/cjs/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +30 -0
- package/dist/cjs/sdk/market/rwa/types.js +5 -2
- package/dist/cjs/sdk/market/zapper/IERC20ZapperContract.js +3 -38
- package/dist/cjs/sdk/market/zapper/IETHZapperContract.js +3 -38
- package/dist/cjs/sdk/market/zapper/ZapperContract.js +106 -0
- package/dist/cjs/sdk/market/zapper/createZapper.js +12 -4
- package/dist/cjs/{preview/simulate/holders.js → sdk/market/zapper/errors.js} +13 -21
- package/dist/cjs/sdk/market/zapper/index.js +6 -2
- package/dist/cjs/sdk/market/zapper/types.js +16 -0
- package/dist/cjs/sdk/options.js +41 -17
- package/dist/cjs/sdk/router/AbstractRouterContract.js +21 -27
- package/dist/cjs/sdk/router/RouterV310Contract.js +11 -12
- package/dist/cjs/sdk/router/helpers.js +0 -5
- package/dist/cjs/sdk/utils/AddressMap.js +6 -0
- package/dist/cjs/sdk/utils/AssetsMap.js +97 -0
- package/dist/cjs/sdk/utils/index.js +2 -0
- package/dist/esm/abi/iZapper.js +62 -24
- package/dist/esm/dev/AccountOpener.js +8 -13
- package/dist/esm/history/classifyMulticallOperations.js +2 -0
- package/dist/esm/history/mapOperations.js +7 -0
- package/dist/esm/plugins/adapters/abi/iConvexV1BoosterAdapter.js +119 -0
- package/dist/esm/plugins/adapters/abi/index.js +1 -0
- package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +36 -0
- package/dist/esm/plugins/adapters/contracts/AbstractCurveAdapter.js +42 -0
- package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +22 -1
- package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +23 -1
- package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +22 -1
- package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +30 -2
- package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -7
- package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -7
- package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -7
- package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
- package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -7
- package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -7
- package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +17 -1
- package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +19 -1
- package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +17 -1
- package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +24 -1
- package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +13 -1
- package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +14 -1
- package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +14 -1
- package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +13 -1
- package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +15 -1
- package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +61 -1
- package/dist/esm/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +14 -1
- package/dist/esm/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +25 -2
- package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +20 -1
- package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +13 -1
- package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +10 -0
- package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +20 -0
- package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +17 -1
- package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +13 -1
- package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +18 -1
- package/dist/esm/preview/index.js +1 -2
- package/dist/esm/preview/parse/classifyInnerOperations.js +14 -1
- package/dist/esm/preview/parse/errors.js +3 -1
- package/dist/esm/preview/parse/index.js +1 -1
- package/dist/esm/preview/parse/parseFacadeOperationCalldata.js +5 -12
- package/dist/esm/preview/parse/parseOperationCalldata.js +43 -2
- package/dist/esm/preview/parse/parsePoolOperationCalldata.js +14 -2
- package/dist/esm/preview/parse/parseRWAFactoryOperationCalldata.js +85 -0
- package/dist/esm/preview/parse/types-rwa.js +0 -0
- package/dist/esm/preview/parse/types.js +6 -1
- package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +13 -13
- package/dist/esm/preview/prerequisites/BalancePrerequisite.js +32 -14
- package/dist/esm/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +42 -0
- package/dist/esm/preview/prerequisites/buildPrerequisites.js +130 -14
- package/dist/esm/preview/prerequisites/index.js +1 -0
- package/dist/esm/preview/preview/applyInnerOperations.js +108 -0
- package/dist/esm/preview/preview/errors.js +27 -0
- package/dist/esm/preview/preview/index.js +5 -0
- package/dist/esm/preview/preview/previewAdjustCreditAccount.js +74 -0
- package/dist/esm/preview/preview/previewOpenCreditAccount.js +49 -0
- package/dist/esm/preview/preview/previewOperation.js +21 -0
- package/dist/esm/preview/preview/previewPoolOperation.js +53 -0
- package/dist/esm/preview/preview/types.js +0 -0
- package/dist/esm/preview/preview/unwrapNativeCollateral.js +21 -0
- package/dist/esm/preview/simulate/errors.js +0 -6
- package/dist/esm/preview/simulate/index.js +3 -3
- package/dist/esm/preview/simulate/simulateOperation.js +8 -1
- package/dist/esm/preview/simulate/simulatePoolOperation.js +61 -35
- package/dist/esm/preview/simulate/simulateRWAOperation.js +6 -0
- package/dist/esm/sdk/MultichainSDK.js +1 -0
- package/dist/esm/sdk/OnchainSDK.js +7 -3
- package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +54 -24
- package/dist/esm/sdk/base/BaseContract.js +4 -2
- package/dist/esm/sdk/base/ChainContractsRegister.js +1 -0
- package/dist/esm/sdk/market/MarketRegister.js +10 -5
- package/dist/esm/sdk/market/ZapperRegister.js +54 -0
- package/dist/esm/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +33 -1
- package/dist/esm/sdk/market/rwa/types.js +5 -2
- package/dist/esm/sdk/market/zapper/IERC20ZapperContract.js +3 -38
- package/dist/esm/sdk/market/zapper/IETHZapperContract.js +3 -38
- package/dist/esm/sdk/market/zapper/ZapperContract.js +82 -0
- package/dist/esm/sdk/market/zapper/createZapper.js +12 -4
- package/dist/esm/sdk/market/zapper/errors.js +13 -0
- package/dist/esm/sdk/market/zapper/index.js +3 -1
- package/dist/esm/sdk/market/zapper/types.js +0 -0
- package/dist/esm/sdk/options.js +39 -15
- package/dist/esm/sdk/router/AbstractRouterContract.js +25 -29
- package/dist/esm/sdk/router/RouterV310Contract.js +11 -12
- package/dist/esm/sdk/router/helpers.js +0 -4
- package/dist/esm/sdk/utils/AddressMap.js +6 -0
- package/dist/esm/sdk/utils/AssetsMap.js +73 -0
- package/dist/esm/sdk/utils/index.js +1 -0
- package/dist/types/abi/iERC20Zapper.d.ts +91 -23
- package/dist/types/abi/iETHZapper.d.ts +91 -23
- package/dist/types/abi/iZapper.d.ts +91 -23
- package/dist/types/common-utils/utils/strategies/assets/assets.d.ts +1 -1
- package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.d.ts +1 -1
- package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.d.ts +1 -1
- package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.d.ts +1 -1
- package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.d.ts +1 -1
- package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.d.ts +1 -1
- package/dist/types/common-utils/utils/strategies/types/strategy-earnings.d.ts +1 -1
- package/dist/types/common-utils/utils/validation/validate-balances.d.ts +1 -1
- package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +1 -1
- package/dist/types/common-utils/utils/validation/validate-quota.d.ts +1 -1
- package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +1 -1
- package/dist/types/history/types.d.ts +4 -4
- package/dist/types/plugins/adapters/abi/iConvexV1BoosterAdapter.d.ts +204 -0
- package/dist/types/plugins/adapters/abi/index.d.ts +1 -0
- package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +21 -3
- package/dist/types/plugins/adapters/contracts/AbstractCurveAdapter.d.ts +18 -0
- package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +8 -6
- package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +3 -6
- package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +3 -6
- package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +3 -6
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +3 -6
- package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +3 -6
- package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/SecuritizeSwapAdapterContract.d.ts +15 -3
- package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +3 -1
- package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +3 -1
- package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/types.d.ts +10 -0
- package/dist/types/preview/index.d.ts +1 -2
- package/dist/types/preview/parse/classifyInnerOperations.d.ts +0 -2
- package/dist/types/preview/parse/errors.d.ts +1 -0
- package/dist/types/preview/parse/index.d.ts +1 -1
- package/dist/types/preview/parse/parseOperationCalldata.d.ts +3 -3
- package/dist/types/preview/parse/parseRWAFactoryOperationCalldata.d.ts +22 -0
- package/dist/types/preview/parse/types-adapters.d.ts +5 -1
- package/dist/types/preview/parse/types-facades.d.ts +23 -34
- package/dist/types/preview/parse/types-pools.d.ts +90 -2
- package/dist/types/preview/parse/types-rwa.d.ts +48 -0
- package/dist/types/preview/parse/types.d.ts +11 -6
- package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +1 -3
- package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +9 -6
- package/dist/types/preview/prerequisites/RWAOpenRequirementsPrerequisite.d.ts +36 -0
- package/dist/types/preview/prerequisites/buildPrerequisites.d.ts +15 -6
- package/dist/types/preview/prerequisites/index.d.ts +1 -0
- package/dist/types/preview/prerequisites/types.d.ts +10 -8
- package/dist/types/preview/preview/applyInnerOperations.d.ts +77 -0
- package/dist/types/preview/preview/errors.d.ts +21 -0
- package/dist/types/preview/preview/index.d.ts +5 -0
- package/dist/types/preview/preview/previewAdjustCreditAccount.d.ts +11 -0
- package/dist/types/preview/preview/previewOpenCreditAccount.d.ts +4 -0
- package/dist/types/preview/preview/previewOperation.d.ts +7 -0
- package/dist/types/preview/preview/previewPoolOperation.d.ts +5 -0
- package/dist/types/preview/preview/types.d.ts +177 -0
- package/dist/types/preview/preview/unwrapNativeCollateral.d.ts +20 -0
- package/dist/types/preview/simulate/errors.d.ts +6 -12
- package/dist/types/preview/simulate/index.d.ts +3 -2
- package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +0 -2
- package/dist/types/preview/simulate/simulateOperation.d.ts +0 -2
- package/dist/types/preview/simulate/simulatePoolOperation.d.ts +9 -3
- package/dist/types/preview/simulate/simulateRWAOperation.d.ts +23 -0
- package/dist/types/preview/simulate/types.d.ts +12 -39
- package/dist/types/sdk/MultichainSDK.d.ts +5 -0
- package/dist/types/sdk/OnchainSDK.d.ts +4 -0
- package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +11 -3
- package/dist/types/sdk/accounts/types.d.ts +66 -8
- package/dist/types/sdk/base/BaseContract.d.ts +1 -1
- package/dist/types/sdk/base/TokensMeta.d.ts +1 -1
- package/dist/types/sdk/base/types.d.ts +18 -0
- package/dist/types/sdk/market/MarketRegister.d.ts +15 -6
- package/dist/types/sdk/market/ZapperRegister.d.ts +25 -4
- package/dist/types/sdk/market/rwa/securitize/SecuritizeRWAFactory.d.ts +6 -1
- package/dist/types/sdk/market/rwa/types.d.ts +13 -5
- package/dist/types/sdk/market/zapper/IERC20ZapperContract.d.ts +93 -39
- package/dist/types/sdk/market/zapper/IETHZapperContract.d.ts +93 -39
- package/dist/types/sdk/market/zapper/ZapperContract.d.ts +35 -0
- package/dist/types/sdk/market/zapper/createZapper.d.ts +2 -4
- package/dist/types/sdk/market/zapper/errors.d.ts +10 -0
- package/dist/types/sdk/market/zapper/index.d.ts +3 -1
- package/dist/types/sdk/market/zapper/types.d.ts +64 -0
- package/dist/types/sdk/options.d.ts +10 -5
- package/dist/types/sdk/pools/types.d.ts +4 -4
- package/dist/types/sdk/router/AbstractRouterContract.d.ts +5 -5
- package/dist/types/sdk/router/helpers.d.ts +1 -2
- package/dist/types/sdk/router/types.d.ts +1 -15
- package/dist/types/sdk/types/state-human.d.ts +9 -0
- package/dist/types/sdk/types/state.d.ts +7 -0
- package/dist/types/sdk/utils/AddressMap.d.ts +4 -0
- package/dist/types/sdk/utils/AssetsMap.d.ts +44 -0
- package/dist/types/sdk/utils/index.d.ts +1 -0
- package/package.json +3 -3
- package/dist/cjs/preview/parse/extractExpectedBalanceChanges.js +0 -48
- package/dist/cjs/preview/simulate/extractERC20Transfers.js +0 -47
- package/dist/cjs/preview/simulate/simulatePoolOpMulticall.js +0 -155
- package/dist/cjs/preview/simulate/simulatePoolOpV1.js +0 -106
- package/dist/esm/preview/parse/extractExpectedBalanceChanges.js +0 -24
- package/dist/esm/preview/simulate/constants.js +0 -4
- package/dist/esm/preview/simulate/extractERC20Transfers.js +0 -23
- package/dist/esm/preview/simulate/holders.js +0 -21
- package/dist/esm/preview/simulate/simulatePoolOpMulticall.js +0 -130
- package/dist/esm/preview/simulate/simulatePoolOpV1.js +0 -82
- package/dist/esm/sdk/market/zapper/Zapper.js +0 -23
- package/dist/types/preview/parse/extractExpectedBalanceChanges.d.ts +0 -22
- package/dist/types/preview/simulate/constants.d.ts +0 -6
- package/dist/types/preview/simulate/extractERC20Transfers.d.ts +0 -11
- package/dist/types/preview/simulate/holders.d.ts +0 -7
- package/dist/types/preview/simulate/simulatePoolOpMulticall.d.ts +0 -28
- package/dist/types/preview/simulate/simulatePoolOpV1.d.ts +0 -14
- package/dist/types/sdk/market/zapper/Zapper.d.ts +0 -13
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { isPoolOperation, parseOperationCalldata } from "../parse/index.js";
|
|
2
|
+
import { UnsupportedOperationError } from "./errors.js";
|
|
3
|
+
import { previewAdjustCreditAccount } from "./previewAdjustCreditAccount.js";
|
|
4
|
+
import { previewOpenCreditAccount } from "./previewOpenCreditAccount.js";
|
|
5
|
+
import { previewPoolOperation } from "./previewPoolOperation.js";
|
|
6
|
+
async function previewOperation(input, options) {
|
|
7
|
+
const operation = parseOperationCalldata(input);
|
|
8
|
+
if (isPoolOperation(operation)) {
|
|
9
|
+
return previewPoolOperation(input, operation, options);
|
|
10
|
+
}
|
|
11
|
+
if (operation.operation === "OpenCreditAccount" || operation.operation === "SecuritizeOpenCreditAccount") {
|
|
12
|
+
return previewOpenCreditAccount(input, operation);
|
|
13
|
+
}
|
|
14
|
+
if (operation.operation === "MultiCall" || operation.operation === "BotMulticall" || operation.operation === "SecuritizeMulticall") {
|
|
15
|
+
return previewAdjustCreditAccount(input, operation, options);
|
|
16
|
+
}
|
|
17
|
+
throw new UnsupportedOperationError(operation.operation);
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
previewOperation
|
|
21
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import {
|
|
2
|
+
simulatePoolOperation
|
|
3
|
+
} from "../simulate/index.js";
|
|
4
|
+
async function previewPoolOperation(input, operation, options) {
|
|
5
|
+
const { sdk, to, calldata } = input;
|
|
6
|
+
const { tokenIn, tokenOut } = operation;
|
|
7
|
+
const sim = await simulatePoolOperation(
|
|
8
|
+
{ sdk, operation, to, calldata },
|
|
9
|
+
options
|
|
10
|
+
);
|
|
11
|
+
if (sim.status === "success") {
|
|
12
|
+
return {
|
|
13
|
+
operation: operation.operation,
|
|
14
|
+
pool: operation.pool,
|
|
15
|
+
tokenIn: { token: tokenIn, balance: sim.amountIn },
|
|
16
|
+
tokenOut: { token: tokenOut, balance: sim.amountOut }
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const { error } = sim;
|
|
20
|
+
switch (operation.operation) {
|
|
21
|
+
case "Deposit":
|
|
22
|
+
return {
|
|
23
|
+
operation: "Deposit",
|
|
24
|
+
pool: operation.pool,
|
|
25
|
+
tokenIn: { token: tokenIn, balance: operation.assets },
|
|
26
|
+
tokenOut: { token: tokenOut, error }
|
|
27
|
+
};
|
|
28
|
+
case "Mint":
|
|
29
|
+
return {
|
|
30
|
+
operation: "Mint",
|
|
31
|
+
pool: operation.pool,
|
|
32
|
+
tokenIn: { token: tokenIn, error },
|
|
33
|
+
tokenOut: { token: tokenOut, balance: operation.shares }
|
|
34
|
+
};
|
|
35
|
+
case "Withdraw":
|
|
36
|
+
return {
|
|
37
|
+
operation: "Withdraw",
|
|
38
|
+
pool: operation.pool,
|
|
39
|
+
tokenIn: { token: tokenIn, error },
|
|
40
|
+
tokenOut: { token: tokenOut, balance: operation.assets }
|
|
41
|
+
};
|
|
42
|
+
case "Redeem":
|
|
43
|
+
return {
|
|
44
|
+
operation: "Redeem",
|
|
45
|
+
pool: operation.pool,
|
|
46
|
+
tokenIn: { token: tokenIn, balance: operation.shares },
|
|
47
|
+
tokenOut: { token: tokenOut, error }
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
previewPoolOperation
|
|
53
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AssetsMap, NATIVE_ADDRESS } from "../../sdk/index.js";
|
|
2
|
+
import { InvalidTransactionValueError } from "./errors.js";
|
|
3
|
+
function unwrapNativeCollateral(collateral, nativeAmount, wethToken) {
|
|
4
|
+
if (nativeAmount === 0n) {
|
|
5
|
+
return collateral;
|
|
6
|
+
}
|
|
7
|
+
const balances = new AssetsMap(collateral);
|
|
8
|
+
const wethBalance = balances.get(wethToken) ?? 0n;
|
|
9
|
+
if (wethBalance < nativeAmount) {
|
|
10
|
+
throw new InvalidTransactionValueError(nativeAmount, wethBalance);
|
|
11
|
+
}
|
|
12
|
+
balances.upsert(
|
|
13
|
+
wethToken,
|
|
14
|
+
wethBalance === nativeAmount ? void 0 : wethBalance - nativeAmount
|
|
15
|
+
);
|
|
16
|
+
balances.inc(NATIVE_ADDRESS, nativeAmount);
|
|
17
|
+
return balances.toAssets();
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
unwrapNativeCollateral
|
|
21
|
+
};
|
|
@@ -27,11 +27,6 @@ function asPreviewSimulationError(reason, source) {
|
|
|
27
27
|
{ source, detail: decodeSimulationError({ error }) }
|
|
28
28
|
]);
|
|
29
29
|
}
|
|
30
|
-
function combinePreviewSimulationErrors(...errors) {
|
|
31
|
-
return new PreviewSimulationError(
|
|
32
|
-
errors.filter((e) => e).flatMap((e) => e?.failures ?? [])
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
30
|
function decodeSimulationError(revert) {
|
|
36
31
|
const { error, data } = revert;
|
|
37
32
|
if (data && data !== "0x") {
|
|
@@ -70,6 +65,5 @@ function formatDecodedError(errorName, args) {
|
|
|
70
65
|
export {
|
|
71
66
|
PreviewSimulationError,
|
|
72
67
|
asPreviewSimulationError,
|
|
73
|
-
combinePreviewSimulationErrors,
|
|
74
68
|
decodeSimulationError
|
|
75
69
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { ETH_SIMULATE_V1_NETWORKS } from "./constants.js";
|
|
2
1
|
import { PreviewSimulationError } from "./errors.js";
|
|
3
2
|
import { simulateFacadeOperation } from "./simulateFacadeOperation.js";
|
|
4
3
|
import { simulateOperation } from "./simulateOperation.js";
|
|
5
4
|
import { simulatePoolOperation } from "./simulatePoolOperation.js";
|
|
5
|
+
import { simulateRWAOperation } from "./simulateRWAOperation.js";
|
|
6
6
|
export {
|
|
7
|
-
ETH_SIMULATE_V1_NETWORKS,
|
|
8
7
|
PreviewSimulationError,
|
|
9
8
|
simulateFacadeOperation,
|
|
10
9
|
simulateOperation,
|
|
11
|
-
simulatePoolOperation
|
|
10
|
+
simulatePoolOperation,
|
|
11
|
+
simulateRWAOperation
|
|
12
12
|
};
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
isPoolOperation,
|
|
3
|
+
isRWAOperation
|
|
4
|
+
} from "../parse/index.js";
|
|
2
5
|
import { simulateFacadeOperation } from "./simulateFacadeOperation.js";
|
|
3
6
|
import { simulatePoolOperation } from "./simulatePoolOperation.js";
|
|
7
|
+
import { simulateRWAOperation } from "./simulateRWAOperation.js";
|
|
4
8
|
async function simulateOperation(input, options) {
|
|
5
9
|
const { operation } = input;
|
|
6
10
|
if (isPoolOperation(operation)) {
|
|
7
11
|
return simulatePoolOperation({ ...input, operation }, options);
|
|
8
12
|
}
|
|
13
|
+
if (isRWAOperation(operation)) {
|
|
14
|
+
return simulateRWAOperation({ ...input, operation }, options);
|
|
15
|
+
}
|
|
9
16
|
return simulateFacadeOperation({ ...input, operation }, options);
|
|
10
17
|
}
|
|
11
18
|
export {
|
|
@@ -1,40 +1,66 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
import { iPoolV310Abi } from "../../abi/310/generated.js";
|
|
2
|
+
import { iZapperAbi } from "../../abi/iZapper.js";
|
|
3
|
+
import { asPreviewSimulationError } from "./errors.js";
|
|
4
|
+
function previewRead(operation) {
|
|
5
|
+
switch (operation.operation) {
|
|
6
|
+
case "Deposit":
|
|
7
|
+
return { functionName: "previewDeposit", amount: operation.assets };
|
|
8
|
+
case "Mint":
|
|
9
|
+
return { functionName: "previewMint", amount: operation.shares };
|
|
10
|
+
case "Withdraw":
|
|
11
|
+
return { functionName: "previewWithdraw", amount: operation.assets };
|
|
12
|
+
case "Redeem":
|
|
13
|
+
return { functionName: "previewRedeem", amount: operation.shares };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function previewContract(operation) {
|
|
17
|
+
const { functionName, amount } = previewRead(operation);
|
|
18
|
+
if (operation.zapper) {
|
|
19
|
+
return {
|
|
20
|
+
address: operation.zapper,
|
|
21
|
+
abi: iZapperAbi,
|
|
22
|
+
functionName,
|
|
23
|
+
args: [amount]
|
|
24
|
+
};
|
|
22
25
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
return {
|
|
27
|
+
address: operation.pool,
|
|
28
|
+
abi: iPoolV310Abi,
|
|
29
|
+
functionName,
|
|
30
|
+
args: [amount]
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function amountsInOut(operation, previewAmount) {
|
|
34
|
+
switch (operation.operation) {
|
|
35
|
+
case "Deposit":
|
|
36
|
+
return { amountIn: operation.assets, amountOut: previewAmount };
|
|
37
|
+
case "Mint":
|
|
38
|
+
return { amountIn: previewAmount, amountOut: operation.shares };
|
|
39
|
+
case "Withdraw":
|
|
40
|
+
return { amountIn: previewAmount, amountOut: operation.assets };
|
|
41
|
+
case "Redeem":
|
|
42
|
+
return { amountIn: operation.shares, amountOut: previewAmount };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async function simulatePoolOperation(input, options = {}) {
|
|
46
|
+
const { sdk, operation } = input;
|
|
47
|
+
const { blockNumber, logger } = options;
|
|
48
|
+
try {
|
|
49
|
+
const previewAmount = await sdk.client.readContract({
|
|
50
|
+
// `undefined` lets viem read at `latest`; `blockNumber` is only set for
|
|
51
|
+
// testnet forks pinned to a specific block.
|
|
52
|
+
blockNumber,
|
|
53
|
+
...previewContract(operation)
|
|
54
|
+
});
|
|
55
|
+
return {
|
|
56
|
+
status: "success",
|
|
57
|
+
...amountsInOut(operation, previewAmount)
|
|
58
|
+
};
|
|
59
|
+
} catch (cause) {
|
|
60
|
+
const error = asPreviewSimulationError(cause, "multicall");
|
|
61
|
+
logger?.error(error, "pool operation simulation failed");
|
|
62
|
+
return { status: "failure", error };
|
|
31
63
|
}
|
|
32
|
-
const error = combinePreviewSimulationErrors(
|
|
33
|
-
v1.status === "rejected" ? asPreviewSimulationError(v1.reason, "eth_simulateV1") : void 0,
|
|
34
|
-
asPreviewSimulationError(multicall.reason, "multicall")
|
|
35
|
-
);
|
|
36
|
-
logger?.error(error, "pool operation simulation failed");
|
|
37
|
-
return { status: "failure", error };
|
|
38
64
|
}
|
|
39
65
|
export {
|
|
40
66
|
simulatePoolOperation
|
|
@@ -126,7 +126,8 @@ class OnchainSDK extends ChainContractsRegister {
|
|
|
126
126
|
ignoreMarkets,
|
|
127
127
|
marketConfigurators: mcs,
|
|
128
128
|
redstone,
|
|
129
|
-
pyth
|
|
129
|
+
pyth,
|
|
130
|
+
loadZappers
|
|
130
131
|
} = options ?? {};
|
|
131
132
|
const marketConfigurators = mcs ?? TypedObjectUtils.keys(
|
|
132
133
|
this.client.chain.defaultMarketConfigurators
|
|
@@ -195,6 +196,9 @@ class OnchainSDK extends ChainContractsRegister {
|
|
|
195
196
|
blockNumber: this.currentBlock,
|
|
196
197
|
gas: this.gasLimit
|
|
197
198
|
});
|
|
199
|
+
if (loadZappers) {
|
|
200
|
+
await this.#marketRegister.loadZappers();
|
|
201
|
+
}
|
|
198
202
|
}
|
|
199
203
|
const pluginsList = TypedObjectUtils.entries(this.plugins);
|
|
200
204
|
const pluginResponse = await Promise.allSettled(
|
|
@@ -247,7 +251,7 @@ class OnchainSDK extends ChainContractsRegister {
|
|
|
247
251
|
`address provider version: ${this.#addressProvider.version}`
|
|
248
252
|
);
|
|
249
253
|
this.#marketRegister = new MarketRegister(this, ignoreMarkets);
|
|
250
|
-
this.#marketRegister.hydrate(state
|
|
254
|
+
this.#marketRegister.hydrate(state);
|
|
251
255
|
this.#rwa = new RWARegistry(this);
|
|
252
256
|
this.#rwa.setState(state.rwa);
|
|
253
257
|
for (const [name, plugin] of TypedObjectUtils.entries(this.plugins)) {
|
|
@@ -312,7 +316,7 @@ class OnchainSDK extends ChainContractsRegister {
|
|
|
312
316
|
currentBlock: this.currentBlock,
|
|
313
317
|
timestamp: this.timestamp,
|
|
314
318
|
addressProvider: this.addressProvider.state,
|
|
315
|
-
|
|
319
|
+
...this.marketRegister.state,
|
|
316
320
|
rwa: this.#rwa.state,
|
|
317
321
|
plugins: Object.fromEntries(
|
|
318
322
|
TypedObjectUtils.entries(this.plugins).map(([name, plugin]) => [
|
|
@@ -27,8 +27,7 @@ import {
|
|
|
27
27
|
import {
|
|
28
28
|
getRawPriceUpdates
|
|
29
29
|
} from "../market/index.js";
|
|
30
|
-
import {
|
|
31
|
-
import { AddressMap, AddressSet, hexEq } from "../utils/index.js";
|
|
30
|
+
import { AddressMap, AddressSet, AssetsMap, hexEq } from "../utils/index.js";
|
|
32
31
|
import { simulateWithPriceUpdates } from "../utils/viem/index.js";
|
|
33
32
|
import {
|
|
34
33
|
extractPriceUpdates,
|
|
@@ -616,14 +615,12 @@ class CreditAccountsServiceV310 extends SDKConstruct {
|
|
|
616
615
|
creditManager: cm.creditManager,
|
|
617
616
|
slippage
|
|
618
617
|
});
|
|
619
|
-
const operationCalls =
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
)
|
|
626
|
-
];
|
|
618
|
+
const operationCalls = await this.assembleCloseCreditAccountCalls({
|
|
619
|
+
creditAccount: ca,
|
|
620
|
+
routerCalls: routerCloseResult.calls,
|
|
621
|
+
assetsToWithdraw,
|
|
622
|
+
to
|
|
623
|
+
});
|
|
627
624
|
const calls = operation === "close" ? operationCalls : await this.#prependPriceUpdates(ca.creditManager, operationCalls, ca);
|
|
628
625
|
const tx = await this.#closeCreditAccountTx(
|
|
629
626
|
cm,
|
|
@@ -633,6 +630,32 @@ class CreditAccountsServiceV310 extends SDKConstruct {
|
|
|
633
630
|
);
|
|
634
631
|
return { tx, calls, routerCloseResult, creditFacade: cm.creditFacade };
|
|
635
632
|
}
|
|
633
|
+
/**
|
|
634
|
+
* {@inheritDoc ICreditAccountsService.assembleCloseCreditAccountCalls}
|
|
635
|
+
*/
|
|
636
|
+
async assembleCloseCreditAccountCalls({
|
|
637
|
+
creditAccount: ca,
|
|
638
|
+
routerCalls,
|
|
639
|
+
assetsToWithdraw,
|
|
640
|
+
to
|
|
641
|
+
}) {
|
|
642
|
+
const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
|
|
643
|
+
await this.sdk.tokensMeta.loadTokenData(cm.underlying);
|
|
644
|
+
const underlying = this.sdk.tokensMeta.mustGet(cm.underlying);
|
|
645
|
+
if (this.sdk.tokensMeta.isRWAUnderlying(underlying)) {
|
|
646
|
+
throw new Error(
|
|
647
|
+
"closeCreditAccount is not supported for RWA underlying credit accounts"
|
|
648
|
+
);
|
|
649
|
+
}
|
|
650
|
+
return [
|
|
651
|
+
...routerCalls,
|
|
652
|
+
...this.#prepareDisableQuotas(ca),
|
|
653
|
+
...this.#prepareDecreaseDebt(ca),
|
|
654
|
+
...assetsToWithdraw.map(
|
|
655
|
+
(t) => this.#prepareWithdrawToken(ca.creditFacade, t, MAX_UINT256, to)
|
|
656
|
+
)
|
|
657
|
+
];
|
|
658
|
+
}
|
|
636
659
|
/**
|
|
637
660
|
* {@inheritDoc ICreditAccountsService.updateQuotas}
|
|
638
661
|
**/
|
|
@@ -1302,8 +1325,23 @@ class CreditAccountsServiceV310 extends SDKConstruct {
|
|
|
1302
1325
|
/**
|
|
1303
1326
|
* {@inheritDoc ICreditAccountsService.repayCreditAccount}
|
|
1304
1327
|
*/
|
|
1305
|
-
async repayCreditAccount({
|
|
1306
|
-
operation,
|
|
1328
|
+
async repayCreditAccount(props) {
|
|
1329
|
+
const { operation, creditAccount: ca } = props;
|
|
1330
|
+
const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
|
|
1331
|
+
const operationCalls = await this.assembleRepayCreditAccountCalls(props);
|
|
1332
|
+
const calls = operation === "close" ? operationCalls : await this.#prependPriceUpdates(ca.creditManager, operationCalls, ca);
|
|
1333
|
+
const tx = await this.#closeCreditAccountTx(
|
|
1334
|
+
cm,
|
|
1335
|
+
ca.creditAccount,
|
|
1336
|
+
calls,
|
|
1337
|
+
operation
|
|
1338
|
+
);
|
|
1339
|
+
return { tx, calls, creditFacade: cm.creditFacade };
|
|
1340
|
+
}
|
|
1341
|
+
/**
|
|
1342
|
+
* {@inheritDoc ICreditAccountsService.assembleRepayCreditAccountCalls}
|
|
1343
|
+
*/
|
|
1344
|
+
async assembleRepayCreditAccountCalls({
|
|
1307
1345
|
collateralAssets,
|
|
1308
1346
|
assetsToWithdraw,
|
|
1309
1347
|
creditAccount: ca,
|
|
@@ -1312,7 +1350,6 @@ class CreditAccountsServiceV310 extends SDKConstruct {
|
|
|
1312
1350
|
tokensToClaim,
|
|
1313
1351
|
calls: wrapCalls = []
|
|
1314
1352
|
}) {
|
|
1315
|
-
const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
|
|
1316
1353
|
const addCollateral = collateralAssets.filter((a) => a.balance > 0);
|
|
1317
1354
|
const router = this.sdk.routerFor(ca);
|
|
1318
1355
|
const unwrapCalls = await this.getRedeemDiffCalls(1n, ca.creditManager) ?? [];
|
|
@@ -1331,14 +1368,7 @@ class CreditAccountsServiceV310 extends SDKConstruct {
|
|
|
1331
1368
|
(t) => this.#prepareWithdrawToken(ca.creditFacade, t.token, MAX_UINT256, to)
|
|
1332
1369
|
)
|
|
1333
1370
|
];
|
|
1334
|
-
|
|
1335
|
-
const tx = await this.#closeCreditAccountTx(
|
|
1336
|
-
cm,
|
|
1337
|
-
ca.creditAccount,
|
|
1338
|
-
calls,
|
|
1339
|
-
operation
|
|
1340
|
-
);
|
|
1341
|
-
return { tx, calls, creditFacade: cm.creditFacade };
|
|
1371
|
+
return operationCalls;
|
|
1342
1372
|
}
|
|
1343
1373
|
/**
|
|
1344
1374
|
* {@inheritDoc ICreditAccountsService.repayAndLiquidateCreditAccount}
|
|
@@ -1718,10 +1748,10 @@ class CreditAccountsServiceV310 extends SDKConstruct {
|
|
|
1718
1748
|
return calls;
|
|
1719
1749
|
}
|
|
1720
1750
|
#prepareUpdateQuotas(creditFacade, { averageQuota, minQuota }) {
|
|
1721
|
-
const minRecord =
|
|
1751
|
+
const minRecord = new AssetsMap(minQuota);
|
|
1722
1752
|
const calls = averageQuota.map((q) => {
|
|
1723
|
-
const
|
|
1724
|
-
const min =
|
|
1753
|
+
const minBalance = minRecord.get(q.token);
|
|
1754
|
+
const min = minBalance && minBalance > 0n ? minBalance : 0n;
|
|
1725
1755
|
return {
|
|
1726
1756
|
target: creditFacade,
|
|
1727
1757
|
callData: encodeFunctionData({
|
|
@@ -234,6 +234,7 @@ class BaseContract extends Construct {
|
|
|
234
234
|
const functionName = getFunctionSignature(this.abi, calldata);
|
|
235
235
|
return this.wrapParseCallV2(
|
|
236
236
|
functionName,
|
|
237
|
+
calldata,
|
|
237
238
|
this.parseFunctionParamsV2(decoded, strict)
|
|
238
239
|
);
|
|
239
240
|
} catch (e) {
|
|
@@ -247,7 +248,7 @@ class BaseContract extends Construct {
|
|
|
247
248
|
this.logger?.warn(e);
|
|
248
249
|
const selector = calldata.slice(0, 10);
|
|
249
250
|
const data = `0x${calldata.slice(10)}`;
|
|
250
|
-
return this.wrapParseCallV2(`unknown function ${selector}`, {
|
|
251
|
+
return this.wrapParseCallV2(`unknown function ${selector}`, calldata, {
|
|
251
252
|
_data: data
|
|
252
253
|
});
|
|
253
254
|
}
|
|
@@ -260,7 +261,7 @@ class BaseContract extends Construct {
|
|
|
260
261
|
parseFunctionParamsV2(params, _strict) {
|
|
261
262
|
return functionArgsToRecord(this.abi, params.functionName, params.args);
|
|
262
263
|
}
|
|
263
|
-
wrapParseCallV2(functionName, rawArgs) {
|
|
264
|
+
wrapParseCallV2(functionName, calldata, rawArgs) {
|
|
264
265
|
return {
|
|
265
266
|
chainId: this.chainId,
|
|
266
267
|
target: this.address,
|
|
@@ -268,6 +269,7 @@ class BaseContract extends Construct {
|
|
|
268
269
|
label: this.labelAddress(this.address, true),
|
|
269
270
|
version: this.version,
|
|
270
271
|
functionName,
|
|
272
|
+
calldata,
|
|
271
273
|
rawArgs
|
|
272
274
|
};
|
|
273
275
|
}
|
|
@@ -35,10 +35,11 @@ class MarketRegister extends ZapperRegister {
|
|
|
35
35
|
* bypassing on-chain reads.
|
|
36
36
|
* @param state - Array of market data snapshots.
|
|
37
37
|
**/
|
|
38
|
-
hydrate(
|
|
39
|
-
const configurators = new Set(
|
|
38
|
+
hydrate({ markets, zappers }) {
|
|
39
|
+
const configurators = new Set(markets.map((m) => m.configurator));
|
|
40
40
|
this.#setMarketFilter([...configurators]);
|
|
41
|
-
this.#setMarkets(
|
|
41
|
+
this.#setMarkets(markets);
|
|
42
|
+
this.hydrateZappers(zappers);
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
44
45
|
* @internal
|
|
@@ -157,7 +158,10 @@ class MarketRegister extends ZapperRegister {
|
|
|
157
158
|
* Serializable snapshot of all loaded markets, suitable for hydration.
|
|
158
159
|
**/
|
|
159
160
|
get state() {
|
|
160
|
-
return
|
|
161
|
+
return {
|
|
162
|
+
markets: this.markets.map((market) => market.state),
|
|
163
|
+
zappers: this.zappersState
|
|
164
|
+
};
|
|
161
165
|
}
|
|
162
166
|
/**
|
|
163
167
|
* Returns a human-readable snapshot of all markets.
|
|
@@ -165,7 +169,8 @@ class MarketRegister extends ZapperRegister {
|
|
|
165
169
|
**/
|
|
166
170
|
stateHuman(raw = true) {
|
|
167
171
|
return {
|
|
168
|
-
markets: this.markets.map((market) => market.stateHuman(raw))
|
|
172
|
+
markets: this.markets.map((market) => market.stateHuman(raw)),
|
|
173
|
+
zappers: this.zappersStateHuman(raw)
|
|
169
174
|
};
|
|
170
175
|
}
|
|
171
176
|
/**
|
|
@@ -55,6 +55,60 @@ class ZapperRegister extends SDKConstruct {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Serializable snapshot of all loaded zappers, suitable for hydration.
|
|
60
|
+
* Returns `undefined` when zappers were never loaded (i.e. `loadZappers` was
|
|
61
|
+
* not called), so the not-loaded state round-trips cleanly.
|
|
62
|
+
**/
|
|
63
|
+
get zappersState() {
|
|
64
|
+
if (!this.#zappers) {
|
|
65
|
+
return void 0;
|
|
66
|
+
}
|
|
67
|
+
return this.#zappers.values().flatMap(
|
|
68
|
+
(zappers) => zappers.map((z) => ({
|
|
69
|
+
pool: z.pool,
|
|
70
|
+
type: z.type,
|
|
71
|
+
baseParams: z.baseParams,
|
|
72
|
+
tokenIn: z.tokenIn,
|
|
73
|
+
tokenOut: z.tokenOut
|
|
74
|
+
}))
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Restores zapper state from a previously serialized snapshot,
|
|
79
|
+
* bypassing on-chain reads.
|
|
80
|
+
* @param state - Array of zapper data snapshots, or `undefined` when zappers
|
|
81
|
+
* were not loaded in the snapshot (leaves the registry in the not-loaded state).
|
|
82
|
+
**/
|
|
83
|
+
hydrateZappers(state) {
|
|
84
|
+
if (!state) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.#zappers = new AddressMap(void 0, "zappers");
|
|
88
|
+
for (const z of state) {
|
|
89
|
+
this.#addZapper(z);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Returns a human-readable snapshot of all loaded zappers.
|
|
94
|
+
* Returns `undefined` when zappers were never loaded.
|
|
95
|
+
* @param raw - When `true`, includes raw/unformatted values.
|
|
96
|
+
**/
|
|
97
|
+
zappersStateHuman(_ = true) {
|
|
98
|
+
if (!this.#zappers) {
|
|
99
|
+
return void 0;
|
|
100
|
+
}
|
|
101
|
+
return this.#zappers.values().flatMap(
|
|
102
|
+
(zappers) => zappers.map((z) => ({
|
|
103
|
+
address: this.labelAddress(z.baseParams.addr),
|
|
104
|
+
contractType: z.contractType,
|
|
105
|
+
type: z.type,
|
|
106
|
+
pool: this.labelAddress(z.pool),
|
|
107
|
+
tokenIn: this.sdk.labelAddress(z.tokenIn.addr),
|
|
108
|
+
tokenOut: this.sdk.labelAddress(z.tokenOut.addr)
|
|
109
|
+
}))
|
|
110
|
+
);
|
|
111
|
+
}
|
|
58
112
|
#addZapper(z) {
|
|
59
113
|
const zapper = createZapper(this.sdk, z);
|
|
60
114
|
const existing = this.zappers.get(z.pool);
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
decodeAbiParameters
|
|
3
|
+
} from "viem";
|
|
2
4
|
import { iSecuritizeRWAFactoryAbi } from "../../../../abi/rwa/iSecuritizeRWAFactory.js";
|
|
3
5
|
import { BaseContract } from "../../../base/index.js";
|
|
4
6
|
import { AddressMap, AddressSet } from "../../../utils/index.js";
|
|
@@ -49,6 +51,30 @@ class SecuritizeRWAFactory extends BaseContract {
|
|
|
49
51
|
operators: [...t.operators]
|
|
50
52
|
}));
|
|
51
53
|
}
|
|
54
|
+
parseFunctionParamsV2(params, strict) {
|
|
55
|
+
switch (params.functionName) {
|
|
56
|
+
case "openCreditAccount": {
|
|
57
|
+
const [creditManager, calls, tokensToRegister, signaturesToCache] = params.args;
|
|
58
|
+
return {
|
|
59
|
+
creditManager,
|
|
60
|
+
calls: this.register.parseMultiCallV2([...calls], strict),
|
|
61
|
+
tokensToRegister,
|
|
62
|
+
signaturesToCache
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
case "multicall": {
|
|
66
|
+
const [creditAccount, calls, tokensToRegister, signaturesToCache] = params.args;
|
|
67
|
+
return {
|
|
68
|
+
creditAccount,
|
|
69
|
+
calls: this.register.parseMultiCallV2([...calls], strict),
|
|
70
|
+
tokensToRegister,
|
|
71
|
+
signaturesToCache
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
default:
|
|
75
|
+
return super.parseFunctionParamsV2(params, strict);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
52
78
|
/**
|
|
53
79
|
* {@inheritDoc IRWAFactory.decodeInvestorData}
|
|
54
80
|
*/
|
|
@@ -104,6 +130,12 @@ class SecuritizeRWAFactory extends BaseContract {
|
|
|
104
130
|
})
|
|
105
131
|
};
|
|
106
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* {@inheritDoc IRWAFactory.getTokens}
|
|
135
|
+
*/
|
|
136
|
+
getTokens() {
|
|
137
|
+
return this.dsTokens.map((t) => t.address);
|
|
138
|
+
}
|
|
107
139
|
/**
|
|
108
140
|
* {@inheritDoc IRWAFactory.getInvestor}
|
|
109
141
|
*/
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { RWA_FACTORY_SECURITIZE } from "./securitize/index.js";
|
|
2
2
|
const RWA_FACTORY_TYPES = [RWA_FACTORY_SECURITIZE];
|
|
3
|
-
function isRWAFactory(
|
|
4
|
-
|
|
3
|
+
function isRWAFactory(contract, type) {
|
|
4
|
+
if (type) {
|
|
5
|
+
return contract.contractType === type;
|
|
6
|
+
}
|
|
7
|
+
return contract.contractType.startsWith("RWA_FACTORY::");
|
|
5
8
|
}
|
|
6
9
|
export {
|
|
7
10
|
RWA_FACTORY_TYPES,
|