curvance 1.1.0 → 1.2.1
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/abis/SimplePositionManager.json +957 -0
- package/dist/chains/index.d.ts +4 -4
- package/dist/chains/monad-testnet.json +68 -68
- package/dist/classes/BorrowableCToken.d.ts +9 -5
- package/dist/classes/BorrowableCToken.d.ts.map +1 -1
- package/dist/classes/BorrowableCToken.js +13 -5
- package/dist/classes/BorrowableCToken.js.map +1 -1
- package/dist/classes/CToken.d.ts +13 -4
- package/dist/classes/CToken.d.ts.map +1 -1
- package/dist/classes/CToken.js +100 -35
- package/dist/classes/CToken.js.map +1 -1
- package/dist/classes/Market.d.ts +1 -0
- package/dist/classes/Market.d.ts.map +1 -1
- package/dist/classes/Market.js.map +1 -1
- package/dist/classes/PositionManager.d.ts +29 -0
- package/dist/classes/PositionManager.d.ts.map +1 -0
- package/dist/classes/PositionManager.js +35 -0
- package/dist/classes/PositionManager.js.map +1 -0
- package/dist/classes/ProtocolReader.d.ts +2 -2
- package/dist/classes/ProtocolReader.d.ts.map +1 -1
- package/dist/classes/ProtocolReader.js +3 -2
- package/dist/classes/ProtocolReader.js.map +1 -1
- package/dist/helpers.d.ts +4 -4
- package/package.json +1 -1
package/dist/chains/index.d.ts
CHANGED
|
@@ -87,10 +87,10 @@ export declare const chains: {
|
|
|
87
87
|
plugins: {
|
|
88
88
|
nativeVaultPositionManager: string;
|
|
89
89
|
};
|
|
90
|
-
"
|
|
90
|
+
"sMON-DynamicIRM": string;
|
|
91
91
|
tokens: {
|
|
92
|
-
WMON: string;
|
|
93
92
|
sMON: string;
|
|
93
|
+
WMON: string;
|
|
94
94
|
};
|
|
95
95
|
};
|
|
96
96
|
"Magma (gMON) / wMON": {
|
|
@@ -98,10 +98,10 @@ export declare const chains: {
|
|
|
98
98
|
plugins: {
|
|
99
99
|
nativeVaultPositionManager: string;
|
|
100
100
|
};
|
|
101
|
-
"
|
|
101
|
+
"gMON-DynamicIRM": string;
|
|
102
102
|
tokens: {
|
|
103
|
-
WMON: string;
|
|
104
103
|
gMON: string;
|
|
104
|
+
WMON: string;
|
|
105
105
|
};
|
|
106
106
|
};
|
|
107
107
|
};
|
|
@@ -1,118 +1,118 @@
|
|
|
1
1
|
{
|
|
2
|
-
"CentralRegistry": "
|
|
3
|
-
"OracleManager": "
|
|
2
|
+
"CentralRegistry": "0x1605b3aD37708b1E2c9A7B949Bc289fbc882251D",
|
|
3
|
+
"OracleManager": "0x96f3912bFa50EA5aa6230Ddf5347819f2440C0F4",
|
|
4
4
|
"adaptors": {
|
|
5
|
-
"ChainlinkAdaptor": "
|
|
6
|
-
"RedstoneClassicAdaptor": "
|
|
7
|
-
"RedstoneCoreAdaptor": "
|
|
5
|
+
"ChainlinkAdaptor": "0x15a5D9fE67265c47b5A1460d896260a427d1E42a",
|
|
6
|
+
"RedstoneClassicAdaptor": "0x6423A02783F432e25151b806905937ceaAFDE586",
|
|
7
|
+
"RedstoneCoreAdaptor": "0x68fE0E13c75a662bd413566d4140e390917DBcb5"
|
|
8
8
|
},
|
|
9
9
|
"calldataCheckers": {
|
|
10
|
-
"RedstoneAdaptorMulticallChecker": "
|
|
10
|
+
"RedstoneAdaptorMulticallChecker": "0x3f36722Fe6BAD26E4B1433B329ecC02C0787F8b7"
|
|
11
11
|
},
|
|
12
12
|
"zappers": {
|
|
13
|
-
"nativeVaultZapper": "
|
|
14
|
-
"vaultZapper": "
|
|
15
|
-
"simpleZapper": "
|
|
13
|
+
"nativeVaultZapper": "0x0078eda41B1dC48729C4D62291248A1c5904A1a6",
|
|
14
|
+
"vaultZapper": "0x5B9229594216838a812e736aF3F95Af993B287f8",
|
|
15
|
+
"simpleZapper": "0x4fdd13FD07382704cC806d5C840A6c1AeF3E1757"
|
|
16
16
|
},
|
|
17
|
-
"MockOracle": "
|
|
18
|
-
"USDC": "
|
|
19
|
-
"WBTC": "
|
|
20
|
-
"SWETH": "
|
|
21
|
-
"DAI": "
|
|
22
|
-
"LUSD": "
|
|
23
|
-
"mkUSD": "
|
|
24
|
-
"mETH": "
|
|
25
|
-
"mUSD": "
|
|
26
|
-
"Faucet": "
|
|
17
|
+
"MockOracle": "0x7E71Fdd12bF2C5da35243Cd52830E60E828EBAfE",
|
|
18
|
+
"USDC": "0x8997eF110E5823b543155285eF0C370520e1E9d0",
|
|
19
|
+
"WBTC": "0xDC32E3b1bA7b9186993269753718f09be0ACAc35",
|
|
20
|
+
"SWETH": "0x243142962dc13208A674b5A61A95970280E0C730",
|
|
21
|
+
"DAI": "0x7F06C608747D6514f622F5beB8494818A0A2496d",
|
|
22
|
+
"LUSD": "0xb39802CF201fb33296Be0f400338fd4754bE33E3",
|
|
23
|
+
"mkUSD": "0x2C3d30269fa31258EC40A32690e0C149fde2493B",
|
|
24
|
+
"mETH": "0x7BB05Aa193535d8D4878c6433Bf800C8a7C549D8",
|
|
25
|
+
"mUSD": "0x4F9a6edB46abF3bF30D3Ab00CE4Ae6da2EdD0ab5",
|
|
26
|
+
"Faucet": "0x2Db7799f9574eC92F8246c40f5532249c3152419",
|
|
27
27
|
"markets": {
|
|
28
28
|
"Test WBTC / Test USDC": {
|
|
29
|
-
"address": "
|
|
30
|
-
"WBTC-DynamicIRM": "
|
|
29
|
+
"address": "0x706cE72FDafa499Ee60648CE9Ccb96E668a99496",
|
|
30
|
+
"WBTC-DynamicIRM": "0xc7e2cDB05635018c4d7c9de445B787e8bEa4D2e3",
|
|
31
31
|
"tokens": {
|
|
32
|
-
"WBTC": "
|
|
33
|
-
"USDC": "
|
|
32
|
+
"WBTC": "0x21CcAc607FAf119b800d8f545CfaDEA8F4043cDB",
|
|
33
|
+
"USDC": "0x6cc4AFf3ee554A38505E4C597Cf9f0144c9BF604"
|
|
34
34
|
},
|
|
35
|
-
"USDC-DynamicIRM": "
|
|
35
|
+
"USDC-DynamicIRM": "0x445855ee7aE89cDaAb2d8C869f513102431e335E"
|
|
36
36
|
},
|
|
37
37
|
"Test LUSD / Test SWETH": {
|
|
38
|
-
"address": "
|
|
39
|
-
"LUSD-DynamicIRM": "
|
|
38
|
+
"address": "0xc672CD797FAb0D7b7d61B20C3A00909747962eA2",
|
|
39
|
+
"LUSD-DynamicIRM": "0x76F04c8D091A5cfd74D6261C730cB0faD80Cb395",
|
|
40
40
|
"tokens": {
|
|
41
|
-
"LUSD": "
|
|
42
|
-
"SWETH": "
|
|
41
|
+
"LUSD": "0xacCbEE50bBF9882E6f11cCcb42200056105861c5",
|
|
42
|
+
"SWETH": "0xEbBB04559b01630F0435De55dA8AfdB8fb4Bd3F5"
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
45
|
"Test mUSD / Test mETH": {
|
|
46
|
-
"address": "
|
|
46
|
+
"address": "0xe23CBe23eB702376De976542E50A4d23Cf40303D",
|
|
47
47
|
"tokens": {
|
|
48
|
-
"mUSD": "
|
|
49
|
-
"mETH": "
|
|
48
|
+
"mUSD": "0x83B1F37E0042cAa2C8be27a0B1d259E792eDd29B",
|
|
49
|
+
"mETH": "0x63d8A82DdeA1F7eE530E9a0401519E9698aD6fED"
|
|
50
50
|
},
|
|
51
|
-
"mETH-DynamicIRM": "
|
|
51
|
+
"mETH-DynamicIRM": "0xa37CC6F55578F31E8C2B984375897b012e6e89C7"
|
|
52
52
|
},
|
|
53
53
|
"Test DAI / Test mkUSD": {
|
|
54
|
-
"address": "
|
|
55
|
-
"DAI-DynamicIRM": "
|
|
54
|
+
"address": "0xf583F43ea64D6d1D20F6E6D482f09eFEbc8f8556",
|
|
55
|
+
"DAI-DynamicIRM": "0x5A7dC8044223787eB1c327B96BDa6cE5557C98a8",
|
|
56
56
|
"tokens": {
|
|
57
|
-
"DAI": "
|
|
58
|
-
"mkUSD": "
|
|
57
|
+
"DAI": "0x2d18d6ab95DFb409e0B27e7D95F785307beBac4a",
|
|
58
|
+
"mkUSD": "0xaA409e5746B89D4CC930247aA473eFCb6aaeF43C"
|
|
59
59
|
},
|
|
60
|
-
"mkUSD-DynamicIRM": "
|
|
60
|
+
"mkUSD-DynamicIRM": "0xda7698bFc8724649421D8C184f6719f2f5cDEECD"
|
|
61
61
|
},
|
|
62
62
|
"Apriori (aprMON) / wMON": {
|
|
63
|
-
"address": "
|
|
63
|
+
"address": "0x440d26eAffb45305E89187C75567c7C246b6A748",
|
|
64
64
|
"plugins": {
|
|
65
|
-
"nativeVaultPositionManager": "
|
|
65
|
+
"nativeVaultPositionManager": "0xA40aEc339BC810D1e5dC4eFf049A70b7617D6bDb"
|
|
66
66
|
},
|
|
67
|
-
"WMON-DynamicIRM": "
|
|
67
|
+
"WMON-DynamicIRM": "0x57eF173Fbe320Ec10Dcf6edd15956D667fb1112f",
|
|
68
68
|
"tokens": {
|
|
69
|
-
"WMON": "
|
|
70
|
-
"aprMON": "
|
|
69
|
+
"WMON": "0x69C53fBaDa7bE5823417f695752162D424FDA0eF",
|
|
70
|
+
"aprMON": "0x1DBDFA96870F52839dA11332E69be6A2F42208f5"
|
|
71
71
|
}
|
|
72
72
|
},
|
|
73
73
|
"Fastlane (shMON) / wMON": {
|
|
74
|
-
"address": "
|
|
74
|
+
"address": "0xcE9191dDFFe9Cb2c9f8A6Dc665fe6622eD571539",
|
|
75
75
|
"plugins": {
|
|
76
|
-
"nativeVaultPositionManager": "
|
|
76
|
+
"nativeVaultPositionManager": "0x8980088FCB488d84a3eb844c71118F35cF939E2E"
|
|
77
77
|
},
|
|
78
|
-
"WMON-DynamicIRM": "
|
|
78
|
+
"WMON-DynamicIRM": "0xAD0223Df193285cfc012Cf5D803673a465E77e86",
|
|
79
79
|
"tokens": {
|
|
80
|
-
"WMON": "
|
|
81
|
-
"shMON": "
|
|
80
|
+
"WMON": "0x5053e1358CBD190492Aa00b50835eBA1030Ee2D4",
|
|
81
|
+
"shMON": "0x1D50152DBEDFC61996A08bA5EcE98CA7E8566175"
|
|
82
82
|
}
|
|
83
83
|
},
|
|
84
84
|
"Kintsu (sMON) / wMON": {
|
|
85
|
-
"address": "
|
|
85
|
+
"address": "0x25D232CCdc4714acc7Dd71c569744aa8C721e344",
|
|
86
86
|
"plugins": {
|
|
87
|
-
"nativeVaultPositionManager": "
|
|
87
|
+
"nativeVaultPositionManager": "0xBBfaDD2A1CFD234DF243a78931ec35D6013b824C"
|
|
88
88
|
},
|
|
89
|
-
"
|
|
89
|
+
"sMON-DynamicIRM": "0x6E36446dFd47347A2FcDEDC50B0d8cd6973BD3C7",
|
|
90
90
|
"tokens": {
|
|
91
|
-
"
|
|
92
|
-
"
|
|
91
|
+
"sMON": "0x0189Cec4582D4d78cb0f4D831E325580FC790907",
|
|
92
|
+
"WMON": "0x301314BA7ce92B2606a1b4BBfF75dF65ACc5b2aC"
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
95
|
"Magma (gMON) / wMON": {
|
|
96
|
-
"address": "
|
|
96
|
+
"address": "0xD7B389D4fb03eDfD81a5D7D1620c7992D9AF0d56",
|
|
97
97
|
"plugins": {
|
|
98
|
-
"nativeVaultPositionManager": "
|
|
98
|
+
"nativeVaultPositionManager": "0x9432239f8A4A21572E7719A30d729E21437edFeF"
|
|
99
99
|
},
|
|
100
|
-
"
|
|
100
|
+
"gMON-DynamicIRM": "0x5887379D06abb1bBd26375e1fd7c4242ceF1313B",
|
|
101
101
|
"tokens": {
|
|
102
|
-
"
|
|
103
|
-
"
|
|
102
|
+
"gMON": "0x4283ac581cEcE11AE7bee0441c1a52ADDf60e22A",
|
|
103
|
+
"WMON": "0x5a254817010674100ED0C9213770EAE2456c14a8"
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
},
|
|
107
|
-
"MessagingHub": "
|
|
108
|
-
"CVE": "
|
|
109
|
-
"RewardManager": "
|
|
110
|
-
"VeCVE": "
|
|
111
|
-
"GaugeManager": "
|
|
112
|
-
"VotingHub": "
|
|
113
|
-
"WMON-MockPermissionV3Aggregator": "
|
|
114
|
-
"WMON-ChainlinkAdaptor": "
|
|
115
|
-
"VaultAggregator-WMON-aprMON": "
|
|
116
|
-
"VaultAggregator-WMON-shMON": "
|
|
117
|
-
"ProtocolReader": "
|
|
107
|
+
"MessagingHub": "0x5BcE470A10DE92BF949bA739F03D88093a5dEB71",
|
|
108
|
+
"CVE": "0x56e1A0A1125C08a4ceCcF4E398eCB0D98f4e9dcd",
|
|
109
|
+
"RewardManager": "0xc6A1E835Db7157E49bD4b70f2100fb347442fd00",
|
|
110
|
+
"VeCVE": "0x39972754c6CDB2624738ABd858369055cB966326",
|
|
111
|
+
"GaugeManager": "0xa72E20bA2674A8eFD228220a6A5d4dEfC2492896",
|
|
112
|
+
"VotingHub": "0x601dF37De559641429F53bAD132Bca4F5AcE471e",
|
|
113
|
+
"WMON-MockPermissionV3Aggregator": "0x7bf8bd0332D9D657e146bC89d535607cfF86606c",
|
|
114
|
+
"WMON-ChainlinkAdaptor": "0x99942DE2e0219e190e08a162a719D7a8257702B3",
|
|
115
|
+
"VaultAggregator-WMON-aprMON": "0x5AFd5743741F35A021c42e1885C6D04dC1208A3A",
|
|
116
|
+
"VaultAggregator-WMON-shMON": "0x8908C7b2f71Ac045940C96BB42132991807b0467",
|
|
117
|
+
"ProtocolReader": "0xd01377f8BA33979E8C99b34a5646e8c44ed284CC"
|
|
118
118
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Contract, TransactionResponse } from "ethers";
|
|
2
|
-
import { address, curvance_provider, TokenInput, USD } from "../types";
|
|
2
|
+
import { address, curvance_provider, Percentage, TokenInput, USD } from "../types";
|
|
3
3
|
import { CToken, ICToken } from "./CToken";
|
|
4
4
|
import { DynamicMarketToken, StaticMarketToken, UserMarketToken } from "./ProtocolReader";
|
|
5
5
|
import { Market } from "./Market";
|
|
@@ -27,10 +27,14 @@ export declare class BorrowableCToken extends CToken {
|
|
|
27
27
|
contract: Contract & IBorrowableCToken;
|
|
28
28
|
constructor(provider: curvance_provider, address: address, cache: StaticMarketToken & DynamicMarketToken & UserMarketToken, market: Market);
|
|
29
29
|
get liquidity(): bigint;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
getBorrowRate(inPercentage: true): Percentage;
|
|
31
|
+
getBorrowRate(inPercentage: false): bigint;
|
|
32
|
+
getPredictedBorrowRate(inPercentage: true): Percentage;
|
|
33
|
+
getPredictedBorrowRate(inPercentage: false): bigint;
|
|
34
|
+
getUtilizationRate(inPercentage: true): Percentage;
|
|
35
|
+
getUtilizationRate(inPercentage: false): bigint;
|
|
36
|
+
getSupplyRate(inPercentage: true): Percentage;
|
|
37
|
+
getSupplyRate(inPercentage: false): bigint;
|
|
34
38
|
borrowChange(amount: USD, rateType: ChangeRate): Decimal;
|
|
35
39
|
depositAsCollateral(amount: TokenInput, zap?: ZapperTypes, receiver?: address | null): Promise<TransactionResponse>;
|
|
36
40
|
postCollateral(amount: TokenInput): Promise<TransactionResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BorrowableCToken.d.ts","sourceRoot":"","sources":["../../src/classes/BorrowableCToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"BorrowableCToken.d.ts","sourceRoot":"","sources":["../../src/classes/BorrowableCToken.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,12 +16,20 @@ class BorrowableCToken extends CToken_1.CToken {
|
|
|
16
16
|
this.contract = (0, helpers_1.contractSetup)(provider, address, BorrowableCToken_json_1.default);
|
|
17
17
|
}
|
|
18
18
|
get liquidity() { return this.cache.liquidity; }
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
getBorrowRate(inPercentage) {
|
|
20
|
+
return inPercentage ? (0, decimal_js_1.default)(this.cache.borrowRate).div(helpers_1.BPS) : this.cache.borrowRate;
|
|
21
|
+
}
|
|
22
|
+
getPredictedBorrowRate(inPercentage) {
|
|
23
|
+
return inPercentage ? (0, decimal_js_1.default)(this.cache.predictedBorrowRate).div(helpers_1.BPS) : this.cache.predictedBorrowRate;
|
|
24
|
+
}
|
|
25
|
+
getUtilizationRate(inPercentage) {
|
|
26
|
+
return inPercentage ? (0, decimal_js_1.default)(this.cache.utilizationRate).div(helpers_1.BPS) : this.cache.utilizationRate;
|
|
27
|
+
}
|
|
28
|
+
getSupplyRate(inPercentage) {
|
|
29
|
+
return inPercentage ? (0, decimal_js_1.default)(this.cache.supplyRate).div(helpers_1.BPS) : this.cache.supplyRate;
|
|
30
|
+
}
|
|
23
31
|
borrowChange(amount, rateType) {
|
|
24
|
-
const rate = this.
|
|
32
|
+
const rate = this.getBorrowRate(false);
|
|
25
33
|
const rate_seconds = (0, helpers_1.getRateSeconds)(rateType);
|
|
26
34
|
const rate_percent = (0, decimal_js_1.default)(rate * rate_seconds).div(helpers_1.BPS);
|
|
27
35
|
return amount.mul(rate_percent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BorrowableCToken.js","sourceRoot":"","sources":["../../src/classes/BorrowableCToken.ts"],"names":[],"mappings":";;;;;;AAEA,qCAA2C;AAG3C,wCAAsG;AACtG,0FAAkE;AAClE,gFAA+C;AAC/C,4DAAiC;AAuBjC,MAAa,gBAAiB,SAAQ,eAAM;IAC/B,QAAQ,CAA+B;IAEhD,YACI,QAA2B,EAC3B,OAAgB,EAChB,KAA+D,EAC/D,MAAc;QAEd,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAA,uBAAa,EAAoB,QAAQ,EAAE,OAAO,EAAE,+BAAqB,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"BorrowableCToken.js","sourceRoot":"","sources":["../../src/classes/BorrowableCToken.ts"],"names":[],"mappings":";;;;;;AAEA,qCAA2C;AAG3C,wCAAsG;AACtG,0FAAkE;AAClE,gFAA+C;AAC/C,4DAAiC;AAuBjC,MAAa,gBAAiB,SAAQ,eAAM;IAC/B,QAAQ,CAA+B;IAEhD,YACI,QAA2B,EAC3B,OAAgB,EAChB,KAA+D,EAC/D,MAAc;QAEd,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAA,uBAAa,EAAoB,QAAQ,EAAE,OAAO,EAAE,+BAAqB,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAIhD,aAAa,CAAC,YAAqB;QAC/B,OAAO,YAAY,CAAC,CAAC,CAAC,IAAA,oBAAO,EAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,aAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAC1F,CAAC;IAID,sBAAsB,CAAC,YAAqB;QACxC,OAAO,YAAY,CAAC,CAAC,CAAC,IAAA,oBAAO,EAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,aAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAC5G,CAAC;IAID,kBAAkB,CAAC,YAAqB;QACpC,OAAO,YAAY,CAAC,CAAC,CAAC,IAAA,oBAAO,EAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,aAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;IACpG,CAAC;IAID,aAAa,CAAC,YAAqB;QAC/B,OAAO,YAAY,CAAC,CAAC,CAAC,IAAA,oBAAO,EAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,aAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAC1F,CAAC;IAED,YAAY,CAAC,MAAW,EAAE,QAAoB;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,IAAA,wBAAc,EAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAA,oBAAO,EAAC,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,aAAG,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAEQ,KAAK,CAAC,mBAAmB,CAAC,MAAkB,EAAE,MAAmB,MAAM,EAAG,WAA2B,IAAI;QAC9G,IAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,MAAkB;QAC5C,IAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAID,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI;QACxB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAkB,EAAE,WAA2B,IAAI;QAC5D,MAAM,MAAM,GAAG,IAAA,kCAAwB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAG,QAAQ,IAAI,IAAI;YAAE,QAAQ,GAAG,MAAM,CAAC,OAAkB,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC3C,OAAO,IAAA,uBAAa,EAAc,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,0BAAO,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QACnC,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACzD,MAAM,mBAAmB,GAAG,CAAC,MAAM,GAAG,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QACrD,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,oBAAoB;QACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACzD,MAAM,eAAe,GAAG,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;QAC7C,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QACnC,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QACjC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAkB;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAE,MAAM,CAAE,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAgB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;CACJ;AA/ID,4CA+IC"}
|
package/dist/classes/CToken.d.ts
CHANGED
|
@@ -2,11 +2,13 @@ import { Contract, TransactionResponse } from "ethers";
|
|
|
2
2
|
import { ChangeRate } from "../helpers";
|
|
3
3
|
import { AdaptorTypes, DynamicMarketToken, StaticMarketToken, UserMarketToken } from "./ProtocolReader";
|
|
4
4
|
import { ERC20 } from "./ERC20";
|
|
5
|
-
import { Market } from "./Market";
|
|
5
|
+
import { Market, PluginTypes } from "./Market";
|
|
6
6
|
import { Calldata } from "./Calldata";
|
|
7
7
|
import Decimal from "decimal.js";
|
|
8
8
|
import { address, bytes, curvance_provider, Percentage, TokenInput, USD } from "../types";
|
|
9
9
|
import { Zapper, ZapperTypes } from "./Zapper";
|
|
10
|
+
import { PositionManager, PositionManagerTypes } from "./PositionManager";
|
|
11
|
+
import { BorrowableCToken } from "./BorrowableCToken";
|
|
10
12
|
export interface AccountSnapshot {
|
|
11
13
|
asset: address;
|
|
12
14
|
decimals: bigint;
|
|
@@ -73,6 +75,7 @@ export declare class CToken extends Calldata<ICToken> {
|
|
|
73
75
|
get asset(): import("./ProtocolReader").StaticMarketAsset;
|
|
74
76
|
get isBorrowable(): boolean;
|
|
75
77
|
get canZap(): boolean;
|
|
78
|
+
get canLeverage(): boolean;
|
|
76
79
|
/** @returns Collateral Ratio in BPS or bigint */
|
|
77
80
|
getCollRatio(inBPS: true): Percentage;
|
|
78
81
|
getCollRatio(inBPS: false): bigint;
|
|
@@ -148,10 +151,11 @@ export declare class CToken extends Calldata<ICToken> {
|
|
|
148
151
|
getTotalCollateral(inUSD: false): bigint;
|
|
149
152
|
fetchTotalCollateral(inUSD: true): Promise<USD>;
|
|
150
153
|
fetchTotalCollateral(inUSD: false): Promise<bigint>;
|
|
154
|
+
getPositionManager(type: PositionManagerTypes): PositionManager;
|
|
151
155
|
getZapper(type: ZapperTypes): Zapper;
|
|
152
|
-
isPluginApproved(plugin: ZapperTypes): Promise<boolean>;
|
|
153
|
-
approvePlugin(plugin: ZapperTypes): Promise<TransactionResponse>;
|
|
154
|
-
getPluginAddress(plugin: ZapperTypes): address;
|
|
156
|
+
isPluginApproved(plugin: ZapperTypes | PositionManagerTypes, type: PluginTypes): Promise<boolean>;
|
|
157
|
+
approvePlugin(plugin: ZapperTypes | PositionManagerTypes, type: PluginTypes): Promise<TransactionResponse>;
|
|
158
|
+
getPluginAddress(plugin: ZapperTypes | PositionManagerTypes, type: PluginTypes): address;
|
|
155
159
|
getAllowance(check_contract: address): Promise<bigint>;
|
|
156
160
|
approve(amount: TokenInput | null, spender: address): Promise<TransactionResponse>;
|
|
157
161
|
fetchDecimals(): Promise<bigint>;
|
|
@@ -175,6 +179,8 @@ export declare class CToken extends Calldata<ICToken> {
|
|
|
175
179
|
convertToAssets(shares: bigint): Promise<bigint>;
|
|
176
180
|
convertToShares(assets: bigint): Promise<bigint>;
|
|
177
181
|
convertTokenInput(amount: TokenInput, inShares?: boolean): bigint;
|
|
182
|
+
maxRemainingLeverage(ctoken: BorrowableCToken, type: PositionManagerTypes): Promise<bigint>;
|
|
183
|
+
depositAndLeverage(depositAmount: TokenInput, borrow: BorrowableCToken, borrowAmount: TokenInput, type: PositionManagerTypes, slippage_?: TokenInput): Promise<TransactionResponse>;
|
|
178
184
|
deposit(amount: TokenInput, zap?: ZapperTypes, receiver?: address | null): Promise<TransactionResponse>;
|
|
179
185
|
depositAsCollateral(amount: Decimal, zap?: ZapperTypes, receiver?: address | null): Promise<TransactionResponse>;
|
|
180
186
|
redeem(amount: TokenInput, receiver?: address | null, owner?: address | null): Promise<TransactionResponse>;
|
|
@@ -190,6 +196,9 @@ export declare class CToken extends Calldata<ICToken> {
|
|
|
190
196
|
fetchConvertTokensToUsd(tokenAmount: bigint, asset?: boolean): Promise<Decimal>;
|
|
191
197
|
convertTokensToUsd(tokenAmount: bigint, asset?: boolean): Decimal;
|
|
192
198
|
buildMultiCallAction(calldata: bytes): MulticallAction;
|
|
199
|
+
private _checkPositionManagerApproval;
|
|
200
|
+
private _checkZapperApproval;
|
|
201
|
+
private _checkAssetApproval;
|
|
193
202
|
private _checkDepositApprovals;
|
|
194
203
|
oracleRoute(calldata: bytes, override?: {
|
|
195
204
|
[key: string]: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CToken.d.ts","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAmC,UAAU,
|
|
1
|
+
{"version":3,"file":"CToken.d.ts","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/CToken.js
CHANGED
|
@@ -14,6 +14,7 @@ const BaseCToken_json_1 = __importDefault(require("../abis/BaseCToken.json"));
|
|
|
14
14
|
const Redstone_1 = require("./Redstone");
|
|
15
15
|
const Zapper_1 = require("./Zapper");
|
|
16
16
|
const setup_1 = require("../setup");
|
|
17
|
+
const PositionManager_1 = require("./PositionManager");
|
|
17
18
|
class CToken extends Calldata_1.Calldata {
|
|
18
19
|
provider;
|
|
19
20
|
address;
|
|
@@ -50,6 +51,7 @@ class CToken extends Calldata_1.Calldata {
|
|
|
50
51
|
get asset() { return this.cache.asset; }
|
|
51
52
|
get isBorrowable() { return this.cache.isBorrowable; }
|
|
52
53
|
get canZap() { return this.zapTypes.length > 0; }
|
|
54
|
+
get canLeverage() { return this.leverageTypes.length > 0; }
|
|
53
55
|
getCollRatio(inBPS) {
|
|
54
56
|
return inBPS ? (0, decimal_js_1.default)(this.cache.collRatio).div(helpers_1.BPS) : this.cache.collRatio;
|
|
55
57
|
}
|
|
@@ -150,41 +152,45 @@ class CToken extends Calldata_1.Calldata {
|
|
|
150
152
|
const totalCollateral = await this.contract.marketCollateralPosted();
|
|
151
153
|
return inUSD ? this.fetchConvertTokensToUsd(totalCollateral) : totalCollateral;
|
|
152
154
|
}
|
|
155
|
+
getPositionManager(type) {
|
|
156
|
+
const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
|
|
157
|
+
let manager_contract = this.getPluginAddress(type, 'positionManager');
|
|
158
|
+
return new PositionManager_1.PositionManager(manager_contract, signer, type);
|
|
159
|
+
}
|
|
153
160
|
getZapper(type) {
|
|
154
161
|
const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
|
|
155
|
-
|
|
156
|
-
switch (type) {
|
|
157
|
-
case 'native-vault':
|
|
158
|
-
zap_contract = setup_1.setup_config.contracts.zappers['nativeVaultZapper'];
|
|
159
|
-
break;
|
|
160
|
-
case 'vault':
|
|
161
|
-
zap_contract = setup_1.setup_config.contracts.zappers['vaultZapper'];
|
|
162
|
-
break;
|
|
163
|
-
case 'simple':
|
|
164
|
-
zap_contract = setup_1.setup_config.contracts.zappers['simpleZapper'];
|
|
165
|
-
break;
|
|
166
|
-
default: throw new Error("Unknown zapper type");
|
|
167
|
-
}
|
|
162
|
+
const zap_contract = this.getPluginAddress(type, 'zapper');
|
|
168
163
|
return new Zapper_1.Zapper(zap_contract, signer, type);
|
|
169
164
|
}
|
|
170
|
-
async isPluginApproved(plugin) {
|
|
165
|
+
async isPluginApproved(plugin, type) {
|
|
171
166
|
const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
|
|
172
|
-
const plugin_address = this.getPluginAddress(plugin);
|
|
167
|
+
const plugin_address = this.getPluginAddress(plugin, type);
|
|
173
168
|
return this.contract.isDelegate(signer.address, plugin_address);
|
|
174
169
|
}
|
|
175
|
-
async approvePlugin(plugin) {
|
|
176
|
-
const plugin_address = this.getPluginAddress(plugin);
|
|
170
|
+
async approvePlugin(plugin, type) {
|
|
171
|
+
const plugin_address = this.getPluginAddress(plugin, type);
|
|
177
172
|
return this.contract.setDelegateApproval(plugin_address, true);
|
|
178
173
|
}
|
|
179
|
-
getPluginAddress(plugin) {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
174
|
+
getPluginAddress(plugin, type) {
|
|
175
|
+
switch (type) {
|
|
176
|
+
case 'zapper': {
|
|
177
|
+
if (!Zapper_1.zapperTypeToName.has(plugin)) {
|
|
178
|
+
throw new Error("Plugin does not have a contract to map too");
|
|
179
|
+
}
|
|
180
|
+
const plugin_name = Zapper_1.zapperTypeToName.get(plugin);
|
|
181
|
+
if (!plugin_name || !setup_1.setup_config.contracts.zappers || !(plugin_name in setup_1.setup_config.contracts.zappers)) {
|
|
182
|
+
throw new Error(`Plugin ${plugin_name} not found in zappers`);
|
|
183
|
+
}
|
|
184
|
+
return setup_1.setup_config.contracts.zappers[plugin_name];
|
|
185
|
+
}
|
|
186
|
+
case 'positionManager': {
|
|
187
|
+
switch (plugin) {
|
|
188
|
+
case 'native-vault': return this.market.plugins.nativeVaultPositionManager;
|
|
189
|
+
default: throw new Error("Unknown position manager type");
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
default: throw new Error("Unsupported plugin type");
|
|
186
193
|
}
|
|
187
|
-
return setup_1.setup_config.contracts.zappers[plugin_name];
|
|
188
194
|
}
|
|
189
195
|
async getAllowance(check_contract) {
|
|
190
196
|
const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
|
|
@@ -298,6 +304,43 @@ class CToken extends Calldata_1.Calldata {
|
|
|
298
304
|
const decimals = inShares ? this.decimals : this.asset.decimals;
|
|
299
305
|
return (0, ethers_1.parseUnits)(amount.toString(), Number(decimals));
|
|
300
306
|
}
|
|
307
|
+
async maxRemainingLeverage(ctoken, type) {
|
|
308
|
+
const manager = this.getPositionManager(type);
|
|
309
|
+
const amount = manager.maxRemainingLeverage(ctoken);
|
|
310
|
+
console.log(amount);
|
|
311
|
+
return amount;
|
|
312
|
+
}
|
|
313
|
+
async depositAndLeverage(depositAmount, borrow, borrowAmount, type, slippage_ = (0, decimal_js_1.default)(0.5)) {
|
|
314
|
+
const slippage = (0, helpers_1.toBigInt)(slippage_.toNumber(), 18n);
|
|
315
|
+
const manager = this.getPositionManager(type);
|
|
316
|
+
let calldata;
|
|
317
|
+
// TODO: Implement vault & simple position manager
|
|
318
|
+
switch (type) {
|
|
319
|
+
case 'native-vault': {
|
|
320
|
+
calldata = manager.getDepositAndLeverageCalldata(this.convertTokenInput(depositAmount), {
|
|
321
|
+
borrowableCToken: borrow.address,
|
|
322
|
+
borrowAssets: borrow.convertTokenInput(borrowAmount),
|
|
323
|
+
cToken: this.address,
|
|
324
|
+
swapAction: {
|
|
325
|
+
inputToken: helpers_1.EMPTY_ADDRESS,
|
|
326
|
+
inputAmount: 0n,
|
|
327
|
+
outputToken: helpers_1.EMPTY_ADDRESS,
|
|
328
|
+
target: helpers_1.EMPTY_ADDRESS,
|
|
329
|
+
slippage: 0n,
|
|
330
|
+
call: "0x"
|
|
331
|
+
},
|
|
332
|
+
auxData: "0x",
|
|
333
|
+
}, slippage);
|
|
334
|
+
break;
|
|
335
|
+
}
|
|
336
|
+
default: throw new Error("Unsupported position manager type");
|
|
337
|
+
}
|
|
338
|
+
await this._checkAssetApproval(manager.address, this.convertTokenInput(depositAmount));
|
|
339
|
+
await this._checkPositionManagerApproval(manager);
|
|
340
|
+
return this.oracleRoute(calldata, {
|
|
341
|
+
to: manager.address
|
|
342
|
+
});
|
|
343
|
+
}
|
|
301
344
|
async deposit(amount, zap = 'none', receiver = null) {
|
|
302
345
|
const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
|
|
303
346
|
if (receiver == null)
|
|
@@ -319,7 +362,7 @@ class CToken extends Calldata_1.Calldata {
|
|
|
319
362
|
else {
|
|
320
363
|
calldata = this.getCallData("deposit", [assets, receiver]);
|
|
321
364
|
}
|
|
322
|
-
await this.
|
|
365
|
+
await this._checkAssetApproval(this.address, assets);
|
|
323
366
|
return this.oracleRoute(calldata, calldata_overrides);
|
|
324
367
|
}
|
|
325
368
|
async depositAsCollateral(amount, zap = 'none', receiver = null) {
|
|
@@ -350,7 +393,7 @@ class CToken extends Calldata_1.Calldata {
|
|
|
350
393
|
else {
|
|
351
394
|
calldata = this.getCallData("depositAsCollateral", [assets, receiver]);
|
|
352
395
|
}
|
|
353
|
-
await this._checkDepositApprovals(
|
|
396
|
+
await this._checkDepositApprovals(zapper, assets);
|
|
354
397
|
return this.oracleRoute(calldata, call_overrides);
|
|
355
398
|
}
|
|
356
399
|
async redeem(amount, receiver = null, owner = null) {
|
|
@@ -396,20 +439,42 @@ class CToken extends Calldata_1.Calldata {
|
|
|
396
439
|
data: calldata
|
|
397
440
|
};
|
|
398
441
|
}
|
|
399
|
-
async
|
|
442
|
+
async _checkPositionManagerApproval(manager) {
|
|
443
|
+
const isApproved = await this.isPluginApproved(manager.type, 'positionManager');
|
|
444
|
+
if (!isApproved) {
|
|
445
|
+
throw new Error(`PositionManager ${manager.address} is not approved for ${this.symbol}`);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
async _checkZapperApproval(zapper) {
|
|
449
|
+
if (!setup_1.setup_config.approval_protection) {
|
|
450
|
+
return;
|
|
451
|
+
}
|
|
400
452
|
if (setup_1.setup_config.approval_protection && zapper) {
|
|
401
|
-
const plugin_allowed = await this.isPluginApproved(zapper.type);
|
|
453
|
+
const plugin_allowed = await this.isPluginApproved(zapper.type, 'zapper');
|
|
402
454
|
if (!plugin_allowed) {
|
|
403
455
|
throw new Error(`Please approve the ${zapper.type} Zapper to be able to move ${this.symbol} on your behalf.`);
|
|
404
456
|
}
|
|
405
457
|
}
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
458
|
+
}
|
|
459
|
+
async _checkAssetApproval(target, assets) {
|
|
460
|
+
if (!setup_1.setup_config.approval_protection) {
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
463
|
+
const asset = this.getAsset(true);
|
|
464
|
+
const owner = (0, helpers_1.validateProviderAsSigner)(this.provider).address;
|
|
465
|
+
const allowance = await asset.allowance(owner, target);
|
|
466
|
+
if (allowance < assets) {
|
|
467
|
+
throw new Error(`Please approve the ${asset.symbol} token for ${this.symbol}.`);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
async _checkDepositApprovals(zapper, assets) {
|
|
471
|
+
if (!setup_1.setup_config.approval_protection) {
|
|
472
|
+
return;
|
|
473
|
+
}
|
|
474
|
+
if (zapper) {
|
|
475
|
+
await this._checkZapperApproval(zapper);
|
|
412
476
|
}
|
|
477
|
+
await this._checkAssetApproval(this.address, assets);
|
|
413
478
|
}
|
|
414
479
|
async oracleRoute(calldata, override = {}) {
|
|
415
480
|
const price_updates = await this.getPriceUpdates();
|