@gearbox-protocol/sdk 14.10.3-next.1 → 14.10.3-next.3
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/abi/iERC20Zapper.js +33 -0
- package/dist/cjs/abi/iETHZapper.js +30 -0
- package/dist/cjs/sdk/market/ZapperRegister.js +5 -3
- package/dist/cjs/sdk/market/zapper/IERC20ZapperContract.js +98 -0
- package/dist/cjs/sdk/market/zapper/{IZapperContract.js → IETHZapperContract.js} +45 -10
- package/dist/cjs/sdk/market/zapper/{IETHZapperDepositsContract.js → Zapper.js} +22 -20
- package/dist/cjs/sdk/market/zapper/createZapper.js +45 -0
- package/dist/cjs/sdk/market/zapper/index.js +8 -6
- package/dist/cjs/sdk/pools/PoolService.js +9 -21
- package/dist/esm/abi/iERC20Zapper.js +9 -0
- package/dist/esm/abi/iETHZapper.js +6 -0
- package/dist/esm/sdk/market/ZapperRegister.js +5 -3
- package/dist/esm/sdk/market/zapper/IERC20ZapperContract.js +74 -0
- package/dist/esm/sdk/market/zapper/IETHZapperContract.js +65 -0
- package/dist/esm/sdk/market/zapper/Zapper.js +23 -0
- package/dist/esm/sdk/market/zapper/createZapper.js +21 -0
- package/dist/esm/sdk/market/zapper/index.js +4 -3
- package/dist/esm/sdk/pools/PoolService.js +11 -24
- package/dist/types/{sdk/market/zapper/IERC20ZapperDepositsContract.d.ts → abi/iERC20Zapper.d.ts} +121 -19
- package/dist/types/{sdk/market/zapper/IZapperContract.d.ts → abi/iETHZapper.d.ts} +33 -19
- package/dist/types/sdk/market/ZapperRegister.d.ts +4 -4
- package/dist/types/sdk/market/zapper/IERC20ZapperContract.d.ts +350 -0
- package/dist/types/sdk/market/zapper/IETHZapperContract.d.ts +186 -0
- package/dist/types/sdk/market/zapper/Zapper.d.ts +13 -0
- package/dist/types/sdk/market/zapper/createZapper.d.ts +6 -0
- package/dist/types/sdk/market/zapper/index.d.ts +4 -3
- package/dist/types/sdk/pools/types.d.ts +3 -3
- package/package.json +1 -1
- package/dist/cjs/sdk/market/zapper/IERC20ZapperDepositsContract.js +0 -54
- package/dist/esm/sdk/market/zapper/IERC20ZapperDepositsContract.js +0 -30
- package/dist/esm/sdk/market/zapper/IETHZapperDepositsContract.js +0 -21
- package/dist/esm/sdk/market/zapper/IZapperContract.js +0 -30
- package/dist/types/sdk/market/zapper/IETHZapperDepositsContract.d.ts +0 -47
|
@@ -0,0 +1,33 @@
|
|
|
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 iERC20Zapper_exports = {};
|
|
20
|
+
__export(iERC20Zapper_exports, {
|
|
21
|
+
ierc20ZapperAbi: () => ierc20ZapperAbi
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(iERC20Zapper_exports);
|
|
24
|
+
var import_iERC20ZapperDeposits = require("./iERC20ZapperDeposits.js");
|
|
25
|
+
var import_iZapper = require("./iZapper.js");
|
|
26
|
+
const ierc20ZapperAbi = [
|
|
27
|
+
...import_iERC20ZapperDeposits.ierc20ZapperDepositsAbi,
|
|
28
|
+
...import_iZapper.iZapperAbi
|
|
29
|
+
];
|
|
30
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
+
0 && (module.exports = {
|
|
32
|
+
ierc20ZapperAbi
|
|
33
|
+
});
|
|
@@ -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 iETHZapper_exports = {};
|
|
20
|
+
__export(iETHZapper_exports, {
|
|
21
|
+
iethZapperAbi: () => iethZapperAbi
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(iETHZapper_exports);
|
|
24
|
+
var import_iETHZapperDeposits = require("./iETHZapperDeposits.js");
|
|
25
|
+
var import_iZapper = require("./iZapper.js");
|
|
26
|
+
const iethZapperAbi = [...import_iETHZapperDeposits.iethZapperDepositsAbi, ...import_iZapper.iZapperAbi];
|
|
27
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
28
|
+
0 && (module.exports = {
|
|
29
|
+
iethZapperAbi
|
|
30
|
+
});
|
|
@@ -25,9 +25,10 @@ var import_peripheryCompressor = require("../../abi/compressors/peripheryCompres
|
|
|
25
25
|
var import_base = require("../base/index.js");
|
|
26
26
|
var import_constants = require("../constants/index.js");
|
|
27
27
|
var import_utils = require("../utils/index.js");
|
|
28
|
+
var import_zapper = require("./zapper/index.js");
|
|
28
29
|
class ZapperRegister extends import_base.SDKConstruct {
|
|
29
30
|
/**
|
|
30
|
-
* Mapping pool.address ->
|
|
31
|
+
* Mapping pool.address -> Zapper[]
|
|
31
32
|
* Needs to be loaded explicitly using loadZappers method
|
|
32
33
|
*/
|
|
33
34
|
#zappers;
|
|
@@ -75,16 +76,17 @@ class ZapperRegister extends import_base.SDKConstruct {
|
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
#addZapper(z) {
|
|
79
|
+
const zapper = (0, import_zapper.createZapper)(this.sdk, z);
|
|
78
80
|
const existing = this.zappers.get(z.pool);
|
|
79
81
|
if (existing) {
|
|
80
82
|
const hasZapper = existing.some(
|
|
81
83
|
(zz) => (0, import_utils.hexEq)(zz.baseParams.addr, z.baseParams.addr)
|
|
82
84
|
);
|
|
83
85
|
if (!hasZapper) {
|
|
84
|
-
existing.push(
|
|
86
|
+
existing.push(zapper);
|
|
85
87
|
}
|
|
86
88
|
} else {
|
|
87
|
-
this.zappers.upsert(z.pool, [
|
|
89
|
+
this.zappers.upsert(z.pool, [zapper]);
|
|
88
90
|
}
|
|
89
91
|
const zappersTokens = [z.tokenIn, z.tokenOut];
|
|
90
92
|
for (const t of zappersTokens) {
|
|
@@ -0,0 +1,98 @@
|
|
|
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 IERC20ZapperContract_exports = {};
|
|
20
|
+
__export(IERC20ZapperContract_exports, {
|
|
21
|
+
IERC20ZapperContract: () => IERC20ZapperContract
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(IERC20ZapperContract_exports);
|
|
24
|
+
var import_iERC20Zapper = require("../../../abi/iERC20Zapper.js");
|
|
25
|
+
var import_base = require("../../base/index.js");
|
|
26
|
+
const abi = import_iERC20Zapper.ierc20ZapperAbi;
|
|
27
|
+
class IERC20ZapperContract extends import_base.BaseContract {
|
|
28
|
+
pool;
|
|
29
|
+
type;
|
|
30
|
+
baseParams;
|
|
31
|
+
tokenIn;
|
|
32
|
+
tokenOut;
|
|
33
|
+
constructor(sdk, data) {
|
|
34
|
+
super(sdk, {
|
|
35
|
+
addr: data.baseParams.addr,
|
|
36
|
+
abi,
|
|
37
|
+
name: `ERC20Zapper(${sdk.labelAddress(data.baseParams.addr)})`,
|
|
38
|
+
version: data.baseParams.version,
|
|
39
|
+
contractType: data.baseParams.contractType
|
|
40
|
+
});
|
|
41
|
+
this.pool = data.pool;
|
|
42
|
+
this.type = data.type;
|
|
43
|
+
this.baseParams = data.baseParams;
|
|
44
|
+
this.tokenIn = data.tokenIn;
|
|
45
|
+
this.tokenOut = data.tokenOut;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Deposits ERC20 tokens into the pool via this zapper.
|
|
49
|
+
*/
|
|
50
|
+
deposit(tokenInAmount, receiver) {
|
|
51
|
+
return this.createRawTx({
|
|
52
|
+
functionName: "deposit",
|
|
53
|
+
args: [tokenInAmount, receiver]
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Deposits ERC20 tokens into the pool via this zapper using a referral code.
|
|
58
|
+
*/
|
|
59
|
+
depositWithReferral(tokenInAmount, receiver, referralCode) {
|
|
60
|
+
return this.createRawTx({
|
|
61
|
+
functionName: "depositWithReferral",
|
|
62
|
+
args: [tokenInAmount, receiver, referralCode]
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Deposits ERC20 tokens via this zapper with a referral code and an
|
|
67
|
+
* EIP-2612 permit signature, skipping a separate approve transaction.
|
|
68
|
+
*/
|
|
69
|
+
depositWithReferralAndPermit(tokenInAmount, receiver, referralCode, deadline, v, r, s) {
|
|
70
|
+
return this.createRawTx({
|
|
71
|
+
functionName: "depositWithReferralAndPermit",
|
|
72
|
+
args: [tokenInAmount, receiver, referralCode, deadline, v, r, s]
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Redeems pool shares (diesel tokens) for the underlying asset via this zapper.
|
|
77
|
+
*/
|
|
78
|
+
redeem(tokenInAmount, receiver) {
|
|
79
|
+
return this.createRawTx({
|
|
80
|
+
functionName: "redeem",
|
|
81
|
+
args: [tokenInAmount, receiver]
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Redeems pool shares via this zapper with an EIP-2612 permit signature,
|
|
86
|
+
* skipping a separate approve transaction.
|
|
87
|
+
*/
|
|
88
|
+
redeemWithPermit(tokenInAmount, receiver, deadline, v, r, s) {
|
|
89
|
+
return this.createRawTx({
|
|
90
|
+
functionName: "redeemWithPermit",
|
|
91
|
+
args: [tokenInAmount, receiver, deadline, v, r, s]
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
96
|
+
0 && (module.exports = {
|
|
97
|
+
IERC20ZapperContract
|
|
98
|
+
});
|
|
@@ -16,17 +16,52 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
19
|
+
var IETHZapperContract_exports = {};
|
|
20
|
+
__export(IETHZapperContract_exports, {
|
|
21
|
+
IETHZapperContract: () => IETHZapperContract
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
23
|
+
module.exports = __toCommonJS(IETHZapperContract_exports);
|
|
24
|
+
var import_iETHZapper = require("../../../abi/iETHZapper.js");
|
|
25
25
|
var import_base = require("../../base/index.js");
|
|
26
|
-
const abi =
|
|
27
|
-
class
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
const abi = import_iETHZapper.iethZapperAbi;
|
|
27
|
+
class IETHZapperContract extends import_base.BaseContract {
|
|
28
|
+
pool;
|
|
29
|
+
type;
|
|
30
|
+
baseParams;
|
|
31
|
+
tokenIn;
|
|
32
|
+
tokenOut;
|
|
33
|
+
constructor(sdk, data) {
|
|
34
|
+
super(sdk, {
|
|
35
|
+
addr: data.baseParams.addr,
|
|
36
|
+
abi,
|
|
37
|
+
name: `ETHZapper(${sdk.labelAddress(data.baseParams.addr)})`,
|
|
38
|
+
version: data.baseParams.version,
|
|
39
|
+
contractType: data.baseParams.contractType
|
|
40
|
+
});
|
|
41
|
+
this.pool = data.pool;
|
|
42
|
+
this.type = data.type;
|
|
43
|
+
this.baseParams = data.baseParams;
|
|
44
|
+
this.tokenIn = data.tokenIn;
|
|
45
|
+
this.tokenOut = data.tokenOut;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Deposits native ETH into the pool via this zapper.
|
|
49
|
+
*/
|
|
50
|
+
deposit(receiver) {
|
|
51
|
+
return this.createRawTx({
|
|
52
|
+
functionName: "deposit",
|
|
53
|
+
args: [receiver]
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Deposits native ETH into the pool via this zapper using a referral code.
|
|
58
|
+
* The caller must attach the deposit amount as msg.value.
|
|
59
|
+
*/
|
|
60
|
+
depositWithReferral(receiver, referralCode) {
|
|
61
|
+
return this.createRawTx({
|
|
62
|
+
functionName: "depositWithReferral",
|
|
63
|
+
args: [receiver, referralCode]
|
|
64
|
+
});
|
|
30
65
|
}
|
|
31
66
|
/**
|
|
32
67
|
* Redeems pool shares (diesel tokens) for the underlying asset via this zapper.
|
|
@@ -50,5 +85,5 @@ class IZapperContract extends import_base.BaseContract {
|
|
|
50
85
|
}
|
|
51
86
|
// Annotate the CommonJS export names for ESM import in node:
|
|
52
87
|
0 && (module.exports = {
|
|
53
|
-
|
|
88
|
+
IETHZapperContract
|
|
54
89
|
});
|
|
@@ -16,30 +16,32 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
19
|
+
var Zapper_exports = {};
|
|
20
|
+
__export(Zapper_exports, {
|
|
21
|
+
Zapper: () => Zapper
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
module.exports = __toCommonJS(Zapper_exports);
|
|
24
|
+
var import_utils = require("../../utils/index.js");
|
|
25
|
+
class Zapper {
|
|
26
|
+
pool;
|
|
27
|
+
type;
|
|
28
|
+
baseParams;
|
|
29
|
+
tokenIn;
|
|
30
|
+
tokenOut;
|
|
31
|
+
contractType;
|
|
32
|
+
constructor(data) {
|
|
33
|
+
this.pool = data.pool;
|
|
34
|
+
this.type = data.type;
|
|
35
|
+
this.baseParams = data.baseParams;
|
|
36
|
+
this.tokenIn = data.tokenIn;
|
|
37
|
+
this.tokenOut = data.tokenOut;
|
|
38
|
+
this.contractType = Zapper.contractType(data.baseParams);
|
|
30
39
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* The caller must attach the deposit amount as msg.value.
|
|
34
|
-
*/
|
|
35
|
-
depositWithReferral(receiver, referralCode) {
|
|
36
|
-
return this.createRawTx({
|
|
37
|
-
functionName: "depositWithReferral",
|
|
38
|
-
args: [receiver, referralCode]
|
|
39
|
-
});
|
|
40
|
+
static contractType(baseParams) {
|
|
41
|
+
return (0, import_utils.bytes32ToString)(baseParams.contractType);
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
// Annotate the CommonJS export names for ESM import in node:
|
|
43
45
|
0 && (module.exports = {
|
|
44
|
-
|
|
46
|
+
Zapper
|
|
45
47
|
});
|
|
@@ -0,0 +1,45 @@
|
|
|
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 createZapper_exports = {};
|
|
20
|
+
__export(createZapper_exports, {
|
|
21
|
+
createZapper: () => createZapper
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(createZapper_exports);
|
|
24
|
+
var import_IERC20ZapperContract = require("./IERC20ZapperContract.js");
|
|
25
|
+
var import_IETHZapperContract = require("./IETHZapperContract.js");
|
|
26
|
+
var import_Zapper = require("./Zapper.js");
|
|
27
|
+
function createZapper(sdk, data) {
|
|
28
|
+
if (data.type === "base") {
|
|
29
|
+
const contractType = import_Zapper.Zapper.contractType(data.baseParams);
|
|
30
|
+
switch (contractType) {
|
|
31
|
+
case "ZAPPER::ERC4626_UNDERLYING":
|
|
32
|
+
return new import_IERC20ZapperContract.IERC20ZapperContract(sdk, data);
|
|
33
|
+
case "ZAPPER::WETH_DEPOSIT":
|
|
34
|
+
return new import_IETHZapperContract.IETHZapperContract(sdk, data);
|
|
35
|
+
default:
|
|
36
|
+
sdk.logger?.warn(`Unknown zapper contract type: ${contractType}`);
|
|
37
|
+
return new import_Zapper.Zapper(data);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return new import_Zapper.Zapper(data);
|
|
41
|
+
}
|
|
42
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
+
0 && (module.exports = {
|
|
44
|
+
createZapper
|
|
45
|
+
});
|
|
@@ -15,12 +15,14 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
|
|
|
15
15
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
16
|
var zapper_exports = {};
|
|
17
17
|
module.exports = __toCommonJS(zapper_exports);
|
|
18
|
-
__reExport(zapper_exports, require("./
|
|
19
|
-
__reExport(zapper_exports, require("./
|
|
20
|
-
__reExport(zapper_exports, require("./
|
|
18
|
+
__reExport(zapper_exports, require("./createZapper.js"), module.exports);
|
|
19
|
+
__reExport(zapper_exports, require("./IERC20ZapperContract.js"), module.exports);
|
|
20
|
+
__reExport(zapper_exports, require("./IETHZapperContract.js"), module.exports);
|
|
21
|
+
__reExport(zapper_exports, require("./Zapper.js"), module.exports);
|
|
21
22
|
// Annotate the CommonJS export names for ESM import in node:
|
|
22
23
|
0 && (module.exports = {
|
|
23
|
-
...require("./
|
|
24
|
-
...require("./
|
|
25
|
-
...require("./
|
|
24
|
+
...require("./createZapper.js"),
|
|
25
|
+
...require("./IERC20ZapperContract.js"),
|
|
26
|
+
...require("./IETHZapperContract.js"),
|
|
27
|
+
...require("./Zapper.js")
|
|
26
28
|
});
|
|
@@ -24,7 +24,7 @@ module.exports = __toCommonJS(PoolService_exports);
|
|
|
24
24
|
var import_iERC20 = require("../../abi/iERC20.js");
|
|
25
25
|
var import_base = require("../base/index.js");
|
|
26
26
|
var import_constants = require("../constants/index.js");
|
|
27
|
-
var
|
|
27
|
+
var import_market = require("../market/index.js");
|
|
28
28
|
var import_utils = require("../utils/index.js");
|
|
29
29
|
class PoolService extends import_base.SDKConstruct {
|
|
30
30
|
/**
|
|
@@ -96,23 +96,15 @@ class PoolService extends import_base.SDKConstruct {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
const { zapper } = meta;
|
|
99
|
-
if (zapper
|
|
100
|
-
const
|
|
101
|
-
addr: zapper.baseParams.addr,
|
|
102
|
-
name: `ETHZapper(${this.labelAddress(zapper.baseParams.addr)})`
|
|
103
|
-
});
|
|
104
|
-
const tx2 = zapperContract.depositWithReferral(wallet, referralCode ?? 0n);
|
|
99
|
+
if (zapper instanceof import_market.IETHZapperContract) {
|
|
100
|
+
const tx2 = zapper.depositWithReferral(wallet, referralCode ?? 0n);
|
|
105
101
|
tx2.value = collateral.balance.toString();
|
|
106
102
|
return {
|
|
107
103
|
tx: tx2,
|
|
108
104
|
calls: [{ target: zapper.baseParams.addr, callData: tx2.callData }]
|
|
109
105
|
};
|
|
110
|
-
} else if (zapper) {
|
|
111
|
-
const
|
|
112
|
-
addr: zapper.baseParams.addr,
|
|
113
|
-
name: `ERC20Zapper(${this.labelAddress(zapper.baseParams.addr)})`
|
|
114
|
-
});
|
|
115
|
-
const tx2 = permit ? zapperContract.depositWithReferralAndPermit(
|
|
106
|
+
} else if (zapper instanceof import_market.IERC20ZapperContract) {
|
|
107
|
+
const tx2 = permit ? zapper.depositWithReferralAndPermit(
|
|
116
108
|
collateral.balance,
|
|
117
109
|
wallet,
|
|
118
110
|
referralCode ?? 0n,
|
|
@@ -120,7 +112,7 @@ class PoolService extends import_base.SDKConstruct {
|
|
|
120
112
|
permit.v,
|
|
121
113
|
permit.r,
|
|
122
114
|
permit.s
|
|
123
|
-
) :
|
|
115
|
+
) : zapper.depositWithReferral(
|
|
124
116
|
collateral.balance,
|
|
125
117
|
wallet,
|
|
126
118
|
referralCode ?? 0n
|
|
@@ -194,19 +186,15 @@ class PoolService extends import_base.SDKConstruct {
|
|
|
194
186
|
};
|
|
195
187
|
}
|
|
196
188
|
}
|
|
197
|
-
if (meta.zapper) {
|
|
198
|
-
const
|
|
199
|
-
addr: meta.zapper.baseParams.addr,
|
|
200
|
-
name: `Zapper(${this.labelAddress(meta.zapper.baseParams.addr)})`
|
|
201
|
-
});
|
|
202
|
-
const tx2 = permit ? zapperContract.redeemWithPermit(
|
|
189
|
+
if (meta.zapper instanceof import_market.IETHZapperContract || meta.zapper instanceof import_market.IERC20ZapperContract) {
|
|
190
|
+
const tx2 = permit ? meta.zapper.redeemWithPermit(
|
|
203
191
|
amount,
|
|
204
192
|
wallet,
|
|
205
193
|
permit.deadline,
|
|
206
194
|
permit.v,
|
|
207
195
|
permit.r,
|
|
208
196
|
permit.s
|
|
209
|
-
) :
|
|
197
|
+
) : meta.zapper.redeem(amount, wallet);
|
|
210
198
|
return {
|
|
211
199
|
tx: tx2,
|
|
212
200
|
calls: [{ target: meta.zapper.baseParams.addr, callData: tx2.callData }]
|
|
@@ -5,9 +5,10 @@ import {
|
|
|
5
5
|
VERSION_RANGE_310
|
|
6
6
|
} from "../constants/index.js";
|
|
7
7
|
import { AddressMap, hexEq } from "../utils/index.js";
|
|
8
|
+
import { createZapper } from "./zapper/index.js";
|
|
8
9
|
class ZapperRegister extends SDKConstruct {
|
|
9
10
|
/**
|
|
10
|
-
* Mapping pool.address ->
|
|
11
|
+
* Mapping pool.address -> Zapper[]
|
|
11
12
|
* Needs to be loaded explicitly using loadZappers method
|
|
12
13
|
*/
|
|
13
14
|
#zappers;
|
|
@@ -55,16 +56,17 @@ class ZapperRegister extends SDKConstruct {
|
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
#addZapper(z) {
|
|
59
|
+
const zapper = createZapper(this.sdk, z);
|
|
58
60
|
const existing = this.zappers.get(z.pool);
|
|
59
61
|
if (existing) {
|
|
60
62
|
const hasZapper = existing.some(
|
|
61
63
|
(zz) => hexEq(zz.baseParams.addr, z.baseParams.addr)
|
|
62
64
|
);
|
|
63
65
|
if (!hasZapper) {
|
|
64
|
-
existing.push(
|
|
66
|
+
existing.push(zapper);
|
|
65
67
|
}
|
|
66
68
|
} else {
|
|
67
|
-
this.zappers.upsert(z.pool, [
|
|
69
|
+
this.zappers.upsert(z.pool, [zapper]);
|
|
68
70
|
}
|
|
69
71
|
const zappersTokens = [z.tokenIn, z.tokenOut];
|
|
70
72
|
for (const t of zappersTokens) {
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ierc20ZapperAbi } from "../../../abi/iERC20Zapper.js";
|
|
2
|
+
import { BaseContract } from "../../base/index.js";
|
|
3
|
+
const abi = ierc20ZapperAbi;
|
|
4
|
+
class IERC20ZapperContract extends BaseContract {
|
|
5
|
+
pool;
|
|
6
|
+
type;
|
|
7
|
+
baseParams;
|
|
8
|
+
tokenIn;
|
|
9
|
+
tokenOut;
|
|
10
|
+
constructor(sdk, data) {
|
|
11
|
+
super(sdk, {
|
|
12
|
+
addr: data.baseParams.addr,
|
|
13
|
+
abi,
|
|
14
|
+
name: `ERC20Zapper(${sdk.labelAddress(data.baseParams.addr)})`,
|
|
15
|
+
version: data.baseParams.version,
|
|
16
|
+
contractType: data.baseParams.contractType
|
|
17
|
+
});
|
|
18
|
+
this.pool = data.pool;
|
|
19
|
+
this.type = data.type;
|
|
20
|
+
this.baseParams = data.baseParams;
|
|
21
|
+
this.tokenIn = data.tokenIn;
|
|
22
|
+
this.tokenOut = data.tokenOut;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Deposits ERC20 tokens into the pool via this zapper.
|
|
26
|
+
*/
|
|
27
|
+
deposit(tokenInAmount, receiver) {
|
|
28
|
+
return this.createRawTx({
|
|
29
|
+
functionName: "deposit",
|
|
30
|
+
args: [tokenInAmount, receiver]
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Deposits ERC20 tokens into the pool via this zapper using a referral code.
|
|
35
|
+
*/
|
|
36
|
+
depositWithReferral(tokenInAmount, receiver, referralCode) {
|
|
37
|
+
return this.createRawTx({
|
|
38
|
+
functionName: "depositWithReferral",
|
|
39
|
+
args: [tokenInAmount, receiver, referralCode]
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Deposits ERC20 tokens via this zapper with a referral code and an
|
|
44
|
+
* EIP-2612 permit signature, skipping a separate approve transaction.
|
|
45
|
+
*/
|
|
46
|
+
depositWithReferralAndPermit(tokenInAmount, receiver, referralCode, deadline, v, r, s) {
|
|
47
|
+
return this.createRawTx({
|
|
48
|
+
functionName: "depositWithReferralAndPermit",
|
|
49
|
+
args: [tokenInAmount, receiver, referralCode, deadline, v, r, s]
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Redeems pool shares (diesel tokens) for the underlying asset via this zapper.
|
|
54
|
+
*/
|
|
55
|
+
redeem(tokenInAmount, receiver) {
|
|
56
|
+
return this.createRawTx({
|
|
57
|
+
functionName: "redeem",
|
|
58
|
+
args: [tokenInAmount, receiver]
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Redeems pool shares via this zapper with an EIP-2612 permit signature,
|
|
63
|
+
* skipping a separate approve transaction.
|
|
64
|
+
*/
|
|
65
|
+
redeemWithPermit(tokenInAmount, receiver, deadline, v, r, s) {
|
|
66
|
+
return this.createRawTx({
|
|
67
|
+
functionName: "redeemWithPermit",
|
|
68
|
+
args: [tokenInAmount, receiver, deadline, v, r, s]
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export {
|
|
73
|
+
IERC20ZapperContract
|
|
74
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { iethZapperAbi } from "../../../abi/iETHZapper.js";
|
|
2
|
+
import { BaseContract } from "../../base/index.js";
|
|
3
|
+
const abi = iethZapperAbi;
|
|
4
|
+
class IETHZapperContract extends BaseContract {
|
|
5
|
+
pool;
|
|
6
|
+
type;
|
|
7
|
+
baseParams;
|
|
8
|
+
tokenIn;
|
|
9
|
+
tokenOut;
|
|
10
|
+
constructor(sdk, data) {
|
|
11
|
+
super(sdk, {
|
|
12
|
+
addr: data.baseParams.addr,
|
|
13
|
+
abi,
|
|
14
|
+
name: `ETHZapper(${sdk.labelAddress(data.baseParams.addr)})`,
|
|
15
|
+
version: data.baseParams.version,
|
|
16
|
+
contractType: data.baseParams.contractType
|
|
17
|
+
});
|
|
18
|
+
this.pool = data.pool;
|
|
19
|
+
this.type = data.type;
|
|
20
|
+
this.baseParams = data.baseParams;
|
|
21
|
+
this.tokenIn = data.tokenIn;
|
|
22
|
+
this.tokenOut = data.tokenOut;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Deposits native ETH into the pool via this zapper.
|
|
26
|
+
*/
|
|
27
|
+
deposit(receiver) {
|
|
28
|
+
return this.createRawTx({
|
|
29
|
+
functionName: "deposit",
|
|
30
|
+
args: [receiver]
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Deposits native ETH into the pool via this zapper using a referral code.
|
|
35
|
+
* The caller must attach the deposit amount as msg.value.
|
|
36
|
+
*/
|
|
37
|
+
depositWithReferral(receiver, referralCode) {
|
|
38
|
+
return this.createRawTx({
|
|
39
|
+
functionName: "depositWithReferral",
|
|
40
|
+
args: [receiver, referralCode]
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Redeems pool shares (diesel tokens) for the underlying asset via this zapper.
|
|
45
|
+
*/
|
|
46
|
+
redeem(tokenInAmount, receiver) {
|
|
47
|
+
return this.createRawTx({
|
|
48
|
+
functionName: "redeem",
|
|
49
|
+
args: [tokenInAmount, receiver]
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Redeems pool shares via this zapper with an EIP-2612 permit signature,
|
|
54
|
+
* skipping a separate approve transaction.
|
|
55
|
+
*/
|
|
56
|
+
redeemWithPermit(tokenInAmount, receiver, deadline, v, r, s) {
|
|
57
|
+
return this.createRawTx({
|
|
58
|
+
functionName: "redeemWithPermit",
|
|
59
|
+
args: [tokenInAmount, receiver, deadline, v, r, s]
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export {
|
|
64
|
+
IETHZapperContract
|
|
65
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { bytes32ToString } from "../../utils/index.js";
|
|
2
|
+
class Zapper {
|
|
3
|
+
pool;
|
|
4
|
+
type;
|
|
5
|
+
baseParams;
|
|
6
|
+
tokenIn;
|
|
7
|
+
tokenOut;
|
|
8
|
+
contractType;
|
|
9
|
+
constructor(data) {
|
|
10
|
+
this.pool = data.pool;
|
|
11
|
+
this.type = data.type;
|
|
12
|
+
this.baseParams = data.baseParams;
|
|
13
|
+
this.tokenIn = data.tokenIn;
|
|
14
|
+
this.tokenOut = data.tokenOut;
|
|
15
|
+
this.contractType = Zapper.contractType(data.baseParams);
|
|
16
|
+
}
|
|
17
|
+
static contractType(baseParams) {
|
|
18
|
+
return bytes32ToString(baseParams.contractType);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
Zapper
|
|
23
|
+
};
|