@gearbox-protocol/sdk 14.12.0-next.26 → 14.12.0-next.28

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.
Files changed (145) hide show
  1. package/dist/cjs/history/populateContractsRegister.js +14 -11
  2. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +13 -5
  3. package/dist/cjs/plugins/adapters/contracts/AbstractCurveAdapter.js +2 -2
  4. package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +2 -2
  5. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +4 -4
  6. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +4 -4
  7. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +4 -4
  8. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +4 -4
  9. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +4 -4
  10. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -2
  11. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -2
  12. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -2
  13. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -2
  14. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -2
  15. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +4 -4
  16. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +13 -6
  17. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +4 -4
  18. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +4 -4
  19. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +4 -4
  20. package/dist/cjs/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +2 -2
  21. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +4 -4
  22. package/dist/cjs/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +2 -2
  23. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +4 -4
  24. package/dist/cjs/plugins/adapters/contracts/MellowClaimerAdapterContract.js +12 -19
  25. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +4 -4
  26. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +12 -6
  27. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +4 -4
  28. package/dist/cjs/plugins/adapters/contracts/MidasGatewayAdapterContract.js +11 -23
  29. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +4 -4
  30. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +4 -4
  31. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +4 -4
  32. package/dist/cjs/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +4 -4
  33. package/dist/cjs/plugins/adapters/contracts/SecuritizeRedemptionGatewayAdapterContract.js +14 -14
  34. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +4 -4
  35. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +4 -4
  36. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +4 -4
  37. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +4 -4
  38. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +4 -4
  39. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +4 -4
  40. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +4 -4
  41. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +4 -4
  42. package/dist/cjs/plugins/adapters/createAdapter.js +40 -40
  43. package/dist/cjs/preview/preview/applyInnerOperations.js +6 -8
  44. package/dist/cjs/preview/preview/previewAdjustCreditAccount.js +1 -1
  45. package/dist/cjs/preview/preview/previewCloseOrRepayCreditAccount.js +1 -1
  46. package/dist/cjs/preview/preview/previewOpenCreditAccount.js +2 -2
  47. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +23 -12
  48. package/dist/cjs/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.js +18 -10
  49. package/dist/esm/history/populateContractsRegister.js +17 -12
  50. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +13 -5
  51. package/dist/esm/plugins/adapters/contracts/AbstractCurveAdapter.js +2 -2
  52. package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +2 -2
  53. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +4 -4
  54. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +4 -4
  55. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +4 -4
  56. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +4 -4
  57. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +4 -4
  58. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -2
  59. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -2
  60. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -2
  61. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -2
  62. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -2
  63. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +4 -4
  64. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +13 -6
  65. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +4 -4
  66. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +4 -4
  67. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +4 -4
  68. package/dist/esm/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +2 -2
  69. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +4 -4
  70. package/dist/esm/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +2 -2
  71. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +4 -4
  72. package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +12 -19
  73. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +4 -4
  74. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +12 -6
  75. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +4 -4
  76. package/dist/esm/plugins/adapters/contracts/MidasGatewayAdapterContract.js +12 -25
  77. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +4 -4
  78. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +4 -4
  79. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +4 -4
  80. package/dist/esm/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +4 -4
  81. package/dist/esm/plugins/adapters/contracts/SecuritizeRedemptionGatewayAdapterContract.js +14 -14
  82. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +4 -4
  83. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +4 -4
  84. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +4 -4
  85. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +4 -4
  86. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +4 -4
  87. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +4 -4
  88. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +4 -4
  89. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +4 -4
  90. package/dist/esm/plugins/adapters/createAdapter.js +40 -40
  91. package/dist/esm/preview/preview/applyInnerOperations.js +6 -8
  92. package/dist/esm/preview/preview/previewAdjustCreditAccount.js +1 -1
  93. package/dist/esm/preview/preview/previewCloseOrRepayCreditAccount.js +1 -1
  94. package/dist/esm/preview/preview/previewOpenCreditAccount.js +2 -2
  95. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +23 -12
  96. package/dist/esm/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.js +18 -10
  97. package/dist/types/history/populateContractsRegister.d.ts +1 -1
  98. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +8 -4
  99. package/dist/types/plugins/adapters/contracts/AbstractCurveAdapter.d.ts +1 -1
  100. package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +2 -2
  101. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +3 -3
  102. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +3 -3
  103. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +3 -3
  104. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +3 -3
  105. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +3 -3
  106. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +2 -2
  107. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +2 -2
  108. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +2 -2
  109. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +2 -2
  110. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +2 -2
  111. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +3 -3
  112. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +3 -3
  113. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +3 -3
  114. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +3 -3
  115. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +3 -3
  116. package/dist/types/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.d.ts +2 -2
  117. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +3 -3
  118. package/dist/types/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.d.ts +2 -2
  119. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +3 -3
  120. package/dist/types/plugins/adapters/contracts/MellowClaimerAdapterContract.d.ts +3 -3
  121. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +3 -3
  122. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +3 -3
  123. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +3 -3
  124. package/dist/types/plugins/adapters/contracts/MidasGatewayAdapterContract.d.ts +3 -3
  125. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +3 -3
  126. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +3 -3
  127. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +3 -3
  128. package/dist/types/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.d.ts +3 -3
  129. package/dist/types/plugins/adapters/contracts/SecuritizeRedemptionGatewayAdapterContract.d.ts +3 -3
  130. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +3 -3
  131. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +3 -3
  132. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +3 -3
  133. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +3 -3
  134. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +3 -3
  135. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +3 -3
  136. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +3 -3
  137. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +3 -3
  138. package/dist/types/plugins/adapters/createAdapter.d.ts +2 -2
  139. package/dist/types/preview/preview/applyInnerOperations.d.ts +1 -1
  140. package/dist/types/preview/preview/previewOpenCreditAccount.d.ts +1 -1
  141. package/dist/types/preview/preview/types.d.ts +2 -2
  142. package/dist/types/sdk/accounts/types.d.ts +18 -4
  143. package/dist/types/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.d.ts +4 -0
  144. package/dist/types/sdk/accounts/withdrawal-compressor/types.d.ts +6 -0
  145. package/package.json +1 -1
