impermax-sdk 2.1.270 → 2.1.272
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/lib/config/whitelist.js +178 -212
- package/lib/offchain/lendingPool/offchainCollateralV2.js +11 -4
- package/lib/offchain/lendingPool/offchainLendingPool.d.ts +3 -3
- package/lib/offchain/lendingPool/offchainLendingPoolV2.d.ts +10 -0
- package/lib/offchain/lendingPool/offchainLendingPoolV2.js +100 -0
- package/package.json +1 -1
package/lib/config/whitelist.js
CHANGED
|
@@ -12,153 +12,26 @@ const types_1 = require("./types");
|
|
|
12
12
|
exports.WHITELISTED_PAIRS = {
|
|
13
13
|
[types_1.Networks.Ropsten]: {},
|
|
14
14
|
[types_1.Networks.Mainnet]: {
|
|
15
|
-
[types_1.Factory.V2V1]: [
|
|
16
|
-
"0x3041cbd36888becc7bbcbc0045e3b1f144466f5f",
|
|
17
|
-
"0xbb2b8038a1640196fbe3e38816f3e67cba72d940",
|
|
18
|
-
"0xa478c2975ab1ea89e8196811f51a7b7ade33eb11",
|
|
19
|
-
"0xd3d2e2692501a5c9ca623199d38826e513033a17",
|
|
20
|
-
"0x4d5ef58aac27d99935e5b6b4a6778ff292059991",
|
|
21
|
-
"0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc",
|
|
22
|
-
"0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852",
|
|
23
|
-
"0xa2107fa5b38d9bbd2c461d6edf11b11a50f6b974",
|
|
24
|
-
"0xdfc14d2af169b0d36c4eff567ada9b2e0cae044f",
|
|
25
|
-
"0x819f3450da6f110ba6ea52195b3beafa246062de",
|
|
26
|
-
"0xcffdded873554f362ac02f8fb1f02e5ada10516f",
|
|
27
|
-
"0x43ae24960e5534731fc831386c07755a2dc33d47",
|
|
28
|
-
"0x3da1313ae46132a397d90d95b1424a9a7e3e0fce",
|
|
29
|
-
"0xa5e79baee540f000ef6f23d067cd3ac22c7d9fe6",
|
|
30
|
-
"0x2fdbadf3c4d5a8666bc06645b8358ab803996e28", //YFI-ETH
|
|
31
|
-
],
|
|
15
|
+
[types_1.Factory.V2V1]: [],
|
|
32
16
|
},
|
|
33
17
|
[types_1.Networks.Polygon]: {
|
|
34
|
-
[types_1.Factory.V2V1_1]: [
|
|
35
|
-
|
|
36
|
-
"0x8f7F8a534F6a7d57FbdA855Cf3588eB1eDc4508B",
|
|
37
|
-
"0xc380e7FA325E1708e9E6eF4D9beD2CD806fcB328",
|
|
38
|
-
"0x2912A338DF9877905e54c557e4d826f84365602e",
|
|
39
|
-
"0x16AEd35D0c1f5500b73063b10C0dAd42B772ac23",
|
|
40
|
-
"0x3e115a3aF5a58C73571586468B0f5d08BfE9dab1",
|
|
41
|
-
"0xc3a4C0677b033BF6e9a4E22f930f1D60c5Cd2c86",
|
|
42
|
-
"0x6D59C06a7f96a508310A76Da84dB397819E29c62",
|
|
43
|
-
"0xc6c866c2C69FF093E14746E6F9dbc7A22E0e6522",
|
|
44
|
-
"0x0c7fEaa175F62779be13cDD4Fe878e55Ee70179e",
|
|
45
|
-
"0xb361E254dAe512A7bd37f72B926f625f4D39dB56",
|
|
46
|
-
"0xb48E8C226facb7aDE62ab0CA8588789aAA1428aA",
|
|
47
|
-
"0x205995421c72dc223f36bbfad78b66eea72d2677",
|
|
48
|
-
"0xd83a3ddC19A651F79970291d71b41Be5509e7c66",
|
|
49
|
-
"0xE1ad5D74f3fEdE7Ec63Fec63D4bAFe9afbF09eDB",
|
|
50
|
-
// QuickSwap Dual Reward
|
|
51
|
-
"0x1714f3d4C4654bd5afD0Ff2590d23b053e0BEA81",
|
|
52
|
-
"0xe74189ce423345967Ef5A646316Ece52BB2fbFC9",
|
|
53
|
-
"0x14a49B53B62f7037814d4F5cAb8C92F185d045B0",
|
|
54
|
-
// SushiSwap
|
|
55
|
-
"0xbb7cCc9c0f72Fb91DEE7053C652E961117DB4368",
|
|
56
|
-
"0x9B2f10eAE09fAd574B3f76b977c06634a4Ec3a46",
|
|
57
|
-
"0x542cCc962097B184Ca12A46030D967a735342cF8",
|
|
58
|
-
"0x7DA257e84f233C9d05959F923c797585549bb3CB",
|
|
59
|
-
"0x9039b60EeE1aDBD2697A0fFb558f879c0b5D87bb",
|
|
60
|
-
"0xC2Eb7FC0C27B20400e9923a1f4066D8D4a9cd203",
|
|
61
|
-
"0xCB8F6c44C85f4a55f243df1D1f339a52a452aCa5",
|
|
62
|
-
"0xb5846453b67d0b4b4ce655930cf6e4129f4416d7",
|
|
63
|
-
"0xa13C38e12B1d516634dCFeB80ABE620aEDFcf0D0",
|
|
64
|
-
"0x3DF6b9fdDB088d0B367aCF32F2975B6613De87a9",
|
|
65
|
-
"0x34310CE0a22A7e6142c66B5334CE3C91d3892313", //ETH-SX
|
|
66
|
-
// TetuSwap
|
|
67
|
-
//"0xCB9A1bf72BE38A9cE7ac781D2deab19eb7f0a03A", //TETU-USDC
|
|
68
|
-
],
|
|
69
|
-
[types_1.Factory.V2V2]: [
|
|
70
|
-
// for quickswap partnership
|
|
71
|
-
// QuickSwap
|
|
72
|
-
"0xe186dac06f75e7e2655db05a7c684289eaa19179",
|
|
73
|
-
"0x1714f3d4C4654bd5afD0Ff2590d23b053e0BEA81",
|
|
74
|
-
"0xe74189ce423345967ef5a646316ece52bb2fbfc9",
|
|
75
|
-
"0x14a49B53B62f7037814d4F5cAb8C92F185d045B0",
|
|
76
|
-
"0x59377dbd9f550568540cae0b21412bee1cc3f439",
|
|
77
|
-
"0x2912a338df9877905e54c557e4d826f84365602e",
|
|
78
|
-
"0xc380e7fa325e1708e9e6ef4d9bed2cd806fcb328",
|
|
79
|
-
"0x3e115a3af5a58c73571586468b0f5d08bfe9dab1",
|
|
80
|
-
"0x8f7f8a534f6a7d57fbda855cf3588eb1edc4508b",
|
|
81
|
-
"0xc3a4c0677b033bf6e9a4e22f930f1d60c5cd2c86",
|
|
82
|
-
"0x8ab6ea95C3c8d4d415D531c18ee3e6B14A1a3Cc2",
|
|
83
|
-
"0xf189C676a837B973F83A55eAFD187E322F8E4Cfe",
|
|
84
|
-
"0xf9221c5EDC736D26ffC4dDCcDDfA15A4B958862e", //GNS-DAI
|
|
85
|
-
],
|
|
18
|
+
[types_1.Factory.V2V1_1]: [],
|
|
19
|
+
[types_1.Factory.V2V2]: [],
|
|
86
20
|
[types_1.Factory.SOLV2]: [],
|
|
87
21
|
[types_1.Factory.SOL_STABLE]: [],
|
|
88
22
|
},
|
|
89
23
|
[types_1.Networks.Arbitrum]: {
|
|
90
|
-
[types_1.Factory.V2V1_1]: [
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
"0x7532A8d8a12BDd871796a07aC90E510b1CC8f694",
|
|
94
|
-
"0x95c9bF3f60Cbc2BE8e148FAe82f26930bFcD1839",
|
|
95
|
-
"0xa6E69dD0C36F3b59539e2c7aFD274eF91b5c70F9",
|
|
96
|
-
//"0xeF7Fa2D462dd5466AcFDe19D0143A1474bcC84b5", //ETH-LINK
|
|
97
|
-
//"0x9cbA44088FeC97C14b850D067f94e38f274c27d5", //ETH-DPX
|
|
98
|
-
//"0xaCacB091B65E8291A227afF563e023ee6E6dF219", //ETH-RDPX
|
|
99
|
-
"0x6D94F7e67C6ae0B0257C35754e059FDfB249d998",
|
|
100
|
-
"0x88a0B00BBE918eE00e3482F71962070Dc052984b", //ETH-MAGIC
|
|
101
|
-
],
|
|
102
|
-
[types_1.Factory.V2V2]: [
|
|
103
|
-
"0x6024C3e62D8e774A498f7911aE6874b1AFDA4364",
|
|
104
|
-
// Arbidex
|
|
105
|
-
"0x116852f076Fac0050De7E12aa0b7Ce86B33cC422",
|
|
106
|
-
"0x82062777dC9ff32D9D2aC1242e76A9f122431A58",
|
|
107
|
-
"0x478DE28185959cc5C553C0677ddC6e2e11629BC0",
|
|
108
|
-
"0x5B4AeE12f8e6884E81661e360954420857448ae2",
|
|
109
|
-
"0xfd99357DD35Fa2ed55103abc8b1bDA02E3E605F2",
|
|
110
|
-
"0xd4406836f1511e86E91dC64Dd14FbFA682D69f0d", //USDC-ARB
|
|
111
|
-
],
|
|
112
|
-
[types_1.Factory.SOLV2]: [
|
|
113
|
-
// SolidLizard
|
|
114
|
-
"0x699c5e23357aB1BF658bD0B38070d746E37671f3",
|
|
115
|
-
"0x2d2ee5838838a1131995509346c9C9848b3367d8",
|
|
116
|
-
"0x32FaA88478A0104154e9417C6F7b4Fa288f728Aa",
|
|
117
|
-
"0x4B28550846405A7825247F54070b568C2ECe3eEB",
|
|
118
|
-
// Auragi
|
|
119
|
-
"0x2D658A6a569139f84d8c2f4e37Eed04F19EAB37D",
|
|
120
|
-
// Chronos
|
|
121
|
-
"0x350954bf706B296CBFDf58fBFEDe91Ac4A271BEa",
|
|
122
|
-
"0xd4d45B476197b10da32ce58E669Bae8bdF0f7E16",
|
|
123
|
-
"0x7cA9a0140EE27ed4dF141DEab53088a69CCC4Cf8",
|
|
124
|
-
"0x21E885fe81731ae391717Afb0513Dd0dF364fe06",
|
|
125
|
-
"0x06507308ef73937E96f33c9defb6BE7F65cbc13c",
|
|
126
|
-
"0x8DC16595ac492056d9C59470685E3AB296E8322f",
|
|
127
|
-
"0xA633615b835DBdF89C3f2B5420048B3201638E4a",
|
|
128
|
-
"0x01a464e2BF76Bd4A3A50073026fF2335584D67d8",
|
|
129
|
-
"0x7b4975F5C3BE5735714F597D7af6877bDD68Bf13",
|
|
130
|
-
"0x3d5FCbEd1c9B6C9B0f6deA1DED55b161a6eFeF31",
|
|
131
|
-
"0x4941007F424336a682B478993dBDAF0a444d82fc",
|
|
132
|
-
"0x39680ed7d9267e3AFe7239D2930361CBee996207", //GNS-ETH
|
|
133
|
-
],
|
|
24
|
+
[types_1.Factory.V2V1_1]: [],
|
|
25
|
+
[types_1.Factory.V2V2]: [],
|
|
26
|
+
[types_1.Factory.SOLV2]: [],
|
|
134
27
|
},
|
|
135
28
|
[types_1.Networks.Avalanche]: {
|
|
136
|
-
[types_1.Factory.V2V1_2]: [
|
|
137
|
-
// Pangolin V2
|
|
138
|
-
"0x6Ca300f7B764580e52889341E8941CcA7CfCA727",
|
|
139
|
-
"0x7140D22AFC110741323ef29868c48b566a3295D4",
|
|
140
|
-
"0xc532a2885027677c4BE61F710F7D41941dBaD1B1",
|
|
141
|
-
"0x734ee20bBaD6d191432B34FbFd1493c16f065E9C",
|
|
142
|
-
"0x5b588F4481035B0f765393FC9F4752615a6D0498",
|
|
143
|
-
// Pangolin-BenQI
|
|
144
|
-
"0x3e2a4Dcd46e0e339aEC603080D90Bd939a163062", //QI-AVAX
|
|
145
|
-
],
|
|
29
|
+
[types_1.Factory.V2V1_2]: [],
|
|
146
30
|
[types_1.Factory.V2V2]: [],
|
|
147
31
|
[types_1.Factory.SOLV2]: [],
|
|
148
32
|
},
|
|
149
33
|
[types_1.Networks.Moonriver]: {
|
|
150
|
-
[types_1.Factory.V2V1_2]: [
|
|
151
|
-
// // SolarBeam V2
|
|
152
|
-
// "0x899CaAd2d29EFf3b628503A85DAE736B5c4d1671", //ETH-MOVR
|
|
153
|
-
// "0x24e19bD8477077B80DE25Ee7FC9F7A67D89D8009", //WBTC-MOVR
|
|
154
|
-
// "0x2748d9d4E7379D5D29CA8887aeFF929912fF06D8", //MIM-MOVR
|
|
155
|
-
// "0x35e8f2D87821a5149d92833390880F65911AD4d0", //FRAX-MOVR
|
|
156
|
-
// // SolarBeam V3
|
|
157
|
-
// "0x4683e366aa2D3e7Cb1a776Db6c8efCbcb143cD17", //ETH-MOVR
|
|
158
|
-
// "0xAce2a03b7937fDdf40B33F7229381575Abb99DB3", //USDC-MOVR
|
|
159
|
-
// // SushiSwap
|
|
160
|
-
// //"0xDB45ddcE0216F7920CfBcbE26804c6E50B667960", //ETH-MOVR
|
|
161
|
-
],
|
|
34
|
+
[types_1.Factory.V2V1_2]: [],
|
|
162
35
|
},
|
|
163
36
|
[types_1.Networks.Aurora]: {},
|
|
164
37
|
[types_1.Networks.Cronos]: {},
|
|
@@ -189,41 +62,10 @@ exports.WHITELISTED_PAIRS = {
|
|
|
189
62
|
]
|
|
190
63
|
},
|
|
191
64
|
[types_1.Networks.Canto]: {
|
|
192
|
-
[types_1.Factory.SOLV2]: [
|
|
193
|
-
// // Velocimeter
|
|
194
|
-
// "0x921c11519444231c84fDDAc2eCbCf7C84F25730A", //CANTO-FLOW
|
|
195
|
-
// "0x5C32443985B599605a3c1C6Eb96b274BAe95062a", //CANTO-NOTE
|
|
196
|
-
// "0x63c544591Ce03E097813422FD30e886A54ed540E", //CANTO-ETH
|
|
197
|
-
// "0x2E33A768A2461Acce69e54102074737B91EDF7e3", //FLOW-NOTE
|
|
198
|
-
// "0xAf4846A2d46562965fa008761790817D922834F6", //FLOW-ETH
|
|
199
|
-
// "0xBd437c716da4a1A1c5BD004764300dFF72DfBCC0", //CANTO-ATOM
|
|
200
|
-
// "0x22456D98a75fd0540418921372a85C2b54E57F2d", //IBEX-NOTE
|
|
201
|
-
// "0x5BDf174963b1a8D7253a6Dff9788D3c619C31E96", //CBONK-CANTO
|
|
202
|
-
// "0x528aCfc1C53C95d97f2540754C035c732EF291B7", //multiBTC-ETH
|
|
203
|
-
// "0x91b7711b7f91B3B999A2a2B71fc00323cf381eAb", //multiBTC-NOTE
|
|
204
|
-
// "0xc5a7Dab3897cb0f6f168d3F3b5f8335E50EEc661", //multiBTC-FLOW
|
|
205
|
-
// "0x55E7b42aDE0D33A4720850c6Ccb940130767736d", //ETH-stETH
|
|
206
|
-
],
|
|
65
|
+
[types_1.Factory.SOLV2]: [],
|
|
207
66
|
},
|
|
208
67
|
[types_1.Networks.ZksyncEra]: {
|
|
209
|
-
[types_1.Factory.SOLV2]: [
|
|
210
|
-
// Velocore
|
|
211
|
-
"0x0C468E366B9ae76ca43acc90be049711c7E7B6d7",
|
|
212
|
-
"0xE2f69aE6770d777A21fe3ffd781Dc640B4d36b18",
|
|
213
|
-
"0x304847Ddbf68948655b0209c00E32A0923eF41B6",
|
|
214
|
-
"0x1B5887722E9E8E74426c057a1fabb40395dCB1e5",
|
|
215
|
-
"0x572261bc2F1652dC8B2C6Ea9d5bF7B3699DcB1bC",
|
|
216
|
-
// VeSync
|
|
217
|
-
"0xc9Fb969F3770387C0A634C9fa4656B268404A2Db",
|
|
218
|
-
"0x1fD9e25a7D3FD1ba151Fb7C9353aBB45b908d5D2",
|
|
219
|
-
"0x0d72322A1C86B1dF92711327a38a79a5679e478f",
|
|
220
|
-
"0x8d535eFa82481CdefBe7801E562736017Bc59872",
|
|
221
|
-
//"0x2907ab8286Bd0438064816f6CCf1bf688Ec70A56", //wTBT-USDC
|
|
222
|
-
// Dracula
|
|
223
|
-
"0xc73195F2B5D60A59F81f88A3ec77BBF4555faB57",
|
|
224
|
-
"0xbaDde16f4ED28B3f2118942c521cA0eF6A2c6e01",
|
|
225
|
-
"0xD2905ec6172A956f4E79C8DCee4e9470dA587Da3", //FANG-USDC
|
|
226
|
-
],
|
|
68
|
+
[types_1.Factory.SOLV2]: [],
|
|
227
69
|
},
|
|
228
70
|
[types_1.Networks.Harmony]: {},
|
|
229
71
|
[types_1.Networks.Moonbeam]: {},
|
|
@@ -295,35 +137,17 @@ exports.WHITELISTED_PAIRS = {
|
|
|
295
137
|
},
|
|
296
138
|
[types_1.Networks.Mantle]: {
|
|
297
139
|
[types_1.Factory.V2V2]: [
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
140
|
+
// Mantle was never listed
|
|
141
|
+
//"0xba5E281a7e0197a685534bae1606f650Cf4fbB55",
|
|
142
|
+
//"0x6fd0cB9b9DB27446F833807084Ea2FaDBcBe822A",
|
|
143
|
+
//"0x0Ae5F81eD785bd0a82FD7555181a3566D52cAFA2",
|
|
144
|
+
//"0x221972d1Ee7e3175200268F8a5c350B54fBE4745",
|
|
145
|
+
//"0x736f7D3bD6a2b829dFA5B9501b873675d0165d21",
|
|
303
146
|
]
|
|
304
147
|
},
|
|
305
148
|
[types_1.Networks.Scroll]: {
|
|
306
|
-
[types_1.Factory.SOLV2]: [
|
|
307
|
-
|
|
308
|
-
"0xFA444f62379619BDa05842f70fE13c5469B238F6",
|
|
309
|
-
"0x88b5068c4ED14d69C7093011149E7d5E93a0a98e",
|
|
310
|
-
"0xC90073E1CaBCf5069E00c5a6cB10023c9e1D5c4f",
|
|
311
|
-
"0xD30eDb2f0CA35cba70d10bd3fcCe5Bbb317C88C7",
|
|
312
|
-
"0x8A16A1CA6c303122E5FA985150A2b742B3aA5FB7",
|
|
313
|
-
"0x185060149a0fA57aa93AFEBFaD052029129903b2",
|
|
314
|
-
"0x2072119D41ba1288cEEc5Cc8FD7b31A0fC9734fc",
|
|
315
|
-
"0x0833C454fc94d32e03110081AC9b9AD2d54e18Fa",
|
|
316
|
-
"0x432C27EfeD615033A7F0c6320E9831332685EB53",
|
|
317
|
-
"0xbD4b6e9992BEF375A14793b18D2A1CC8d710D45b",
|
|
318
|
-
"0xd398411A691C81e50a1216e287bbe6D5F54Fe2Cc",
|
|
319
|
-
"0xDbbF2Fa67Cfa713b1Ab2376A0EEF1a34d6f9E8c6", // scr/weth stakedlp
|
|
320
|
-
],
|
|
321
|
-
[types_1.Factory.SOL_STABLE]: [
|
|
322
|
-
"0x354Df4F5925145409f76B044bf1E4BD3a5dCe74E",
|
|
323
|
-
"0xB0a3410C7672CC0759fF6DA3540a9A26083507dc",
|
|
324
|
-
"0x3E458C566e81869DCc1c84690441e29149Ee6D35",
|
|
325
|
-
"0x471819fAFe0C6Bc919Ae1FF4e7DbE67371c4b467", // usdc/more stakedlp
|
|
326
|
-
]
|
|
149
|
+
[types_1.Factory.SOLV2]: [],
|
|
150
|
+
[types_1.Factory.SOL_STABLE]: []
|
|
327
151
|
},
|
|
328
152
|
[types_1.Networks.Optimism]: {
|
|
329
153
|
[types_1.Factory.SOLV2]: [
|
|
@@ -339,13 +163,8 @@ exports.WHITELISTED_PAIRS = {
|
|
|
339
163
|
],
|
|
340
164
|
},
|
|
341
165
|
[types_1.Networks.Real]: {
|
|
342
|
-
[types_1.Factory.SOL_STABLE]: [
|
|
343
|
-
|
|
344
|
-
],
|
|
345
|
-
[types_1.Factory.SOLV2]: [
|
|
346
|
-
"0xa5c272f3A299B0d69D002AeA694ed127c1b67bcD",
|
|
347
|
-
"0x8628FB4Ff04E371fD2B75899E73cCB7f3d0f08F9", // cbbtc/usdc stakedlp
|
|
348
|
-
]
|
|
166
|
+
[types_1.Factory.SOL_STABLE]: [],
|
|
167
|
+
[types_1.Factory.SOLV2]: []
|
|
349
168
|
},
|
|
350
169
|
[types_1.Networks.Blast]: {
|
|
351
170
|
[types_1.Factory.SOLV2]: [
|
|
@@ -417,7 +236,22 @@ exports.WHITELISTED_OLD = {
|
|
|
417
236
|
[types_1.Factory.V2V1]: [
|
|
418
237
|
"0xc5ed7350e0fb3f780c756ba7d5d8539dc242a414",
|
|
419
238
|
"0x524ae259179691bd2d727cada0e1aa4e365824e9",
|
|
420
|
-
"0xf91c12dae1313d0be5d7a27aa559b1171cc1eac5",
|
|
239
|
+
"0xf91c12dae1313d0be5d7a27aa559b1171cc1eac5",
|
|
240
|
+
"0x3041cbd36888becc7bbcbc0045e3b1f144466f5f",
|
|
241
|
+
"0xbb2b8038a1640196fbe3e38816f3e67cba72d940",
|
|
242
|
+
"0xa478c2975ab1ea89e8196811f51a7b7ade33eb11",
|
|
243
|
+
"0xd3d2e2692501a5c9ca623199d38826e513033a17",
|
|
244
|
+
"0x4d5ef58aac27d99935e5b6b4a6778ff292059991",
|
|
245
|
+
"0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc",
|
|
246
|
+
"0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852",
|
|
247
|
+
"0xa2107fa5b38d9bbd2c461d6edf11b11a50f6b974",
|
|
248
|
+
"0xdfc14d2af169b0d36c4eff567ada9b2e0cae044f",
|
|
249
|
+
"0x819f3450da6f110ba6ea52195b3beafa246062de",
|
|
250
|
+
"0xcffdded873554f362ac02f8fb1f02e5ada10516f",
|
|
251
|
+
"0x43ae24960e5534731fc831386c07755a2dc33d47",
|
|
252
|
+
"0x3da1313ae46132a397d90d95b1424a9a7e3e0fce",
|
|
253
|
+
"0xa5e79baee540f000ef6f23d067cd3ac22c7d9fe6",
|
|
254
|
+
"0x2fdbadf3c4d5a8666bc06645b8358ab803996e28", //YFI-ETH
|
|
421
255
|
],
|
|
422
256
|
},
|
|
423
257
|
[types_1.Networks.Polygon]: {
|
|
@@ -454,13 +288,61 @@ exports.WHITELISTED_OLD = {
|
|
|
454
288
|
// Sushiswap
|
|
455
289
|
"0xBA8d0e69773c2f5D385968E42050f23B24b35E36",
|
|
456
290
|
"0x44559353f8edB965294c1448333369ca84dF6298",
|
|
457
|
-
"0xb343CC2378dcFf9A6F81b4eEe3d8ECdC88560f6A",
|
|
291
|
+
"0xb343CC2378dcFf9A6F81b4eEe3d8ECdC88560f6A",
|
|
292
|
+
// QuickSwap
|
|
293
|
+
"0x8f7F8a534F6a7d57FbdA855Cf3588eB1eDc4508B",
|
|
294
|
+
"0xc380e7FA325E1708e9E6eF4D9beD2CD806fcB328",
|
|
295
|
+
"0x2912A338DF9877905e54c557e4d826f84365602e",
|
|
296
|
+
"0x16AEd35D0c1f5500b73063b10C0dAd42B772ac23",
|
|
297
|
+
"0x3e115a3aF5a58C73571586468B0f5d08BfE9dab1",
|
|
298
|
+
"0xc3a4C0677b033BF6e9a4E22f930f1D60c5Cd2c86",
|
|
299
|
+
"0x6D59C06a7f96a508310A76Da84dB397819E29c62",
|
|
300
|
+
"0xc6c866c2C69FF093E14746E6F9dbc7A22E0e6522",
|
|
301
|
+
"0x0c7fEaa175F62779be13cDD4Fe878e55Ee70179e",
|
|
302
|
+
"0xb361E254dAe512A7bd37f72B926f625f4D39dB56",
|
|
303
|
+
"0xb48E8C226facb7aDE62ab0CA8588789aAA1428aA",
|
|
304
|
+
"0x205995421c72dc223f36bbfad78b66eea72d2677",
|
|
305
|
+
"0xd83a3ddC19A651F79970291d71b41Be5509e7c66",
|
|
306
|
+
"0xE1ad5D74f3fEdE7Ec63Fec63D4bAFe9afbF09eDB",
|
|
307
|
+
// QuickSwap Dual Reward
|
|
308
|
+
"0x1714f3d4C4654bd5afD0Ff2590d23b053e0BEA81",
|
|
309
|
+
"0xe74189ce423345967Ef5A646316Ece52BB2fbFC9",
|
|
310
|
+
"0x14a49B53B62f7037814d4F5cAb8C92F185d045B0",
|
|
311
|
+
// SushiSwap
|
|
312
|
+
"0xbb7cCc9c0f72Fb91DEE7053C652E961117DB4368",
|
|
313
|
+
"0x9B2f10eAE09fAd574B3f76b977c06634a4Ec3a46",
|
|
314
|
+
"0x542cCc962097B184Ca12A46030D967a735342cF8",
|
|
315
|
+
"0x7DA257e84f233C9d05959F923c797585549bb3CB",
|
|
316
|
+
"0x9039b60EeE1aDBD2697A0fFb558f879c0b5D87bb",
|
|
317
|
+
"0xC2Eb7FC0C27B20400e9923a1f4066D8D4a9cd203",
|
|
318
|
+
"0xCB8F6c44C85f4a55f243df1D1f339a52a452aCa5",
|
|
319
|
+
"0xb5846453b67d0b4b4ce655930cf6e4129f4416d7",
|
|
320
|
+
"0xa13C38e12B1d516634dCFeB80ABE620aEDFcf0D0",
|
|
321
|
+
"0x3DF6b9fdDB088d0B367aCF32F2975B6613De87a9",
|
|
322
|
+
"0x34310CE0a22A7e6142c66B5334CE3C91d3892313", //ETH-SX
|
|
323
|
+
// TetuSwap
|
|
324
|
+
//"0xCB9A1bf72BE38A9cE7ac781D2deab19eb7f0a03A", //TETU-USDC
|
|
458
325
|
],
|
|
459
326
|
[types_1.Factory.V2V2]: [
|
|
460
327
|
// QuickSwap Dual Reward
|
|
461
328
|
"0x2bb779ce585a19A202ccC6e583968431b3F15eA8",
|
|
462
329
|
"0x63489c42530234b8F5d1124d2e671129be32b3b5",
|
|
463
|
-
"0x33DF8a72F92FB77b43f787cAC7A56697f2Ee54Ab",
|
|
330
|
+
"0x33DF8a72F92FB77b43f787cAC7A56697f2Ee54Ab",
|
|
331
|
+
// for quickswap partnership
|
|
332
|
+
// QuickSwap
|
|
333
|
+
"0xe186dac06f75e7e2655db05a7c684289eaa19179",
|
|
334
|
+
"0x1714f3d4C4654bd5afD0Ff2590d23b053e0BEA81",
|
|
335
|
+
"0xe74189ce423345967ef5a646316ece52bb2fbfc9",
|
|
336
|
+
"0x14a49B53B62f7037814d4F5cAb8C92F185d045B0",
|
|
337
|
+
"0x59377dbd9f550568540cae0b21412bee1cc3f439",
|
|
338
|
+
"0x2912a338df9877905e54c557e4d826f84365602e",
|
|
339
|
+
"0xc380e7fa325e1708e9e6ef4d9bed2cd806fcb328",
|
|
340
|
+
"0x3e115a3af5a58c73571586468b0f5d08bfe9dab1",
|
|
341
|
+
"0x8f7f8a534f6a7d57fbda855cf3588eb1edc4508b",
|
|
342
|
+
"0xc3a4c0677b033bf6e9a4e22f930f1d60c5cd2c86",
|
|
343
|
+
"0x8ab6ea95C3c8d4d415D531c18ee3e6B14A1a3Cc2",
|
|
344
|
+
"0xf189C676a837B973F83A55eAFD187E322F8E4Cfe",
|
|
345
|
+
"0xf9221c5EDC736D26ffC4dDCcDDfA15A4B958862e", //GNS-DAI
|
|
464
346
|
],
|
|
465
347
|
[types_1.Factory.SOLV2]: [
|
|
466
348
|
// Satin
|
|
@@ -488,7 +370,17 @@ exports.WHITELISTED_OLD = {
|
|
|
488
370
|
"0x4fefA59353636C64c5950Fd23c969CBaaB5E7BBa",
|
|
489
371
|
"0x4062f4775BC001595838FBaAE38908b250Ee07cf",
|
|
490
372
|
"0xb8942A1c1bBb90272190269D42C2F1Dff2Fde3A4",
|
|
491
|
-
"0x82cDE182702841DaB46916738207123FE535909F",
|
|
373
|
+
"0x82cDE182702841DaB46916738207123FE535909F",
|
|
374
|
+
// SushiSwap
|
|
375
|
+
"0xB0e7Ad5053414fDe098122B61fd34D816fd6D93f",
|
|
376
|
+
"0x7532A8d8a12BDd871796a07aC90E510b1CC8f694",
|
|
377
|
+
"0x95c9bF3f60Cbc2BE8e148FAe82f26930bFcD1839",
|
|
378
|
+
"0xa6E69dD0C36F3b59539e2c7aFD274eF91b5c70F9",
|
|
379
|
+
//"0xeF7Fa2D462dd5466AcFDe19D0143A1474bcC84b5", //ETH-LINK
|
|
380
|
+
//"0x9cbA44088FeC97C14b850D067f94e38f274c27d5", //ETH-DPX
|
|
381
|
+
//"0xaCacB091B65E8291A227afF563e023ee6E6dF219", //ETH-RDPX
|
|
382
|
+
"0x6D94F7e67C6ae0B0257C35754e059FDfB249d998",
|
|
383
|
+
"0x88a0B00BBE918eE00e3482F71962070Dc052984b", //ETH-MAGIC
|
|
492
384
|
],
|
|
493
385
|
[types_1.Factory.V2V2]: [
|
|
494
386
|
"0xFb468ad210d427D65c9a765a480649d5754cA325",
|
|
@@ -512,7 +404,15 @@ exports.WHITELISTED_OLD = {
|
|
|
512
404
|
"0xa860865558F7bA5d1FfB08801E263930f37f817F",
|
|
513
405
|
// Arbidex
|
|
514
406
|
"0x2f624bB98613b3B986Fc75A181c4bd6982E79027",
|
|
515
|
-
"0x4C83b11E6740d013992Ad68a09E918df3fbB96f9",
|
|
407
|
+
"0x4C83b11E6740d013992Ad68a09E918df3fbB96f9",
|
|
408
|
+
"0x6024C3e62D8e774A498f7911aE6874b1AFDA4364",
|
|
409
|
+
// Arbidex
|
|
410
|
+
"0x116852f076Fac0050De7E12aa0b7Ce86B33cC422",
|
|
411
|
+
"0x82062777dC9ff32D9D2aC1242e76A9f122431A58",
|
|
412
|
+
"0x478DE28185959cc5C553C0677ddC6e2e11629BC0",
|
|
413
|
+
"0x5B4AeE12f8e6884E81661e360954420857448ae2",
|
|
414
|
+
"0xfd99357DD35Fa2ed55103abc8b1bDA02E3E605F2",
|
|
415
|
+
"0xd4406836f1511e86E91dC64Dd14FbFA682D69f0d", //USDC-ARB
|
|
516
416
|
],
|
|
517
417
|
[types_1.Factory.SOLV2]: [
|
|
518
418
|
// SolidLizard
|
|
@@ -547,7 +447,27 @@ exports.WHITELISTED_OLD = {
|
|
|
547
447
|
// Solunea
|
|
548
448
|
"0xee4fb41Ccb1dFA6E2cDE242FeBF96148FB82C6Ca",
|
|
549
449
|
"0xfb34d0a9cEc3526e46b44f4d9d5d00dAA3C8C53e",
|
|
550
|
-
"0x08f218D943970a1B77acA743ceB08429dF65F67e",
|
|
450
|
+
"0x08f218D943970a1B77acA743ceB08429dF65F67e",
|
|
451
|
+
// SolidLizard
|
|
452
|
+
"0x699c5e23357aB1BF658bD0B38070d746E37671f3",
|
|
453
|
+
"0x2d2ee5838838a1131995509346c9C9848b3367d8",
|
|
454
|
+
"0x32FaA88478A0104154e9417C6F7b4Fa288f728Aa",
|
|
455
|
+
"0x4B28550846405A7825247F54070b568C2ECe3eEB",
|
|
456
|
+
// Auragi
|
|
457
|
+
"0x2D658A6a569139f84d8c2f4e37Eed04F19EAB37D",
|
|
458
|
+
// Chronos
|
|
459
|
+
"0x350954bf706B296CBFDf58fBFEDe91Ac4A271BEa",
|
|
460
|
+
"0xd4d45B476197b10da32ce58E669Bae8bdF0f7E16",
|
|
461
|
+
"0x7cA9a0140EE27ed4dF141DEab53088a69CCC4Cf8",
|
|
462
|
+
"0x21E885fe81731ae391717Afb0513Dd0dF364fe06",
|
|
463
|
+
"0x06507308ef73937E96f33c9defb6BE7F65cbc13c",
|
|
464
|
+
"0x8DC16595ac492056d9C59470685E3AB296E8322f",
|
|
465
|
+
"0xA633615b835DBdF89C3f2B5420048B3201638E4a",
|
|
466
|
+
"0x01a464e2BF76Bd4A3A50073026fF2335584D67d8",
|
|
467
|
+
"0x7b4975F5C3BE5735714F597D7af6877bDD68Bf13",
|
|
468
|
+
"0x3d5FCbEd1c9B6C9B0f6deA1DED55b161a6eFeF31",
|
|
469
|
+
"0x4941007F424336a682B478993dBDAF0a444d82fc",
|
|
470
|
+
"0x39680ed7d9267e3AFe7239D2930361CBee996207", //GNS-ETH
|
|
551
471
|
],
|
|
552
472
|
},
|
|
553
473
|
[types_1.Networks.Avalanche]: {
|
|
@@ -559,6 +479,13 @@ exports.WHITELISTED_OLD = {
|
|
|
559
479
|
"0x888300Be13b8875FeEF00C421d1C4aa7B8eae8Db",
|
|
560
480
|
// Pangolin V2
|
|
561
481
|
"0x677dCE0683e6Db30325cD97e8d04D138F34821A6",
|
|
482
|
+
"0x6Ca300f7B764580e52889341E8941CcA7CfCA727",
|
|
483
|
+
"0x7140D22AFC110741323ef29868c48b566a3295D4",
|
|
484
|
+
"0xc532a2885027677c4BE61F710F7D41941dBaD1B1",
|
|
485
|
+
"0x734ee20bBaD6d191432B34FbFd1493c16f065E9C",
|
|
486
|
+
"0x5b588F4481035B0f765393FC9F4752615a6D0498",
|
|
487
|
+
// Pangolin-BenQI
|
|
488
|
+
"0x3e2a4Dcd46e0e339aEC603080D90Bd939a163062",
|
|
562
489
|
// TraderJoe
|
|
563
490
|
"0x6b9E2B2bBd70229E967322F0EdB2d3049990d56D",
|
|
564
491
|
"0x3739A0d58b0B0aED4B50046a866bd2B9d79b4596",
|
|
@@ -618,7 +545,24 @@ exports.WHITELISTED_OLD = {
|
|
|
618
545
|
[types_1.Factory.SOLV2]: [],
|
|
619
546
|
},
|
|
620
547
|
[types_1.Networks.ZksyncEra]: {
|
|
621
|
-
[types_1.Factory.SOLV2]: [
|
|
548
|
+
[types_1.Factory.SOLV2]: [
|
|
549
|
+
// Velocore
|
|
550
|
+
"0x0C468E366B9ae76ca43acc90be049711c7E7B6d7",
|
|
551
|
+
"0xE2f69aE6770d777A21fe3ffd781Dc640B4d36b18",
|
|
552
|
+
"0x304847Ddbf68948655b0209c00E32A0923eF41B6",
|
|
553
|
+
"0x1B5887722E9E8E74426c057a1fabb40395dCB1e5",
|
|
554
|
+
"0x572261bc2F1652dC8B2C6Ea9d5bF7B3699DcB1bC",
|
|
555
|
+
// VeSync
|
|
556
|
+
"0xc9Fb969F3770387C0A634C9fa4656B268404A2Db",
|
|
557
|
+
"0x1fD9e25a7D3FD1ba151Fb7C9353aBB45b908d5D2",
|
|
558
|
+
"0x0d72322A1C86B1dF92711327a38a79a5679e478f",
|
|
559
|
+
"0x8d535eFa82481CdefBe7801E562736017Bc59872",
|
|
560
|
+
//"0x2907ab8286Bd0438064816f6CCf1bf688Ec70A56", //wTBT-USDC
|
|
561
|
+
// Dracula
|
|
562
|
+
"0xc73195F2B5D60A59F81f88A3ec77BBF4555faB57",
|
|
563
|
+
"0xbaDde16f4ED28B3f2118942c521cA0eF6A2c6e01",
|
|
564
|
+
"0xD2905ec6172A956f4E79C8DCee4e9470dA587Da3", //FANG-USDC
|
|
565
|
+
],
|
|
622
566
|
},
|
|
623
567
|
[types_1.Networks.Aurora]: {},
|
|
624
568
|
[types_1.Networks.Cronos]: {},
|
|
@@ -674,15 +618,37 @@ exports.WHITELISTED_OLD = {
|
|
|
674
618
|
},
|
|
675
619
|
[types_1.Networks.Scroll]: {
|
|
676
620
|
[types_1.Factory.SOLV2]: [
|
|
677
|
-
"0xDA4ca9030d4c037203F4cA2a1A191EfA209FA6f1",
|
|
678
|
-
|
|
621
|
+
"0xDA4ca9030d4c037203F4cA2a1A191EfA209FA6f1",
|
|
622
|
+
"0xE3167f148F3C97dea3D42cb9d6848a7d28b3A296",
|
|
623
|
+
"0xFA444f62379619BDa05842f70fE13c5469B238F6",
|
|
624
|
+
"0x88b5068c4ED14d69C7093011149E7d5E93a0a98e",
|
|
625
|
+
"0xC90073E1CaBCf5069E00c5a6cB10023c9e1D5c4f",
|
|
626
|
+
"0xD30eDb2f0CA35cba70d10bd3fcCe5Bbb317C88C7",
|
|
627
|
+
"0x8A16A1CA6c303122E5FA985150A2b742B3aA5FB7",
|
|
628
|
+
"0x185060149a0fA57aa93AFEBFaD052029129903b2",
|
|
629
|
+
"0x2072119D41ba1288cEEc5Cc8FD7b31A0fC9734fc",
|
|
630
|
+
"0x0833C454fc94d32e03110081AC9b9AD2d54e18Fa",
|
|
631
|
+
"0x432C27EfeD615033A7F0c6320E9831332685EB53",
|
|
632
|
+
"0xbD4b6e9992BEF375A14793b18D2A1CC8d710D45b",
|
|
633
|
+
"0xd398411A691C81e50a1216e287bbe6D5F54Fe2Cc",
|
|
634
|
+
"0xDbbF2Fa67Cfa713b1Ab2376A0EEF1a34d6f9E8c6", // scr/weth stakedlp
|
|
635
|
+
],
|
|
636
|
+
[types_1.Factory.SOL_STABLE]: [
|
|
637
|
+
"0x354Df4F5925145409f76B044bf1E4BD3a5dCe74E",
|
|
638
|
+
"0xB0a3410C7672CC0759fF6DA3540a9A26083507dc",
|
|
639
|
+
"0x3E458C566e81869DCc1c84690441e29149Ee6D35",
|
|
640
|
+
"0x471819fAFe0C6Bc919Ae1FF4e7DbE67371c4b467", // usdc/more stakedlp
|
|
641
|
+
],
|
|
679
642
|
},
|
|
680
643
|
[types_1.Networks.Real]: {
|
|
681
644
|
[types_1.Factory.SOL_STABLE]: [
|
|
682
|
-
"0xd24F497f0e877203d716eE147FE96858121E437a",
|
|
645
|
+
"0xd24F497f0e877203d716eE147FE96858121E437a",
|
|
646
|
+
"0x1615D2418872b0D525cf42b37F8BeD345B66f018", // more/usdc stakedlp
|
|
683
647
|
],
|
|
684
648
|
[types_1.Factory.SOLV2]: [
|
|
685
|
-
"0x1f0bc333c535838CA1020c87a6a043D89577c563",
|
|
649
|
+
"0x1f0bc333c535838CA1020c87a6a043D89577c563",
|
|
650
|
+
"0xa5c272f3A299B0d69D002AeA694ed127c1b67bcD",
|
|
651
|
+
"0x8628FB4Ff04E371fD2B75899E73cCB7f3d0f08F9", // cbbtc/usdc stakedlp
|
|
686
652
|
]
|
|
687
653
|
},
|
|
688
654
|
[types_1.Networks.Optimism]: {
|
|
@@ -49,16 +49,23 @@ class OffchainCollateralV2 extends offchainPoolToken_1.default {
|
|
|
49
49
|
}
|
|
50
50
|
//
|
|
51
51
|
// Pricing
|
|
52
|
+
// TODO deprecate this
|
|
52
53
|
//
|
|
53
54
|
async getTokenPriceFast(fallback = true) {
|
|
54
|
-
|
|
55
|
+
const tokenPrice = await this.lendingPool.getCollateralPrice(false);
|
|
56
|
+
if (tokenPrice > 0)
|
|
57
|
+
return tokenPrice;
|
|
58
|
+
return super.getTokenPriceFast(fallback);
|
|
59
|
+
//throw new Error("USD price conversion for collateral is deprecated");
|
|
55
60
|
}
|
|
56
61
|
async getTokenPriceAccurate() {
|
|
57
|
-
|
|
62
|
+
return this.lendingPool.getCollateralPrice(false);
|
|
63
|
+
//throw new Error("USD price conversion for collateral is deprecated");
|
|
58
64
|
}
|
|
59
|
-
// TODO
|
|
60
65
|
async getTotalBalanceUSD() {
|
|
61
|
-
|
|
66
|
+
const totalBalance = await this.getTotalBalance();
|
|
67
|
+
const price = await this.getTokenPriceAccurate();
|
|
68
|
+
return totalBalance * price;
|
|
62
69
|
}
|
|
63
70
|
}
|
|
64
71
|
exports.default = OffchainCollateralV2;
|
|
@@ -13,9 +13,9 @@ export declare enum LendingPoolVersion {
|
|
|
13
13
|
V3 = "V3"
|
|
14
14
|
}
|
|
15
15
|
export default abstract class OffchainLendingPool {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
protected readonly offchain: Offchain;
|
|
17
|
+
protected readonly factory: Factory;
|
|
18
|
+
protected readonly pairAddress: Address;
|
|
19
19
|
protected readonly collateral: OffchainCollateral;
|
|
20
20
|
protected readonly borrowables: {
|
|
21
21
|
[Borrowable.A]: OffchainBorrowable;
|
|
@@ -14,4 +14,14 @@ export default class OffchainLendingPoolV2 extends OffchainLendingPool {
|
|
|
14
14
|
protected getNewBorrowableObject(borrowable: Borrowable): OffchainBorrowableV2;
|
|
15
15
|
getNewAccountLendingPoolObject(account: OffchainAccount): OffchainAccountLendingPoolV2;
|
|
16
16
|
getUniswapV2PairAddress(): Promise<Address>;
|
|
17
|
+
getUniswapAPR(): Promise<number>;
|
|
18
|
+
getStakingRewards(): Promise<Array<{
|
|
19
|
+
APR: number;
|
|
20
|
+
symbol: string;
|
|
21
|
+
}>>;
|
|
22
|
+
getStakingAPR(): Promise<number>;
|
|
23
|
+
private calculateCollateralPrice;
|
|
24
|
+
getCollateralPrice(fast?: boolean): Promise<number>;
|
|
25
|
+
getUnderlyingLPPrice(fast?: boolean): Promise<number>;
|
|
26
|
+
getTotalAPR(): Promise<number>;
|
|
17
27
|
}
|
|
@@ -8,6 +8,8 @@ const offchainLendingPool_1 = __importDefault(require("./offchainLendingPool"));
|
|
|
8
8
|
const offchainCollateralV2_1 = __importDefault(require("./offchainCollateralV2"));
|
|
9
9
|
const offchainBorrowableV2_1 = __importDefault(require("./offchainBorrowableV2"));
|
|
10
10
|
const offchainAccountLendingPoolV2_1 = __importDefault(require("../account/lendingPool/offchainAccountLendingPoolV2"));
|
|
11
|
+
const farms_1 = require("../../config/farms");
|
|
12
|
+
const utils_1 = require("../../utils");
|
|
11
13
|
class OffchainLendingPoolV2 extends offchainLendingPool_1.default {
|
|
12
14
|
getNewCollateralObject() {
|
|
13
15
|
return new offchainCollateralV2_1.default(this);
|
|
@@ -22,5 +24,103 @@ class OffchainLendingPoolV2 extends offchainLendingPool_1.default {
|
|
|
22
24
|
const lendingPoolData = await this.getLendingPoolData();
|
|
23
25
|
return lendingPoolData.pair.uniswapV2PairAddress;
|
|
24
26
|
}
|
|
27
|
+
// Uniswap APR
|
|
28
|
+
async getUniswapAPR() {
|
|
29
|
+
const lendingPoolData = await this.getLendingPoolData();
|
|
30
|
+
return lendingPoolData.pair.uniswapAPR;
|
|
31
|
+
}
|
|
32
|
+
async getStakingRewards() {
|
|
33
|
+
const farm = await this.getFarm();
|
|
34
|
+
const lendingPoolData = await this.getLendingPoolData();
|
|
35
|
+
if (farm === farms_1.Farms.solidex ||
|
|
36
|
+
farm === farms_1.Farms.solidexB ||
|
|
37
|
+
farm === farms_1.Farms.solidexUSDC ||
|
|
38
|
+
farm === farms_1.Farms.solidexUSDCB) {
|
|
39
|
+
const solidexLPDetails = await this.offchain
|
|
40
|
+
.getSolidexHelper()
|
|
41
|
+
.getSolidexLPDetails();
|
|
42
|
+
const result = solidexLPDetails[lendingPoolData.pair.uniswapV2PairAddress];
|
|
43
|
+
if (result)
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
const FINISH_DELAY = 3600 * 24 * 1;
|
|
47
|
+
const rewards = [];
|
|
48
|
+
const stakedTotalSupply = parseFloat(lendingPoolData.pair.stakedTotalSupply);
|
|
49
|
+
const underlyingLPPrice = await this.getUnderlyingLPPrice(true);
|
|
50
|
+
if (!lendingPoolData.pair.rewards)
|
|
51
|
+
return rewards;
|
|
52
|
+
for (const reward of lendingPoolData.pair.rewards) {
|
|
53
|
+
const multiplier = farm === farms_1.Farms.traderJoeV2 ? 0.5 : 1;
|
|
54
|
+
const periodFinish = parseInt(reward.periodFinish);
|
|
55
|
+
if (new Date().getTime() / 1000 - FINISH_DELAY > periodFinish &&
|
|
56
|
+
periodFinish !== 0)
|
|
57
|
+
continue;
|
|
58
|
+
let rewardRate = parseFloat(reward.rewardRate);
|
|
59
|
+
if (farm == farms_1.Farms.traderJoeV4)
|
|
60
|
+
rewardRate = rewardRate * 0.45;
|
|
61
|
+
const rewardPrice = await this.offchain
|
|
62
|
+
.getPriceHelper()
|
|
63
|
+
.getDebankTokenPrice(this.offchain.network, reward.rewardsToken.id);
|
|
64
|
+
rewards.push({
|
|
65
|
+
APR: (0, utils_1.toAPR)(((rewardPrice * rewardRate) /
|
|
66
|
+
(stakedTotalSupply * underlyingLPPrice)) *
|
|
67
|
+
multiplier),
|
|
68
|
+
symbol: reward.rewardsToken.symbol,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return rewards;
|
|
72
|
+
}
|
|
73
|
+
async getStakingAPR() {
|
|
74
|
+
const rewards = await this.getStakingRewards();
|
|
75
|
+
let APR = 0;
|
|
76
|
+
for (const reward of rewards) {
|
|
77
|
+
APR += reward.APR;
|
|
78
|
+
}
|
|
79
|
+
return APR;
|
|
80
|
+
}
|
|
81
|
+
// getCollateralPrice -> returns the price of the collateral, not necessarily of the underlying LP
|
|
82
|
+
calculateCollateralPrice(reserve0, reserve1, totalSupply, price0, price1) {
|
|
83
|
+
if (totalSupply === 0)
|
|
84
|
+
return 0;
|
|
85
|
+
const reserve0USD = reserve0 * price0;
|
|
86
|
+
const reserve1USD = reserve1 * price1;
|
|
87
|
+
// adjust reserves taking the latest price passed as parameters
|
|
88
|
+
const adjustedReserveUSD = Math.sqrt(reserve0USD * reserve1USD) * 2;
|
|
89
|
+
return adjustedReserveUSD / totalSupply;
|
|
90
|
+
}
|
|
91
|
+
async getCollateralPrice(fast = true) {
|
|
92
|
+
const lendingPoolData = await this.getLendingPoolData();
|
|
93
|
+
return this.calculateCollateralPrice(parseFloat(lendingPoolData.pair.reserve0), parseFloat(lendingPoolData.pair.reserve1), parseFloat(lendingPoolData.pair.totalSupply), fast
|
|
94
|
+
? await this.getBorrowableA().getTokenPriceFast()
|
|
95
|
+
: await this.getBorrowableA().getTokenPriceAccurate(), fast
|
|
96
|
+
? await this.getBorrowableB().getTokenPriceFast()
|
|
97
|
+
: await this.getBorrowableB().getTokenPriceAccurate());
|
|
98
|
+
}
|
|
99
|
+
async getUnderlyingLPPrice(fast = true) {
|
|
100
|
+
return ((await this.getCollateralPrice(fast)) /
|
|
101
|
+
(await this.getStakedLPExchangeRate()));
|
|
102
|
+
}
|
|
103
|
+
async getTotalAPR() {
|
|
104
|
+
const uniswapV2Pair = await this.getUniswapV2PairAddress();
|
|
105
|
+
// If llama fails/apr is 0 we get the uniswapAPR and stakingAPR through subgraph
|
|
106
|
+
const apr = await this.offchain
|
|
107
|
+
.getAPRHelper()
|
|
108
|
+
.getLlamaAPR(uniswapV2Pair, this.offchain.network);
|
|
109
|
+
if (apr > 0)
|
|
110
|
+
return apr;
|
|
111
|
+
// Try shadow on Sonic network
|
|
112
|
+
if (this.offchain.network === types_1.Networks.Sonic) {
|
|
113
|
+
const shadowAPR = await this.offchain
|
|
114
|
+
.getAPRHelper()
|
|
115
|
+
.getShadowAPR(uniswapV2Pair, this.offchain.network);
|
|
116
|
+
if (shadowAPR > 0)
|
|
117
|
+
return shadowAPR;
|
|
118
|
+
}
|
|
119
|
+
const [uniswapAPR, stakingAPR] = await Promise.all([
|
|
120
|
+
this.getUniswapAPR(),
|
|
121
|
+
this.getStakingAPR(),
|
|
122
|
+
]);
|
|
123
|
+
return uniswapAPR + stakingAPR;
|
|
124
|
+
}
|
|
25
125
|
}
|
|
26
126
|
exports.default = OffchainLendingPoolV2;
|