@gearbox-protocol/sdk 9.11.0 → 9.12.0

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 (137) hide show
  1. package/dist/cjs/plugins/adapters/AdaptersPlugin.js +127 -0
  2. package/dist/cjs/plugins/adapters/abi/actionAbi.js +95 -0
  3. package/dist/cjs/plugins/adapters/abi/conctructorAbi.js +154 -0
  4. package/dist/cjs/plugins/adapters/abi/conctructorAbiPatterns.js +99 -0
  5. package/dist/cjs/plugins/adapters/abi/index.js +26 -0
  6. package/dist/cjs/plugins/adapters/abi/utils.js +86 -0
  7. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +39 -0
  8. package/dist/cjs/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +51 -0
  9. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +46 -0
  10. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +56 -0
  11. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +60 -0
  12. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +60 -0
  13. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +66 -0
  14. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +66 -0
  15. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +66 -0
  16. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +69 -0
  17. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +61 -0
  18. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +69 -0
  19. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +49 -0
  20. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +63 -0
  21. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +49 -0
  22. package/dist/cjs/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +58 -0
  23. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +49 -0
  24. package/dist/cjs/plugins/adapters/contracts/InfraredVaultAdapterContract.js +49 -0
  25. package/dist/cjs/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +56 -0
  26. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +52 -0
  27. package/dist/cjs/plugins/adapters/contracts/MellowClaimerAdapterContract.js +46 -0
  28. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +49 -0
  29. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +78 -0
  30. package/dist/cjs/plugins/adapters/contracts/MellowVaultAdapterContract.js +46 -0
  31. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +46 -0
  32. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +60 -0
  33. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +73 -0
  34. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +60 -0
  35. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +77 -0
  36. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +177 -0
  37. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +52 -0
  38. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +60 -0
  39. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +46 -0
  40. package/dist/cjs/plugins/adapters/contracts/YearnV2AdapterContract.js +46 -0
  41. package/dist/cjs/plugins/adapters/contracts/index.js +90 -0
  42. package/dist/cjs/plugins/adapters/contracts/types.js +60 -0
  43. package/dist/cjs/plugins/adapters/index.js +28 -0
  44. package/dist/cjs/plugins/adapters/package.json +1 -0
  45. package/dist/cjs/plugins/adapters/types.js +63 -0
  46. package/dist/cjs/sdk/sdk-legacy/gearboxRewards/extraAPY.js +1 -1
  47. package/dist/esm/plugins/adapters/AdaptersPlugin.js +137 -0
  48. package/dist/esm/plugins/adapters/abi/actionAbi.js +69 -0
  49. package/dist/esm/plugins/adapters/abi/conctructorAbi.js +141 -0
  50. package/dist/esm/plugins/adapters/abi/conctructorAbiPatterns.js +66 -0
  51. package/dist/esm/plugins/adapters/abi/index.js +3 -0
  52. package/dist/esm/plugins/adapters/abi/utils.js +64 -0
  53. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +15 -0
  54. package/dist/esm/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +27 -0
  55. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +22 -0
  56. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +32 -0
  57. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +36 -0
  58. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +36 -0
  59. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +42 -0
  60. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +42 -0
  61. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +42 -0
  62. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +45 -0
  63. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +37 -0
  64. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +45 -0
  65. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +25 -0
  66. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +39 -0
  67. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +25 -0
  68. package/dist/esm/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +34 -0
  69. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +25 -0
  70. package/dist/esm/plugins/adapters/contracts/InfraredVaultAdapterContract.js +25 -0
  71. package/dist/esm/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +32 -0
  72. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +28 -0
  73. package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +22 -0
  74. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +25 -0
  75. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +54 -0
  76. package/dist/esm/plugins/adapters/contracts/MellowVaultAdapterContract.js +22 -0
  77. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +22 -0
  78. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +36 -0
  79. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +49 -0
  80. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +36 -0
  81. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +55 -0
  82. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +155 -0
  83. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +28 -0
  84. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +36 -0
  85. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +22 -0
  86. package/dist/esm/plugins/adapters/contracts/YearnV2AdapterContract.js +22 -0
  87. package/dist/esm/plugins/adapters/contracts/index.js +35 -0
  88. package/dist/esm/plugins/adapters/contracts/types.js +33 -0
  89. package/dist/esm/plugins/adapters/index.js +4 -0
  90. package/dist/esm/plugins/adapters/package.json +1 -0
  91. package/dist/esm/plugins/adapters/types.js +39 -0
  92. package/dist/esm/sdk/sdk-legacy/gearboxRewards/extraAPY.js +1 -1
  93. package/dist/types/plugins/adapters/AdaptersPlugin.d.ts +11 -0
  94. package/dist/types/plugins/adapters/abi/actionAbi.d.ts +21 -0
  95. package/dist/types/plugins/adapters/abi/conctructorAbi.d.ts +7 -0
  96. package/dist/types/plugins/adapters/abi/conctructorAbiPatterns.d.ts +112 -0
  97. package/dist/types/plugins/adapters/abi/index.d.ts +3 -0
  98. package/dist/types/plugins/adapters/abi/utils.d.ts +30 -0
  99. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +13 -0
  100. package/dist/types/plugins/adapters/contracts/BalancerV2VaultAdapterContract.d.ts +482 -0
  101. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +198 -0
  102. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +441 -0
  103. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +284 -0
  104. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +208 -0
  105. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +534 -0
  106. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +534 -0
  107. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +534 -0
  108. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +481 -0
  109. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +534 -0
  110. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +535 -0
  111. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +146 -0
  112. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +190 -0
  113. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +242 -0
  114. package/dist/types/plugins/adapters/contracts/EqualizerRouterAdapterContract.d.ts +225 -0
  115. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +130 -0
  116. package/dist/types/plugins/adapters/contracts/InfraredVaultAdapterContract.d.ts +198 -0
  117. package/dist/types/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.d.ts +396 -0
  118. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +121 -0
  119. package/dist/types/plugins/adapters/contracts/MellowClaimerAdapterContract.d.ts +257 -0
  120. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +232 -0
  121. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +195 -0
  122. package/dist/types/plugins/adapters/contracts/MellowVaultAdapterContract.d.ts +203 -0
  123. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +161 -0
  124. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +823 -0
  125. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +210 -0
  126. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +349 -0
  127. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +216 -0
  128. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +384 -0
  129. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +269 -0
  130. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +247 -0
  131. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +127 -0
  132. package/dist/types/plugins/adapters/contracts/YearnV2AdapterContract.d.ts +185 -0
  133. package/dist/types/plugins/adapters/contracts/index.d.ts +35 -0
  134. package/dist/types/plugins/adapters/contracts/types.d.ts +23 -0
  135. package/dist/types/plugins/adapters/index.d.ts +4 -0
  136. package/dist/types/plugins/adapters/types.d.ts +39 -0
  137. package/package.json +2 -1
