@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
|
@@ -381,7 +381,7 @@ class AccountOpener extends import_sdk.SDKConstruct {
|
|
|
381
381
|
}
|
|
382
382
|
async #depositIntoPools(targets) {
|
|
383
383
|
this.#logger?.debug("checking and topping up pools if necessary");
|
|
384
|
-
const minAvailableByPool =
|
|
384
|
+
const minAvailableByPool = new import_sdk.AssetsMap();
|
|
385
385
|
for (let i = 0; i < targets.length; i++) {
|
|
386
386
|
const t = targets[i];
|
|
387
387
|
const leverage = this.#getLeverage(t);
|
|
@@ -389,14 +389,14 @@ class AccountOpener extends import_sdk.SDKConstruct {
|
|
|
389
389
|
const minDebt = this.#minDebtMultiplier * cm.creditFacade.minDebt / import_sdk.PERCENTAGE_FACTOR;
|
|
390
390
|
let amount = minDebt * (leverage - import_sdk.PERCENTAGE_FACTOR) / import_sdk.PERCENTAGE_FACTOR * this.#poolDepositMultiplier / import_sdk.PERCENTAGE_FACTOR;
|
|
391
391
|
amount = amount > cm.creditFacade.maxDebt ? cm.creditFacade.maxDebt : amount;
|
|
392
|
-
minAvailableByPool
|
|
392
|
+
minAvailableByPool.inc(cm.pool, amount);
|
|
393
393
|
this.#logger?.debug(
|
|
394
394
|
`target #${i + 1} (${this.labelAddress(t.target)}) needs ${this.sdk.tokensMeta.formatBN(cm.underlying, amount, { symbol: true })} in pool (leverage: ${Number(leverage / import_sdk.PERCENTAGE_FACTOR)}%)`
|
|
395
395
|
);
|
|
396
396
|
}
|
|
397
397
|
const deposits = [];
|
|
398
|
-
const claims = new import_sdk.
|
|
399
|
-
for (const [p, minAvailable] of
|
|
398
|
+
const claims = new import_sdk.AssetsMap();
|
|
399
|
+
for (const [p, minAvailable] of minAvailableByPool.entries()) {
|
|
400
400
|
const market = this.sdk.marketRegister.findByPool(p);
|
|
401
401
|
const pool = market.pool.pool;
|
|
402
402
|
let diff = minAvailable - pool.availableLiquidity;
|
|
@@ -413,9 +413,7 @@ class AccountOpener extends import_sdk.SDKConstruct {
|
|
|
413
413
|
);
|
|
414
414
|
if (diff > 0n) {
|
|
415
415
|
deposits.push([pool, diff]);
|
|
416
|
-
|
|
417
|
-
claim += diff * import_sdk.PERCENTAGE_FACTOR / 8950n;
|
|
418
|
-
claims.upsert(pool.underlying, claim);
|
|
416
|
+
claims.inc(pool.underlying, diff * import_sdk.PERCENTAGE_FACTOR / 8950n);
|
|
419
417
|
}
|
|
420
418
|
}
|
|
421
419
|
const depositor = await this.#getDepositor();
|
|
@@ -572,18 +570,14 @@ class AccountOpener extends import_sdk.SDKConstruct {
|
|
|
572
570
|
async #prepareBorrower(targets) {
|
|
573
571
|
const borrower = await this.#getBorrower();
|
|
574
572
|
const degenNFTS = {};
|
|
575
|
-
const claims = new import_sdk.
|
|
573
|
+
const claims = new import_sdk.AssetsMap();
|
|
576
574
|
for (const target of targets) {
|
|
577
575
|
const cm = this.sdk.marketRegister.findCreditManager(
|
|
578
576
|
target.creditManager
|
|
579
577
|
);
|
|
580
|
-
const market = this.sdk.marketRegister.findByCreditManager(
|
|
581
|
-
target.creditManager
|
|
582
|
-
);
|
|
583
578
|
const { degenNFT } = cm.creditFacade;
|
|
584
579
|
const minDebt = this.#minDebtMultiplier * cm.creditFacade.minDebt / import_sdk.PERCENTAGE_FACTOR;
|
|
585
|
-
|
|
586
|
-
claims.upsert(cm.underlying, claim + minDebt * 11n / 10n);
|
|
580
|
+
claims.inc(cm.underlying, minDebt * 11n / 10n);
|
|
587
581
|
if ((0, import_viem.isAddress)(degenNFT) && degenNFT !== import_sdk.ADDRESS_0X0) {
|
|
588
582
|
degenNFTS[degenNFT] = (degenNFTS[degenNFT] ?? 0) + 1;
|
|
589
583
|
}
|
|
@@ -60,6 +60,7 @@ function classifyMulticallOperations(input) {
|
|
|
60
60
|
label: call.label,
|
|
61
61
|
adapterFunctionName: call.functionName,
|
|
62
62
|
adapterArgs: call.rawArgs,
|
|
63
|
+
calldata: call.calldata,
|
|
63
64
|
protocol,
|
|
64
65
|
transfers: transfers2,
|
|
65
66
|
legacy
|
|
@@ -95,6 +96,7 @@ function classifyMulticallOperations(input) {
|
|
|
95
96
|
label: call.label,
|
|
96
97
|
adapterFunctionName: call.functionName,
|
|
97
98
|
adapterArgs: call.rawArgs,
|
|
99
|
+
calldata: call.calldata,
|
|
98
100
|
// Unknown adapter (non-strict): we have no ABI to decode the protocol
|
|
99
101
|
// call, so `protocol` is left absent rather than filled with placeholders.
|
|
100
102
|
protocol: void 0,
|
|
@@ -35,6 +35,13 @@ function mapInnerOperation(op, visitor, ctx) {
|
|
|
35
35
|
return visitor.WithdrawCollateral(op, ctx);
|
|
36
36
|
case "UpdateQuota":
|
|
37
37
|
return visitor.UpdateQuota(op, ctx);
|
|
38
|
+
// The history classifier never emits other InnerOperation variants
|
|
39
|
+
// (e.g. StoreExpectedBalances/CompareBalances, which it drops), so this
|
|
40
|
+
// guards against silently returning undefined if that ever changes.
|
|
41
|
+
default:
|
|
42
|
+
throw new Error(
|
|
43
|
+
`unexpected inner operation: ${op.operation}`
|
|
44
|
+
);
|
|
38
45
|
}
|
|
39
46
|
}
|
|
40
47
|
function mapOuterOperation(op, visitor) {
|
|
@@ -119,9 +119,8 @@ class AbstractAdapterContract extends import_sdk.BaseContract {
|
|
|
119
119
|
* Applies the balance changes implied by a router-generated diff-style
|
|
120
120
|
* adapter call to a map of credit-account token balances.
|
|
121
121
|
*
|
|
122
|
-
* @param balances - Token balances before the call.
|
|
122
|
+
* @param balances - Token balances before the call. Mutated in place.
|
|
123
123
|
* @param calldata - Raw ABI-encoded adapter calldata.
|
|
124
|
-
* @returns A new balances map with the call's changes applied.
|
|
125
124
|
* @throws When the calldata cannot be decoded or the adapter (or the
|
|
126
125
|
* specific function) has no balance-changes support.
|
|
127
126
|
*/
|
|
@@ -135,17 +134,19 @@ class AbstractAdapterContract extends import_sdk.BaseContract {
|
|
|
135
134
|
{ cause: e }
|
|
136
135
|
);
|
|
137
136
|
}
|
|
138
|
-
|
|
137
|
+
const leftovers = this.decodeDiffLeftovers(decoded, balances);
|
|
138
|
+
for (const { tokenIn, leftoverAmount } of leftovers) {
|
|
139
|
+
balances.upsert(tokenIn, leftoverAmount);
|
|
140
|
+
}
|
|
139
141
|
}
|
|
140
142
|
/**
|
|
141
|
-
*
|
|
142
|
-
* adapter call, so overrides can switch on `decoded.functionName` and get
|
|
143
|
-
* fully-typed `decoded.args` without casts.
|
|
143
|
+
* Resolves which tokens the diff-style call spends down to which leftovers.
|
|
144
144
|
*
|
|
145
|
-
* @
|
|
146
|
-
*
|
|
145
|
+
* @param decoded - The viem-decoded adapter call
|
|
146
|
+
* @param _balances - Token balances before the call
|
|
147
|
+
* @throws When the adapter (or the specific function) has no balance-changes support
|
|
147
148
|
*/
|
|
148
|
-
|
|
149
|
+
decodeDiffLeftovers(decoded, _balances) {
|
|
149
150
|
throw new Error(
|
|
150
151
|
`previewBalanceChanges is not supported for ${decoded.functionName} on ${this.contractType} adapter at ${this.address}`
|
|
151
152
|
);
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var AbstractCurveAdapter_exports = {};
|
|
20
|
+
__export(AbstractCurveAdapter_exports, {
|
|
21
|
+
AbstractCurveAdapterContract: () => AbstractCurveAdapterContract
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(AbstractCurveAdapter_exports);
|
|
24
|
+
var import_transferHelpers = require("../transferHelpers.js");
|
|
25
|
+
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
26
|
+
class AbstractCurveAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
27
|
+
/** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
|
|
28
|
+
classifyLegacyOperation(parsed, transfers) {
|
|
29
|
+
return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
30
|
+
}
|
|
31
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
32
|
+
const { functionName, args } = decoded;
|
|
33
|
+
switch (functionName) {
|
|
34
|
+
case "exchange_diff": {
|
|
35
|
+
const [i, , leftoverAmount] = args;
|
|
36
|
+
return [{ tokenIn: this.curveCoin(i), leftoverAmount }];
|
|
37
|
+
}
|
|
38
|
+
case "add_diff_liquidity_one_coin": {
|
|
39
|
+
const [leftoverAmount, i] = args;
|
|
40
|
+
return [{ tokenIn: this.curveCoin(i), leftoverAmount }];
|
|
41
|
+
}
|
|
42
|
+
case "remove_diff_liquidity_one_coin": {
|
|
43
|
+
const [leftoverAmount] = args;
|
|
44
|
+
return [{ tokenIn: this.lpToken, leftoverAmount }];
|
|
45
|
+
}
|
|
46
|
+
default:
|
|
47
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resolves a Curve pool coin index to its token address.
|
|
52
|
+
*
|
|
53
|
+
* @throws When the index is out of range for the pool.
|
|
54
|
+
*/
|
|
55
|
+
curveCoin(i) {
|
|
56
|
+
const token = this.tokens[Number(i)];
|
|
57
|
+
if (!token) {
|
|
58
|
+
throw new Error(`curve coin index ${i} is out of range`);
|
|
59
|
+
}
|
|
60
|
+
return token;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
64
|
+
0 && (module.exports = {
|
|
65
|
+
AbstractCurveAdapterContract
|
|
66
|
+
});
|
|
@@ -26,7 +26,6 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
|
|
|
26
26
|
var import_viem = require("viem");
|
|
27
27
|
var import_sdk = require("../../../sdk/index.js");
|
|
28
28
|
var import_targetContractAbi = require("../abi/targetContractAbi.js");
|
|
29
|
-
var import_balanceChanges = require("../balanceChanges.js");
|
|
30
29
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
31
30
|
var BalancerV3PoolStatus = /* @__PURE__ */ ((BalancerV3PoolStatus2) => {
|
|
32
31
|
BalancerV3PoolStatus2[BalancerV3PoolStatus2["NOT_ALLOWED"] = 0] = "NOT_ALLOWED";
|
|
@@ -94,23 +93,23 @@ class BalancerV3RouterAdapterContract extends import_AbstractAdapter.AbstractAda
|
|
|
94
93
|
}))
|
|
95
94
|
};
|
|
96
95
|
}
|
|
97
|
-
|
|
96
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
98
97
|
switch (decoded.functionName) {
|
|
99
98
|
case "swapSingleTokenDiffIn": {
|
|
100
99
|
const [, tokenIn, , leftoverAmount] = decoded.args;
|
|
101
|
-
return
|
|
100
|
+
return [{ tokenIn, leftoverAmount }];
|
|
102
101
|
}
|
|
103
102
|
// BPT (pool token) is spent down to the leftover
|
|
104
103
|
case "removeLiquiditySingleTokenDiff": {
|
|
105
104
|
const [pool, leftoverAmount] = decoded.args;
|
|
106
|
-
return
|
|
105
|
+
return [{ tokenIn: pool, leftoverAmount }];
|
|
107
106
|
}
|
|
108
107
|
case "addLiquidityUnbalancedDiff":
|
|
109
108
|
throw new Error(
|
|
110
109
|
`previewBalanceChanges cannot resolve pool tokens for addLiquidityUnbalancedDiff on ${this.contractType} adapter at ${this.address}`
|
|
111
110
|
);
|
|
112
111
|
default:
|
|
113
|
-
return super.
|
|
112
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
114
113
|
}
|
|
115
114
|
}
|
|
116
115
|
}
|
|
@@ -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.iBalancerV3WrapperAdapterAbi;
|
|
31
30
|
const protocolAbi = import_targetContractAbi.iBalancerV3WrapperAbi;
|
|
@@ -56,23 +55,19 @@ class BalancerV3WrapperAdapterContract extends import_AbstractAdapter.AbstractAd
|
|
|
56
55
|
balancerPoolToken: this.#balancerPoolToken ? this.labelAddress(this.#balancerPoolToken) : void 0
|
|
57
56
|
};
|
|
58
57
|
}
|
|
59
|
-
|
|
58
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
60
59
|
switch (decoded.functionName) {
|
|
61
60
|
// mint spends the pool token, burn spends the wrapper (target contract)
|
|
62
61
|
case "mintDiff": {
|
|
63
62
|
const [leftoverAmount] = decoded.args;
|
|
64
|
-
return
|
|
65
|
-
balances,
|
|
66
|
-
this.balancerPoolToken,
|
|
67
|
-
leftoverAmount
|
|
68
|
-
);
|
|
63
|
+
return [{ tokenIn: this.balancerPoolToken, leftoverAmount }];
|
|
69
64
|
}
|
|
70
65
|
case "burnDiff": {
|
|
71
66
|
const [leftoverAmount] = decoded.args;
|
|
72
|
-
return
|
|
67
|
+
return [{ tokenIn: this.targetContract, leftoverAmount }];
|
|
73
68
|
}
|
|
74
69
|
default:
|
|
75
|
-
return super.
|
|
70
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
76
71
|
}
|
|
77
72
|
}
|
|
78
73
|
}
|
|
@@ -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.iCamelotV3AdapterAbi;
|
|
31
30
|
const protocolAbi = import_targetContractAbi.iCamelotV3RouterAbi;
|
|
@@ -69,19 +68,24 @@ class CamelotV3AdapterContract extends import_AbstractAdapter.AbstractAdapterCon
|
|
|
69
68
|
}))
|
|
70
69
|
};
|
|
71
70
|
}
|
|
72
|
-
|
|
71
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
73
72
|
switch (decoded.functionName) {
|
|
74
73
|
case "exactDiffInputSingle": {
|
|
75
74
|
const [params] = decoded.args;
|
|
76
|
-
return
|
|
75
|
+
return [
|
|
76
|
+
{
|
|
77
|
+
tokenIn: params.tokenIn,
|
|
78
|
+
leftoverAmount: params.leftoverAmount
|
|
79
|
+
}
|
|
80
|
+
];
|
|
77
81
|
}
|
|
78
82
|
case "exactDiffInput": {
|
|
79
83
|
const [params] = decoded.args;
|
|
80
84
|
const tokenIn = `0x${params.path.replace("0x", "").slice(0, 40)}`;
|
|
81
|
-
return
|
|
85
|
+
return [{ tokenIn, leftoverAmount: params.leftoverAmount }];
|
|
82
86
|
}
|
|
83
87
|
default:
|
|
84
|
-
return super.
|
|
88
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
85
89
|
}
|
|
86
90
|
}
|
|
87
91
|
}
|
|
@@ -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.iConvexV1BaseRewardPoolAdapterAbi;
|
|
@@ -129,26 +128,22 @@ class ConvexV1BaseRewardPoolAdapterContract extends import_AbstractAdapter.Abstr
|
|
|
129
128
|
withdrawAmount: swap.toAmount
|
|
130
129
|
};
|
|
131
130
|
}
|
|
132
|
-
|
|
131
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
133
132
|
switch (decoded.functionName) {
|
|
134
133
|
case "stakeDiff": {
|
|
135
134
|
const [leftoverAmount] = decoded.args;
|
|
136
|
-
return
|
|
135
|
+
return [{ tokenIn: this.stakingToken, leftoverAmount }];
|
|
137
136
|
}
|
|
138
137
|
case "withdrawDiff":
|
|
139
138
|
case "withdrawDiffAndUnwrap": {
|
|
140
139
|
const [leftoverAmount] = decoded.args;
|
|
141
|
-
return
|
|
142
|
-
balances,
|
|
143
|
-
this.stakedPhantomToken,
|
|
144
|
-
leftoverAmount
|
|
145
|
-
);
|
|
140
|
+
return [{ tokenIn: this.stakedPhantomToken, leftoverAmount }];
|
|
146
141
|
}
|
|
147
142
|
// no accrued rewards on a freshly opened account
|
|
148
143
|
case "getReward":
|
|
149
|
-
return
|
|
144
|
+
return [];
|
|
150
145
|
default:
|
|
151
|
-
return super.
|
|
146
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
152
147
|
}
|
|
153
148
|
}
|
|
154
149
|
}
|
|
@@ -25,7 +25,6 @@ var import_viem = require("viem");
|
|
|
25
25
|
var import_sdk = require("../../../sdk/index.js");
|
|
26
26
|
var import_iConvexV1BoosterAdapter = require("../abi/iConvexV1BoosterAdapter.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_iConvexV1BoosterAdapter.iConvexV1BoosterAdapterAbi;
|
|
@@ -103,21 +102,21 @@ class ConvexV1BoosterAdapterContract extends import_AbstractAdapter.AbstractAdap
|
|
|
103
102
|
}
|
|
104
103
|
return super.classifyLegacyOperation(parsed, transfers);
|
|
105
104
|
}
|
|
106
|
-
|
|
105
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
107
106
|
switch (decoded.functionName) {
|
|
108
107
|
// deposit spends the curve LP token, withdraw spends the convex token
|
|
109
108
|
case "depositDiff": {
|
|
110
109
|
const [pid, leftoverAmount] = decoded.args;
|
|
111
110
|
const pool = this.#mustFindPool(Number(pid));
|
|
112
|
-
return
|
|
111
|
+
return [{ tokenIn: pool.curveToken, leftoverAmount }];
|
|
113
112
|
}
|
|
114
113
|
case "withdrawDiff": {
|
|
115
114
|
const [pid, leftoverAmount] = decoded.args;
|
|
116
115
|
const pool = this.#mustFindPool(Number(pid));
|
|
117
|
-
return
|
|
116
|
+
return [{ tokenIn: pool.convexToken, leftoverAmount }];
|
|
118
117
|
}
|
|
119
118
|
default:
|
|
120
|
-
return super.
|
|
119
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
121
120
|
}
|
|
122
121
|
}
|
|
123
122
|
#mustFindPool(pid) {
|
|
@@ -25,12 +25,10 @@ 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
|
|
29
|
-
var import_transferHelpers = require("../transferHelpers.js");
|
|
30
|
-
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
28
|
+
var import_AbstractCurveAdapter = require("./AbstractCurveAdapter.js");
|
|
31
29
|
const abi = import_integrations_v3.iCurveV1_2AssetsAdapterAbi;
|
|
32
30
|
const protocolAbi = [...import_targetContractAbi.iCurvePoolAbi, ...import_targetContractAbi.iCurvePool_2Abi];
|
|
33
|
-
class Curve2AssetsAdapterContract extends
|
|
31
|
+
class Curve2AssetsAdapterContract extends import_AbstractCurveAdapter.AbstractCurveAdapterContract {
|
|
34
32
|
#token;
|
|
35
33
|
#lpToken;
|
|
36
34
|
#metapoolBase;
|
|
@@ -104,36 +102,6 @@ class Curve2AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapter
|
|
|
104
102
|
underlyings: this.#underlyings?.map((t) => this.labelAddress(t))
|
|
105
103
|
};
|
|
106
104
|
}
|
|
107
|
-
/** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
|
|
108
|
-
classifyLegacyOperation(parsed, transfers) {
|
|
109
|
-
return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
110
|
-
}
|
|
111
|
-
previewDecodedBalanceChanges(balances, decoded) {
|
|
112
|
-
switch (decoded.functionName) {
|
|
113
|
-
case "exchange_diff": {
|
|
114
|
-
const [i, , leftoverAmount] = decoded.args;
|
|
115
|
-
return (0, import_balanceChanges.clampToLeftover)(
|
|
116
|
-
balances,
|
|
117
|
-
(0, import_balanceChanges.curveCoin)(this.tokens, i),
|
|
118
|
-
leftoverAmount
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
case "add_diff_liquidity_one_coin": {
|
|
122
|
-
const [leftoverAmount, i] = decoded.args;
|
|
123
|
-
return (0, import_balanceChanges.clampToLeftover)(
|
|
124
|
-
balances,
|
|
125
|
-
(0, import_balanceChanges.curveCoin)(this.tokens, i),
|
|
126
|
-
leftoverAmount
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
case "remove_diff_liquidity_one_coin": {
|
|
130
|
-
const [leftoverAmount] = decoded.args;
|
|
131
|
-
return (0, import_balanceChanges.clampToLeftover)(balances, this.lpToken, leftoverAmount);
|
|
132
|
-
}
|
|
133
|
-
default:
|
|
134
|
-
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
105
|
}
|
|
138
106
|
// Annotate the CommonJS export names for ESM import in node:
|
|
139
107
|
0 && (module.exports = {
|
|
@@ -25,12 +25,10 @@ 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
|
|
29
|
-
var import_transferHelpers = require("../transferHelpers.js");
|
|
30
|
-
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
28
|
+
var import_AbstractCurveAdapter = require("./AbstractCurveAdapter.js");
|
|
31
29
|
const abi = import_integrations_v3.iCurveV1_3AssetsAdapterAbi;
|
|
32
30
|
const protocolAbi = [...import_targetContractAbi.iCurvePoolAbi, ...import_targetContractAbi.iCurvePool_3Abi];
|
|
33
|
-
class Curve3AssetsAdapterContract extends
|
|
31
|
+
class Curve3AssetsAdapterContract extends import_AbstractCurveAdapter.AbstractCurveAdapterContract {
|
|
34
32
|
#token;
|
|
35
33
|
#lpToken;
|
|
36
34
|
#metapoolBase;
|
|
@@ -104,36 +102,6 @@ class Curve3AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapter
|
|
|
104
102
|
underlyings: this.#underlyings?.map((t) => this.labelAddress(t))
|
|
105
103
|
};
|
|
106
104
|
}
|
|
107
|
-
/** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
|
|
108
|
-
classifyLegacyOperation(parsed, transfers) {
|
|
109
|
-
return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
110
|
-
}
|
|
111
|
-
previewDecodedBalanceChanges(balances, decoded) {
|
|
112
|
-
switch (decoded.functionName) {
|
|
113
|
-
case "exchange_diff": {
|
|
114
|
-
const [i, , leftoverAmount] = decoded.args;
|
|
115
|
-
return (0, import_balanceChanges.clampToLeftover)(
|
|
116
|
-
balances,
|
|
117
|
-
(0, import_balanceChanges.curveCoin)(this.tokens, i),
|
|
118
|
-
leftoverAmount
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
case "add_diff_liquidity_one_coin": {
|
|
122
|
-
const [leftoverAmount, i] = decoded.args;
|
|
123
|
-
return (0, import_balanceChanges.clampToLeftover)(
|
|
124
|
-
balances,
|
|
125
|
-
(0, import_balanceChanges.curveCoin)(this.tokens, i),
|
|
126
|
-
leftoverAmount
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
case "remove_diff_liquidity_one_coin": {
|
|
130
|
-
const [leftoverAmount] = decoded.args;
|
|
131
|
-
return (0, import_balanceChanges.clampToLeftover)(balances, this.lpToken, leftoverAmount);
|
|
132
|
-
}
|
|
133
|
-
default:
|
|
134
|
-
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
105
|
}
|
|
138
106
|
// Annotate the CommonJS export names for ESM import in node:
|
|
139
107
|
0 && (module.exports = {
|
|
@@ -25,12 +25,10 @@ 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
|
|
29
|
-
var import_transferHelpers = require("../transferHelpers.js");
|
|
30
|
-
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
28
|
+
var import_AbstractCurveAdapter = require("./AbstractCurveAdapter.js");
|
|
31
29
|
const abi = import_integrations_v3.iCurveV1_4AssetsAdapterAbi;
|
|
32
30
|
const protocolAbi = [...import_targetContractAbi.iCurvePoolAbi, ...import_targetContractAbi.iCurvePool_4Abi];
|
|
33
|
-
class Curve4AssetsAdapterContract extends
|
|
31
|
+
class Curve4AssetsAdapterContract extends import_AbstractCurveAdapter.AbstractCurveAdapterContract {
|
|
34
32
|
#token;
|
|
35
33
|
#lpToken;
|
|
36
34
|
#metapoolBase;
|
|
@@ -109,36 +107,6 @@ class Curve4AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapter
|
|
|
109
107
|
underlyings: this.#underlyings?.map((t) => this.labelAddress(t))
|
|
110
108
|
};
|
|
111
109
|
}
|
|
112
|
-
/** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
|
|
113
|
-
classifyLegacyOperation(parsed, transfers) {
|
|
114
|
-
return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
115
|
-
}
|
|
116
|
-
previewDecodedBalanceChanges(balances, decoded) {
|
|
117
|
-
switch (decoded.functionName) {
|
|
118
|
-
case "exchange_diff": {
|
|
119
|
-
const [i, , leftoverAmount] = decoded.args;
|
|
120
|
-
return (0, import_balanceChanges.clampToLeftover)(
|
|
121
|
-
balances,
|
|
122
|
-
(0, import_balanceChanges.curveCoin)(this.tokens, i),
|
|
123
|
-
leftoverAmount
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
|
-
case "add_diff_liquidity_one_coin": {
|
|
127
|
-
const [leftoverAmount, i] = decoded.args;
|
|
128
|
-
return (0, import_balanceChanges.clampToLeftover)(
|
|
129
|
-
balances,
|
|
130
|
-
(0, import_balanceChanges.curveCoin)(this.tokens, i),
|
|
131
|
-
leftoverAmount
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
case "remove_diff_liquidity_one_coin": {
|
|
135
|
-
const [leftoverAmount] = decoded.args;
|
|
136
|
-
return (0, import_balanceChanges.clampToLeftover)(balances, this.lpToken, leftoverAmount);
|
|
137
|
-
}
|
|
138
|
-
default:
|
|
139
|
-
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
110
|
}
|
|
143
111
|
// Annotate the CommonJS export names for ESM import in node:
|
|
144
112
|
0 && (module.exports = {
|
|
@@ -25,11 +25,10 @@ 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
|
|
29
|
-
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
28
|
+
var import_AbstractCurveAdapter = require("./AbstractCurveAdapter.js");
|
|
30
29
|
const abi = import_integrations_v3.iCurveV1AdapterAbi;
|
|
31
30
|
const protocolAbi = import_targetContractAbi.iCurvePoolAbi;
|
|
32
|
-
class CurveV1AdapterDeposit extends
|
|
31
|
+
class CurveV1AdapterDeposit extends import_AbstractCurveAdapter.AbstractCurveAdapterContract {
|
|
33
32
|
#token;
|
|
34
33
|
#lpToken;
|
|
35
34
|
#metapoolBase;
|
|
@@ -110,32 +109,6 @@ class CurveV1AdapterDeposit extends import_AbstractAdapter.AbstractAdapterContra
|
|
|
110
109
|
`classifyLegacyOperation is not supported for legacy adapter: ${this.contractType}`
|
|
111
110
|
);
|
|
112
111
|
}
|
|
113
|
-
previewDecodedBalanceChanges(balances, decoded) {
|
|
114
|
-
switch (decoded.functionName) {
|
|
115
|
-
case "exchange_diff": {
|
|
116
|
-
const [i, , leftoverAmount] = decoded.args;
|
|
117
|
-
return (0, import_balanceChanges.clampToLeftover)(
|
|
118
|
-
balances,
|
|
119
|
-
(0, import_balanceChanges.curveCoin)(this.tokens, i),
|
|
120
|
-
leftoverAmount
|
|
121
|
-
);
|
|
122
|
-
}
|
|
123
|
-
case "add_diff_liquidity_one_coin": {
|
|
124
|
-
const [leftoverAmount, i] = decoded.args;
|
|
125
|
-
return (0, import_balanceChanges.clampToLeftover)(
|
|
126
|
-
balances,
|
|
127
|
-
(0, import_balanceChanges.curveCoin)(this.tokens, i),
|
|
128
|
-
leftoverAmount
|
|
129
|
-
);
|
|
130
|
-
}
|
|
131
|
-
case "remove_diff_liquidity_one_coin": {
|
|
132
|
-
const [leftoverAmount] = decoded.args;
|
|
133
|
-
return (0, import_balanceChanges.clampToLeftover)(balances, this.lpToken, leftoverAmount);
|
|
134
|
-
}
|
|
135
|
-
default:
|
|
136
|
-
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
112
|
}
|
|
140
113
|
// Annotate the CommonJS export names for ESM import in node:
|
|
141
114
|
0 && (module.exports = {
|
|
@@ -25,12 +25,10 @@ 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
|
|
29
|
-
var import_transferHelpers = require("../transferHelpers.js");
|
|
30
|
-
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
28
|
+
var import_AbstractCurveAdapter = require("./AbstractCurveAdapter.js");
|
|
31
29
|
const abi = import_integrations_v3.iCurveV1_2AssetsAdapterAbi;
|
|
32
30
|
const protocolAbi = [...import_targetContractAbi.iCurvePoolAbi, ...import_targetContractAbi.iCurvePool_2Abi];
|
|
33
|
-
class CurveV1AdapterStETHContract extends
|
|
31
|
+
class CurveV1AdapterStETHContract extends import_AbstractCurveAdapter.AbstractCurveAdapterContract {
|
|
34
32
|
#token;
|
|
35
33
|
#lpToken;
|
|
36
34
|
#metapoolBase;
|
|
@@ -87,36 +85,6 @@ class CurveV1AdapterStETHContract extends import_AbstractAdapter.AbstractAdapter
|
|
|
87
85
|
if (!this.#tokens) throw new import_sdk.MissingSerializedParamsError("tokens");
|
|
88
86
|
return this.#tokens;
|
|
89
87
|
}
|
|
90
|
-
/** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
|
|
91
|
-
classifyLegacyOperation(parsed, transfers) {
|
|
92
|
-
return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
93
|
-
}
|
|
94
|
-
previewDecodedBalanceChanges(balances, decoded) {
|
|
95
|
-
switch (decoded.functionName) {
|
|
96
|
-
case "exchange_diff": {
|
|
97
|
-
const [i, , leftoverAmount] = decoded.args;
|
|
98
|
-
return (0, import_balanceChanges.clampToLeftover)(
|
|
99
|
-
balances,
|
|
100
|
-
(0, import_balanceChanges.curveCoin)(this.tokens, i),
|
|
101
|
-
leftoverAmount
|
|
102
|
-
);
|
|
103
|
-
}
|
|
104
|
-
case "add_diff_liquidity_one_coin": {
|
|
105
|
-
const [leftoverAmount, i] = decoded.args;
|
|
106
|
-
return (0, import_balanceChanges.clampToLeftover)(
|
|
107
|
-
balances,
|
|
108
|
-
(0, import_balanceChanges.curveCoin)(this.tokens, i),
|
|
109
|
-
leftoverAmount
|
|
110
|
-
);
|
|
111
|
-
}
|
|
112
|
-
case "remove_diff_liquidity_one_coin": {
|
|
113
|
-
const [leftoverAmount] = decoded.args;
|
|
114
|
-
return (0, import_balanceChanges.clampToLeftover)(balances, this.lpToken, leftoverAmount);
|
|
115
|
-
}
|
|
116
|
-
default:
|
|
117
|
-
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
88
|
}
|
|
121
89
|
// Annotate the CommonJS export names for ESM import in node:
|
|
122
90
|
0 && (module.exports = {
|