@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
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
ADDRESS_0X0,
|
|
13
13
|
AddressMap,
|
|
14
14
|
AddressSet,
|
|
15
|
+
AssetsMap,
|
|
15
16
|
childLogger,
|
|
16
17
|
MAX_UINT256,
|
|
17
18
|
PERCENTAGE_FACTOR,
|
|
@@ -373,7 +374,7 @@ class AccountOpener extends SDKConstruct {
|
|
|
373
374
|
}
|
|
374
375
|
async #depositIntoPools(targets) {
|
|
375
376
|
this.#logger?.debug("checking and topping up pools if necessary");
|
|
376
|
-
const minAvailableByPool =
|
|
377
|
+
const minAvailableByPool = new AssetsMap();
|
|
377
378
|
for (let i = 0; i < targets.length; i++) {
|
|
378
379
|
const t = targets[i];
|
|
379
380
|
const leverage = this.#getLeverage(t);
|
|
@@ -381,14 +382,14 @@ class AccountOpener extends SDKConstruct {
|
|
|
381
382
|
const minDebt = this.#minDebtMultiplier * cm.creditFacade.minDebt / PERCENTAGE_FACTOR;
|
|
382
383
|
let amount = minDebt * (leverage - PERCENTAGE_FACTOR) / PERCENTAGE_FACTOR * this.#poolDepositMultiplier / PERCENTAGE_FACTOR;
|
|
383
384
|
amount = amount > cm.creditFacade.maxDebt ? cm.creditFacade.maxDebt : amount;
|
|
384
|
-
minAvailableByPool
|
|
385
|
+
minAvailableByPool.inc(cm.pool, amount);
|
|
385
386
|
this.#logger?.debug(
|
|
386
387
|
`target #${i + 1} (${this.labelAddress(t.target)}) needs ${this.sdk.tokensMeta.formatBN(cm.underlying, amount, { symbol: true })} in pool (leverage: ${Number(leverage / PERCENTAGE_FACTOR)}%)`
|
|
387
388
|
);
|
|
388
389
|
}
|
|
389
390
|
const deposits = [];
|
|
390
|
-
const claims = new
|
|
391
|
-
for (const [p, minAvailable] of
|
|
391
|
+
const claims = new AssetsMap();
|
|
392
|
+
for (const [p, minAvailable] of minAvailableByPool.entries()) {
|
|
392
393
|
const market = this.sdk.marketRegister.findByPool(p);
|
|
393
394
|
const pool = market.pool.pool;
|
|
394
395
|
let diff = minAvailable - pool.availableLiquidity;
|
|
@@ -405,9 +406,7 @@ class AccountOpener extends SDKConstruct {
|
|
|
405
406
|
);
|
|
406
407
|
if (diff > 0n) {
|
|
407
408
|
deposits.push([pool, diff]);
|
|
408
|
-
|
|
409
|
-
claim += diff * PERCENTAGE_FACTOR / 8950n;
|
|
410
|
-
claims.upsert(pool.underlying, claim);
|
|
409
|
+
claims.inc(pool.underlying, diff * PERCENTAGE_FACTOR / 8950n);
|
|
411
410
|
}
|
|
412
411
|
}
|
|
413
412
|
const depositor = await this.#getDepositor();
|
|
@@ -564,18 +563,14 @@ class AccountOpener extends SDKConstruct {
|
|
|
564
563
|
async #prepareBorrower(targets) {
|
|
565
564
|
const borrower = await this.#getBorrower();
|
|
566
565
|
const degenNFTS = {};
|
|
567
|
-
const claims = new
|
|
566
|
+
const claims = new AssetsMap();
|
|
568
567
|
for (const target of targets) {
|
|
569
568
|
const cm = this.sdk.marketRegister.findCreditManager(
|
|
570
569
|
target.creditManager
|
|
571
570
|
);
|
|
572
|
-
const market = this.sdk.marketRegister.findByCreditManager(
|
|
573
|
-
target.creditManager
|
|
574
|
-
);
|
|
575
571
|
const { degenNFT } = cm.creditFacade;
|
|
576
572
|
const minDebt = this.#minDebtMultiplier * cm.creditFacade.minDebt / PERCENTAGE_FACTOR;
|
|
577
|
-
|
|
578
|
-
claims.upsert(cm.underlying, claim + minDebt * 11n / 10n);
|
|
573
|
+
claims.inc(cm.underlying, minDebt * 11n / 10n);
|
|
579
574
|
if (isAddress(degenNFT) && degenNFT !== ADDRESS_0X0) {
|
|
580
575
|
degenNFTS[degenNFT] = (degenNFTS[degenNFT] ?? 0) + 1;
|
|
581
576
|
}
|
package/dist/esm/dev/index.js
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { iOnchainExecutionIdAbi } from "./abi.js";
|
|
2
|
+
const ONCHAIN_EXECUTION_ID_ADDRESS = "0x34131bc13eaa4ef5f98c2a423f93bc88d6ee01ba";
|
|
3
|
+
async function verifyTestnet(client, expected) {
|
|
4
|
+
try {
|
|
5
|
+
const { deployer, executionId, forkAlias } = await client.readContract({
|
|
6
|
+
abi: iOnchainExecutionIdAbi,
|
|
7
|
+
address: ONCHAIN_EXECUTION_ID_ADDRESS,
|
|
8
|
+
functionName: "info"
|
|
9
|
+
});
|
|
10
|
+
if (deployer !== "anvil-manager") {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
if ("executionId" in expected && expected.executionId && expected.executionId !== executionId) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
if ("alias" in expected && expected.alias && expected.alias !== forkAlias) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
} catch {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
ONCHAIN_EXECUTION_ID_ADDRESS,
|
|
26
|
+
verifyTestnet
|
|
27
|
+
};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { AbstractAdapterContract } from "../plugins/adapters/index.js";
|
|
2
|
+
import {
|
|
3
|
+
extractAdapterCallTraces
|
|
4
|
+
} from "../preview/trace/index.js";
|
|
2
5
|
import { classifyMulticallOperations } from "./classifyMulticallOperations.js";
|
|
3
|
-
import { extractProtocolCalls } from "./extractProtocolCalls.js";
|
|
4
6
|
function assembleOperations(input) {
|
|
5
7
|
const {
|
|
6
8
|
facadeCalls,
|
|
7
|
-
|
|
9
|
+
executeTransfers,
|
|
8
10
|
register,
|
|
9
11
|
underlying,
|
|
10
12
|
liquidationRemainingFunds,
|
|
@@ -19,7 +21,7 @@ function assembleOperations(input) {
|
|
|
19
21
|
return assemblePartialLiquidation(fc);
|
|
20
22
|
}
|
|
21
23
|
const count = countAdapterCalls(fc.innerCalls, register);
|
|
22
|
-
const sliced =
|
|
24
|
+
const sliced = executeTransfers.slice(executeOffset, executeOffset + count);
|
|
23
25
|
executeOffset += count;
|
|
24
26
|
const withdrawCount = countWithdrawCollateralCalls(fc.innerCalls);
|
|
25
27
|
const slicedWithdrawEvents = withdrawCollateralEvents.slice(
|
|
@@ -27,11 +29,11 @@ function assembleOperations(input) {
|
|
|
27
29
|
withdrawOffset + withdrawCount
|
|
28
30
|
);
|
|
29
31
|
withdrawOffset += withdrawCount;
|
|
30
|
-
const
|
|
32
|
+
const adapterTraces = extractAdapterCallTraces(fc.trace);
|
|
31
33
|
const multicall = classifyMulticallOperations({
|
|
32
34
|
innerCalls: fc.innerCalls,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
executeTransfers: sliced,
|
|
36
|
+
adapterTraces,
|
|
35
37
|
register,
|
|
36
38
|
creditAccount: fc.creditAccount,
|
|
37
39
|
underlying,
|
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
TransferAlignmentError,
|
|
9
9
|
UnknownAdapterError,
|
|
10
10
|
WithdrawCollateralAlignmentError
|
|
11
|
-
} from "
|
|
11
|
+
} from "../preview/trace/index.js";
|
|
12
12
|
function classifyMulticallOperations(input) {
|
|
13
13
|
const {
|
|
14
14
|
innerCalls,
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
executeTransfers,
|
|
16
|
+
adapterTraces,
|
|
17
17
|
register,
|
|
18
18
|
creditAccount,
|
|
19
19
|
underlying,
|
|
@@ -28,20 +28,28 @@ function classifyMulticallOperations(input) {
|
|
|
28
28
|
const contract = register.getContract(call.target);
|
|
29
29
|
if (contract instanceof AbstractAdapterContract) {
|
|
30
30
|
const idx = transferIdx++;
|
|
31
|
-
const
|
|
32
|
-
if (!
|
|
33
|
-
throw new TransferAlignmentError(
|
|
31
|
+
const transfers2 = executeTransfers[idx];
|
|
32
|
+
if (!transfers2) {
|
|
33
|
+
throw new TransferAlignmentError(executeTransfers.length, transferIdx);
|
|
34
34
|
}
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
const partial = contract.parseAdapterOperation(
|
|
35
|
+
const protocol = contract.parseProtocolCall(adapterTraces[idx], strict);
|
|
36
|
+
const legacy = contract.classifyLegacyOperation(
|
|
38
37
|
call,
|
|
39
|
-
transfers2,
|
|
40
|
-
creditAccount,
|
|
41
|
-
protocolCalldata,
|
|
42
|
-
strict
|
|
38
|
+
toNetTransfers(transfers2, creditAccount)
|
|
43
39
|
);
|
|
44
|
-
|
|
40
|
+
result.push({
|
|
41
|
+
operation: "Execute",
|
|
42
|
+
adapter: call.target,
|
|
43
|
+
adapterType: call.contractType,
|
|
44
|
+
version: call.version,
|
|
45
|
+
label: call.label,
|
|
46
|
+
adapterFunctionName: call.functionName,
|
|
47
|
+
adapterArgs: call.rawArgs,
|
|
48
|
+
calldata: call.calldata,
|
|
49
|
+
protocol,
|
|
50
|
+
transfers: transfers2,
|
|
51
|
+
legacy
|
|
52
|
+
});
|
|
45
53
|
continue;
|
|
46
54
|
}
|
|
47
55
|
if (contract !== void 0) {
|
|
@@ -60,23 +68,23 @@ function classifyMulticallOperations(input) {
|
|
|
60
68
|
throw new UnknownAdapterError(call.target);
|
|
61
69
|
}
|
|
62
70
|
const unknownIdx = transferIdx++;
|
|
63
|
-
const
|
|
64
|
-
if (!
|
|
65
|
-
throw new TransferAlignmentError(
|
|
71
|
+
const transfers = executeTransfers[unknownIdx];
|
|
72
|
+
if (!transfers) {
|
|
73
|
+
throw new TransferAlignmentError(executeTransfers.length, transferIdx);
|
|
66
74
|
}
|
|
67
|
-
const { transfers, targetContract } = unknownResult;
|
|
68
75
|
const netTransfers = toNetTransfers(transfers, creditAccount);
|
|
69
76
|
result.push({
|
|
70
77
|
operation: "Execute",
|
|
71
78
|
adapter: call.target,
|
|
72
|
-
protocol: targetContract,
|
|
73
79
|
adapterType: call.contractType,
|
|
74
80
|
version: call.version,
|
|
75
81
|
label: call.label,
|
|
76
82
|
adapterFunctionName: call.functionName,
|
|
77
83
|
adapterArgs: call.rawArgs,
|
|
78
|
-
|
|
79
|
-
|
|
84
|
+
calldata: call.calldata,
|
|
85
|
+
// Unknown adapter (non-strict): we have no ABI to decode the protocol
|
|
86
|
+
// call, so `protocol` is left absent rather than filled with placeholders.
|
|
87
|
+
protocol: void 0,
|
|
80
88
|
transfers,
|
|
81
89
|
legacy: {
|
|
82
90
|
operation: "Swap",
|
|
@@ -84,8 +92,8 @@ function classifyMulticallOperations(input) {
|
|
|
84
92
|
}
|
|
85
93
|
});
|
|
86
94
|
}
|
|
87
|
-
if (transferIdx !==
|
|
88
|
-
throw new TransferAlignmentError(
|
|
95
|
+
if (transferIdx !== executeTransfers.length) {
|
|
96
|
+
throw new TransferAlignmentError(executeTransfers.length, transferIdx);
|
|
89
97
|
}
|
|
90
98
|
if (withdrawCollateralEvents && withdrawCollateralEvents.length > 0 && withdrawIdx !== withdrawCollateralEvents.length) {
|
|
91
99
|
throw new WithdrawCollateralAlignmentError(
|
|
@@ -12,6 +12,13 @@ function mapInnerOperation(op, visitor, ctx) {
|
|
|
12
12
|
return visitor.WithdrawCollateral(op, ctx);
|
|
13
13
|
case "UpdateQuota":
|
|
14
14
|
return visitor.UpdateQuota(op, ctx);
|
|
15
|
+
// The history classifier never emits other InnerOperation variants
|
|
16
|
+
// (e.g. StoreExpectedBalances/CompareBalances, which it drops), so this
|
|
17
|
+
// guards against silently returning undefined if that ever changes.
|
|
18
|
+
default:
|
|
19
|
+
throw new Error(
|
|
20
|
+
`unexpected inner operation: ${op.operation}`
|
|
21
|
+
);
|
|
15
22
|
}
|
|
16
23
|
}
|
|
17
24
|
function mapOuterOperation(op, visitor) {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
+
import { extractTransfers, findFacadeCalls } from "../preview/trace/index.js";
|
|
1
2
|
import { assembleOperations } from "./assembleOperations.js";
|
|
2
|
-
import { extractTransfers } from "./extractTransfers.js";
|
|
3
|
-
import { findFacadeCalls } from "./findFacadeCalls.js";
|
|
4
3
|
function parseCreditAccountTransaction(input) {
|
|
5
4
|
const {
|
|
6
5
|
trace,
|
|
@@ -25,7 +24,7 @@ function parseCreditAccountTransaction(input) {
|
|
|
25
24
|
strict
|
|
26
25
|
);
|
|
27
26
|
const {
|
|
28
|
-
|
|
27
|
+
executeTransfers,
|
|
29
28
|
directTransfers,
|
|
30
29
|
liquidationRemainingFunds,
|
|
31
30
|
phantomTokens,
|
|
@@ -40,7 +39,7 @@ function parseCreditAccountTransaction(input) {
|
|
|
40
39
|
};
|
|
41
40
|
const facadeOps = assembleOperations({
|
|
42
41
|
facadeCalls,
|
|
43
|
-
|
|
42
|
+
executeTransfers,
|
|
44
43
|
register,
|
|
45
44
|
underlying,
|
|
46
45
|
liquidationRemainingFunds,
|
|
@@ -24,7 +24,11 @@ function createLegacyVisitor(params) {
|
|
|
24
24
|
blockNum: ctx.blockNumber,
|
|
25
25
|
timestamp: ctx.timestamp,
|
|
26
26
|
sessionId: params.sessionId,
|
|
27
|
-
protocol
|
|
27
|
+
// `protocol` may be absent (migrator adapter, unknown adapter in
|
|
28
|
+
// non-strict mode, or undecodable calldata). The deprecated charts
|
|
29
|
+
// output still needs an address, so fall back to the on-chain adapter
|
|
30
|
+
// address, which is the closest meaningful value.
|
|
31
|
+
protocol: op.protocol?.contract ?? op.adapter
|
|
28
32
|
};
|
|
29
33
|
},
|
|
30
34
|
IncreaseBorrowedAmount(op, ctx) {
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
const iConvexV1BoosterAdapterAbi = [
|
|
2
|
+
{
|
|
3
|
+
type: "function",
|
|
4
|
+
inputs: [],
|
|
5
|
+
name: "contractType",
|
|
6
|
+
outputs: [{ name: "", internalType: "bytes32", type: "bytes32" }],
|
|
7
|
+
stateMutability: "view"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
type: "function",
|
|
11
|
+
inputs: [],
|
|
12
|
+
name: "creditManager",
|
|
13
|
+
outputs: [{ name: "", internalType: "address", type: "address" }],
|
|
14
|
+
stateMutability: "view"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
type: "function",
|
|
18
|
+
inputs: [
|
|
19
|
+
{ name: "_pid", internalType: "uint256", type: "uint256" },
|
|
20
|
+
{ name: "", internalType: "uint256", type: "uint256" },
|
|
21
|
+
{ name: "_stake", internalType: "bool", type: "bool" }
|
|
22
|
+
],
|
|
23
|
+
name: "deposit",
|
|
24
|
+
outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
|
|
25
|
+
stateMutability: "nonpayable"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
type: "function",
|
|
29
|
+
inputs: [
|
|
30
|
+
{ name: "_pid", internalType: "uint256", type: "uint256" },
|
|
31
|
+
{ name: "leftoverAmount", internalType: "uint256", type: "uint256" },
|
|
32
|
+
{ name: "_stake", internalType: "bool", type: "bool" }
|
|
33
|
+
],
|
|
34
|
+
name: "depositDiff",
|
|
35
|
+
outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
|
|
36
|
+
stateMutability: "nonpayable"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
type: "function",
|
|
40
|
+
inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
|
|
41
|
+
name: "pidToConvexToken",
|
|
42
|
+
outputs: [{ name: "", internalType: "address", type: "address" }],
|
|
43
|
+
stateMutability: "view"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
type: "function",
|
|
47
|
+
inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
|
|
48
|
+
name: "pidToCurveToken",
|
|
49
|
+
outputs: [{ name: "", internalType: "address", type: "address" }],
|
|
50
|
+
stateMutability: "view"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: "function",
|
|
54
|
+
inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
|
|
55
|
+
name: "pidToPhantomToken",
|
|
56
|
+
outputs: [{ name: "", internalType: "address", type: "address" }],
|
|
57
|
+
stateMutability: "view"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
type: "function",
|
|
61
|
+
inputs: [],
|
|
62
|
+
name: "serialize",
|
|
63
|
+
outputs: [{ name: "serializedData", internalType: "bytes", type: "bytes" }],
|
|
64
|
+
stateMutability: "view"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
type: "function",
|
|
68
|
+
inputs: [],
|
|
69
|
+
name: "targetContract",
|
|
70
|
+
outputs: [{ name: "", internalType: "address", type: "address" }],
|
|
71
|
+
stateMutability: "view"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
type: "function",
|
|
75
|
+
inputs: [],
|
|
76
|
+
name: "updateSupportedPids",
|
|
77
|
+
outputs: [],
|
|
78
|
+
stateMutability: "nonpayable"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: "function",
|
|
82
|
+
inputs: [],
|
|
83
|
+
name: "version",
|
|
84
|
+
outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
|
|
85
|
+
stateMutability: "view"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
type: "function",
|
|
89
|
+
inputs: [
|
|
90
|
+
{ name: "_pid", internalType: "uint256", type: "uint256" },
|
|
91
|
+
{ name: "", internalType: "uint256", type: "uint256" }
|
|
92
|
+
],
|
|
93
|
+
name: "withdraw",
|
|
94
|
+
outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
|
|
95
|
+
stateMutability: "nonpayable"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: "function",
|
|
99
|
+
inputs: [
|
|
100
|
+
{ name: "_pid", internalType: "uint256", type: "uint256" },
|
|
101
|
+
{ name: "leftoverAmount", internalType: "uint256", type: "uint256" }
|
|
102
|
+
],
|
|
103
|
+
name: "withdrawDiff",
|
|
104
|
+
outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
|
|
105
|
+
stateMutability: "nonpayable"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
type: "event",
|
|
109
|
+
anonymous: false,
|
|
110
|
+
inputs: [
|
|
111
|
+
{ name: "pid", internalType: "uint256", type: "uint256", indexed: true }
|
|
112
|
+
],
|
|
113
|
+
name: "AddSupportedPid"
|
|
114
|
+
},
|
|
115
|
+
{ type: "error", inputs: [], name: "UnsupportedPidException" }
|
|
116
|
+
];
|
|
117
|
+
export {
|
|
118
|
+
iConvexV1BoosterAdapterAbi
|
|
119
|
+
};
|
|
@@ -3,13 +3,16 @@ import {
|
|
|
3
3
|
decodeFunctionData,
|
|
4
4
|
zeroAddress
|
|
5
5
|
} from "viem";
|
|
6
|
+
import {
|
|
7
|
+
resolveProtocolCall
|
|
8
|
+
} from "../../../common-utils/utils/trace.js";
|
|
6
9
|
import {
|
|
7
10
|
BaseContract,
|
|
8
11
|
functionArgsToRecord,
|
|
9
12
|
getFunctionSignature,
|
|
10
13
|
MissingSerializedParamsError
|
|
11
14
|
} from "../../../sdk/index.js";
|
|
12
|
-
import { swapFromTransfers
|
|
15
|
+
import { swapFromTransfers } from "../transferHelpers.js";
|
|
13
16
|
class AbstractAdapterContract extends BaseContract {
|
|
14
17
|
#targetContract;
|
|
15
18
|
#creditManager;
|
|
@@ -50,45 +53,33 @@ class AbstractAdapterContract extends BaseContract {
|
|
|
50
53
|
};
|
|
51
54
|
}
|
|
52
55
|
/**
|
|
53
|
-
*
|
|
56
|
+
* Decodes the protocol-level call (target contract + function name + args)
|
|
57
|
+
* performed by this adapter, recovered from its adapter-level call trace.
|
|
54
58
|
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
59
|
+
* Both the `targetContract` and the protocol calldata are taken from the
|
|
60
|
+
* execution trace.
|
|
57
61
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const protocol = this.parseProtocolCall(protocolCalldata, strict);
|
|
64
|
-
return {
|
|
65
|
-
operation: "Execute",
|
|
66
|
-
adapter: this.address,
|
|
67
|
-
protocol: this.#targetContract,
|
|
68
|
-
adapterType: this.adapterType,
|
|
69
|
-
version: this.version,
|
|
70
|
-
label: parsed.label,
|
|
71
|
-
adapterFunctionName: parsed.functionName,
|
|
72
|
-
adapterArgs: parsed.rawArgs,
|
|
73
|
-
...protocol,
|
|
74
|
-
transfers,
|
|
75
|
-
legacy: this.classifyLegacyOperation(parsed, netTransfers)
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Decodes protocol-level function name and args from the raw calldata
|
|
80
|
-
* sent to targetContract.
|
|
62
|
+
* Returns `undefined` (in non-strict mode) when no external protocol call can
|
|
63
|
+
* be recovered, in strict mode throws instead.
|
|
64
|
+
*
|
|
65
|
+
* @param trace Adapter-level call trace (a direct child of the facade trace)
|
|
66
|
+
* @param strict When true, throws instead of returning `undefined`
|
|
81
67
|
*/
|
|
82
|
-
parseProtocolCall(
|
|
68
|
+
parseProtocolCall(trace, strict) {
|
|
69
|
+
const resolved = resolveProtocolCall(trace);
|
|
70
|
+
if (!resolved) {
|
|
71
|
+
if (strict) {
|
|
72
|
+
throw new Error("no external protocol call found in adapter trace");
|
|
73
|
+
}
|
|
74
|
+
return void 0;
|
|
75
|
+
}
|
|
76
|
+
const { contract, calldata } = resolved;
|
|
83
77
|
const selector = calldata.slice(0, 10);
|
|
84
78
|
if (this.protocolAbi.length === 0) {
|
|
85
79
|
if (strict) {
|
|
86
80
|
throw new Error(`Protocol ABI is missing for selector ${selector}`);
|
|
87
81
|
}
|
|
88
|
-
return
|
|
89
|
-
protocolFunctionName: `unknown function ${selector}`,
|
|
90
|
-
protocolArgs: {}
|
|
91
|
-
};
|
|
82
|
+
return void 0;
|
|
92
83
|
}
|
|
93
84
|
try {
|
|
94
85
|
const decoded = decodeFunctionData({
|
|
@@ -96,12 +87,12 @@ class AbstractAdapterContract extends BaseContract {
|
|
|
96
87
|
data: calldata
|
|
97
88
|
});
|
|
98
89
|
const functionName = getFunctionSignature(this.protocolAbi, calldata);
|
|
99
|
-
const
|
|
90
|
+
const functionArgs = functionArgsToRecord(
|
|
100
91
|
this.protocolAbi,
|
|
101
92
|
decoded.functionName,
|
|
102
93
|
decoded.args
|
|
103
94
|
);
|
|
104
|
-
return {
|
|
95
|
+
return { contract, functionName, functionArgs };
|
|
105
96
|
} catch (e) {
|
|
106
97
|
if (strict) {
|
|
107
98
|
throw new Error(
|
|
@@ -109,12 +100,45 @@ class AbstractAdapterContract extends BaseContract {
|
|
|
109
100
|
{ cause: e }
|
|
110
101
|
);
|
|
111
102
|
}
|
|
112
|
-
return
|
|
113
|
-
protocolFunctionName: `unknown function ${selector}`,
|
|
114
|
-
protocolArgs: {}
|
|
115
|
-
};
|
|
103
|
+
return void 0;
|
|
116
104
|
}
|
|
117
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Applies the balance changes implied by a router-generated diff-style
|
|
108
|
+
* adapter call to a map of credit-account token balances.
|
|
109
|
+
*
|
|
110
|
+
* @param balances - Token balances before the call. Mutated in place.
|
|
111
|
+
* @param calldata - Raw ABI-encoded adapter calldata.
|
|
112
|
+
* @throws When the calldata cannot be decoded or the adapter (or the
|
|
113
|
+
* specific function) has no balance-changes support.
|
|
114
|
+
*/
|
|
115
|
+
previewBalanceChanges(balances, calldata) {
|
|
116
|
+
let decoded;
|
|
117
|
+
try {
|
|
118
|
+
decoded = decodeFunctionData({ abi: this.abi, data: calldata });
|
|
119
|
+
} catch (e) {
|
|
120
|
+
throw new Error(
|
|
121
|
+
`previewBalanceChanges: cannot decode selector ${calldata.slice(0, 10)} on ${this.contractType} adapter at ${this.address}`,
|
|
122
|
+
{ cause: e }
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
const leftovers = this.decodeDiffLeftovers(decoded, balances);
|
|
126
|
+
for (const { tokenIn, leftoverAmount } of leftovers) {
|
|
127
|
+
balances.upsert(tokenIn, leftoverAmount);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Resolves which tokens the diff-style call spends down to which leftovers.
|
|
132
|
+
*
|
|
133
|
+
* @param decoded - The viem-decoded adapter call
|
|
134
|
+
* @param _balances - Token balances before the call
|
|
135
|
+
* @throws When the adapter (or the specific function) has no balance-changes support
|
|
136
|
+
*/
|
|
137
|
+
decodeDiffLeftovers(decoded, _balances) {
|
|
138
|
+
throw new Error(
|
|
139
|
+
`previewBalanceChanges is not supported for ${decoded.functionName} on ${this.contractType} adapter at ${this.address}`
|
|
140
|
+
);
|
|
141
|
+
}
|
|
118
142
|
/**
|
|
119
143
|
* Classifies an adapter call into a {@link LegacyAdapterOperation} using the
|
|
120
144
|
* parsed call and credit-account transfer deltas.
|
|
@@ -126,6 +150,8 @@ class AbstractAdapterContract extends BaseContract {
|
|
|
126
150
|
* Override in protocol-specific subclasses for richer classification.
|
|
127
151
|
*
|
|
128
152
|
* @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/account_operation.go#L238-L264
|
|
153
|
+
*
|
|
154
|
+
* @deprecated Eventually will be gone, exists to produce output that legacy UI can display
|
|
129
155
|
*/
|
|
130
156
|
classifyLegacyOperation(_parsed, transfers) {
|
|
131
157
|
const swap = swapFromTransfers(transfers);
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { classifyCurveOperation } from "../transferHelpers.js";
|
|
2
|
+
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
3
|
+
class AbstractCurveAdapterContract extends AbstractAdapterContract {
|
|
4
|
+
/** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
|
|
5
|
+
classifyLegacyOperation(parsed, transfers) {
|
|
6
|
+
return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
7
|
+
}
|
|
8
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
9
|
+
const { functionName, args } = decoded;
|
|
10
|
+
switch (functionName) {
|
|
11
|
+
case "exchange_diff": {
|
|
12
|
+
const [i, , leftoverAmount] = args;
|
|
13
|
+
return [{ tokenIn: this.curveCoin(i), leftoverAmount }];
|
|
14
|
+
}
|
|
15
|
+
case "add_diff_liquidity_one_coin": {
|
|
16
|
+
const [leftoverAmount, i] = args;
|
|
17
|
+
return [{ tokenIn: this.curveCoin(i), leftoverAmount }];
|
|
18
|
+
}
|
|
19
|
+
case "remove_diff_liquidity_one_coin": {
|
|
20
|
+
const [leftoverAmount] = args;
|
|
21
|
+
return [{ tokenIn: this.lpToken, leftoverAmount }];
|
|
22
|
+
}
|
|
23
|
+
default:
|
|
24
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Resolves a Curve pool coin index to its token address.
|
|
29
|
+
*
|
|
30
|
+
* @throws When the index is out of range for the pool.
|
|
31
|
+
*/
|
|
32
|
+
curveCoin(i) {
|
|
33
|
+
const token = this.tokens[Number(i)];
|
|
34
|
+
if (!token) {
|
|
35
|
+
throw new Error(`curve coin index ${i} is out of range`);
|
|
36
|
+
}
|
|
37
|
+
return token;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export {
|
|
41
|
+
AbstractCurveAdapterContract
|
|
42
|
+
};
|
|
@@ -12,6 +12,15 @@ class AccountMigratorAdapterContract extends AbstractAdapterContract {
|
|
|
12
12
|
`classifyLegacyOperation is not supported for legacy adapter: ${this.contractType}`
|
|
13
13
|
);
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* The account-migrator adapter's `execute` targets the migrator bot, not an
|
|
17
|
+
* external protocol, so there is no protocol-level call to recover. Returning
|
|
18
|
+
* `undefined` keeps the `protocol` field aligned with its external-protocol
|
|
19
|
+
* semantics (see {@link TraceAdapterExt}).
|
|
20
|
+
*/
|
|
21
|
+
parseProtocolCall(_trace, _strict) {
|
|
22
|
+
return void 0;
|
|
23
|
+
}
|
|
15
24
|
}
|
|
16
25
|
export {
|
|
17
26
|
AccountMigratorAdapterContract
|