@sonarwatch/portfolio-plugins 0.12.150 → 0.12.151
Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
4
4
|
|
5
|
+
## [0.12.151](https://github.com/sonarwatch/portfolio/compare/plugins-0.12.150...plugins-0.12.151) (2024-08-21)
|
6
|
+
|
7
|
+
|
8
|
+
|
5
9
|
## [0.12.150](https://github.com/sonarwatch/portfolio/compare/plugins-0.12.149...plugins-0.12.150) (2024-08-20)
|
6
10
|
|
7
11
|
|
package/package.json
CHANGED
@@ -18,7 +18,6 @@ const web3_js_1 = require("@solana/web3.js");
|
|
18
18
|
const clients_1 = require("../../../utils/clients");
|
19
19
|
const solana_1 = require("../../../utils/solana");
|
20
20
|
const filters_1 = require("../filters");
|
21
|
-
const helpers_1 = require("../../../utils/solana/pyth/helpers");
|
22
21
|
const constants_1 = require("./constants");
|
23
22
|
const structs_1 = require("./structs");
|
24
23
|
const usdFactor = new bignumber_js_1.default(Math.pow(10, 6));
|
@@ -28,29 +27,32 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
28
27
|
if (positionAccounts.length === 0 ||
|
29
28
|
positionAccounts.every((perp) => perp.sizeUsd.isLessThanOrEqualTo(0)))
|
30
29
|
return [];
|
31
|
-
const custodiesAccounts = yield
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
if (!perpPoolsArr)
|
30
|
+
const [custodiesAccounts, perpPoolsArr] = yield Promise.all([
|
31
|
+
cache.getItem(constants_1.custodiesKey, {
|
32
|
+
prefix: constants_1.platformId,
|
33
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
34
|
+
}),
|
35
|
+
cache.getItem(constants_1.perpPoolsKey, {
|
36
|
+
prefix: constants_1.platformId,
|
37
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
38
|
+
}),
|
39
|
+
]);
|
40
|
+
if (!custodiesAccounts || !perpPoolsArr)
|
42
41
|
return [];
|
43
42
|
const perpPools = new Map();
|
44
43
|
perpPoolsArr.forEach((a) => {
|
45
44
|
perpPools.set(a.pubkey.toString(), a);
|
46
45
|
});
|
47
46
|
const oraclesPubkeys = [];
|
47
|
+
const mints = new Set();
|
48
48
|
const custodyById = new Map();
|
49
49
|
custodiesAccounts.forEach((a) => {
|
50
50
|
oraclesPubkeys.push(new web3_js_1.PublicKey(a.oracle.oracleAccount));
|
51
51
|
custodyById.set(a.pubkey, a);
|
52
|
+
mints.add(a.mint.toString());
|
52
53
|
});
|
53
|
-
const
|
54
|
+
const currentPriceById = yield cache.getTokenPricesAsMap(Array.from(mints), portfolio_core_1.NetworkId.solana);
|
55
|
+
// const pythPricesByAccount = await getPythPricesAsMap(client, oraclesPubkeys);
|
54
56
|
const levPositions = [];
|
55
57
|
for (const position of positionAccounts) {
|
56
58
|
const { collateralUsd, sizeUsd, price, side, cumulativeInterestSnapshot } = position;
|
@@ -67,9 +69,11 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
67
69
|
if (!perpPool)
|
68
70
|
continue;
|
69
71
|
const entryPrice = price.dividedBy(usdFactor);
|
70
|
-
const currentPrice = pythPricesByAccount.get(custody.oracle.oracleAccount);
|
71
|
-
|
72
|
+
// const currentPrice = pythPricesByAccount.get(custody.oracle.oracleAccount);
|
73
|
+
const currentTokenPrice = currentPriceById.get(custody.mint.toString());
|
74
|
+
if (!currentTokenPrice)
|
72
75
|
continue;
|
76
|
+
const currentPrice = currentTokenPrice.price;
|
73
77
|
const sizeValue = sizeUsd.dividedBy(usdFactor);
|
74
78
|
const size = sizeValue.div(entryPrice);
|
75
79
|
const leverage = sizeUsd.dividedBy(collateralUsd);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"perpetualFetcher.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/jupiter/exchange/perpetualFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAOoC;AACpC,gEAAqC;AACrC,6CAA4C;AAG5C,oDAAyD;AACzD,kDAAgF;AAChF,wCAAuD;AAEvD,
|
1
|
+
{"version":3,"file":"perpetualFetcher.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/jupiter/exchange/perpetualFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -94,6 +94,7 @@ exports.lendingConfigs = new Map([
|
|
94
94
|
},
|
95
95
|
],
|
96
96
|
['ByYiZxp8QrdN9qbdtaAiePN8AAr3qvTPppNJDpf5DVJ5', { name: 'Altcoins Market' }],
|
97
|
+
['BJnbcRHqvppTyGesLzWASGKnmnF1wq9jZu6ExrjT7wvF', { name: 'Ethena Market' }],
|
97
98
|
]);
|
98
99
|
exports.marketsKey = `markets`;
|
99
100
|
exports.reservesKey = `reserves`;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/kamino/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAK/B,QAAA,UAAU,GAAG,QAAQ,CAAC;AACtB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,qCAAqC,kBAAU,OAAO;IAC7D,OAAO,EAAE,yBAAyB;IAClC,WAAW,EAAE,uBAAuB;CACrC,CAAC;AAEW,QAAA,QAAQ,GAAG,6CAA6C,CAAC;AACzD,QAAA,YAAY,GAAG,CAAC,CAAC;AACjB,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,gBAAgB,GAC3B,iDAAiD,CAAC;AAEvC,QAAA,cAAc,GAAG,IAAI,mBAAS,CACzC,6CAA6C,CAC9C,CAAC;AACW,QAAA,aAAa,GAAG,IAAI,mBAAS,CACxC,8CAA8C,CAC/C,CAAC;AACW,QAAA,QAAQ,GAAG,OAAO,CAAC;AACnB,QAAA,UAAU,GAAG,8CAA8C,CAAC;AAE5D,QAAA,cAAc,GAAqC,IAAI,GAAG,CAAC;IACtE;QACE,8CAA8C;QAC9C;YACE,IAAI,EAAE,aAAa;YACnB,aAAa,EAAE;gBACb;oBACE,6CAA6C;oBAC7C,6CAA6C;iBAC9C;gBACD;oBACE,8CAA8C;oBAC9C,6CAA6C;iBAC9C;gBACD;oBACE,6CAA6C;oBAC7C,6CAA6C;iBAC9C;gBACD;oBACE,6CAA6C;oBAC7C,6CAA6C;iBAC9C;gBACD;oBACE,6CAA6C;oBAC7C,6CAA6C;iBAC9C;gBACD;oBACE,6CAA6C;oBAC7C,6CAA6C;iBAC9C;aACF;YACD,aAAa,EAAE;gBACb;oBACE,8CAA8C;oBAC9C,8CAA8C;iBAC/C;gBACD;oBACE,8CAA8C;oBAC9C,8CAA8C;iBAC/C;gBACD;oBACE,6CAA6C;oBAC7C,8CAA8C;iBAC/C;gBACD;oBACE,6CAA6C;oBAC7C,8CAA8C;iBAC/C;gBACD;oBACE,6CAA6C;oBAC7C,8CAA8C;iBAC/C;gBACD;oBACE,8CAA8C;oBAC9C,8CAA8C;iBAC/C;gBACD;oBACE,8CAA8C;oBAC9C,8CAA8C;iBAC/C;aACF;SACF;KACF;IACD;QACE,8CAA8C;QAC9C;YACE,IAAI,EAAE,YAAY;YAClB,aAAa,EAAE;gBACb;oBACE,8CAA8C;oBAC9C,8CAA8C;iBAC/C;aACF;SACF;KACF;IACD,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/kamino/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAK/B,QAAA,UAAU,GAAG,QAAQ,CAAC;AACtB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,qCAAqC,kBAAU,OAAO;IAC7D,OAAO,EAAE,yBAAyB;IAClC,WAAW,EAAE,uBAAuB;CACrC,CAAC;AAEW,QAAA,QAAQ,GAAG,6CAA6C,CAAC;AACzD,QAAA,YAAY,GAAG,CAAC,CAAC;AACjB,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,gBAAgB,GAC3B,iDAAiD,CAAC;AAEvC,QAAA,cAAc,GAAG,IAAI,mBAAS,CACzC,6CAA6C,CAC9C,CAAC;AACW,QAAA,aAAa,GAAG,IAAI,mBAAS,CACxC,8CAA8C,CAC/C,CAAC;AACW,QAAA,QAAQ,GAAG,OAAO,CAAC;AACnB,QAAA,UAAU,GAAG,8CAA8C,CAAC;AAE5D,QAAA,cAAc,GAAqC,IAAI,GAAG,CAAC;IACtE;QACE,8CAA8C;QAC9C;YACE,IAAI,EAAE,aAAa;YACnB,aAAa,EAAE;gBACb;oBACE,6CAA6C;oBAC7C,6CAA6C;iBAC9C;gBACD;oBACE,8CAA8C;oBAC9C,6CAA6C;iBAC9C;gBACD;oBACE,6CAA6C;oBAC7C,6CAA6C;iBAC9C;gBACD;oBACE,6CAA6C;oBAC7C,6CAA6C;iBAC9C;gBACD;oBACE,6CAA6C;oBAC7C,6CAA6C;iBAC9C;gBACD;oBACE,6CAA6C;oBAC7C,6CAA6C;iBAC9C;aACF;YACD,aAAa,EAAE;gBACb;oBACE,8CAA8C;oBAC9C,8CAA8C;iBAC/C;gBACD;oBACE,8CAA8C;oBAC9C,8CAA8C;iBAC/C;gBACD;oBACE,6CAA6C;oBAC7C,8CAA8C;iBAC/C;gBACD;oBACE,6CAA6C;oBAC7C,8CAA8C;iBAC/C;gBACD;oBACE,6CAA6C;oBAC7C,8CAA8C;iBAC/C;gBACD;oBACE,8CAA8C;oBAC9C,8CAA8C;iBAC/C;gBACD;oBACE,8CAA8C;oBAC9C,8CAA8C;iBAC/C;aACF;SACF;KACF;IACD;QACE,8CAA8C;QAC9C;YACE,IAAI,EAAE,YAAY;YAClB,aAAa,EAAE;gBACb;oBACE,8CAA8C;oBAC9C,8CAA8C;iBAC/C;aACF;SACF;KACF;IACD,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC7E,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;CAC5E,CAAC,CAAC;AAEU,QAAA,UAAU,GAAG,SAAS,CAAC;AACvB,QAAA,WAAW,GAAG,UAAU,CAAC;AACzB,QAAA,gBAAgB,GAAmB;IAC9C,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,aAAa;IACvB,EAAE,EAAE,WAAW;IACf,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,6BAA6B;IAC1C,SAAS,EAAE,oCAAoC;IAC/C,KAAK,EAAE,+CAA+C;IACtD,IAAI,EAAE,IAAI;CACX,CAAC;AACW,QAAA,gBAAgB,GAAmB;IAC9C,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,SAAS;IACnB,EAAE,EAAE,WAAW;IACf,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,6BAA6B;IAC1C,SAAS,EAAE,6CAA6C;IACxD,KAAK,EAAE,+CAA+C;IACtD,IAAI,EAAE,IAAI;CACX,CAAC"}
|