@gearbox-protocol/sdk 12.3.16 → 12.4.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.
- package/dist/cjs/permissionless/bindings/treasury-splitter.js +5 -1
- package/dist/cjs/sdk/index.js +2 -0
- package/dist/cjs/sdk/pools/AbstractPoolService.js +137 -0
- package/dist/cjs/sdk/pools/PoolServiceV300.js +30 -0
- package/dist/cjs/sdk/pools/PoolServiceV310.js +30 -0
- package/dist/cjs/sdk/pools/createPoolService.js +39 -0
- package/dist/cjs/sdk/pools/index.js +26 -0
- package/dist/cjs/sdk/pools/types.js +16 -0
- package/dist/esm/permissionless/bindings/treasury-splitter.js +5 -1
- package/dist/esm/sdk/index.js +1 -0
- package/dist/esm/sdk/pools/AbstractPoolService.js +113 -0
- package/dist/esm/sdk/pools/PoolServiceV300.js +6 -0
- package/dist/esm/sdk/pools/PoolServiceV310.js +6 -0
- package/dist/esm/sdk/pools/createPoolService.js +15 -0
- package/dist/esm/sdk/pools/index.js +3 -0
- package/dist/esm/sdk/pools/types.js +0 -0
- package/dist/types/sdk/index.d.ts +1 -0
- package/dist/types/sdk/pools/AbstractPoolService.d.ts +9 -0
- package/dist/types/sdk/pools/PoolServiceV300.d.ts +4 -0
- package/dist/types/sdk/pools/PoolServiceV310.d.ts +4 -0
- package/dist/types/sdk/pools/createPoolService.d.ts +8 -0
- package/dist/types/sdk/pools/index.d.ts +3 -0
- package/dist/types/sdk/pools/types.d.ts +92 -0
- package/package.json +1 -1
|
@@ -106,7 +106,11 @@ class TreasurySplitterContract extends import_sdk.BaseContract {
|
|
|
106
106
|
const [receivers, proportions] = args;
|
|
107
107
|
return {
|
|
108
108
|
receivers: (0, import_sdk.json_stringify)(receivers),
|
|
109
|
-
proportions: (0, import_sdk.json_stringify)(
|
|
109
|
+
proportions: (0, import_sdk.json_stringify)(
|
|
110
|
+
proportions.map(
|
|
111
|
+
(proportion) => `${proportion / 100}% [${proportion}]`
|
|
112
|
+
)
|
|
113
|
+
)
|
|
110
114
|
};
|
|
111
115
|
}
|
|
112
116
|
default:
|
package/dist/cjs/sdk/index.js
CHANGED
|
@@ -27,6 +27,7 @@ __reExport(sdk_exports, require("./market/index.js"), module.exports);
|
|
|
27
27
|
__reExport(sdk_exports, require("./options.js"), module.exports);
|
|
28
28
|
__reExport(sdk_exports, require("./plugins/index.js"), module.exports);
|
|
29
29
|
__reExport(sdk_exports, require("./poolMigration/index.js"), module.exports);
|
|
30
|
+
__reExport(sdk_exports, require("./pools/index.js"), module.exports);
|
|
30
31
|
__reExport(sdk_exports, require("./router/index.js"), module.exports);
|
|
31
32
|
__reExport(sdk_exports, require("./sdk-gov-legacy/index.js"), module.exports);
|
|
32
33
|
__reExport(sdk_exports, require("./sdk-legacy/index.js"), module.exports);
|
|
@@ -47,6 +48,7 @@ __reExport(sdk_exports, require("./utils/viem/index.js"), module.exports);
|
|
|
47
48
|
...require("./options.js"),
|
|
48
49
|
...require("./plugins/index.js"),
|
|
49
50
|
...require("./poolMigration/index.js"),
|
|
51
|
+
...require("./pools/index.js"),
|
|
50
52
|
...require("./router/index.js"),
|
|
51
53
|
...require("./sdk-gov-legacy/index.js"),
|
|
52
54
|
...require("./sdk-legacy/index.js"),
|
|
@@ -0,0 +1,137 @@
|
|
|
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 AbstractPoolService_exports = {};
|
|
20
|
+
__export(AbstractPoolService_exports, {
|
|
21
|
+
AbstractPoolService: () => AbstractPoolService
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(AbstractPoolService_exports);
|
|
24
|
+
var import_iERC20ZapperDeposits = require("../../abi/iERC20ZapperDeposits.js");
|
|
25
|
+
var import_iETHZapperDeposits = require("../../abi/iETHZapperDeposits.js");
|
|
26
|
+
var import_iZapper = require("../../abi/iZapper.js");
|
|
27
|
+
var import_v300 = require("../../abi/v300.js");
|
|
28
|
+
var import_base = require("../base/index.js");
|
|
29
|
+
class AbstractPoolService extends import_base.SDKConstruct {
|
|
30
|
+
#version;
|
|
31
|
+
constructor(sdk, version) {
|
|
32
|
+
super(sdk);
|
|
33
|
+
this.#version = version;
|
|
34
|
+
this.logger?.debug(`Created PoolService with version: ${this.#version}`);
|
|
35
|
+
}
|
|
36
|
+
addLiquidity({
|
|
37
|
+
collateral,
|
|
38
|
+
pool,
|
|
39
|
+
account,
|
|
40
|
+
zapper,
|
|
41
|
+
permit,
|
|
42
|
+
nativeTokenAddress,
|
|
43
|
+
referralCode = 0n,
|
|
44
|
+
migrate
|
|
45
|
+
}) {
|
|
46
|
+
if (zapper?.tokenIn === nativeTokenAddress) {
|
|
47
|
+
return [
|
|
48
|
+
{
|
|
49
|
+
target: zapper.zapper,
|
|
50
|
+
abi: import_iETHZapperDeposits.iethZapperDepositsAbi,
|
|
51
|
+
functionName: "depositWithReferral",
|
|
52
|
+
args: [account, referralCode],
|
|
53
|
+
value: collateral.balance
|
|
54
|
+
}
|
|
55
|
+
];
|
|
56
|
+
} else if (zapper) {
|
|
57
|
+
return permit ? [
|
|
58
|
+
{
|
|
59
|
+
target: zapper.zapper,
|
|
60
|
+
abi: import_iERC20ZapperDeposits.ierc20ZapperDepositsAbi,
|
|
61
|
+
functionName: "depositWithReferralAndPermit",
|
|
62
|
+
args: [
|
|
63
|
+
collateral.balance,
|
|
64
|
+
account,
|
|
65
|
+
referralCode,
|
|
66
|
+
permit.deadline,
|
|
67
|
+
permit.v,
|
|
68
|
+
permit.r,
|
|
69
|
+
permit.s
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
] : [
|
|
73
|
+
{
|
|
74
|
+
target: zapper.zapper,
|
|
75
|
+
abi: import_iERC20ZapperDeposits.ierc20ZapperDepositsAbi,
|
|
76
|
+
functionName: "depositWithReferral",
|
|
77
|
+
args: [collateral.balance, account, referralCode]
|
|
78
|
+
}
|
|
79
|
+
];
|
|
80
|
+
} else {
|
|
81
|
+
if (migrate) throw Error("No zapper for migration");
|
|
82
|
+
return [
|
|
83
|
+
{
|
|
84
|
+
target: pool,
|
|
85
|
+
abi: import_v300.iPoolV300Abi,
|
|
86
|
+
functionName: "depositWithReferral",
|
|
87
|
+
args: [collateral.balance, account, referralCode]
|
|
88
|
+
}
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
removeLiquidity({
|
|
93
|
+
pool,
|
|
94
|
+
amount,
|
|
95
|
+
account,
|
|
96
|
+
zapper,
|
|
97
|
+
permit
|
|
98
|
+
}) {
|
|
99
|
+
if (zapper) {
|
|
100
|
+
return permit ? [
|
|
101
|
+
{
|
|
102
|
+
target: zapper.zapper,
|
|
103
|
+
abi: import_iZapper.iZapperAbi,
|
|
104
|
+
functionName: "redeemWithPermit",
|
|
105
|
+
args: [
|
|
106
|
+
amount,
|
|
107
|
+
account,
|
|
108
|
+
permit.deadline,
|
|
109
|
+
permit.v,
|
|
110
|
+
permit.r,
|
|
111
|
+
permit.s
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
] : [
|
|
115
|
+
{
|
|
116
|
+
target: zapper.zapper,
|
|
117
|
+
abi: import_iZapper.iZapperAbi,
|
|
118
|
+
functionName: "redeem",
|
|
119
|
+
args: [amount, account]
|
|
120
|
+
}
|
|
121
|
+
];
|
|
122
|
+
} else {
|
|
123
|
+
return [
|
|
124
|
+
{
|
|
125
|
+
target: pool,
|
|
126
|
+
abi: import_v300.iPoolV300Abi,
|
|
127
|
+
functionName: "redeem",
|
|
128
|
+
args: [amount, account, account]
|
|
129
|
+
}
|
|
130
|
+
];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
135
|
+
0 && (module.exports = {
|
|
136
|
+
AbstractPoolService
|
|
137
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
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 PoolServiceV300_exports = {};
|
|
20
|
+
__export(PoolServiceV300_exports, {
|
|
21
|
+
PoolServiceV300: () => PoolServiceV300
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(PoolServiceV300_exports);
|
|
24
|
+
var import_AbstractPoolService = require("./AbstractPoolService.js");
|
|
25
|
+
class PoolServiceV300 extends import_AbstractPoolService.AbstractPoolService {
|
|
26
|
+
}
|
|
27
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
28
|
+
0 && (module.exports = {
|
|
29
|
+
PoolServiceV300
|
|
30
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
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 PoolServiceV310_exports = {};
|
|
20
|
+
__export(PoolServiceV310_exports, {
|
|
21
|
+
PoolServiceV310: () => PoolServiceV310
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(PoolServiceV310_exports);
|
|
24
|
+
var import_AbstractPoolService = require("./AbstractPoolService.js");
|
|
25
|
+
class PoolServiceV310 extends import_AbstractPoolService.AbstractPoolService {
|
|
26
|
+
}
|
|
27
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
28
|
+
0 && (module.exports = {
|
|
29
|
+
PoolServiceV310
|
|
30
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
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 createPoolService_exports = {};
|
|
20
|
+
__export(createPoolService_exports, {
|
|
21
|
+
createPoolService: () => createPoolService
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(createPoolService_exports);
|
|
24
|
+
var import_constants = require("../constants/index.js");
|
|
25
|
+
var import_PoolServiceV300 = require("./PoolServiceV300.js");
|
|
26
|
+
var import_PoolServiceV310 = require("./PoolServiceV310.js");
|
|
27
|
+
function createPoolService(sdk, version) {
|
|
28
|
+
if ((0, import_constants.isV300)(version)) {
|
|
29
|
+
return new import_PoolServiceV300.PoolServiceV300(sdk, version);
|
|
30
|
+
}
|
|
31
|
+
if ((0, import_constants.isV310)(version)) {
|
|
32
|
+
return new import_PoolServiceV310.PoolServiceV310(sdk, version);
|
|
33
|
+
}
|
|
34
|
+
throw new Error(`Unsupported Pool Service version ${version}`);
|
|
35
|
+
}
|
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
+
0 && (module.exports = {
|
|
38
|
+
createPoolService
|
|
39
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
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 __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var pools_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(pools_exports);
|
|
18
|
+
__reExport(pools_exports, require("./AbstractPoolService.js"), module.exports);
|
|
19
|
+
__reExport(pools_exports, require("./createPoolService.js"), module.exports);
|
|
20
|
+
__reExport(pools_exports, require("./types.js"), module.exports);
|
|
21
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
22
|
+
0 && (module.exports = {
|
|
23
|
+
...require("./AbstractPoolService.js"),
|
|
24
|
+
...require("./createPoolService.js"),
|
|
25
|
+
...require("./types.js")
|
|
26
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
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 __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
|
@@ -85,7 +85,11 @@ class TreasurySplitterContract extends BaseContract {
|
|
|
85
85
|
const [receivers, proportions] = args;
|
|
86
86
|
return {
|
|
87
87
|
receivers: json_stringify(receivers),
|
|
88
|
-
proportions: json_stringify(
|
|
88
|
+
proportions: json_stringify(
|
|
89
|
+
proportions.map(
|
|
90
|
+
(proportion) => `${proportion / 100}% [${proportion}]`
|
|
91
|
+
)
|
|
92
|
+
)
|
|
89
93
|
};
|
|
90
94
|
}
|
|
91
95
|
default:
|
package/dist/esm/sdk/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export * from "./market/index.js";
|
|
|
10
10
|
export * from "./options.js";
|
|
11
11
|
export * from "./plugins/index.js";
|
|
12
12
|
export * from "./poolMigration/index.js";
|
|
13
|
+
export * from "./pools/index.js";
|
|
13
14
|
export * from "./router/index.js";
|
|
14
15
|
export * from "./sdk-gov-legacy/index.js";
|
|
15
16
|
export * from "./sdk-legacy/index.js";
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { ierc20ZapperDepositsAbi } from "../../abi/iERC20ZapperDeposits.js";
|
|
2
|
+
import { iethZapperDepositsAbi } from "../../abi/iETHZapperDeposits.js";
|
|
3
|
+
import { iZapperAbi } from "../../abi/iZapper.js";
|
|
4
|
+
import { iPoolV300Abi } from "../../abi/v300.js";
|
|
5
|
+
import { SDKConstruct } from "../base/index.js";
|
|
6
|
+
class AbstractPoolService extends SDKConstruct {
|
|
7
|
+
#version;
|
|
8
|
+
constructor(sdk, version) {
|
|
9
|
+
super(sdk);
|
|
10
|
+
this.#version = version;
|
|
11
|
+
this.logger?.debug(`Created PoolService with version: ${this.#version}`);
|
|
12
|
+
}
|
|
13
|
+
addLiquidity({
|
|
14
|
+
collateral,
|
|
15
|
+
pool,
|
|
16
|
+
account,
|
|
17
|
+
zapper,
|
|
18
|
+
permit,
|
|
19
|
+
nativeTokenAddress,
|
|
20
|
+
referralCode = 0n,
|
|
21
|
+
migrate
|
|
22
|
+
}) {
|
|
23
|
+
if (zapper?.tokenIn === nativeTokenAddress) {
|
|
24
|
+
return [
|
|
25
|
+
{
|
|
26
|
+
target: zapper.zapper,
|
|
27
|
+
abi: iethZapperDepositsAbi,
|
|
28
|
+
functionName: "depositWithReferral",
|
|
29
|
+
args: [account, referralCode],
|
|
30
|
+
value: collateral.balance
|
|
31
|
+
}
|
|
32
|
+
];
|
|
33
|
+
} else if (zapper) {
|
|
34
|
+
return permit ? [
|
|
35
|
+
{
|
|
36
|
+
target: zapper.zapper,
|
|
37
|
+
abi: ierc20ZapperDepositsAbi,
|
|
38
|
+
functionName: "depositWithReferralAndPermit",
|
|
39
|
+
args: [
|
|
40
|
+
collateral.balance,
|
|
41
|
+
account,
|
|
42
|
+
referralCode,
|
|
43
|
+
permit.deadline,
|
|
44
|
+
permit.v,
|
|
45
|
+
permit.r,
|
|
46
|
+
permit.s
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
] : [
|
|
50
|
+
{
|
|
51
|
+
target: zapper.zapper,
|
|
52
|
+
abi: ierc20ZapperDepositsAbi,
|
|
53
|
+
functionName: "depositWithReferral",
|
|
54
|
+
args: [collateral.balance, account, referralCode]
|
|
55
|
+
}
|
|
56
|
+
];
|
|
57
|
+
} else {
|
|
58
|
+
if (migrate) throw Error("No zapper for migration");
|
|
59
|
+
return [
|
|
60
|
+
{
|
|
61
|
+
target: pool,
|
|
62
|
+
abi: iPoolV300Abi,
|
|
63
|
+
functionName: "depositWithReferral",
|
|
64
|
+
args: [collateral.balance, account, referralCode]
|
|
65
|
+
}
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
removeLiquidity({
|
|
70
|
+
pool,
|
|
71
|
+
amount,
|
|
72
|
+
account,
|
|
73
|
+
zapper,
|
|
74
|
+
permit
|
|
75
|
+
}) {
|
|
76
|
+
if (zapper) {
|
|
77
|
+
return permit ? [
|
|
78
|
+
{
|
|
79
|
+
target: zapper.zapper,
|
|
80
|
+
abi: iZapperAbi,
|
|
81
|
+
functionName: "redeemWithPermit",
|
|
82
|
+
args: [
|
|
83
|
+
amount,
|
|
84
|
+
account,
|
|
85
|
+
permit.deadline,
|
|
86
|
+
permit.v,
|
|
87
|
+
permit.r,
|
|
88
|
+
permit.s
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
] : [
|
|
92
|
+
{
|
|
93
|
+
target: zapper.zapper,
|
|
94
|
+
abi: iZapperAbi,
|
|
95
|
+
functionName: "redeem",
|
|
96
|
+
args: [amount, account]
|
|
97
|
+
}
|
|
98
|
+
];
|
|
99
|
+
} else {
|
|
100
|
+
return [
|
|
101
|
+
{
|
|
102
|
+
target: pool,
|
|
103
|
+
abi: iPoolV300Abi,
|
|
104
|
+
functionName: "redeem",
|
|
105
|
+
args: [amount, account, account]
|
|
106
|
+
}
|
|
107
|
+
];
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
export {
|
|
112
|
+
AbstractPoolService
|
|
113
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { isV300, isV310 } from "../constants/index.js";
|
|
2
|
+
import { PoolServiceV300 } from "./PoolServiceV300.js";
|
|
3
|
+
import { PoolServiceV310 } from "./PoolServiceV310.js";
|
|
4
|
+
function createPoolService(sdk, version) {
|
|
5
|
+
if (isV300(version)) {
|
|
6
|
+
return new PoolServiceV300(sdk, version);
|
|
7
|
+
}
|
|
8
|
+
if (isV310(version)) {
|
|
9
|
+
return new PoolServiceV310(sdk, version);
|
|
10
|
+
}
|
|
11
|
+
throw new Error(`Unsupported Pool Service version ${version}`);
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
createPoolService
|
|
15
|
+
};
|
|
File without changes
|
|
@@ -10,6 +10,7 @@ export * from "./market/index.js";
|
|
|
10
10
|
export * from "./options.js";
|
|
11
11
|
export * from "./plugins/index.js";
|
|
12
12
|
export * from "./poolMigration/index.js";
|
|
13
|
+
export * from "./pools/index.js";
|
|
13
14
|
export * from "./router/index.js";
|
|
14
15
|
export * from "./sdk-gov-legacy/index.js";
|
|
15
16
|
export * from "./sdk-legacy/index.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SDKConstruct } from "../base/index.js";
|
|
2
|
+
import type { GearboxSDK } from "../GearboxSDK.js";
|
|
3
|
+
import type { AddLiquidityCall, AddLiquidityProps, RemoveLiquidityCall, RemoveLiquidityProps } from "./types.js";
|
|
4
|
+
export declare abstract class AbstractPoolService extends SDKConstruct {
|
|
5
|
+
#private;
|
|
6
|
+
constructor(sdk: GearboxSDK, version: number);
|
|
7
|
+
addLiquidity({ collateral, pool, account, zapper, permit, nativeTokenAddress, referralCode, migrate, }: AddLiquidityProps): AddLiquidityCall;
|
|
8
|
+
removeLiquidity({ pool, amount, account, zapper, permit, }: RemoveLiquidityProps): RemoveLiquidityCall;
|
|
9
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { GearboxSDK } from "../GearboxSDK.js";
|
|
2
|
+
import type { AbstractPoolService } from "./AbstractPoolService.js";
|
|
3
|
+
/**
|
|
4
|
+
* @sdk
|
|
5
|
+
* @version version of desired pool service; either v300 or v310
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export declare function createPoolService(sdk: GearboxSDK, version: number): AbstractPoolService;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { Address } from "viem";
|
|
2
|
+
import type { ierc20ZapperDepositsAbi } from "../../abi/iERC20ZapperDeposits.js";
|
|
3
|
+
import type { iethZapperDepositsAbi } from "../../abi/iETHZapperDeposits.js";
|
|
4
|
+
import type { iZapperAbi } from "../../abi/iZapper.js";
|
|
5
|
+
import type { iPoolV300Abi } from "../../abi/v300.js";
|
|
6
|
+
import type { PoolData_Legacy } from "../index.js";
|
|
7
|
+
import type { Asset } from "../router/index.js";
|
|
8
|
+
interface PermitResult {
|
|
9
|
+
r: Address;
|
|
10
|
+
s: Address;
|
|
11
|
+
v: number;
|
|
12
|
+
token: Address;
|
|
13
|
+
owner: Address;
|
|
14
|
+
spender: Address;
|
|
15
|
+
value: bigint;
|
|
16
|
+
deadline: bigint;
|
|
17
|
+
nonce: bigint;
|
|
18
|
+
}
|
|
19
|
+
export interface AddLiquidityProps {
|
|
20
|
+
collateral: Asset;
|
|
21
|
+
pool: Address;
|
|
22
|
+
account: Address;
|
|
23
|
+
migrate: boolean;
|
|
24
|
+
zapper: PoolData_Legacy["zappers"][Address][Address] | undefined;
|
|
25
|
+
permit: PermitResult | undefined;
|
|
26
|
+
nativeTokenAddress: Address;
|
|
27
|
+
referralCode: bigint | undefined;
|
|
28
|
+
}
|
|
29
|
+
export type AddLiquidityCall = [
|
|
30
|
+
{
|
|
31
|
+
target: Address;
|
|
32
|
+
abi: typeof iethZapperDepositsAbi;
|
|
33
|
+
functionName: "depositWithReferral";
|
|
34
|
+
args: [Address, bigint];
|
|
35
|
+
value: bigint;
|
|
36
|
+
} | {
|
|
37
|
+
target: Address;
|
|
38
|
+
abi: typeof ierc20ZapperDepositsAbi;
|
|
39
|
+
functionName: "depositWithReferralAndPermit";
|
|
40
|
+
args: [bigint, Address, bigint, bigint, number, Address, Address];
|
|
41
|
+
} | {
|
|
42
|
+
target: Address;
|
|
43
|
+
abi: typeof ierc20ZapperDepositsAbi;
|
|
44
|
+
functionName: "depositWithReferral";
|
|
45
|
+
args: [bigint, Address, bigint];
|
|
46
|
+
} | {
|
|
47
|
+
target: Address;
|
|
48
|
+
abi: typeof iPoolV300Abi;
|
|
49
|
+
functionName: "depositWithReferral";
|
|
50
|
+
args: [bigint, Address, bigint];
|
|
51
|
+
}
|
|
52
|
+
];
|
|
53
|
+
export interface RemoveLiquidityProps {
|
|
54
|
+
pool: Address;
|
|
55
|
+
amount: bigint;
|
|
56
|
+
account: Address;
|
|
57
|
+
permit: PermitResult | undefined;
|
|
58
|
+
zapper: PoolData_Legacy["zappers"][Address][Address];
|
|
59
|
+
}
|
|
60
|
+
export type RemoveLiquidityCall = [
|
|
61
|
+
{
|
|
62
|
+
target: Address;
|
|
63
|
+
abi: typeof iZapperAbi;
|
|
64
|
+
functionName: "redeemWithPermit";
|
|
65
|
+
args: [bigint, Address, bigint, number, Address, Address];
|
|
66
|
+
} | {
|
|
67
|
+
target: Address;
|
|
68
|
+
abi: typeof iZapperAbi;
|
|
69
|
+
functionName: "redeem";
|
|
70
|
+
args: [bigint, Address];
|
|
71
|
+
} | {
|
|
72
|
+
target: Address;
|
|
73
|
+
abi: typeof iPoolV300Abi;
|
|
74
|
+
functionName: "redeem";
|
|
75
|
+
args: [bigint, Address, Address];
|
|
76
|
+
}
|
|
77
|
+
];
|
|
78
|
+
export interface IPoolsService {
|
|
79
|
+
/**
|
|
80
|
+
* Add liquidity to a pool
|
|
81
|
+
* @param props - {@link AddLiquidityProps}
|
|
82
|
+
* @returns - {@link AddLiquidityCall}
|
|
83
|
+
*/
|
|
84
|
+
addLiquidity(props: AddLiquidityProps): AddLiquidityCall;
|
|
85
|
+
/**
|
|
86
|
+
* Remove liquidity from a pool
|
|
87
|
+
* @param props - {@link RemoveLiquidityProps}
|
|
88
|
+
* @returns - {@link RemoveLiquidityCall}
|
|
89
|
+
*/
|
|
90
|
+
removeLiquidity(props: RemoveLiquidityProps): RemoveLiquidityCall;
|
|
91
|
+
}
|
|
92
|
+
export {};
|