@gearbox-protocol/sdk 14.11.3 → 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/common-utils/utils/index.js +2 -0
- package/dist/cjs/{history/trace-utils.js → common-utils/utils/trace.js} +62 -5
- package/dist/cjs/dev/AccountOpener.js +7 -13
- package/dist/cjs/dev/index.js +3 -1
- package/dist/cjs/dev/verifyTestnet.js +52 -0
- package/dist/cjs/history/assembleOperations.js +6 -6
- package/dist/cjs/history/classifyMulticallOperations.js +33 -25
- package/dist/cjs/history/index.js +0 -2
- package/dist/cjs/history/mapOperations.js +7 -0
- package/dist/cjs/history/parseCreditAccountTransaction.js +5 -6
- package/dist/cjs/history/toLegacyOperation.js +5 -1
- 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 +61 -37
- package/dist/cjs/plugins/adapters/contracts/AbstractCurveAdapter.js +66 -0
- package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +9 -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/{history/internal-types.js → plugins/adapters/transfers.js} +2 -2
- package/dist/cjs/preview/index.js +26 -0
- package/dist/cjs/preview/package.json +1 -0
- package/dist/cjs/preview/parse/classifyInnerOperations.js +105 -0
- package/dist/cjs/preview/parse/errors.js +50 -0
- package/dist/cjs/preview/parse/index.js +34 -0
- package/dist/cjs/preview/parse/parseFacadeOperationCalldata.js +108 -0
- package/dist/cjs/preview/parse/parseOperationCalldata.js +85 -0
- package/dist/cjs/preview/parse/parsePoolOperationCalldata.js +89 -0
- package/dist/cjs/preview/parse/parseRWAFactoryOperationCalldata.js +104 -0
- package/dist/cjs/{history/inner-operations.js → preview/parse/types-adapters.js} +2 -2
- package/dist/cjs/preview/parse/types-facades.js +16 -0
- package/dist/cjs/preview/parse/types-pools.js +16 -0
- package/dist/cjs/preview/parse/types-rwa.js +16 -0
- package/dist/cjs/preview/parse/types.js +44 -0
- package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +78 -0
- package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +95 -0
- package/dist/cjs/preview/prerequisites/Prerequisite.js +85 -0
- package/dist/cjs/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +66 -0
- package/dist/cjs/preview/prerequisites/buildPrerequisites.js +297 -0
- package/dist/cjs/preview/prerequisites/index.js +36 -0
- package/dist/cjs/preview/prerequisites/prepareAction.js +48 -0
- package/dist/cjs/preview/prerequisites/runPrerequisites.js +71 -0
- package/dist/cjs/preview/prerequisites/types.js +16 -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/preview/preview/unwrapNativeCollateral.js +45 -0
- package/dist/cjs/preview/simulate/errors.js +91 -0
- package/dist/cjs/preview/simulate/index.js +40 -0
- package/dist/cjs/preview/simulate/simulateFacadeOperation.js +30 -0
- package/dist/cjs/preview/simulate/simulateOperation.js +41 -0
- package/dist/cjs/preview/simulate/simulatePoolOperation.js +91 -0
- package/dist/cjs/preview/simulate/simulateRWAOperation.js +30 -0
- package/dist/cjs/preview/simulate/types.js +16 -0
- package/dist/cjs/{history → preview/trace}/errors.js +0 -26
- package/dist/cjs/preview/trace/extractAdapterCallTraces.js +58 -0
- package/dist/cjs/{history → preview/trace}/extractTransfers.js +9 -12
- package/dist/cjs/{history → preview/trace}/findFacadeCalls.js +3 -3
- package/dist/cjs/preview/trace/index.js +30 -0
- package/dist/cjs/preview/trace/types.js +16 -0
- package/dist/cjs/sdk/MultichainSDK.js +1 -0
- package/dist/cjs/sdk/OnchainSDK.js +7 -3
- package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +157 -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/sdk/market/zapper/{Zapper.js → errors.js} +13 -23
- 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/common-utils/utils/index.js +1 -0
- package/dist/esm/common-utils/utils/trace.js +93 -0
- package/dist/esm/dev/AccountOpener.js +8 -13
- package/dist/esm/dev/index.js +1 -0
- package/dist/esm/dev/verifyTestnet.js +27 -0
- package/dist/esm/history/assembleOperations.js +8 -6
- package/dist/esm/history/classifyMulticallOperations.js +31 -23
- package/dist/esm/history/index.js +0 -1
- package/dist/esm/history/mapOperations.js +7 -0
- package/dist/esm/history/parseCreditAccountTransaction.js +3 -4
- package/dist/esm/history/toLegacyOperation.js +5 -1
- 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 +64 -38
- package/dist/esm/plugins/adapters/contracts/AbstractCurveAdapter.js +42 -0
- package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +9 -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 +3 -0
- package/dist/esm/preview/package.json +1 -0
- package/dist/esm/preview/parse/classifyInnerOperations.js +81 -0
- package/dist/esm/preview/parse/errors.js +24 -0
- package/dist/esm/preview/parse/index.js +7 -0
- package/dist/esm/preview/parse/parseFacadeOperationCalldata.js +84 -0
- package/dist/esm/preview/parse/parseOperationCalldata.js +66 -0
- package/dist/esm/preview/parse/parsePoolOperationCalldata.js +65 -0
- package/dist/esm/preview/parse/parseRWAFactoryOperationCalldata.js +85 -0
- package/dist/esm/preview/parse/types-facades.js +0 -0
- package/dist/esm/preview/parse/types-pools.js +0 -0
- package/dist/esm/preview/parse/types-rwa.js +0 -0
- package/dist/esm/preview/parse/types.js +14 -0
- package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +57 -0
- package/dist/esm/preview/prerequisites/BalancePrerequisite.js +74 -0
- package/dist/esm/preview/prerequisites/Prerequisite.js +63 -0
- package/dist/esm/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +42 -0
- package/dist/esm/preview/prerequisites/buildPrerequisites.js +279 -0
- package/dist/esm/preview/prerequisites/index.js +8 -0
- package/dist/esm/preview/prerequisites/prepareAction.js +23 -0
- package/dist/esm/preview/prerequisites/runPrerequisites.js +47 -0
- package/dist/esm/preview/prerequisites/types.js +0 -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 +69 -0
- package/dist/esm/preview/simulate/index.js +12 -0
- package/dist/esm/preview/simulate/simulateFacadeOperation.js +6 -0
- package/dist/esm/preview/simulate/simulateOperation.js +20 -0
- package/dist/esm/preview/simulate/simulatePoolOperation.js +67 -0
- package/dist/esm/preview/simulate/simulateRWAOperation.js +6 -0
- package/dist/esm/preview/simulate/types.js +0 -0
- package/dist/esm/{history → preview/trace}/errors.js +0 -24
- package/dist/esm/preview/trace/extractAdapterCallTraces.js +40 -0
- package/dist/esm/{history → preview/trace}/extractTransfers.js +9 -12
- package/dist/esm/{history → preview/trace}/findFacadeCalls.js +4 -2
- package/dist/esm/preview/trace/index.js +5 -0
- package/dist/esm/preview/trace/types.js +0 -0
- package/dist/esm/sdk/MultichainSDK.js +1 -0
- package/dist/esm/sdk/OnchainSDK.js +7 -3
- package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +158 -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/index.d.ts +1 -0
- 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/trace.d.ts +73 -0
- 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/dev/index.d.ts +1 -0
- package/dist/types/dev/verifyTestnet.d.ts +24 -0
- package/dist/types/history/assembleOperations.d.ts +11 -6
- package/dist/types/history/classifyMulticallOperations.d.ts +21 -9
- package/dist/types/history/index.d.ts +0 -1
- package/dist/types/history/mapOperations.d.ts +7 -9
- package/dist/types/history/types.d.ts +22 -71
- 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 +33 -16
- package/dist/types/plugins/adapters/contracts/AbstractCurveAdapter.d.ts +18 -0
- package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +10 -1
- 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 +5 -3
- package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +9 -7
- 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 +3 -3
- 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 +5 -3
- package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +5 -3
- package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +5 -3
- 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 +5 -3
- package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +5 -3
- package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +5 -3
- 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 +4 -2
- package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +3 -1
- package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +5 -3
- 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 +5 -3
- package/dist/types/plugins/adapters/transferHelpers.d.ts +1 -1
- package/dist/types/plugins/adapters/transfers.d.ts +17 -0
- package/dist/types/plugins/adapters/types.d.ts +18 -46
- package/dist/types/preview/index.d.ts +3 -0
- package/dist/types/preview/parse/classifyInnerOperations.d.ts +19 -0
- package/dist/types/preview/parse/errors.d.ts +18 -0
- package/dist/types/preview/parse/index.d.ts +7 -0
- package/dist/types/preview/parse/parseFacadeOperationCalldata.d.ts +19 -0
- package/dist/types/preview/parse/parseOperationCalldata.d.ts +23 -0
- package/dist/types/preview/parse/parsePoolOperationCalldata.d.ts +17 -0
- package/dist/types/preview/parse/parseRWAFactoryOperationCalldata.d.ts +22 -0
- package/dist/types/preview/parse/types-adapters.d.ts +73 -0
- package/dist/types/preview/parse/types-facades.d.ts +147 -0
- package/dist/types/preview/parse/types-pools.d.ts +143 -0
- package/dist/types/preview/parse/types-rwa.d.ts +48 -0
- package/dist/types/preview/parse/types.d.ts +49 -0
- package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +22 -0
- package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +26 -0
- package/dist/types/preview/prerequisites/Prerequisite.d.ts +60 -0
- package/dist/types/preview/prerequisites/RWAOpenRequirementsPrerequisite.d.ts +36 -0
- package/dist/types/preview/prerequisites/buildPrerequisites.d.ts +25 -0
- package/dist/types/preview/prerequisites/index.d.ts +8 -0
- package/dist/types/preview/prerequisites/prepareAction.d.ts +52 -0
- package/dist/types/preview/prerequisites/runPrerequisites.d.ts +12 -0
- package/dist/types/preview/prerequisites/types.d.ts +80 -0
- 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 +45 -0
- package/dist/types/preview/simulate/index.d.ts +10 -0
- package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +23 -0
- package/dist/types/preview/simulate/simulateOperation.d.ts +18 -0
- package/dist/types/preview/simulate/simulatePoolOperation.d.ts +14 -0
- package/dist/types/preview/simulate/simulateRWAOperation.d.ts +23 -0
- package/dist/types/preview/simulate/types.d.ts +52 -0
- package/dist/types/{history → preview/trace}/errors.d.ts +0 -10
- package/dist/types/preview/trace/extractAdapterCallTraces.d.ts +23 -0
- package/dist/types/{history → preview/trace}/extractTransfers.d.ts +14 -5
- package/dist/types/{history → preview/trace}/findFacadeCalls.d.ts +3 -2
- package/dist/types/preview/trace/index.d.ts +5 -0
- package/dist/types/preview/trace/types.d.ts +21 -0
- 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 +22 -2
- package/dist/types/sdk/accounts/types.d.ts +84 -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 +8 -3
- package/dist/cjs/history/extractProtocolCalls.js +0 -53
- package/dist/esm/history/extractProtocolCalls.js +0 -32
- package/dist/esm/history/trace-utils.js +0 -36
- package/dist/esm/sdk/market/zapper/Zapper.js +0 -23
- package/dist/types/history/extractProtocolCalls.d.ts +0 -8
- package/dist/types/history/inner-operations.d.ts +0 -57
- package/dist/types/history/internal-types.d.ts +0 -47
- package/dist/types/history/trace-utils.d.ts +0 -12
- package/dist/types/sdk/market/zapper/Zapper.d.ts +0 -13
- /package/dist/esm/{history/inner-operations.js → plugins/adapters/transfers.js} +0 -0
- /package/dist/esm/{history/internal-types.js → preview/parse/types-adapters.js} +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
decodeAbiParameters,
|
|
3
|
+
isAddressEqual,
|
|
4
|
+
toFunctionSelector
|
|
5
|
+
} from "viem";
|
|
6
|
+
import {
|
|
7
|
+
resolveProtocolCall
|
|
8
|
+
} from "../../common-utils/utils/trace.js";
|
|
9
|
+
const WITHDRAW_PHANTOM_TOKEN_SELECTOR = toFunctionSelector(
|
|
10
|
+
"withdrawPhantomToken(address,uint256)"
|
|
11
|
+
);
|
|
12
|
+
const GET_PHANTOM_TOKEN_INFO_SELECTOR = toFunctionSelector(
|
|
13
|
+
"getPhantomTokenInfo()"
|
|
14
|
+
);
|
|
15
|
+
function isSynthesizedPhantomWithdrawal(siblings, index) {
|
|
16
|
+
const node = siblings[index];
|
|
17
|
+
if (node.type !== "CALL" || node.input.slice(0, 10).toLowerCase() !== WITHDRAW_PHANTOM_TOKEN_SELECTOR) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
const [token] = decodeAbiParameters(
|
|
21
|
+
[{ type: "address" }, { type: "uint256" }],
|
|
22
|
+
`0x${node.input.slice(10)}`
|
|
23
|
+
);
|
|
24
|
+
for (let i = 0; i < index; i++) {
|
|
25
|
+
const sib = siblings[i];
|
|
26
|
+
if (sib.type === "STATICCALL" && sib.input.slice(0, 10).toLowerCase() === GET_PHANTOM_TOKEN_INFO_SELECTOR && isAddressEqual(sib.to, token)) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
function extractAdapterCallTraces(facadeTrace) {
|
|
33
|
+
const subtraces = facadeTrace.calls ?? [];
|
|
34
|
+
return subtraces.filter(
|
|
35
|
+
(sub, index) => resolveProtocolCall(sub) !== void 0 && !isSynthesizedPhantomWithdrawal(subtraces, index)
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
export {
|
|
39
|
+
extractAdapterCallTraces
|
|
40
|
+
};
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
isAddressEqual,
|
|
4
4
|
parseEventLogs
|
|
5
5
|
} from "viem";
|
|
6
|
-
import { iCreditFacadeV310Abi } from "
|
|
7
|
-
import { ierc20Abi } from "
|
|
8
|
-
import { AddressMap } from "
|
|
6
|
+
import { iCreditFacadeV310Abi } from "../../abi/310/generated.js";
|
|
7
|
+
import { ierc20Abi } from "../../abi/iERC20.js";
|
|
8
|
+
import { AddressMap } from "../../sdk/index.js";
|
|
9
9
|
import { UnexpectedFacadeEventOrderError } from "./errors.js";
|
|
10
10
|
function extractTransfers(logs, creditAccount, pool, creditFacade) {
|
|
11
11
|
const ranges = buildOperationRanges(logs, creditFacade, creditAccount);
|
|
@@ -14,7 +14,7 @@ function extractTransfers(logs, creditAccount, pool, creditFacade) {
|
|
|
14
14
|
return !!e && (e.eventName === "LiquidateCreditAccount" || e.eventName === "PartiallyLiquidateCreditAccount") && isAddressEqual(e.args.creditAccount, creditAccount);
|
|
15
15
|
});
|
|
16
16
|
let currentEntries = [];
|
|
17
|
-
const
|
|
17
|
+
const executeTransfers = [];
|
|
18
18
|
const directTransfers = [];
|
|
19
19
|
const phantomTokens = new AddressMap();
|
|
20
20
|
const withdrawCollateralEvents = [];
|
|
@@ -23,20 +23,17 @@ function extractTransfers(logs, creditAccount, pool, creditFacade) {
|
|
|
23
23
|
const facadeEvent = tryDecodeFacadeEvent(log, creditFacade);
|
|
24
24
|
if (facadeEvent) {
|
|
25
25
|
if (isExecute(facadeEvent, creditAccount)) {
|
|
26
|
-
|
|
27
|
-
transfers: currentEntries,
|
|
28
|
-
targetContract: facadeEvent.args.targetContract
|
|
29
|
-
});
|
|
26
|
+
executeTransfers.push(currentEntries);
|
|
30
27
|
} else if (isLiquidation(facadeEvent, creditAccount)) {
|
|
31
28
|
liquidationRemainingFunds = facadeEvent.args.remainingFunds;
|
|
32
29
|
} else if (isWithdrawPhantomToken(facadeEvent, creditAccount)) {
|
|
33
|
-
const
|
|
34
|
-
if (!
|
|
30
|
+
const phantomTransfers = executeTransfers.pop();
|
|
31
|
+
if (!phantomTransfers) {
|
|
35
32
|
throw new Error(
|
|
36
33
|
`WithdrawPhantomToken without preceding Execute at logIndex ${facadeEvent.logIndex}`
|
|
37
34
|
);
|
|
38
35
|
}
|
|
39
|
-
const rawDeposit =
|
|
36
|
+
const rawDeposit = phantomTransfers.find(
|
|
40
37
|
(t) => isAddressEqual(t.to, creditAccount)
|
|
41
38
|
);
|
|
42
39
|
if (!rawDeposit) {
|
|
@@ -80,7 +77,7 @@ function extractTransfers(logs, creditAccount, pool, creditFacade) {
|
|
|
80
77
|
}
|
|
81
78
|
}
|
|
82
79
|
return {
|
|
83
|
-
|
|
80
|
+
executeTransfers,
|
|
84
81
|
directTransfers,
|
|
85
82
|
liquidationRemainingFunds,
|
|
86
83
|
phantomTokens,
|
|
@@ -2,9 +2,11 @@ import {
|
|
|
2
2
|
decodeFunctionResult,
|
|
3
3
|
isAddressEqual
|
|
4
4
|
} from "viem";
|
|
5
|
-
import { iCreditFacadeV310Abi } from "
|
|
5
|
+
import { iCreditFacadeV310Abi } from "../../abi/310/generated.js";
|
|
6
|
+
import {
|
|
7
|
+
collectTraces
|
|
8
|
+
} from "../../common-utils/utils/trace.js";
|
|
6
9
|
import { UnknownFacadeCallError } from "./errors.js";
|
|
7
|
-
import { collectTraces } from "./trace-utils.js";
|
|
8
10
|
const FACADE_CALL_TYPES = {
|
|
9
11
|
multicall: "MultiCall",
|
|
10
12
|
botMulticall: "BotMulticall",
|
|
File without changes
|
|
@@ -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,
|
|
@@ -1547,6 +1546,160 @@ class CreditAccountsServiceV310 extends SDKConstruct {
|
|
|
1547
1546
|
callsWithPrices
|
|
1548
1547
|
);
|
|
1549
1548
|
}
|
|
1549
|
+
/**
|
|
1550
|
+
* {@inheritDoc ICreditAccountsService.prependPriceUpdates}
|
|
1551
|
+
*/
|
|
1552
|
+
async prependPriceUpdates(creditManager, calls, creditAccount, options) {
|
|
1553
|
+
return this.#prependPriceUpdates(
|
|
1554
|
+
creditManager,
|
|
1555
|
+
calls,
|
|
1556
|
+
creditAccount,
|
|
1557
|
+
options
|
|
1558
|
+
);
|
|
1559
|
+
}
|
|
1560
|
+
/**
|
|
1561
|
+
* {@inheritDoc ICreditAccountsService.assembleCaUpdateCalls}
|
|
1562
|
+
*/
|
|
1563
|
+
assembleCaUpdateCalls({
|
|
1564
|
+
operations,
|
|
1565
|
+
routerCallGroups,
|
|
1566
|
+
creditFacade,
|
|
1567
|
+
withdrawTo,
|
|
1568
|
+
creditAccount,
|
|
1569
|
+
underlyingToken
|
|
1570
|
+
}) {
|
|
1571
|
+
const calls = [];
|
|
1572
|
+
let swapGroupIndex = 0;
|
|
1573
|
+
let routerGroupsConsumed = 0;
|
|
1574
|
+
for (const op of operations) {
|
|
1575
|
+
switch (op.type) {
|
|
1576
|
+
case "increaseDebt":
|
|
1577
|
+
calls.push(this.#prepareIncreaseDebt(creditFacade, op.amount));
|
|
1578
|
+
break;
|
|
1579
|
+
case "decreaseDebt":
|
|
1580
|
+
calls.push(this.#prepareChangeDebt(creditFacade, op.amount, true));
|
|
1581
|
+
break;
|
|
1582
|
+
case "addCollateral":
|
|
1583
|
+
calls.push(
|
|
1584
|
+
...this.#prepareAddCollateral(
|
|
1585
|
+
creditFacade,
|
|
1586
|
+
[{ token: op.token, balance: op.amount }],
|
|
1587
|
+
{}
|
|
1588
|
+
)
|
|
1589
|
+
);
|
|
1590
|
+
break;
|
|
1591
|
+
case "withdrawCollateral":
|
|
1592
|
+
calls.push(
|
|
1593
|
+
this.#prepareWithdrawToken(
|
|
1594
|
+
creditFacade,
|
|
1595
|
+
op.token,
|
|
1596
|
+
op.amount,
|
|
1597
|
+
withdrawTo
|
|
1598
|
+
)
|
|
1599
|
+
);
|
|
1600
|
+
break;
|
|
1601
|
+
case "swap": {
|
|
1602
|
+
const routerCalls = routerCallGroups[swapGroupIndex];
|
|
1603
|
+
if (!routerCalls) {
|
|
1604
|
+
throw new Error(
|
|
1605
|
+
`assembleCaUpdateCalls: missing router calls for swap leg ${swapGroupIndex}`
|
|
1606
|
+
);
|
|
1607
|
+
}
|
|
1608
|
+
calls.push(...routerCalls);
|
|
1609
|
+
swapGroupIndex += 1;
|
|
1610
|
+
routerGroupsConsumed += 1;
|
|
1611
|
+
break;
|
|
1612
|
+
}
|
|
1613
|
+
case "changeQuota": {
|
|
1614
|
+
const quotaAssets = [...op.quotaIncrease, ...op.quotaDecrease];
|
|
1615
|
+
if (quotaAssets.length === 0) {
|
|
1616
|
+
break;
|
|
1617
|
+
}
|
|
1618
|
+
calls.push(
|
|
1619
|
+
...this.#prepareUpdateQuotas(creditFacade, {
|
|
1620
|
+
averageQuota: quotaAssets,
|
|
1621
|
+
minQuota: quotaAssets
|
|
1622
|
+
})
|
|
1623
|
+
);
|
|
1624
|
+
break;
|
|
1625
|
+
}
|
|
1626
|
+
case "closeCreditAccount": {
|
|
1627
|
+
for (const group of routerCallGroups) {
|
|
1628
|
+
calls.push(...group);
|
|
1629
|
+
routerGroupsConsumed += 1;
|
|
1630
|
+
}
|
|
1631
|
+
calls.push(
|
|
1632
|
+
...this.#prepareDisableQuotas({
|
|
1633
|
+
creditFacade,
|
|
1634
|
+
tokens: Object.entries(creditAccount.initialQuotas).map(
|
|
1635
|
+
([token, { quota }]) => ({
|
|
1636
|
+
token,
|
|
1637
|
+
quota
|
|
1638
|
+
})
|
|
1639
|
+
)
|
|
1640
|
+
})
|
|
1641
|
+
);
|
|
1642
|
+
if (creditAccount.debt > 0n) {
|
|
1643
|
+
calls.push(
|
|
1644
|
+
...this.#prepareDecreaseDebt({
|
|
1645
|
+
creditFacade,
|
|
1646
|
+
debt: creditAccount.debt
|
|
1647
|
+
})
|
|
1648
|
+
);
|
|
1649
|
+
}
|
|
1650
|
+
const hasAssets = creditAccount.assets.some(
|
|
1651
|
+
(asset) => asset.balance > 0n
|
|
1652
|
+
);
|
|
1653
|
+
if (hasAssets) {
|
|
1654
|
+
calls.push(
|
|
1655
|
+
this.#prepareWithdrawToken(
|
|
1656
|
+
creditFacade,
|
|
1657
|
+
underlyingToken,
|
|
1658
|
+
MAX_UINT256,
|
|
1659
|
+
withdrawTo
|
|
1660
|
+
)
|
|
1661
|
+
);
|
|
1662
|
+
}
|
|
1663
|
+
break;
|
|
1664
|
+
}
|
|
1665
|
+
default: {
|
|
1666
|
+
const _exhaustive = op;
|
|
1667
|
+
throw new Error(
|
|
1668
|
+
`assembleCaUpdateCalls: unsupported operation ${_exhaustive}`
|
|
1669
|
+
);
|
|
1670
|
+
}
|
|
1671
|
+
}
|
|
1672
|
+
}
|
|
1673
|
+
if (routerGroupsConsumed !== routerCallGroups.length) {
|
|
1674
|
+
throw new Error(
|
|
1675
|
+
`assembleCaUpdateCalls: router call group mismatch (consumed ${routerGroupsConsumed}, got ${routerCallGroups.length})`
|
|
1676
|
+
);
|
|
1677
|
+
}
|
|
1678
|
+
return calls;
|
|
1679
|
+
}
|
|
1680
|
+
/**
|
|
1681
|
+
* {@inheritDoc ICreditAccountsService.executeCaUpdate}
|
|
1682
|
+
*/
|
|
1683
|
+
async executeCaUpdate(creditAccount, calls, options) {
|
|
1684
|
+
const cm = this.sdk.marketRegister.findCreditManager(
|
|
1685
|
+
creditAccount.creditManager
|
|
1686
|
+
);
|
|
1687
|
+
const callsWithPrices = await this.#prependPriceUpdates(
|
|
1688
|
+
creditAccount.creditManager,
|
|
1689
|
+
calls,
|
|
1690
|
+
creditAccount,
|
|
1691
|
+
{ ignoreReservePrices: options?.ignoreReservePrices }
|
|
1692
|
+
);
|
|
1693
|
+
const tx = await this.#multicallTx(
|
|
1694
|
+
cm,
|
|
1695
|
+
creditAccount.creditAccount,
|
|
1696
|
+
callsWithPrices
|
|
1697
|
+
);
|
|
1698
|
+
if (options?.ethAmount && options.ethAmount > 0n) {
|
|
1699
|
+
tx.value = options.ethAmount.toString(10);
|
|
1700
|
+
}
|
|
1701
|
+
return { tx, calls: callsWithPrices };
|
|
1702
|
+
}
|
|
1550
1703
|
#prepareDisableQuotas(ca) {
|
|
1551
1704
|
const calls = [];
|
|
1552
1705
|
for (const { token, quota } of ca.tokens) {
|
|
@@ -1564,10 +1717,10 @@ class CreditAccountsServiceV310 extends SDKConstruct {
|
|
|
1564
1717
|
return calls;
|
|
1565
1718
|
}
|
|
1566
1719
|
#prepareUpdateQuotas(creditFacade, { averageQuota, minQuota }) {
|
|
1567
|
-
const minRecord =
|
|
1720
|
+
const minRecord = new AssetsMap(minQuota);
|
|
1568
1721
|
const calls = averageQuota.map((q) => {
|
|
1569
|
-
const
|
|
1570
|
-
const min =
|
|
1722
|
+
const minBalance = minRecord.get(q.token);
|
|
1723
|
+
const min = minBalance && minBalance > 0n ? minBalance : 0n;
|
|
1571
1724
|
return {
|
|
1572
1725
|
target: creditFacade,
|
|
1573
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
|