@gearbox-protocol/sdk 14.12.0-next.1 → 14.12.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.
- 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 +132 -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 +95 -0
- package/dist/cjs/preview/preview/previewOpenCreditAccount.js +69 -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 +3 -4
- 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 +62 -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 +110 -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 +79 -0
- package/dist/esm/preview/preview/previewOpenCreditAccount.js +51 -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 +4 -5
- 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 +38 -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 +1 -1
- package/dist/types/sdk/accounts/types.d.ts +2 -2
- 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 +27 -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 { 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,
|
|
@@ -1718,10 +1717,10 @@ class CreditAccountsServiceV310 extends SDKConstruct {
|
|
|
1718
1717
|
return calls;
|
|
1719
1718
|
}
|
|
1720
1719
|
#prepareUpdateQuotas(creditFacade, { averageQuota, minQuota }) {
|
|
1721
|
-
const minRecord =
|
|
1720
|
+
const minRecord = new AssetsMap(minQuota);
|
|
1722
1721
|
const calls = averageQuota.map((q) => {
|
|
1723
|
-
const
|
|
1724
|
-
const min =
|
|
1722
|
+
const minBalance = minRecord.get(q.token);
|
|
1723
|
+
const min = minBalance && minBalance > 0n ? minBalance : 0n;
|
|
1725
1724
|
return {
|
|
1726
1725
|
target: creditFacade,
|
|
1727
1726
|
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,
|
|
@@ -1,25 +1,9 @@
|
|
|
1
1
|
import { ierc20ZapperAbi } from "../../../abi/iERC20Zapper.js";
|
|
2
|
-
import {
|
|
2
|
+
import { ZapperContract } from "./ZapperContract.js";
|
|
3
3
|
const abi = ierc20ZapperAbi;
|
|
4
|
-
class IERC20ZapperContract extends
|
|
5
|
-
pool;
|
|
6
|
-
type;
|
|
7
|
-
baseParams;
|
|
8
|
-
tokenIn;
|
|
9
|
-
tokenOut;
|
|
4
|
+
class IERC20ZapperContract extends ZapperContract {
|
|
10
5
|
constructor(sdk, data) {
|
|
11
|
-
super(sdk,
|
|
12
|
-
addr: data.baseParams.addr,
|
|
13
|
-
abi,
|
|
14
|
-
name: `ERC20Zapper(${sdk.labelAddress(data.baseParams.addr)})`,
|
|
15
|
-
version: data.baseParams.version,
|
|
16
|
-
contractType: data.baseParams.contractType
|
|
17
|
-
});
|
|
18
|
-
this.pool = data.pool;
|
|
19
|
-
this.type = data.type;
|
|
20
|
-
this.baseParams = data.baseParams;
|
|
21
|
-
this.tokenIn = data.tokenIn;
|
|
22
|
-
this.tokenOut = data.tokenOut;
|
|
6
|
+
super(sdk, data, abi, "ERC20Zapper");
|
|
23
7
|
}
|
|
24
8
|
/**
|
|
25
9
|
* Deposits ERC20 tokens into the pool via this zapper.
|
|
@@ -49,25 +33,6 @@ class IERC20ZapperContract extends BaseContract {
|
|
|
49
33
|
args: [tokenInAmount, receiver, referralCode, deadline, v, r, s]
|
|
50
34
|
});
|
|
51
35
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Redeems pool shares (diesel tokens) for the underlying asset via this zapper.
|
|
54
|
-
*/
|
|
55
|
-
redeem(tokenInAmount, receiver) {
|
|
56
|
-
return this.createRawTx({
|
|
57
|
-
functionName: "redeem",
|
|
58
|
-
args: [tokenInAmount, receiver]
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Redeems pool shares via this zapper with an EIP-2612 permit signature,
|
|
63
|
-
* skipping a separate approve transaction.
|
|
64
|
-
*/
|
|
65
|
-
redeemWithPermit(tokenInAmount, receiver, deadline, v, r, s) {
|
|
66
|
-
return this.createRawTx({
|
|
67
|
-
functionName: "redeemWithPermit",
|
|
68
|
-
args: [tokenInAmount, receiver, deadline, v, r, s]
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
36
|
}
|
|
72
37
|
export {
|
|
73
38
|
IERC20ZapperContract
|
|
@@ -1,25 +1,9 @@
|
|
|
1
1
|
import { iethZapperAbi } from "../../../abi/iETHZapper.js";
|
|
2
|
-
import {
|
|
2
|
+
import { ZapperContract } from "./ZapperContract.js";
|
|
3
3
|
const abi = iethZapperAbi;
|
|
4
|
-
class IETHZapperContract extends
|
|
5
|
-
pool;
|
|
6
|
-
type;
|
|
7
|
-
baseParams;
|
|
8
|
-
tokenIn;
|
|
9
|
-
tokenOut;
|
|
4
|
+
class IETHZapperContract extends ZapperContract {
|
|
10
5
|
constructor(sdk, data) {
|
|
11
|
-
super(sdk,
|
|
12
|
-
addr: data.baseParams.addr,
|
|
13
|
-
abi,
|
|
14
|
-
name: `ETHZapper(${sdk.labelAddress(data.baseParams.addr)})`,
|
|
15
|
-
version: data.baseParams.version,
|
|
16
|
-
contractType: data.baseParams.contractType
|
|
17
|
-
});
|
|
18
|
-
this.pool = data.pool;
|
|
19
|
-
this.type = data.type;
|
|
20
|
-
this.baseParams = data.baseParams;
|
|
21
|
-
this.tokenIn = data.tokenIn;
|
|
22
|
-
this.tokenOut = data.tokenOut;
|
|
6
|
+
super(sdk, data, abi, "ETHZapper");
|
|
23
7
|
}
|
|
24
8
|
/**
|
|
25
9
|
* Deposits native ETH into the pool via this zapper.
|
|
@@ -40,25 +24,6 @@ class IETHZapperContract extends BaseContract {
|
|
|
40
24
|
args: [receiver, referralCode]
|
|
41
25
|
});
|
|
42
26
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Redeems pool shares (diesel tokens) for the underlying asset via this zapper.
|
|
45
|
-
*/
|
|
46
|
-
redeem(tokenInAmount, receiver) {
|
|
47
|
-
return this.createRawTx({
|
|
48
|
-
functionName: "redeem",
|
|
49
|
-
args: [tokenInAmount, receiver]
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Redeems pool shares via this zapper with an EIP-2612 permit signature,
|
|
54
|
-
* skipping a separate approve transaction.
|
|
55
|
-
*/
|
|
56
|
-
redeemWithPermit(tokenInAmount, receiver, deadline, v, r, s) {
|
|
57
|
-
return this.createRawTx({
|
|
58
|
-
functionName: "redeemWithPermit",
|
|
59
|
-
args: [tokenInAmount, receiver, deadline, v, r, s]
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
27
|
}
|
|
63
28
|
export {
|
|
64
29
|
IETHZapperContract
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { iZapperAbi } from "../../../abi/iZapper.js";
|
|
2
|
+
import { BaseContract } from "../../base/index.js";
|
|
3
|
+
import { UnsupportedZapperFunctionError } from "./errors.js";
|
|
4
|
+
class ZapperContract extends BaseContract {
|
|
5
|
+
sdk;
|
|
6
|
+
pool;
|
|
7
|
+
type;
|
|
8
|
+
baseParams;
|
|
9
|
+
tokenIn;
|
|
10
|
+
tokenOut;
|
|
11
|
+
constructor(sdk, data, abi = iZapperAbi, namePrefix = "Zapper") {
|
|
12
|
+
super(sdk, {
|
|
13
|
+
addr: data.baseParams.addr,
|
|
14
|
+
abi,
|
|
15
|
+
name: `${namePrefix}(${sdk.labelAddress(data.baseParams.addr)})`,
|
|
16
|
+
version: data.baseParams.version,
|
|
17
|
+
contractType: data.baseParams.contractType
|
|
18
|
+
});
|
|
19
|
+
this.sdk = sdk;
|
|
20
|
+
this.pool = data.pool;
|
|
21
|
+
this.type = data.type;
|
|
22
|
+
this.baseParams = data.baseParams;
|
|
23
|
+
this.tokenIn = data.tokenIn;
|
|
24
|
+
this.tokenOut = data.tokenOut;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Decodes zapper calldata into {@link ParsedZapperOperation}.
|
|
28
|
+
* Throws {@link UnsupportedZapperFunctionError} for unknown selectors.
|
|
29
|
+
*/
|
|
30
|
+
parseOperation(calldata, value) {
|
|
31
|
+
const parsed = this.parseFunctionDataV2(calldata);
|
|
32
|
+
const { rawArgs } = parsed;
|
|
33
|
+
const pool = this.pool;
|
|
34
|
+
const zapper = this.address;
|
|
35
|
+
const underlying = this.sdk.marketRegister.findByPool(pool).underlying;
|
|
36
|
+
const receiver = rawArgs.receiver;
|
|
37
|
+
if (parsed.functionName.startsWith("deposit")) {
|
|
38
|
+
return {
|
|
39
|
+
operation: "Deposit",
|
|
40
|
+
pool,
|
|
41
|
+
zapper,
|
|
42
|
+
receiver,
|
|
43
|
+
assets: rawArgs.tokenInAmount ?? value ?? 0n,
|
|
44
|
+
underlying,
|
|
45
|
+
referralCode: rawArgs.referralCode
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
if (parsed.functionName.startsWith("redeem")) {
|
|
49
|
+
return {
|
|
50
|
+
operation: "Redeem",
|
|
51
|
+
pool,
|
|
52
|
+
zapper,
|
|
53
|
+
receiver,
|
|
54
|
+
shares: rawArgs.tokenOutAmount,
|
|
55
|
+
underlying
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
throw new UnsupportedZapperFunctionError(zapper, parsed.functionName);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Redeems pool shares (diesel tokens) for the underlying asset via this zapper.
|
|
62
|
+
*/
|
|
63
|
+
redeem(tokenInAmount, receiver) {
|
|
64
|
+
return this.createRawTx({
|
|
65
|
+
functionName: "redeem",
|
|
66
|
+
args: [tokenInAmount, receiver]
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Redeems pool shares via this zapper with an EIP-2612 permit signature,
|
|
71
|
+
* skipping a separate approve transaction.
|
|
72
|
+
*/
|
|
73
|
+
redeemWithPermit(tokenInAmount, receiver, deadline, v, r, s) {
|
|
74
|
+
return this.createRawTx({
|
|
75
|
+
functionName: "redeemWithPermit",
|
|
76
|
+
args: [tokenInAmount, receiver, deadline, v, r, s]
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export {
|
|
81
|
+
ZapperContract
|
|
82
|
+
};
|