@@ -14,8 +14,8 @@ class CurveV1AdapterStETHContract extends AbstractCurveAdapterContract {
14
14
  #nCoins;
15
15
  #use256;
16
16
  #tokens;
17
- constructor(options, args) {
18
- super(options, { ...args, abi, protocolAbi });
17
+ constructor(sdk, args) {
18
+ super(sdk, { ...args, abi, protocolAbi });
19
19
  if (args.baseParams.serializedParams) {
20
20
  const decoded = decodeAbiParameters(
21
21
  [
@@ -18,8 +18,8 @@ class CurveV1StableNGAdapterContract extends AbstractCurveAdapterContract {
18
18
  #use256;
19
19
  #tokens;
20
20
  #underlyings;
21
- constructor(options, args) {
22
- super(options, { ...args, abi, protocolAbi });
21
+ constructor(sdk, args) {
22
+ super(sdk, { ...args, abi, protocolAbi });
23
23
  if (args.baseParams.serializedParams) {
24
24
  const decoded = decodeAbiParameters(
25
25
  [
@@ -13,8 +13,8 @@ const protocolAbi = iDaiUsdsAbi;
13
13
  class DaiUsdsAdapterContract extends AbstractAdapterContract {
14
14
  #dai;
15
15
  #usds;
16
- constructor(options, args) {
17
- super(options, { ...args, abi, protocolAbi });
16
+ constructor(sdk, args) {
17
+ super(sdk, { ...args, abi, protocolAbi });
18
18
  if (args.baseParams.serializedParams) {
19
19
  const decoded = decodeAbiParameters(
20
20
  [
@@ -55,7 +55,7 @@ class DaiUsdsAdapterContract extends AbstractAdapterContract {
55
55
  }
56
56
  return super.classifyLegacyOperation(parsed, transfers);
57
57
  }
58
- applyBalanceChanges(balances, decoded) {
58
+ async applyBalanceChanges(balances, decoded) {
59
59
  switch (decoded.functionName) {
60
60
  case "daiToUsdsDiff": {
61
61
  const [leftoverAmount] = decoded.args;
@@ -68,7 +68,7 @@ class DaiUsdsAdapterContract extends AbstractAdapterContract {
68
68
  break;
69
69
  }
70
70
  default:
71
- super.applyBalanceChanges(balances, decoded);
71
+ await super.applyBalanceChanges(balances, decoded);
72
72
  }
73
73
  }
74
74
  }
@@ -14,8 +14,8 @@ const protocolAbi = iERC4626Abi;
14
14
  class ERC4626AdapterContract extends AbstractAdapterContract {
15
15
  #vault;
16
16
  #asset;
17
- constructor(options, args) {
18
- super(options, { ...args, abi, protocolAbi });
17
+ constructor(sdk, args) {
18
+ super(sdk, { ...args, abi, protocolAbi });
19
19
  if (args.baseParams.serializedParams) {
20
20
  const version = Number(args.baseParams.version);
21
21
  if (version <= 311) {
@@ -81,7 +81,7 @@ class ERC4626AdapterContract extends AbstractAdapterContract {
81
81
  }
82
82
  return super.classifyLegacyOperation(parsed, transfers);
83
83
  }
84
- applyBalanceChanges(balances, decoded) {
84
+ async applyBalanceChanges(balances, decoded) {
85
85
  switch (decoded.functionName) {
86
86
  case "depositDiff": {
87
87
  const [leftoverAmount] = decoded.args;
@@ -93,15 +93,22 @@ class ERC4626AdapterContract extends AbstractAdapterContract {
93
93
  this.setLeftover(balances, this.share, leftoverAmount);
94
94
  break;
95
95
  }
96
+ // no-op:
97
+ // the only in-bracket producer of plain `redeem` is the
98
+ // withdrawal compressor, and sdk now encodes the spent
99
+ // shares as a negative storeExpectedBalances delta. The router never
100
+ // emits plain `redeem` — its workers use `redeemDiff` only. If the
101
+ // router (or another assembler) ever starts emitting in-bracket plain
102
+ // `redeem` without the negative delta, this case must decrease `share`
103
+ // by `shares` again (see commented-out lines). Out-of-bracket RWA
104
+ // wrap/unwrap `redeem` goes through applyRWAWrapUnwrap, not here.
96
105
  case "redeem": {
97
- const [shares] = decoded.args;
98
- this.spendExact(balances, this.share, shares);
99
106
  break;
100
107
  }
101
108
  // `withdraw`/`deposit`/`mint` stay unsupported: they are not emitted
102
109
  // by the router (which uses diff variants) or the withdrawal compressor
103
110
  default:
104
- super.applyBalanceChanges(balances, decoded);
111
+ await super.applyBalanceChanges(balances, decoded);
105
112
  }
106
113
  }
107
114
  }
@@ -13,8 +13,8 @@ const protocolAbi = iERC4626ReferralAbi;
13
13
  class ERC4626ReferralAdapterContract extends AbstractAdapterContract {
14
14
  #asset;
15
15
  #referral;
16
- constructor(options, args) {
17
- super(options, { ...args, abi, protocolAbi });
16
+ constructor(sdk, args) {
17
+ super(sdk, { ...args, abi, protocolAbi });
18
18
  if (args.baseParams.serializedParams) {
19
19
  const decoded = decodeAbiParameters(
20
20
  [
@@ -55,7 +55,7 @@ class ERC4626ReferralAdapterContract extends AbstractAdapterContract {
55
55
  }
56
56
  return super.classifyLegacyOperation(parsed, transfers);
57
57
  }
58
- applyBalanceChanges(balances, decoded) {
58
+ async applyBalanceChanges(balances, decoded) {
59
59
  switch (decoded.functionName) {
60
60
  case "depositDiff": {
61
61
  const [leftoverAmount] = decoded.args;
@@ -68,7 +68,7 @@ class ERC4626ReferralAdapterContract extends AbstractAdapterContract {
68
68
  break;
69
69
  }
70
70
  default:
71
- super.applyBalanceChanges(balances, decoded);
71
+ await super.applyBalanceChanges(balances, decoded);
72
72
  }
73
73
  }
74
74
  }
@@ -12,8 +12,8 @@ const protocolAbi = iFluidDexAbi;
12
12
  class FluidDexAdapterContract extends AbstractAdapterContract {
13
13
  #token0;
14
14
  #token1;
15
- constructor(options, args) {
16
- super(options, { ...args, abi, protocolAbi });
15
+ constructor(sdk, args) {
16
+ super(sdk, { ...args, abi, protocolAbi });
17
17
  if (args.baseParams.serializedParams) {
18
18
  const decoded = decodeAbiParameters(
19
19
  [
@@ -43,7 +43,7 @@ class FluidDexAdapterContract extends AbstractAdapterContract {
43
43
  token1: this.#token1 ? this.labelAddress(this.#token1) : void 0
44
44
  };
45
45
  }
46
- applyBalanceChanges(balances, decoded) {
46
+ async applyBalanceChanges(balances, decoded) {
47
47
  switch (decoded.functionName) {
48
48
  case "swapInDiff": {
49
49
  const [swap0to1, leftoverAmount] = decoded.args;
@@ -55,7 +55,7 @@ class FluidDexAdapterContract extends AbstractAdapterContract {
55
55
  break;
56
56
  }
57
57
  default:
58
- super.applyBalanceChanges(balances, decoded);
58
+ await super.applyBalanceChanges(balances, decoded);
59
59
  }
60
60
  }
61
61
  }
@@ -14,8 +14,8 @@ class InfinifiGatewayAdapterContract extends AbstractAdapterContract {
14
14
  #iusd;
15
15
  #siusd;
16
16
  #allowedLockedTokens;
17
- constructor(options, args) {
18
- super(options, { ...args, abi, protocolAbi });
17
+ constructor(sdk, args) {
18
+ super(sdk, { ...args, abi, protocolAbi });
19
19
  if (args.baseParams.serializedParams) {
20
20
  const decoded = decodeAbiParameters(
21
21
  [
@@ -65,7 +65,7 @@ class InfinifiGatewayAdapterContract extends AbstractAdapterContract {
65
65
  )
66
66
  };
67
67
  }
68
- applyBalanceChanges(balances, decoded) {
68
+ async applyBalanceChanges(balances, decoded) {
69
69
  switch (decoded.functionName) {
70
70
  case "mintDiff": {
71
71
  const [leftoverAmount] = decoded.args;
@@ -86,7 +86,7 @@ class InfinifiGatewayAdapterContract extends AbstractAdapterContract {
86
86
  break;
87
87
  }
88
88
  default:
89
- super.applyBalanceChanges(balances, decoded);
89
+ await super.applyBalanceChanges(balances, decoded);
90
90
  }
91
91
  }
92
92
  }
@@ -11,8 +11,8 @@ const abi = iInfinifiUnwindingGatewayAdapterAbi;
11
11
  const protocolAbi = iInfinifiUnwindingGatewayAbi;
12
12
  class InfinifiUnwindingGatewayAdapterContract extends AbstractAdapterContract {
13
13
  #allowedLockedTokens;
14
- constructor(options, args) {
15
- super(options, { ...args, abi, protocolAbi });
14
+ constructor(sdk, args) {
15
+ super(sdk, { ...args, abi, protocolAbi });
16
16
  if (args.baseParams.serializedParams) {
17
17
  const decoded = decodeAbiParameters(
18
18
  [
@@ -13,8 +13,8 @@ const abi = iKelpLrtDepositPoolAdapterAbi;
13
13
  const protocolAbi = iKelpLrtDepositPoolGatewayAbi;
14
14
  class KelpLRTDepositPoolAdapterContract extends AbstractAdapterContract {
15
15
  #allowedAssets;
16
- constructor(options, args) {
17
- super(options, { ...args, abi, protocolAbi });
16
+ constructor(sdk, args) {
17
+ super(sdk, { ...args, abi, protocolAbi });
18
18
  if (args.baseParams.serializedParams) {
19
19
  const decoded = decodeAbiParameters(
20
20
  [
@@ -38,7 +38,7 @@ class KelpLRTDepositPoolAdapterContract extends AbstractAdapterContract {
38
38
  allowedAssets: this.#allowedAssets?.map((a) => this.labelAddress(a))
39
39
  };
40
40
  }
41
- applyBalanceChanges(balances, decoded) {
41
+ async applyBalanceChanges(balances, decoded) {
42
42
  switch (decoded.functionName) {
43
43
  case "depositAssetDiff": {
44
44
  const [tokenIn, leftoverAmount] = decoded.args;
@@ -46,7 +46,7 @@ class KelpLRTDepositPoolAdapterContract extends AbstractAdapterContract {
46
46
  break;
47
47
  }
48
48
  default:
49
- super.applyBalanceChanges(balances, decoded);
49
+ await super.applyBalanceChanges(balances, decoded);
50
50
  }
51
51
  }
52
52
  }
@@ -11,8 +11,8 @@ const abi = iKelpLrtWithdrawalManagerAdapterAbi;
11
11
  const protocolAbi = iKelpLrtWithdrawalManagerGatewayAbi;
12
12
  class KelpLRTWithdrawalManagerAdapterContract extends AbstractAdapterContract {
13
13
  #allowedTokensOut;
14
- constructor(options, args) {
15
- super(options, { ...args, abi, protocolAbi });
14
+ constructor(sdk, args) {
15
+ super(sdk, { ...args, abi, protocolAbi });
16
16
  if (args.baseParams.serializedParams) {
17
17
  const decoded = decodeAbiParameters(
18
18
  [
@@ -14,8 +14,8 @@ class LidoV1AdapterContract extends AbstractAdapterContract {
14
14
  #stETH;
15
15
  #weth;
16
16
  #treasury;
17
- constructor(options, args) {
18
- super(options, { ...args, abi, protocolAbi });
17
+ constructor(sdk, args) {
18
+ super(sdk, { ...args, abi, protocolAbi });
19
19
  if (args.baseParams.serializedParams) {
20
20
  const decoded = decodeAbiParameters(
21
21
  [
@@ -56,7 +56,7 @@ class LidoV1AdapterContract extends AbstractAdapterContract {
56
56
  classifyLegacyOperation(_parsed, transfers) {
57
57
  return { operation: "LidoSubmit", ...swapFromTransfers(transfers) };
58
58
  }
59
- applyBalanceChanges(balances, decoded) {
59
+ async applyBalanceChanges(balances, decoded) {
60
60
  switch (decoded.functionName) {
61
61
  // the adapter targets the WETH gateway, so WETH is spent
62
62
  case "submitDiff": {
@@ -65,7 +65,7 @@ class LidoV1AdapterContract extends AbstractAdapterContract {
65
65
  break;
66
66
  }
67
67
  default:
68
- super.applyBalanceChanges(balances, decoded);
68
+ await super.applyBalanceChanges(balances, decoded);
69
69
  }
70
70
  }
71
71
  }
@@ -11,8 +11,8 @@ const abi = iMellowClaimerAdapterAbi;
11
11
  const protocolAbi = iMellowClaimerAbi;
12
12
  class MellowClaimerAdapterContract extends AbstractAdapterContract {
13
13
  #allowedMultiVaults;
14
- constructor(options, args) {
15
- super(options, { ...args, abi, protocolAbi });
14
+ constructor(sdk, args) {
15
+ super(sdk, { ...args, abi, protocolAbi });
16
16
  if (args.baseParams.serializedParams) {
17
17
  const decoded = decodeAbiParameters(
18
18
  [
@@ -38,7 +38,7 @@ class MellowClaimerAdapterContract extends AbstractAdapterContract {
38
38
  )
39
39
  };
40
40
  }
41
- applyBalanceChanges(balances, decoded) {
41
+ async applyBalanceChanges(balances, decoded) {
42
42
  switch (decoded.functionName) {
43
43
  // pure "accept" of transferred pending assets, coupled with a Mellow
44
44
  // withdrawal request: it moves no ERC-20s, and the withdrawal phantom
@@ -46,25 +46,18 @@ class MellowClaimerAdapterContract extends AbstractAdapterContract {
46
46
  // built from the compressor's outputs
47
47
  case "multiAccept":
48
48
  break;
49
- case "withdrawPhantomToken": {
50
- const [token, amount] = decoded.args;
51
- this.spendExact(balances, token, amount);
49
+ // no-op:
50
+ // `multiAcceptAndClaim` is only emitted by the withdrawal
51
+ // compressor, and sdk now encodes the spent phantom token
52
+ // burn as a negative storeExpectedBalances delta. Resolving the phantom
53
+ // from calldata alone is impossible offline (the multiVault-to-phantom
54
+ // mapping is not serialized); the commented-out code recovered it via
55
+ // an RPC lookup.
56
+ case "multiAcceptAndClaim": {
52
57
  break;
53
58
  }
54
- // TODO:
55
- // `multiAcceptAndClaim` (the claim call emitted by the withdrawal
56
- // compressor) cannot be previewed offline: the burn amount IS in
57
- // calldata (`maxAssets` == the compressor's `withdrawalTokenSpent`),
58
- // but the withdrawal phantom token to debit cannot be resolved from
59
- // the `multiVault` argument. The on-chain adapter only serializes
60
- // (creditManager, targetContract, allowedMultiVaults) and drops its
61
- // `phantomTokenToMultiVault` mapping (unlike Midas/Kelp adapters,
62
- // which serialize aligned token/phantom arrays). Resolving it would
63
- // require DelayedWithdrawalPlugin state (WithdrawableAsset maps
64
- // multiVault -> withdrawalPhantomToken) or a contract-side
65
- // `serialize()` fix.
66
59
  default:
67
- super.applyBalanceChanges(balances, decoded);
60
+ await super.applyBalanceChanges(balances, decoded);
68
61
  }
69
62
  }
70
63
  }
@@ -13,8 +13,8 @@ const protocolAbi = iERC4626Abi;
13
13
  class MellowDVVAdapterContract extends AbstractAdapterContract {
14
14
  #vault;
15
15
  #asset;
16
- constructor(options, args) {
17
- super(options, { ...args, abi, protocolAbi });
16
+ constructor(sdk, args) {
17
+ super(sdk, { ...args, abi, protocolAbi });
18
18
  if (args.baseParams.serializedParams) {
19
19
  const decoded = decodeAbiParameters(
20
20
  [
@@ -54,7 +54,7 @@ class MellowDVVAdapterContract extends AbstractAdapterContract {
54
54
  }
55
55
  return super.classifyLegacyOperation(parsed, transfers);
56
56
  }
57
- applyBalanceChanges(balances, decoded) {
57
+ async applyBalanceChanges(balances, decoded) {
58
58
  const share = this.#vault ?? this.targetContract;
59
59
  switch (decoded.functionName) {
60
60
  case "depositDiff": {
@@ -68,7 +68,7 @@ class MellowDVVAdapterContract extends AbstractAdapterContract {
68
68
  break;
69
69
  }
70
70
  default:
71
- super.applyBalanceChanges(balances, decoded);
71
+ await super.applyBalanceChanges(balances, decoded);
72
72
  }
73
73
  }
74
74
  }
@@ -14,8 +14,8 @@ class MellowERC4626VaultAdapterContract extends AbstractAdapterContract {
14
14
  #vault;
15
15
  #asset;
16
16
  #stakedPhantomToken;
17
- constructor(options, args) {
18
- super(options, { ...args, abi, protocolAbi });
17
+ constructor(sdk, args) {
18
+ super(sdk, { ...args, abi, protocolAbi });
19
19
  if (args.baseParams.serializedParams) {
20
20
  const version = Number(args.baseParams.version);
21
21
  if (version <= 310) {
@@ -89,7 +89,7 @@ class MellowERC4626VaultAdapterContract extends AbstractAdapterContract {
89
89
  }
90
90
  return super.classifyLegacyOperation(parsed, transfers);
91
91
  }
92
- applyBalanceChanges(balances, decoded) {
92
+ async applyBalanceChanges(balances, decoded) {
93
93
  const share = this.#vault ?? this.targetContract;
94
94
  switch (decoded.functionName) {
95
95
  case "depositDiff": {
@@ -102,13 +102,19 @@ class MellowERC4626VaultAdapterContract extends AbstractAdapterContract {
102
102
  this.setLeftover(balances, share, leftoverAmount);
103
103
  break;
104
104
  }
105
+ // no-op:
106
+ // the only in-bracket producer of plain `redeem` is the
107
+ // withdrawal compressor, and sdk now encodes the spent
108
+ // shares as a negative storeExpectedBalances delta. The router never
109
+ // emits plain `redeem` — its workers use `redeemDiff` only. If the
110
+ // router (or another assembler) ever starts emitting in-bracket plain
111
+ // `redeem` without the negative delta, this case must decrease `share`
112
+ // by `shares` again (see commented-out lines).
105
113
  case "redeem": {
106
- const [shares] = decoded.args;
107
- this.spendExact(balances, share, shares);
108
114
  break;
109
115
  }
110
116
  default:
111
- super.applyBalanceChanges(balances, decoded);
117
+ await super.applyBalanceChanges(balances, decoded);
112
118
  }
113
119
  }
114
120
  }
@@ -11,8 +11,8 @@ const abi = iMellowWrapperAdapterAbi;
11
11
  const protocolAbi = iMellowWrapperAbi;
12
12
  class MellowWrapperAdapterContract extends AbstractAdapterContract {
13
13
  #allowedVaults;
14
- constructor(options, args) {
15
- super(options, { ...args, abi, protocolAbi });
14
+ constructor(sdk, args) {
15
+ super(sdk, { ...args, abi, protocolAbi });
16
16
  if (args.baseParams.serializedParams) {
17
17
  const decoded = decodeAbiParameters(
18
18
  [
@@ -36,7 +36,7 @@ class MellowWrapperAdapterContract extends AbstractAdapterContract {
36
36
  allowedVaults: this.#allowedVaults?.map((v) => this.labelAddress(v))
37
37
  };
38
38
  }
39
- applyBalanceChanges(balances, decoded) {
39
+ async applyBalanceChanges(balances, decoded) {
40
40
  switch (decoded.functionName) {
41
41
  case "depositDiff": {
42
42
  const weth = this.tokensMeta.mustFindBySymbol("WETH").addr;
@@ -45,7 +45,7 @@ class MellowWrapperAdapterContract extends AbstractAdapterContract {
45
45
  break;
46
46
  }
47
47
  default:
48
- super.applyBalanceChanges(balances, decoded);
48
+ await super.applyBalanceChanges(balances, decoded);
49
49
  }
50
50
  }
51
51
  }
@@ -1,6 +1,5 @@
1
1
  import {
2
- decodeAbiParameters,
3
- isAddressEqual
2
+ decodeAbiParameters
4
3
  } from "viem";
5
4
  import {
6
5
  MissingSerializedParamsError
@@ -18,8 +17,8 @@ class MidasGatewayAdapterContract extends AbstractAdapterContract {
18
17
  #referrerId;
19
18
  #allowedInputTokens;
20
19
  #allowedOutputTokens;
21
- constructor(options, args) {
22
- super(options, { ...args, abi, protocolAbi });
20
+ constructor(sdk, args) {
21
+ super(sdk, { ...args, abi, protocolAbi });
23
22
  if (args.baseParams.serializedParams) {
24
23
  const decoded = decodeAbiParameters(
25
24
  [
@@ -82,7 +81,7 @@ class MidasGatewayAdapterContract extends AbstractAdapterContract {
82
81
  }))
83
82
  };
84
83
  }
85
- applyBalanceChanges(balances, decoded) {
84
+ async applyBalanceChanges(balances, decoded) {
86
85
  switch (decoded.functionName) {
87
86
  case "depositInstantDiff": {
88
87
  const [tokenIn, leftoverAmount] = decoded.args;
@@ -97,33 +96,21 @@ class MidasGatewayAdapterContract extends AbstractAdapterContract {
97
96
  this.setLeftover(balances, this.mToken, leftoverAmount);
98
97
  break;
99
98
  }
100
- // exact-input redemption request emitted in-bracket by the withdrawal
101
- // compressor
99
+ // no-op:
100
+ // `redeemRequest` is only emitted by the withdrawal compressor,
101
+ // and sdk now encodes the spent mToken amount as a negative storeExpectedBalances delta
102
102
  case "redeemRequest": {
103
- const [, amountMTokenIn] = decoded.args;
104
- this.spendExact(balances, this.mToken, amountMTokenIn);
105
103
  break;
106
104
  }
107
- // claim call emitted by the withdrawal compressor
105
+ // no-op:
106
+ // `withdrawFromRedeemer` is only emitted by the withdrawal
107
+ // compressor, and `assembleClaimDelayedCalls` encodes the phantom token
108
+ // burn as a negative storeExpectedBalances delta
108
109
  case "withdrawFromRedeemer": {
109
- const [, tokenOut, amount] = decoded.args;
110
- const phantomToken = this.allowedOutputTokens.find(
111
- (t) => isAddressEqual(t.token, tokenOut)
112
- )?.phantomToken;
113
- if (!phantomToken) {
114
- super.applyBalanceChanges(balances, decoded);
115
- break;
116
- }
117
- this.spendExact(balances, phantomToken, amount);
118
- break;
119
- }
120
- case "withdrawPhantomToken": {
121
- const [token, amount] = decoded.args;
122
- this.spendExact(balances, token, amount);
123
110
  break;
124
111
  }
125
112
  default:
126
- super.applyBalanceChanges(balances, decoded);
113
+ await super.applyBalanceChanges(balances, decoded);
127
114
  }
128
115
  }
129
116
  }
@@ -13,8 +13,8 @@ class MidasIssuanceVaultAdapterContract extends AbstractAdapterContract {
13
13
  #mToken;
14
14
  #referrerId;
15
15
  #allowedTokens;
16
- constructor(options, args) {
17
- super(options, { ...args, abi, protocolAbi });
16
+ constructor(sdk, args) {
17
+ super(sdk, { ...args, abi, protocolAbi });
18
18
  if (args.baseParams.serializedParams) {
19
19
  const decoded = decodeAbiParameters(
20
20
  [
@@ -53,7 +53,7 @@ class MidasIssuanceVaultAdapterContract extends AbstractAdapterContract {
53
53
  allowedTokens: this.#allowedTokens?.map((t) => this.labelAddress(t))
54
54
  };
55
55
  }
56
- applyBalanceChanges(balances, decoded) {
56
+ async applyBalanceChanges(balances, decoded) {
57
57
  switch (decoded.functionName) {
58
58
  case "depositInstantDiff": {
59
59
  const [tokenIn, leftoverAmount] = decoded.args;
@@ -61,7 +61,7 @@ class MidasIssuanceVaultAdapterContract extends AbstractAdapterContract {
61
61
  break;
62
62
  }
63
63
  default:
64
- super.applyBalanceChanges(balances, decoded);
64
+ await super.applyBalanceChanges(balances, decoded);
65
65
  }
66
66
  }
67
67
  }
@@ -15,8 +15,8 @@ class MidasRedemptionVaultAdapterContract extends AbstractAdapterContract {
15
15
  #gateway;
16
16
  #mToken;
17
17
  #allowedTokens;
18
- constructor(options, args) {
19
- super(options, { ...args, abi, protocolAbi });
18
+ constructor(sdk, args) {
19
+ super(sdk, { ...args, abi, protocolAbi });
20
20
  if (args.baseParams.serializedParams) {
21
21
  const decoded = decodeAbiParameters(
22
22
  [
@@ -61,7 +61,7 @@ class MidasRedemptionVaultAdapterContract extends AbstractAdapterContract {
61
61
  }))
62
62
  };
63
63
  }
64
- applyBalanceChanges(balances, decoded) {
64
+ async applyBalanceChanges(balances, decoded) {
65
65
  switch (decoded.functionName) {
66
66
  // redemption spends the mToken down to the leftover, tokenOut arg is
67
67
  // the received token
@@ -71,7 +71,7 @@ class MidasRedemptionVaultAdapterContract extends AbstractAdapterContract {
71
71
  break;
72
72
  }
73
73
  default:
74
- super.applyBalanceChanges(balances, decoded);
74
+ await super.applyBalanceChanges(balances, decoded);
75
75
  }
76
76
  }
77
77
  }
@@ -22,8 +22,8 @@ const abi = iPendleRouterAdapterAbi;
22
22
  const protocolAbi = iPendleRouterAbi;
23
23
  class PendleRouterAdapterContract extends AbstractAdapterContract {
24
24
  #allowedPairs;
25
- constructor(options, args) {
26
- super(options, { ...args, abi, protocolAbi });
25
+ constructor(sdk, args) {
26
+ super(sdk, { ...args, abi, protocolAbi });
27
27
  if (args.baseParams.serializedParams) {
28
28
  const version = Number(args.baseParams.version);
29
29
  if (version === 310) {
@@ -96,7 +96,7 @@ class PendleRouterAdapterContract extends AbstractAdapterContract {
96
96
  }))
97
97
  };
98
98
  }
99
- applyBalanceChanges(balances, decoded) {
99
+ async applyBalanceChanges(balances, decoded) {
100
100
  switch (decoded.functionName) {
101
101
  case "swapDiffTokenForPt":
102
102
  case "addLiquiditySingleTokenDiff": {
@@ -137,7 +137,7 @@ class PendleRouterAdapterContract extends AbstractAdapterContract {
137
137
  break;
138
138
  }
139
139
  default:
140
- super.applyBalanceChanges(balances, decoded);
140
+ await super.applyBalanceChanges(balances, decoded);
141
141
  }
142
142
  }
143
143
  #mustFindPendleToken(market, type) {
@@ -13,8 +13,8 @@ const protocolAbi = [...iSecuritizeOnRampAbi, ...iBaseOnRampAbi];
13
13
  class SecuritizeOnRampAdapterContract extends AbstractAdapterContract {
14
14
  #dsToken;
15
15
  #liquidityToken;
16
- constructor(options, args) {
17
- super(options, { ...args, abi, protocolAbi });
16
+ constructor(sdk, args) {
17
+ super(sdk, { ...args, abi, protocolAbi });
18
18
  if (args.baseParams.serializedParams) {
19
19
  const decoded = decodeAbiParameters(
20
20
  [
@@ -45,7 +45,7 @@ class SecuritizeOnRampAdapterContract extends AbstractAdapterContract {
45
45
  liquidityToken: this.#liquidityToken ? this.labelAddress(this.#liquidityToken) : void 0
46
46
  };
47
47
  }
48
- applyBalanceChanges(balances, decoded) {
48
+ async applyBalanceChanges(balances, decoded) {
49
49
  switch (decoded.functionName) {
50
50
  // swaps the liquidity token into dsToken
51
51
  case "swapDiff": {
@@ -54,7 +54,7 @@ class SecuritizeOnRampAdapterContract extends AbstractAdapterContract {
54
54
  break;
55
55
  }
56
56
  default:
57
- super.applyBalanceChanges(balances, decoded);
57
+ await super.applyBalanceChanges(balances, decoded);
58
58
  }
59
59
  }
60
60
  }
@@ -13,8 +13,8 @@ class SecuritizeRedemptionGatewayAdapterContract extends AbstractAdapterContract
13
13
  #dsToken;
14
14
  #stableCoinToken;
15
15
  #redemptionPhantomToken;
16
- constructor(options, args) {
17
- super(options, { ...args, abi, protocolAbi });
16
+ constructor(sdk, args) {
17
+ super(sdk, { ...args, abi, protocolAbi });
18
18
  if (args.baseParams.serializedParams) {
19
19
  const decoded = decodeAbiParameters(
20
20
  [
@@ -53,11 +53,12 @@ class SecuritizeRedemptionGatewayAdapterContract extends AbstractAdapterContract
53
53
  redemptionPhantomToken: this.#redemptionPhantomToken ? this.labelAddress(this.#redemptionPhantomToken) : void 0
54
54
  };
55
55
  }
56
- applyBalanceChanges(balances, decoded) {
56
+ async applyBalanceChanges(balances, decoded) {
57
57
  switch (decoded.functionName) {
58
+ // no-op:
59
+ // `redeem` is only emitted by the withdrawal compressor, and
60
+ // sdk now encodes the spent DS token amount as a negative storeExpectedBalances delta
58
61
  case "redeem": {
59
- const [dsTokenAmount] = decoded.args;
60
- this.spendExact(balances, this.dsToken, dsTokenAmount);
61
62
  break;
62
63
  }
63
64
  // diff-style redemption: spends the DS token down to the leftover
@@ -66,16 +67,15 @@ class SecuritizeRedemptionGatewayAdapterContract extends AbstractAdapterContract
66
67
  this.setLeftover(balances, this.dsToken, leftoverAmount);
67
68
  break;
68
69
  }
69
- // TODO:
70
- // `claim(address[] redeemers)` (the claim call emitted by the
71
- // withdrawal compressor) cannot be previewed offline: the redemption
72
- // phantom token burn (the compressor's `withdrawalTokenSpent`, i.e.
73
- // each redeemer's `getRedemptionAmount()`) lives in per-redeemer clone
74
- // contracts and is not recoverable from calldata. For claimable
75
- // redeemers it equals the stablecoin credit, but that value is not in
76
- // calldata either.
70
+ // no-op:
71
+ // the redemption phantom token burn of a `claim(address[])` is
72
+ // not recoverable from calldata (it lives in per-redeemer clone
73
+ // contracts, `SecuritizeRedeemer.getRedemptionAmount()`); instead,
74
+ // sdk now encodes it as a negative storeExpectedBalances delta.
75
+ case "claim":
76
+ break;
77
77
  default:
78
- super.applyBalanceChanges(balances, decoded);
78
+ await super.applyBalanceChanges(balances, decoded);
79
79
  }
80
80
  }
81
81
  }