@gearbox-protocol/sdk 14.12.0-next.8 → 14.12.0-next.9
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/dev/AccountOpener.js +7 -13
- package/dist/cjs/history/classifyMulticallOperations.js +2 -0
- package/dist/cjs/history/mapOperations.js +7 -0
- package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +10 -9
- package/dist/cjs/plugins/adapters/contracts/AbstractCurveAdapter.js +66 -0
- package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +4 -5
- package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +4 -9
- package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +9 -5
- package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +5 -10
- package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +4 -5
- package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -34
- package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -34
- package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -34
- package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -29
- package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -34
- package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -34
- package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +4 -5
- package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +4 -5
- package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +4 -5
- package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +8 -8
- package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +5 -6
- package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +4 -5
- package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +3 -4
- package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +4 -5
- package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +4 -5
- package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +3 -4
- package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +3 -4
- package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +3 -4
- package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +16 -11
- package/dist/cjs/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +3 -4
- package/dist/cjs/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +3 -4
- package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +5 -10
- package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +3 -4
- package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +3 -4
- package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +9 -5
- package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +8 -8
- package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +4 -5
- package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +3 -4
- package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +4 -5
- package/dist/cjs/plugins/adapters/index.js +0 -2
- package/dist/cjs/preview/parse/classifyInnerOperations.js +14 -1
- package/dist/cjs/preview/prerequisites/buildPrerequisites.js +3 -8
- package/dist/cjs/preview/preview/previewOpenCreditAccount.js +51 -59
- package/dist/cjs/preview/preview/unwrapNativeCollateral.js +10 -24
- package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +3 -4
- package/dist/cjs/sdk/base/BaseContract.js +4 -2
- package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -0
- package/dist/cjs/sdk/market/credit/CreditFacadeV310BaseContract.js +0 -31
- package/dist/cjs/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +0 -25
- 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 +61 -0
- package/dist/cjs/sdk/utils/index.js +2 -0
- package/dist/esm/dev/AccountOpener.js +8 -13
- package/dist/esm/history/classifyMulticallOperations.js +2 -0
- package/dist/esm/history/mapOperations.js +7 -0
- package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +10 -9
- package/dist/esm/plugins/adapters/contracts/AbstractCurveAdapter.js +42 -0
- package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +4 -5
- package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +4 -9
- package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +9 -5
- package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +5 -10
- package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +4 -5
- package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +3 -37
- package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +3 -37
- package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +3 -37
- package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +3 -32
- package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +3 -37
- package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +3 -37
- package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +4 -5
- package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +4 -5
- package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +4 -5
- package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +8 -8
- package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +5 -6
- package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +4 -5
- package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +3 -4
- package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +4 -5
- package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +4 -5
- package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +3 -4
- package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +3 -4
- package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +3 -4
- package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +16 -11
- package/dist/esm/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +3 -4
- package/dist/esm/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +3 -4
- package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +5 -10
- package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +3 -4
- package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +3 -4
- package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +9 -5
- package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +8 -8
- package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +4 -5
- package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +3 -4
- package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +4 -5
- package/dist/esm/plugins/adapters/index.js +0 -1
- package/dist/esm/preview/parse/classifyInnerOperations.js +14 -1
- package/dist/esm/preview/prerequisites/buildPrerequisites.js +4 -8
- package/dist/esm/preview/preview/previewOpenCreditAccount.js +54 -67
- package/dist/esm/preview/preview/unwrapNativeCollateral.js +11 -25
- package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +4 -5
- package/dist/esm/sdk/base/BaseContract.js +4 -2
- package/dist/esm/sdk/base/ChainContractsRegister.js +1 -0
- package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +0 -33
- package/dist/esm/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +1 -27
- 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 +37 -0
- package/dist/esm/sdk/utils/index.js +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/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/plugins/adapters/contracts/AbstractAdapter.d.ts +9 -11
- package/dist/types/plugins/adapters/contracts/AbstractCurveAdapter.d.ts +18 -0
- package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +4 -8
- package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +4 -9
- package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +4 -8
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +4 -5
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +4 -8
- package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +4 -8
- package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/SecuritizeSwapAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/index.d.ts +0 -1
- package/dist/types/plugins/adapters/types.d.ts +10 -0
- package/dist/types/preview/parse/types-adapters.d.ts +5 -1
- package/dist/types/preview/parse/types-facades.d.ts +23 -1
- package/dist/types/preview/preview/types.d.ts +4 -0
- package/dist/types/preview/preview/unwrapNativeCollateral.d.ts +2 -2
- package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
- package/dist/types/sdk/accounts/types.d.ts +2 -2
- package/dist/types/sdk/base/BaseContract.d.ts +1 -1
- package/dist/types/sdk/base/TokensMeta.d.ts +1 -1
- package/dist/types/sdk/base/types.d.ts +18 -0
- package/dist/types/sdk/market/credit/CreditFacadeV310BaseContract.d.ts +1 -13
- package/dist/types/sdk/market/rwa/securitize/SecuritizeRWAFactory.d.ts +1 -13
- package/dist/types/sdk/pools/types.d.ts +1 -1
- 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/utils/AddressMap.d.ts +4 -0
- package/dist/types/sdk/utils/AssetsMap.d.ts +26 -0
- package/dist/types/sdk/utils/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/plugins/adapters/balanceChanges.js +0 -47
- package/dist/cjs/preview/preview/extractExpectedBalanceChanges.js +0 -70
- package/dist/esm/plugins/adapters/balanceChanges.js +0 -21
- package/dist/esm/preview/preview/extractExpectedBalanceChanges.js +0 -46
- package/dist/types/plugins/adapters/balanceChanges.d.ts +0 -21
- package/dist/types/preview/preview/extractExpectedBalanceChanges.d.ts +0 -33
|
@@ -25,7 +25,6 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
|
|
|
25
25
|
var import_viem = require("viem");
|
|
26
26
|
var import_sdk = require("../../../sdk/index.js");
|
|
27
27
|
var import_targetContractAbi = require("../abi/targetContractAbi.js");
|
|
28
|
-
var import_balanceChanges = require("../balanceChanges.js");
|
|
29
28
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
30
29
|
const abi = import_integrations_v3.iUniswapV3AdapterAbi;
|
|
31
30
|
const protocolAbi = import_targetContractAbi.iUniswapV3Abi;
|
|
@@ -72,19 +71,24 @@ class UniswapV3AdapterContract extends import_AbstractAdapter.AbstractAdapterCon
|
|
|
72
71
|
}))
|
|
73
72
|
};
|
|
74
73
|
}
|
|
75
|
-
|
|
74
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
76
75
|
switch (decoded.functionName) {
|
|
77
76
|
case "exactDiffInputSingle": {
|
|
78
77
|
const [params] = decoded.args;
|
|
79
|
-
return
|
|
78
|
+
return [
|
|
79
|
+
{
|
|
80
|
+
tokenIn: params.tokenIn,
|
|
81
|
+
leftoverAmount: params.leftoverAmount
|
|
82
|
+
}
|
|
83
|
+
];
|
|
80
84
|
}
|
|
81
85
|
case "exactDiffInput": {
|
|
82
86
|
const [params] = decoded.args;
|
|
83
87
|
const tokenIn = `0x${params.path.replace("0x", "").slice(0, 40)}`;
|
|
84
|
-
return
|
|
88
|
+
return [{ tokenIn, leftoverAmount: params.leftoverAmount }];
|
|
85
89
|
}
|
|
86
90
|
default:
|
|
87
|
-
return super.
|
|
91
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
88
92
|
}
|
|
89
93
|
}
|
|
90
94
|
stringifyFunctionParams(params) {
|
|
@@ -24,7 +24,6 @@ module.exports = __toCommonJS(UniswapV4AdapterContract_exports);
|
|
|
24
24
|
var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
|
|
25
25
|
var import_viem = require("viem");
|
|
26
26
|
var import_sdk = require("../../../sdk/index.js");
|
|
27
|
-
var import_balanceChanges = require("../balanceChanges.js");
|
|
28
27
|
var import_transferHelpers = require("../transferHelpers.js");
|
|
29
28
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
30
29
|
const abi = import_integrations_v3.iUniswapV4AdapterAbi;
|
|
@@ -82,18 +81,19 @@ class UniswapV4AdapterContract extends import_AbstractAdapter.AbstractAdapterCon
|
|
|
82
81
|
classifyLegacyOperation(_parsed, transfers) {
|
|
83
82
|
return { operation: "UniswapSwap", ...(0, import_transferHelpers.swapFromTransfers)(transfers) };
|
|
84
83
|
}
|
|
85
|
-
|
|
84
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
86
85
|
switch (decoded.functionName) {
|
|
87
86
|
case "swapExactInputSingleDiff": {
|
|
88
87
|
const [poolKey, zeroForOne, leftoverAmount] = decoded.args;
|
|
89
|
-
return
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
return [
|
|
89
|
+
{
|
|
90
|
+
tokenIn: zeroForOne ? poolKey.token0 : poolKey.token1,
|
|
91
|
+
leftoverAmount
|
|
92
|
+
}
|
|
93
|
+
];
|
|
94
94
|
}
|
|
95
95
|
default:
|
|
96
|
-
return super.
|
|
96
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
}
|
|
@@ -24,7 +24,6 @@ module.exports = __toCommonJS(UpshiftVaultAdapterContract_exports);
|
|
|
24
24
|
var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
|
|
25
25
|
var import_viem = require("viem");
|
|
26
26
|
var import_sdk = require("../../../sdk/index.js");
|
|
27
|
-
var import_balanceChanges = require("../balanceChanges.js");
|
|
28
27
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
29
28
|
const abi = import_integrations_v3.iUpshiftVaultAdapterAbi;
|
|
30
29
|
const protocolAbi = import_integrations_v3.iUpshiftVaultGatewayAbi;
|
|
@@ -71,18 +70,18 @@ class UpshiftVaultAdapterContract extends import_AbstractAdapter.AbstractAdapter
|
|
|
71
70
|
stakedPhantomToken: this.#stakedPhantomToken ? this.labelAddress(this.#stakedPhantomToken) : void 0
|
|
72
71
|
};
|
|
73
72
|
}
|
|
74
|
-
|
|
73
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
75
74
|
switch (decoded.functionName) {
|
|
76
75
|
case "depositDiff": {
|
|
77
76
|
const [leftoverAmount] = decoded.args;
|
|
78
|
-
return
|
|
77
|
+
return [{ tokenIn: this.asset, leftoverAmount }];
|
|
79
78
|
}
|
|
80
79
|
case "redeemDiff": {
|
|
81
80
|
const [leftoverAmount] = decoded.args;
|
|
82
|
-
return
|
|
81
|
+
return [{ tokenIn: this.vault, leftoverAmount }];
|
|
83
82
|
}
|
|
84
83
|
default:
|
|
85
|
-
return super.
|
|
84
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
86
85
|
}
|
|
87
86
|
}
|
|
88
87
|
}
|
|
@@ -25,7 +25,6 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
|
|
|
25
25
|
var import_viem = require("viem");
|
|
26
26
|
var import_sdk = require("../../../sdk/index.js");
|
|
27
27
|
var import_targetContractAbi = require("../abi/targetContractAbi.js");
|
|
28
|
-
var import_balanceChanges = require("../balanceChanges.js");
|
|
29
28
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
30
29
|
const abi = import_integrations_v3.iVelodromeV2RouterAdapterAbi;
|
|
31
30
|
const protocolAbi = import_targetContractAbi.iVelodromeV2RouterAbi;
|
|
@@ -75,14 +74,14 @@ class VelodromeV2RouterAdapterContract extends import_AbstractAdapter.AbstractAd
|
|
|
75
74
|
}))
|
|
76
75
|
};
|
|
77
76
|
}
|
|
78
|
-
|
|
77
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
79
78
|
switch (decoded.functionName) {
|
|
80
79
|
case "swapDiffTokensForTokens": {
|
|
81
80
|
const [leftoverAmount, , routes] = decoded.args;
|
|
82
|
-
return
|
|
81
|
+
return [{ tokenIn: routes[0].from, leftoverAmount }];
|
|
83
82
|
}
|
|
84
83
|
default:
|
|
85
|
-
return super.
|
|
84
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
86
85
|
}
|
|
87
86
|
}
|
|
88
87
|
}
|
|
@@ -25,7 +25,6 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
|
|
|
25
25
|
var import_viem = require("viem");
|
|
26
26
|
var import_sdk = require("../../../sdk/index.js");
|
|
27
27
|
var import_targetContractAbi = require("../abi/targetContractAbi.js");
|
|
28
|
-
var import_balanceChanges = require("../balanceChanges.js");
|
|
29
28
|
var import_transferHelpers = require("../transferHelpers.js");
|
|
30
29
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
31
30
|
const abi = import_integrations_v3.iwstEthv1AdapterAbi;
|
|
@@ -66,19 +65,19 @@ class WstETHV1AdapterContract extends import_AbstractAdapter.AbstractAdapterCont
|
|
|
66
65
|
}
|
|
67
66
|
return super.classifyLegacyOperation(parsed, transfers);
|
|
68
67
|
}
|
|
69
|
-
|
|
68
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
70
69
|
switch (decoded.functionName) {
|
|
71
70
|
case "wrapDiff": {
|
|
72
71
|
const [leftoverAmount] = decoded.args;
|
|
73
|
-
return
|
|
72
|
+
return [{ tokenIn: this.stETH, leftoverAmount }];
|
|
74
73
|
}
|
|
75
74
|
// wstETH is the adapter's target contract
|
|
76
75
|
case "unwrapDiff": {
|
|
77
76
|
const [leftoverAmount] = decoded.args;
|
|
78
|
-
return
|
|
77
|
+
return [{ tokenIn: this.targetContract, leftoverAmount }];
|
|
79
78
|
}
|
|
80
79
|
default:
|
|
81
|
-
return super.
|
|
80
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
82
81
|
}
|
|
83
82
|
}
|
|
84
83
|
}
|
|
@@ -17,7 +17,6 @@ var adapters_exports = {};
|
|
|
17
17
|
module.exports = __toCommonJS(adapters_exports);
|
|
18
18
|
__reExport(adapters_exports, require("./AdaptersPlugin.js"), module.exports);
|
|
19
19
|
__reExport(adapters_exports, require("./abi/index.js"), module.exports);
|
|
20
|
-
__reExport(adapters_exports, require("./balanceChanges.js"), module.exports);
|
|
21
20
|
__reExport(adapters_exports, require("./contracts/index.js"), module.exports);
|
|
22
21
|
__reExport(adapters_exports, require("./createAdapter.js"), module.exports);
|
|
23
22
|
__reExport(adapters_exports, require("./legacyAdapterOperations.js"), module.exports);
|
|
@@ -27,7 +26,6 @@ __reExport(adapters_exports, require("./types.js"), module.exports);
|
|
|
27
26
|
0 && (module.exports = {
|
|
28
27
|
...require("./AdaptersPlugin.js"),
|
|
29
28
|
...require("./abi/index.js"),
|
|
30
|
-
...require("./balanceChanges.js"),
|
|
31
29
|
...require("./contracts/index.js"),
|
|
32
30
|
...require("./createAdapter.js"),
|
|
33
31
|
...require("./legacyAdapterOperations.js"),
|
|
@@ -35,7 +35,8 @@ function classifyInnerOperations(calls, props) {
|
|
|
35
35
|
version: call.version,
|
|
36
36
|
label: call.label,
|
|
37
37
|
adapterFunctionName: call.functionName,
|
|
38
|
-
adapterArgs: call.rawArgs
|
|
38
|
+
adapterArgs: call.rawArgs,
|
|
39
|
+
calldata: call.calldata
|
|
39
40
|
});
|
|
40
41
|
continue;
|
|
41
42
|
}
|
|
@@ -82,6 +83,18 @@ function classifyFacadeInnerCall(call, underlying) {
|
|
|
82
83
|
token: rawArgs.token,
|
|
83
84
|
change: rawArgs.quotaChange
|
|
84
85
|
};
|
|
86
|
+
case "storeExpectedBalances": {
|
|
87
|
+
const balanceDeltas = rawArgs.balanceDeltas;
|
|
88
|
+
return {
|
|
89
|
+
operation: "StoreExpectedBalances",
|
|
90
|
+
deltas: balanceDeltas.map(({ token, amount }) => ({
|
|
91
|
+
token,
|
|
92
|
+
balance: amount
|
|
93
|
+
}))
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
case "compareBalances":
|
|
97
|
+
return { operation: "CompareBalances" };
|
|
85
98
|
default:
|
|
86
99
|
return null;
|
|
87
100
|
}
|
|
@@ -219,24 +219,19 @@ async function buildPrerequisites(input) {
|
|
|
219
219
|
}
|
|
220
220
|
async function collateralPrerequisites(spenderOptions, multicall, ctx) {
|
|
221
221
|
const { sdk, wallet } = ctx;
|
|
222
|
-
const required =
|
|
222
|
+
const required = new import_sdk.AssetsMap();
|
|
223
223
|
for (const op of multicall) {
|
|
224
224
|
if (op.operation !== "AddCollateral" || op.amount === 0n) {
|
|
225
225
|
continue;
|
|
226
226
|
}
|
|
227
|
-
|
|
228
|
-
const existing = required.get(key);
|
|
229
|
-
required.set(key, {
|
|
230
|
-
token: op.token,
|
|
231
|
-
amount: (existing?.amount ?? 0n) + op.amount
|
|
232
|
-
});
|
|
227
|
+
required.inc(op.token, op.amount);
|
|
233
228
|
}
|
|
234
229
|
if (required.size === 0) {
|
|
235
230
|
return [];
|
|
236
231
|
}
|
|
237
232
|
const spender = await sdk.accounts.getApprovalAddress(spenderOptions);
|
|
238
233
|
const prereqs = [];
|
|
239
|
-
for (const
|
|
234
|
+
for (const [token, amount] of required.entries()) {
|
|
240
235
|
prereqs.push(
|
|
241
236
|
new import_AllowancePrerequisite.AllowancePrerequisite({
|
|
242
237
|
token,
|
|
@@ -23,48 +23,77 @@ __export(previewOpenCreditAccount_exports, {
|
|
|
23
23
|
module.exports = __toCommonJS(previewOpenCreditAccount_exports);
|
|
24
24
|
var import_adapters = require("../../plugins/adapters/index.js");
|
|
25
25
|
var import_sdk = require("../../sdk/index.js");
|
|
26
|
-
var import_extractExpectedBalanceChanges = require("./extractExpectedBalanceChanges.js");
|
|
27
26
|
var import_unwrapNativeCollateral = require("./unwrapNativeCollateral.js");
|
|
28
27
|
function previewOpenCreditAccount(input, operation) {
|
|
29
|
-
const { sdk,
|
|
28
|
+
const { sdk, value = 0n } = input;
|
|
30
29
|
const market = sdk.marketRegister.findByCreditManager(
|
|
31
30
|
operation.creditManager
|
|
32
31
|
);
|
|
33
|
-
const
|
|
34
|
-
const balances = new import_sdk.
|
|
35
|
-
const addBalance = (token, amount) => {
|
|
36
|
-
balances.upsert(token, (balances.get(token) ?? 0n) + amount);
|
|
37
|
-
};
|
|
32
|
+
const collateralBalances = new import_sdk.AssetsMap();
|
|
33
|
+
const balances = new import_sdk.AssetsMap();
|
|
38
34
|
let debt = 0n;
|
|
39
35
|
const quotas = [];
|
|
36
|
+
let inBracket = false;
|
|
37
|
+
let storeSeen = false;
|
|
40
38
|
for (const op of operation.multicall) {
|
|
41
39
|
switch (op.operation) {
|
|
42
|
-
case "AddCollateral":
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
token: op.token,
|
|
46
|
-
balance: balance + op.amount
|
|
47
|
-
});
|
|
48
|
-
addBalance(op.token, op.amount);
|
|
40
|
+
case "AddCollateral":
|
|
41
|
+
collateralBalances.inc(op.token, op.amount);
|
|
42
|
+
balances.inc(op.token, op.amount);
|
|
49
43
|
break;
|
|
50
|
-
}
|
|
51
44
|
case "WithdrawCollateral":
|
|
52
|
-
|
|
45
|
+
balances.dec(op.token, op.amount);
|
|
53
46
|
break;
|
|
54
47
|
case "IncreaseBorrowedAmount":
|
|
55
48
|
debt += op.amount;
|
|
56
|
-
|
|
49
|
+
balances.inc(op.token, op.amount);
|
|
57
50
|
break;
|
|
58
51
|
case "DecreaseBorrowedAmount":
|
|
59
52
|
debt -= op.amount;
|
|
60
|
-
|
|
53
|
+
balances.dec(op.token, op.amount);
|
|
61
54
|
break;
|
|
62
55
|
case "UpdateQuota":
|
|
63
56
|
quotas.push({ token: op.token, balance: op.change });
|
|
64
57
|
break;
|
|
58
|
+
case "StoreExpectedBalances":
|
|
59
|
+
if (storeSeen) {
|
|
60
|
+
throw new Error(
|
|
61
|
+
"malformed multicall: duplicate storeExpectedBalances call"
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
storeSeen = true;
|
|
65
|
+
inBracket = true;
|
|
66
|
+
for (const { token, balance } of op.deltas) {
|
|
67
|
+
balances.inc(token, balance);
|
|
68
|
+
}
|
|
69
|
+
break;
|
|
70
|
+
case "CompareBalances":
|
|
71
|
+
if (!inBracket) {
|
|
72
|
+
throw new Error(
|
|
73
|
+
"malformed multicall: compareBalances without a preceding storeExpectedBalances"
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
inBracket = false;
|
|
77
|
+
break;
|
|
78
|
+
case "Execute":
|
|
79
|
+
if (inBracket) {
|
|
80
|
+
const adapter = sdk.getContract(op.adapter);
|
|
81
|
+
if (!(adapter instanceof import_adapters.AbstractAdapterContract)) {
|
|
82
|
+
throw new Error(
|
|
83
|
+
`call to ${op.adapter} between storeExpectedBalances and compareBalances is not an adapter call`
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
adapter.previewBalanceChanges(balances, op.calldata);
|
|
87
|
+
}
|
|
88
|
+
break;
|
|
65
89
|
}
|
|
66
90
|
}
|
|
67
|
-
|
|
91
|
+
if (inBracket) {
|
|
92
|
+
throw new Error(
|
|
93
|
+
"malformed multicall: storeExpectedBalances without a matching compareBalances"
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
let collateral = collateralBalances.toAssets();
|
|
68
97
|
const collateralValue = collateral.reduce(
|
|
69
98
|
(acc, { token, balance }) => acc + market.priceOracle.convert(token, market.underlying, balance),
|
|
70
99
|
0n
|
|
@@ -74,39 +103,11 @@ function previewOpenCreditAccount(input, operation) {
|
|
|
74
103
|
value,
|
|
75
104
|
sdk.addressProvider.getAddress(import_sdk.AP_WETH_TOKEN, import_sdk.NO_VERSION)
|
|
76
105
|
);
|
|
77
|
-
const
|
|
78
|
-
const innerCalls = parsed.rawArgs.calls ?? [];
|
|
79
|
-
const expected = (0, import_extractExpectedBalanceChanges.extractExpectedBalanceChanges)(innerCalls);
|
|
80
|
-
let finalBalances = balances;
|
|
81
|
-
if (expected) {
|
|
82
|
-
const rawCalls = extractRawInnerCalls(sdk, to, calldata);
|
|
83
|
-
if (rawCalls.length !== innerCalls.length) {
|
|
84
|
-
throw new Error(
|
|
85
|
-
`raw and parsed inner calls of ${to} are misaligned: ${rawCalls.length} raw vs ${innerCalls.length} parsed`
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
const snapshot = (0, import_adapters.copyBalances)(balances);
|
|
89
|
-
for (let i = expected.startIndex + 1; i < expected.endIndex; i++) {
|
|
90
|
-
const call = rawCalls[i];
|
|
91
|
-
const adapter = sdk.getContract(call.target);
|
|
92
|
-
if (!(adapter instanceof import_adapters.AbstractAdapterContract)) {
|
|
93
|
-
throw new Error(
|
|
94
|
-
`call to ${call.target} between storeExpectedBalances and compareBalances is not an adapter call`
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
finalBalances = adapter.previewBalanceChanges(
|
|
98
|
-
finalBalances,
|
|
99
|
-
call.callData
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
for (const { token, balance } of expected.deltas) {
|
|
103
|
-
finalBalances.upsert(token, (snapshot.get(token) ?? 0n) + balance);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
const assets = finalBalances.entries().filter(([, balance]) => balance > 1n).map(([token, balance]) => ({ token, balance }));
|
|
106
|
+
const assets = balances.entries().filter(([, balance]) => balance > 1n).map(([token, balance]) => ({ token, balance }));
|
|
107
107
|
return {
|
|
108
108
|
operation: operation.operation,
|
|
109
|
-
|
|
109
|
+
creditManager: operation.creditManager,
|
|
110
|
+
target: inferTargetAsset(operation.multicall, balances),
|
|
110
111
|
collateral,
|
|
111
112
|
collateralValue,
|
|
112
113
|
debt,
|
|
@@ -114,15 +115,6 @@ function previewOpenCreditAccount(input, operation) {
|
|
|
114
115
|
assets
|
|
115
116
|
};
|
|
116
117
|
}
|
|
117
|
-
function extractRawInnerCalls(sdk, to, calldata) {
|
|
118
|
-
const entry = sdk.getContract(to);
|
|
119
|
-
if (entry instanceof import_sdk.CreditFacadeV310BaseContract || entry instanceof import_sdk.SecuritizeRWAFactory) {
|
|
120
|
-
return entry.extractRawInnerCalls(calldata);
|
|
121
|
-
}
|
|
122
|
-
throw new Error(
|
|
123
|
-
`cannot extract raw inner calls from ${to}: neither a credit facade nor a supported RWA factory`
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
118
|
function inferTargetAsset(multicall, balances) {
|
|
127
119
|
for (const op of multicall) {
|
|
128
120
|
if (op.operation === "UpdateQuota" && op.change > 0n) {
|
|
@@ -21,37 +21,23 @@ __export(unwrapNativeCollateral_exports, {
|
|
|
21
21
|
unwrapNativeCollateral: () => unwrapNativeCollateral
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(unwrapNativeCollateral_exports);
|
|
24
|
-
var import_viem = require("viem");
|
|
25
24
|
var import_sdk = require("../../sdk/index.js");
|
|
26
25
|
var import_errors = require("./errors.js");
|
|
27
26
|
function unwrapNativeCollateral(collateral, nativeAmount, wethToken) {
|
|
28
27
|
if (nativeAmount === 0n) {
|
|
29
28
|
return collateral;
|
|
30
29
|
}
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if (!isWeth) {
|
|
36
|
-
result.push(asset);
|
|
37
|
-
continue;
|
|
38
|
-
}
|
|
39
|
-
if (asset.balance < nativeAmount) {
|
|
40
|
-
throw new import_errors.InvalidTransactionValueError(nativeAmount, asset.balance);
|
|
41
|
-
}
|
|
42
|
-
result.push({ token: import_sdk.NATIVE_ADDRESS, balance: nativeAmount });
|
|
43
|
-
if (asset.balance > nativeAmount) {
|
|
44
|
-
result.push({
|
|
45
|
-
token: asset.token,
|
|
46
|
-
balance: asset.balance - nativeAmount
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
unwrapped = true;
|
|
30
|
+
const balances = new import_sdk.AssetsMap(collateral);
|
|
31
|
+
const wethBalance = balances.get(wethToken) ?? 0n;
|
|
32
|
+
if (wethBalance < nativeAmount) {
|
|
33
|
+
throw new import_errors.InvalidTransactionValueError(nativeAmount, wethBalance);
|
|
50
34
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
35
|
+
balances.upsert(
|
|
36
|
+
wethToken,
|
|
37
|
+
wethBalance === nativeAmount ? void 0 : wethBalance - nativeAmount
|
|
38
|
+
);
|
|
39
|
+
balances.inc(import_sdk.NATIVE_ADDRESS, nativeAmount);
|
|
40
|
+
return balances.toAssets();
|
|
55
41
|
}
|
|
56
42
|
// Annotate the CommonJS export names for ESM import in node:
|
|
57
43
|
0 && (module.exports = {
|
|
@@ -36,7 +36,6 @@ var import_base = require("../base/index.js");
|
|
|
36
36
|
var import_chains = require("../chain/chains.js");
|
|
37
37
|
var import_constants = require("../constants/index.js");
|
|
38
38
|
var import_market = require("../market/index.js");
|
|
39
|
-
var import_router = require("../router/index.js");
|
|
40
39
|
var import_utils = require("../utils/index.js");
|
|
41
40
|
var import_viem2 = require("../utils/viem/index.js");
|
|
42
41
|
var import_multicall_utils = require("./multicall-utils.js");
|
|
@@ -1723,10 +1722,10 @@ class CreditAccountsServiceV310 extends import_base.SDKConstruct {
|
|
|
1723
1722
|
return calls;
|
|
1724
1723
|
}
|
|
1725
1724
|
#prepareUpdateQuotas(creditFacade, { averageQuota, minQuota }) {
|
|
1726
|
-
const minRecord =
|
|
1725
|
+
const minRecord = new import_utils.AssetsMap(minQuota);
|
|
1727
1726
|
const calls = averageQuota.map((q) => {
|
|
1728
|
-
const
|
|
1729
|
-
const min =
|
|
1727
|
+
const minBalance = minRecord.get(q.token);
|
|
1728
|
+
const min = minBalance && minBalance > 0n ? minBalance : 0n;
|
|
1730
1729
|
return {
|
|
1731
1730
|
target: creditFacade,
|
|
1732
1731
|
callData: (0, import_viem.encodeFunctionData)({
|
|
@@ -244,6 +244,7 @@ class BaseContract extends import_Construct.Construct {
|
|
|
244
244
|
const functionName = (0, import_utils.getFunctionSignature)(this.abi, calldata);
|
|
245
245
|
return this.wrapParseCallV2(
|
|
246
246
|
functionName,
|
|
247
|
+
calldata,
|
|
247
248
|
this.parseFunctionParamsV2(decoded, strict)
|
|
248
249
|
);
|
|
249
250
|
} catch (e) {
|
|
@@ -257,7 +258,7 @@ class BaseContract extends import_Construct.Construct {
|
|
|
257
258
|
this.logger?.warn(e);
|
|
258
259
|
const selector = calldata.slice(0, 10);
|
|
259
260
|
const data = `0x${calldata.slice(10)}`;
|
|
260
|
-
return this.wrapParseCallV2(`unknown function ${selector}`, {
|
|
261
|
+
return this.wrapParseCallV2(`unknown function ${selector}`, calldata, {
|
|
261
262
|
_data: data
|
|
262
263
|
});
|
|
263
264
|
}
|
|
@@ -270,7 +271,7 @@ class BaseContract extends import_Construct.Construct {
|
|
|
270
271
|
parseFunctionParamsV2(params, _strict) {
|
|
271
272
|
return (0, import_utils.functionArgsToRecord)(this.abi, params.functionName, params.args);
|
|
272
273
|
}
|
|
273
|
-
wrapParseCallV2(functionName, rawArgs) {
|
|
274
|
+
wrapParseCallV2(functionName, calldata, rawArgs) {
|
|
274
275
|
return {
|
|
275
276
|
chainId: this.chainId,
|
|
276
277
|
target: this.address,
|
|
@@ -278,6 +279,7 @@ class BaseContract extends import_Construct.Construct {
|
|
|
278
279
|
label: this.labelAddress(this.address, true),
|
|
279
280
|
version: this.version,
|
|
280
281
|
functionName,
|
|
282
|
+
calldata,
|
|
281
283
|
rawArgs
|
|
282
284
|
};
|
|
283
285
|
}
|
|
@@ -22,7 +22,6 @@ __export(CreditFacadeV310BaseContract_exports, {
|
|
|
22
22
|
creditFacadeV310Abi: () => abi
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(CreditFacadeV310BaseContract_exports);
|
|
25
|
-
var import_viem = require("viem");
|
|
26
25
|
var import_generated = require("../../../abi/310/generated.js");
|
|
27
26
|
var import_iPausable = require("../../../abi/iPausable.js");
|
|
28
27
|
var import_base = require("../../base/index.js");
|
|
@@ -35,36 +34,6 @@ class CreditFacadeV310BaseContract extends import_base.BaseContract {
|
|
|
35
34
|
constructor(options, args) {
|
|
36
35
|
super(options, { ...args, abi });
|
|
37
36
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Decodes entry-point calldata with the facade ABI and returns the untouched
|
|
40
|
-
* inner multicall structs (targets with still-ABI-encoded `callData`).
|
|
41
|
-
*
|
|
42
|
-
* Unlike {@link ChainContractsRegister.parseMultiCallV2}, the inner calls are
|
|
43
|
-
* not decoded, so callers can re-decode them with a specific contract's ABI.
|
|
44
|
-
*
|
|
45
|
-
* @throws When the calldata cannot be decoded or the function has no inner
|
|
46
|
-
* multicall argument.
|
|
47
|
-
*/
|
|
48
|
-
extractRawInnerCalls(calldata) {
|
|
49
|
-
const decoded = (0, import_viem.decodeFunctionData)({ abi: this.abi, data: calldata });
|
|
50
|
-
switch (decoded.functionName) {
|
|
51
|
-
case "openCreditAccount":
|
|
52
|
-
case "closeCreditAccount":
|
|
53
|
-
case "botMulticall":
|
|
54
|
-
case "multicall": {
|
|
55
|
-
const [, calls] = decoded.args;
|
|
56
|
-
return [...calls];
|
|
57
|
-
}
|
|
58
|
-
case "liquidateCreditAccount": {
|
|
59
|
-
const [, , calls] = decoded.args;
|
|
60
|
-
return [...calls];
|
|
61
|
-
}
|
|
62
|
-
default:
|
|
63
|
-
throw new Error(
|
|
64
|
-
`function ${decoded.functionName} on ${this.name} has no inner multicall`
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
37
|
parseFunctionParamsV2(params, strict) {
|
|
69
38
|
switch (params.functionName) {
|
|
70
39
|
case "openCreditAccount": {
|
|
@@ -70,31 +70,6 @@ class SecuritizeRWAFactory extends import_base.BaseContract {
|
|
|
70
70
|
operators: [...t.operators]
|
|
71
71
|
}));
|
|
72
72
|
}
|
|
73
|
-
/**
|
|
74
|
-
* Decodes entry-point calldata with the factory ABI and returns the
|
|
75
|
-
* untouched inner multicall structs (targets with still-ABI-encoded
|
|
76
|
-
* `callData`).
|
|
77
|
-
*
|
|
78
|
-
* Unlike {@link ChainContractsRegister.parseMultiCallV2}, the inner calls are
|
|
79
|
-
* not decoded, so callers can re-decode them with a specific contract's ABI.
|
|
80
|
-
*
|
|
81
|
-
* @throws When the calldata cannot be decoded or the function has no inner
|
|
82
|
-
* multicall argument.
|
|
83
|
-
*/
|
|
84
|
-
extractRawInnerCalls(calldata) {
|
|
85
|
-
const decoded = (0, import_viem.decodeFunctionData)({ abi: this.abi, data: calldata });
|
|
86
|
-
switch (decoded.functionName) {
|
|
87
|
-
case "openCreditAccount":
|
|
88
|
-
case "multicall": {
|
|
89
|
-
const [, calls] = decoded.args;
|
|
90
|
-
return [...calls];
|
|
91
|
-
}
|
|
92
|
-
default:
|
|
93
|
-
throw new Error(
|
|
94
|
-
`function ${decoded.functionName} on ${this.name} has no inner multicall`
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
73
|
parseFunctionParamsV2(params, strict) {
|
|
99
74
|
switch (params.functionName) {
|
|
100
75
|
case "openCreditAccount": {
|