@@ -0,0 +1,64 @@
1
+ import {
2
+ decodeAbiParameters,
3
+ decodeFunctionData
4
+ } from "viem";
5
+ import { json_stringify } from "../../../sdk/index.js";
6
+ import { AdapterType } from "../types";
7
+ import {
8
+ adapterActionAbi,
9
+ adapterActionSelectors,
10
+ adapterConstructorAbi
11
+ } from ".";
12
+ function getAdapterType(value) {
13
+ const cleanValue = value.replace(/\0/g, "").trim();
14
+ return Object.values(AdapterType).includes(cleanValue) ? cleanValue : null;
15
+ }
16
+ function getAdapterDeployParamsAbi(adapterPostfix, version = 310) {
17
+ const adapterType = getAdapterType(adapterPostfix);
18
+ if (!adapterType) return null;
19
+ return adapterConstructorAbi[adapterType][version] ?? null;
20
+ }
21
+ function parseAdapterDeployParams(adapterPostfix, version, data) {
22
+ const abi = getAdapterDeployParamsAbi(adapterPostfix, version);
23
+ if (!abi) return null;
24
+ const decoded = decodeAbiParameters(abi, data);
25
+ const result = {};
26
+ abi.forEach((param, index) => {
27
+ if (param.name !== void 0 && param.name !== "") {
28
+ result[param.name] = String(decoded[index]);
29
+ }
30
+ });
31
+ return result;
32
+ }
33
+ function hasAdapterDeployParamsAbi(adapterType) {
34
+ return adapterType in adapterConstructorAbi;
35
+ }
36
+ function getAdapterActionAbi(adapterPostfix, version = 310) {
37
+ const adapterType = getAdapterType(adapterPostfix);
38
+ if (!adapterType) return null;
39
+ return adapterActionAbi[adapterType]?.[version] ?? null;
40
+ }
41
+ function parseAdapterAction(data) {
42
+ if (data.length < 10) return null;
43
+ const selector = data.slice(0, 10);
44
+ const adapterType = adapterActionSelectors[selector]?.adapterType;
45
+ if (!adapterType) return null;
46
+ const abi = getAdapterActionAbi(adapterType);
47
+ if (!abi) return null;
48
+ const decoded = decodeFunctionData({
49
+ abi,
50
+ data
51
+ });
52
+ return {
53
+ functionName: decoded.functionName,
54
+ args: json_stringify(decoded.args)
55
+ };
56
+ }
57
+ export {
58
+ getAdapterActionAbi,
59
+ getAdapterDeployParamsAbi,
60
+ getAdapterType,
61
+ hasAdapterDeployParamsAbi,
62
+ parseAdapterAction,
63
+ parseAdapterDeployParams
64
+ };
@@ -0,0 +1,15 @@
1
+ import { BaseContract } from "../../../sdk/index.js";
2
+ class AbstractAdapterContract extends BaseContract {
3
+ targetContract;
4
+ constructor(sdk, args) {
5
+ const { baseParams, targetContract, ...rest } = args;
6
+ super(sdk, { ...rest, ...baseParams });
7
+ this.targetContract = targetContract;
8
+ }
9
+ get adapterType() {
10
+ return this.contractType;
11
+ }
12
+ }
13
+ export {
14
+ AbstractAdapterContract
15
+ };
@@ -0,0 +1,27 @@
1
+ import { iBalancerV2VaultAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iBalancerV2VaultAdapterAbi;
5
+ class BalancerV2VaultAdapterContract extends AbstractAdapterContract {
6
+ supportedPoolIds;
7
+ poolStatuses;
8
+ constructor(sdk, args) {
9
+ super(sdk, { ...args, abi });
10
+ const decoded = decodeAbiParameters(
11
+ [
12
+ { type: "address", name: "creditManager" },
13
+ { type: "address", name: "targetContract" },
14
+ { type: "bytes32[]", name: "supportedPoolIds" },
15
+ { type: "uint8[]", name: "poolStatuses" }
16
+ ],
17
+ args.baseParams.serializedParams
18
+ );
19
+ this.supportedPoolIds = [...decoded[2]];
20
+ this.poolStatuses = decoded[3].map(
21
+ (status) => status
22
+ );
23
+ }
24
+ }
25
+ export {
26
+ BalancerV2VaultAdapterContract
27
+ };
@@ -0,0 +1,22 @@
1
+ import { iBalancerV3RouterAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iBalancerV3RouterAdapterAbi;
5
+ class BalancerV3RouterAdapterContract extends AbstractAdapterContract {
6
+ allowedPools;
7
+ constructor(sdk, args) {
8
+ super(sdk, { ...args, abi });
9
+ const decoded = decodeAbiParameters(
10
+ [
11
+ { type: "address", name: "creditManager" },
12
+ { type: "address", name: "targetContract" },
13
+ { type: "address[]", name: "allowedPools" }
14
+ ],
15
+ args.baseParams.serializedParams
16
+ );
17
+ this.allowedPools = [...decoded[2]];
18
+ }
19
+ }
20
+ export {
21
+ BalancerV3RouterAdapterContract
22
+ };
@@ -0,0 +1,32 @@
1
+ import { iCamelotV3AdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iCamelotV3AdapterAbi;
5
+ class CamelotV3AdapterContract extends AbstractAdapterContract {
6
+ supportedPools;
7
+ constructor(sdk, args) {
8
+ super(sdk, { ...args, abi });
9
+ const decoded = decodeAbiParameters(
10
+ [
11
+ { type: "address", name: "creditManager" },
12
+ { type: "address", name: "targetContract" },
13
+ {
14
+ type: "tuple[]",
15
+ name: "supportedPools",
16
+ components: [
17
+ { type: "address", name: "token0" },
18
+ { type: "address", name: "token1" }
19
+ ]
20
+ }
21
+ ],
22
+ args.baseParams.serializedParams
23
+ );
24
+ this.supportedPools = decoded[2].map((pool) => ({
25
+ token0: pool.token0,
26
+ token1: pool.token1
27
+ }));
28
+ }
29
+ }
30
+ export {
31
+ CamelotV3AdapterContract
32
+ };
@@ -0,0 +1,36 @@
1
+ import { iConvexV1BaseRewardPoolAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iConvexV1BaseRewardPoolAdapterAbi;
5
+ class ConvexV1BaseRewardPoolAdapterContract extends AbstractAdapterContract {
6
+ curveLPtoken;
7
+ stakingToken;
8
+ stakedPhantomToken;
9
+ extraRewards;
10
+ constructor(sdk, args) {
11
+ super(sdk, { ...args, abi });
12
+ const decoded = decodeAbiParameters(
13
+ [
14
+ { type: "address", name: "creditManager" },
15
+ { type: "address", name: "targetContract" },
16
+ { type: "address", name: "curveLPtoken" },
17
+ { type: "address", name: "stakingToken" },
18
+ { type: "address", name: "stakedPhantomToken" },
19
+ { type: "address[4]", name: "extraRewards" }
20
+ ],
21
+ args.baseParams.serializedParams
22
+ );
23
+ this.curveLPtoken = decoded[2];
24
+ this.stakingToken = decoded[3];
25
+ this.stakedPhantomToken = decoded[4];
26
+ this.extraRewards = [
27
+ decoded[5][0],
28
+ decoded[5][1],
29
+ decoded[5][2],
30
+ decoded[5][3]
31
+ ];
32
+ }
33
+ }
34
+ export {
35
+ ConvexV1BaseRewardPoolAdapterContract
36
+ };
@@ -0,0 +1,36 @@
1
+ import { iConvexV1BoosterAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iConvexV1BoosterAdapterAbi;
5
+ class ConvexV1BoosterAdapterContract extends AbstractAdapterContract {
6
+ supportedPools;
7
+ constructor(sdk, args) {
8
+ super(sdk, { ...args, abi });
9
+ const decoded = decodeAbiParameters(
10
+ [
11
+ { type: "address", name: "creditManager" },
12
+ { type: "address", name: "targetContract" },
13
+ {
14
+ type: "tuple[]",
15
+ name: "supportedPools",
16
+ components: [
17
+ { type: "uint256", name: "pid" },
18
+ { type: "address", name: "curveToken" },
19
+ { type: "address", name: "convexToken" },
20
+ { type: "address", name: "phantomToken" }
21
+ ]
22
+ }
23
+ ],
24
+ args.baseParams.serializedParams
25
+ );
26
+ this.supportedPools = decoded[2].map((pool) => ({
27
+ pid: Number(pool.pid),
28
+ curveToken: pool.curveToken,
29
+ convexToken: pool.convexToken,
30
+ phantomToken: pool.phantomToken
31
+ }));
32
+ }
33
+ }
34
+ export {
35
+ ConvexV1BoosterAdapterContract
36
+ };
@@ -0,0 +1,42 @@
1
+ import { iCurveV1_2AssetsAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iCurveV1_2AssetsAdapterAbi;
5
+ class Curve2AssetsAdapterContract extends AbstractAdapterContract {
6
+ token;
7
+ lpToken;
8
+ metapoolBase;
9
+ use256;
10
+ tokens;
11
+ underlyings;
12
+ constructor(sdk, args) {
13
+ super(sdk, { ...args, abi });
14
+ const decoded = decodeAbiParameters(
15
+ [
16
+ { type: "address", name: "creditManager" },
17
+ { type: "address", name: "targetContract" },
18
+ { type: "address", name: "token" },
19
+ { type: "address", name: "lpToken" },
20
+ { type: "address", name: "metapoolBase" },
21
+ { type: "bool", name: "use256" },
22
+ { type: "address[2]", name: "tokens" },
23
+ { type: "address[4]", name: "underlyings" }
24
+ ],
25
+ args.baseParams.serializedParams
26
+ );
27
+ this.token = decoded[2];
28
+ this.lpToken = decoded[3];
29
+ this.metapoolBase = decoded[4];
30
+ this.use256 = decoded[5];
31
+ this.tokens = [decoded[6][0], decoded[6][1]];
32
+ this.underlyings = [
33
+ decoded[7][0],
34
+ decoded[7][1],
35
+ decoded[7][2],
36
+ decoded[7][3]
37
+ ];
38
+ }
39
+ }
40
+ export {
41
+ Curve2AssetsAdapterContract
42
+ };
@@ -0,0 +1,42 @@
1
+ import { iCurveV1_3AssetsAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iCurveV1_3AssetsAdapterAbi;
5
+ class Curve3AssetsAdapterContract extends AbstractAdapterContract {
6
+ token;
7
+ lpToken;
8
+ metapoolBase;
9
+ use256;
10
+ tokens;
11
+ underlyings;
12
+ constructor(sdk, args) {
13
+ super(sdk, { ...args, abi });
14
+ const decoded = decodeAbiParameters(
15
+ [
16
+ { type: "address", name: "creditManager" },
17
+ { type: "address", name: "targetContract" },
18
+ { type: "address", name: "token" },
19
+ { type: "address", name: "lpToken" },
20
+ { type: "address", name: "metapoolBase" },
21
+ { type: "bool", name: "use256" },
22
+ { type: "address[3]", name: "tokens" },
23
+ { type: "address[4]", name: "underlyings" }
24
+ ],
25
+ args.baseParams.serializedParams
26
+ );
27
+ this.token = decoded[2];
28
+ this.lpToken = decoded[3];
29
+ this.metapoolBase = decoded[4];
30
+ this.use256 = decoded[5];
31
+ this.tokens = [decoded[6][0], decoded[6][1], decoded[6][2]];
32
+ this.underlyings = [
33
+ decoded[7][0],
34
+ decoded[7][1],
35
+ decoded[7][2],
36
+ decoded[7][3]
37
+ ];
38
+ }
39
+ }
40
+ export {
41
+ Curve3AssetsAdapterContract
42
+ };
@@ -0,0 +1,42 @@
1
+ import { iCurveV1_4AssetsAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iCurveV1_4AssetsAdapterAbi;
5
+ class Curve4AssetsAdapterContract extends AbstractAdapterContract {
6
+ token;
7
+ lpToken;
8
+ metapoolBase;
9
+ use256;
10
+ tokens;
11
+ underlyings;
12
+ constructor(sdk, args) {
13
+ super(sdk, { ...args, abi });
14
+ const decoded = decodeAbiParameters(
15
+ [
16
+ { type: "address", name: "creditManager" },
17
+ { type: "address", name: "targetContract" },
18
+ { type: "address", name: "token" },
19
+ { type: "address", name: "lpToken" },
20
+ { type: "address", name: "metapoolBase" },
21
+ { type: "bool", name: "use256" },
22
+ { type: "address[4]", name: "tokens" },
23
+ { type: "address[4]", name: "underlyings" }
24
+ ],
25
+ args.baseParams.serializedParams
26
+ );
27
+ this.token = decoded[2];
28
+ this.lpToken = decoded[3];
29
+ this.metapoolBase = decoded[4];
30
+ this.use256 = decoded[5];
31
+ this.tokens = [decoded[6][0], decoded[6][1], decoded[6][2], decoded[6][3]];
32
+ this.underlyings = [
33
+ decoded[7][0],
34
+ decoded[7][1],
35
+ decoded[7][2],
36
+ decoded[7][3]
37
+ ];
38
+ }
39
+ }
40
+ export {
41
+ Curve4AssetsAdapterContract
42
+ };
@@ -0,0 +1,45 @@
1
+ import { iCurveV1AdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iCurveV1AdapterAbi;
5
+ class CurveV1AdapterDeposit extends AbstractAdapterContract {
6
+ token;
7
+ lpToken;
8
+ metapoolBase;
9
+ nCoins;
10
+ use256;
11
+ tokens;
12
+ underlyings;
13
+ constructor(sdk, args) {
14
+ super(sdk, { ...args, abi });
15
+ const decoded = decodeAbiParameters(
16
+ [
17
+ { type: "address", name: "creditManager" },
18
+ { type: "address", name: "targetContract" },
19
+ { type: "address", name: "token" },
20
+ { type: "address", name: "lpToken" },
21
+ { type: "address", name: "metapoolBase" },
22
+ { type: "uint256", name: "nCoins" },
23
+ { type: "bool", name: "use256" },
24
+ { type: "address[4]", name: "tokens" },
25
+ { type: "address[4]", name: "underlyings" }
26
+ ],
27
+ args.baseParams.serializedParams
28
+ );
29
+ this.token = decoded[2];
30
+ this.lpToken = decoded[3];
31
+ this.metapoolBase = decoded[4];
32
+ this.nCoins = Number(decoded[5]);
33
+ this.use256 = decoded[6];
34
+ this.tokens = [decoded[7][0], decoded[7][1], decoded[7][2], decoded[7][3]];
35
+ this.underlyings = [
36
+ decoded[8][0],
37
+ decoded[8][1],
38
+ decoded[8][2],
39
+ decoded[8][3]
40
+ ];
41
+ }
42
+ }
43
+ export {
44
+ CurveV1AdapterDeposit
45
+ };
@@ -0,0 +1,37 @@
1
+ import { iCurveV1_2AssetsAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iCurveV1_2AssetsAdapterAbi;
5
+ class CurveV1AdapterStETHContract extends AbstractAdapterContract {
6
+ token;
7
+ lpToken;
8
+ metapoolBase;
9
+ nCoins;
10
+ use256;
11
+ tokens;
12
+ constructor(sdk, args) {
13
+ super(sdk, { ...args, abi });
14
+ const decoded = decodeAbiParameters(
15
+ [
16
+ { type: "address", name: "creditManager" },
17
+ { type: "address", name: "targetContract" },
18
+ { type: "address", name: "token" },
19
+ { type: "address", name: "lpToken" },
20
+ { type: "address", name: "metapoolBase" },
21
+ { type: "uint256", name: "nCoins" },
22
+ { type: "bool", name: "use256" },
23
+ { type: "address[2]", name: "tokens" }
24
+ ],
25
+ args.baseParams.serializedParams
26
+ );
27
+ this.token = decoded[2];
28
+ this.lpToken = decoded[3];
29
+ this.metapoolBase = decoded[4];
30
+ this.nCoins = Number(decoded[5]);
31
+ this.use256 = decoded[6];
32
+ this.tokens = [decoded[7][0], decoded[7][1]];
33
+ }
34
+ }
35
+ export {
36
+ CurveV1AdapterStETHContract
37
+ };
@@ -0,0 +1,45 @@
1
+ import { iCurveV1StableNgAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iCurveV1StableNgAdapterAbi;
5
+ class CurveV1StableNGAdapterContract extends AbstractAdapterContract {
6
+ token;
7
+ lpToken;
8
+ metapoolBase;
9
+ nCoins;
10
+ use256;
11
+ tokens;
12
+ underlyings;
13
+ constructor(sdk, args) {
14
+ super(sdk, { ...args, abi });
15
+ const decoded = decodeAbiParameters(
16
+ [
17
+ { type: "address", name: "creditManager" },
18
+ { type: "address", name: "targetContract" },
19
+ { type: "address", name: "token" },
20
+ { type: "address", name: "lpToken" },
21
+ { type: "address", name: "metapoolBase" },
22
+ { type: "uint256", name: "nCoins" },
23
+ { type: "bool", name: "use256" },
24
+ { type: "address[4]", name: "tokens" },
25
+ { type: "address[4]", name: "underlyings" }
26
+ ],
27
+ args.baseParams.serializedParams
28
+ );
29
+ this.token = decoded[2];
30
+ this.lpToken = decoded[3];
31
+ this.metapoolBase = decoded[4];
32
+ this.nCoins = Number(decoded[5]);
33
+ this.use256 = decoded[6];
34
+ this.tokens = [decoded[7][0], decoded[7][1], decoded[7][2], decoded[7][3]];
35
+ this.underlyings = [
36
+ decoded[8][0],
37
+ decoded[8][1],
38
+ decoded[8][2],
39
+ decoded[8][3]
40
+ ];
41
+ }
42
+ }
43
+ export {
44
+ CurveV1StableNGAdapterContract
45
+ };
@@ -0,0 +1,25 @@
1
+ import { iDaiUsdsAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iDaiUsdsAdapterAbi;
5
+ class DaiUsdsAdapterContract extends AbstractAdapterContract {
6
+ dai;
7
+ usds;
8
+ constructor(sdk, args) {
9
+ super(sdk, { ...args, abi });
10
+ const decoded = decodeAbiParameters(
11
+ [
12
+ { type: "address", name: "creditManager" },
13
+ { type: "address", name: "targetContract" },
14
+ { type: "address", name: "dai" },
15
+ { type: "address", name: "usds" }
16
+ ],
17
+ args.baseParams.serializedParams
18
+ );
19
+ this.dai = decoded[2];
20
+ this.usds = decoded[3];
21
+ }
22
+ }
23
+ export {
24
+ DaiUsdsAdapterContract
25
+ };
@@ -0,0 +1,39 @@
1
+ import { ierc4626AdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters, zeroAddress } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = ierc4626AdapterAbi;
5
+ class ERC4626AdapterContract extends AbstractAdapterContract {
6
+ vault;
7
+ asset;
8
+ constructor(sdk, args) {
9
+ super(sdk, { ...args, abi });
10
+ const version = Number(args.baseParams.version);
11
+ if (version <= 311) {
12
+ const decoded = decodeAbiParameters(
13
+ [
14
+ { type: "address", name: "creditManager" },
15
+ { type: "address", name: "targetContract" },
16
+ { type: "address", name: "asset" }
17
+ ],
18
+ args.baseParams.serializedParams
19
+ );
20
+ this.asset = decoded[2];
21
+ this.vault = zeroAddress;
22
+ } else {
23
+ const decoded = decodeAbiParameters(
24
+ [
25
+ { type: "address", name: "creditManager" },
26
+ { type: "address", name: "targetContract" },
27
+ { type: "address", name: "vault" },
28
+ { type: "address", name: "asset" }
29
+ ],
30
+ args.baseParams.serializedParams
31
+ );
32
+ this.vault = decoded[2];
33
+ this.asset = decoded[3];
34
+ }
35
+ }
36
+ }
37
+ export {
38
+ ERC4626AdapterContract
39
+ };
@@ -0,0 +1,25 @@
1
+ import { erc4626ReferralAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = erc4626ReferralAdapterAbi;
5
+ class ERC4626ReferralAdapterContract extends AbstractAdapterContract {
6
+ asset;
7
+ referral;
8
+ constructor(sdk, args) {
9
+ super(sdk, { ...args, abi });
10
+ const decoded = decodeAbiParameters(
11
+ [
12
+ { type: "address", name: "creditManager" },
13
+ { type: "address", name: "targetContract" },
14
+ { type: "address", name: "asset" },
15
+ { type: "uint16", name: "referral" }
16
+ ],
17
+ args.baseParams.serializedParams
18
+ );
19
+ this.asset = decoded[2];
20
+ this.referral = decoded[3];
21
+ }
22
+ }
23
+ export {
24
+ ERC4626ReferralAdapterContract
25
+ };
@@ -0,0 +1,34 @@
1
+ import { iEqualizerRouterAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iEqualizerRouterAdapterAbi;
5
+ class EqualizerRouterAdapterContract extends AbstractAdapterContract {
6
+ supportedPools;
7
+ constructor(sdk, args) {
8
+ super(sdk, { ...args, abi });
9
+ const decoded = decodeAbiParameters(
10
+ [
11
+ { type: "address", name: "creditManager" },
12
+ { type: "address", name: "targetContract" },
13
+ {
14
+ type: "tuple[]",
15
+ name: "supportedPools",
16
+ components: [
17
+ { type: "address", name: "token0" },
18
+ { type: "address", name: "token1" },
19
+ { type: "bool", name: "stable" }
20
+ ]
21
+ }
22
+ ],
23
+ args.baseParams.serializedParams
24
+ );
25
+ this.supportedPools = decoded[2].map((pool) => ({
26
+ token0: pool.token0,
27
+ token1: pool.token1,
28
+ stable: pool.stable
29
+ }));
30
+ }
31
+ }
32
+ export {
33
+ EqualizerRouterAdapterContract
34
+ };
@@ -0,0 +1,25 @@
1
+ import { iFluidDexAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iFluidDexAdapterAbi;
5
+ class FluidDexAdapterContract extends AbstractAdapterContract {
6
+ token0;
7
+ token1;
8
+ constructor(sdk, args) {
9
+ super(sdk, { ...args, abi });
10
+ const decoded = decodeAbiParameters(
11
+ [
12
+ { type: "address", name: "creditManager" },
13
+ { type: "address", name: "targetContract" },
14
+ { type: "address", name: "token0" },
15
+ { type: "address", name: "token1" }
16
+ ],
17
+ args.baseParams.serializedParams
18
+ );
19
+ this.token0 = decoded[2];
20
+ this.token1 = decoded[3];
21
+ }
22
+ }
23
+ export {
24
+ FluidDexAdapterContract
25
+ };
@@ -0,0 +1,25 @@
1
+ import { iInfraredVaultAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
+ import { decodeAbiParameters } from "viem";
3
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
4
+ const abi = iInfraredVaultAdapterAbi;
5
+ class InfraredVaultAdapterContract extends AbstractAdapterContract {
6
+ stakingToken;
7
+ stakedPhantomToken;
8
+ constructor(sdk, args) {
9
+ super(sdk, { ...args, abi });
10
+ const decoded = decodeAbiParameters(
11
+ [
12
+ { type: "address", name: "creditManager" },
13
+ { type: "address", name: "targetContract" },
14
+ { type: "address", name: "stakingToken" },
15
+ { type: "address", name: "stakedPhantomToken" }
16
+ ],
17
+ args.baseParams.serializedParams
18
+ );
19
+ this.stakingToken = decoded[2];
20
+ this.stakedPhantomToken = decoded[3];
21
+ }
22
+ }
23
+ export {
24
+ InfraredVaultAdapterContract
25
+ };