@sonarwatch/portfolio-plugins 0.14.84 → 0.14.85
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/CHANGELOG.md +4 -0
- package/package.json +1 -1
- package/src/plugins/exponent/liquidityFetcher.js +13 -2
- package/src/plugins/exponent/liquidityFetcher.js.map +1 -1
- package/src/plugins/exponent/marketsJob.js +3 -83
- package/src/plugins/exponent/marketsJob.js.map +1 -1
- package/src/plugins/exponent/tradeFetcher.js +4 -5
- package/src/plugins/exponent/tradeFetcher.js.map +1 -1
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.14.85](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.84...plugins-0.14.85) (2025-01-10)
|
6
|
+
|
7
|
+
|
8
|
+
|
5
9
|
## [0.14.84](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.83...plugins-0.14.84) (2025-01-10)
|
6
10
|
|
7
11
|
|
package/package.json
CHANGED
@@ -28,18 +28,29 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
28
28
|
if (!markets)
|
29
29
|
return [];
|
30
30
|
const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.solana, constants_1.platformId);
|
31
|
+
const tokenPrices = yield cache.getTokenPricesAsMap(markets.map((market) => market.vault.mintPt), portfolio_core_1.NetworkId.solana);
|
31
32
|
accounts.forEach((account) => {
|
32
33
|
const market = markets.find((m) => m.id === account.market.toString());
|
33
34
|
if (!market)
|
34
35
|
return;
|
36
|
+
const tokenPricePt = tokenPrices.get(market.vault.mintPt);
|
37
|
+
if (!tokenPricePt || !tokenPricePt.underlyings)
|
38
|
+
return;
|
39
|
+
const ptUnderlying = tokenPricePt.underlyings[0];
|
35
40
|
const element = elementRegistry.addElementLiquidity({
|
36
41
|
label: 'Vault',
|
37
42
|
name: `${market.vault.platform} ${market.vault.niceName}`,
|
38
43
|
});
|
39
44
|
const liquidity = element.addLiquidity();
|
45
|
+
const baseAssetAmount = account.lp_balance
|
46
|
+
.multipliedBy(market.stats.syPriceInAsset)
|
47
|
+
.multipliedBy(market.stats.syAmountPerLpShare)
|
48
|
+
.plus(account.lp_balance
|
49
|
+
.multipliedBy(ptUnderlying.amountPerLp)
|
50
|
+
.multipliedBy(market.stats.ptAmountPerLpShare));
|
40
51
|
liquidity.addAsset({
|
41
|
-
address:
|
42
|
-
amount:
|
52
|
+
address: market.vault.mintAsset,
|
53
|
+
amount: baseAssetAmount,
|
43
54
|
});
|
44
55
|
const apy = (0, helpers_1.calculateWeightedAPY)(market.stats);
|
45
56
|
liquidity.addYield({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"liquidityFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/exponent/liquidityFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAiE;AAEjE,2CAA2E;AAE3E,gFAA6E;AAC7E,+CAA8D;AAC9D,iDAAsD;AACtD,uCAA6C;AAC7C,uCAAiD;AAEjD,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,UAAU,GAAG,IAAA,yBAAe,GAAE,CAAC;IAErC,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAwB,EAC7C,UAAU,EACV,0BAAgB,EAChB,+BAAmB,EACnB;QACE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;QACnD,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;KACxC,CACF,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,OAAO,GAAG,MAAM,uBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,0BAAS,CAAC,MAAM,EAAE,sBAAU,CAAC,CAAC;IAE1E,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM;YAAE,OAAO;
|
1
|
+
{"version":3,"file":"liquidityFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/exponent/liquidityFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -17,90 +17,10 @@ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
|
17
17
|
const constants_1 = require("./constants");
|
18
18
|
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
19
19
|
const res = yield axios_1.default.get(constants_1.marketsApiUrl);
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
res.data.data.forEach((market) => {
|
24
|
-
const baseTokenPrice = tokenPrices.get(market.vault.mintAsset);
|
25
|
-
if (!baseTokenPrice)
|
26
|
-
return;
|
27
|
-
const ptPrice = baseTokenPrice.price * market.stats.ptPriceInAsset;
|
28
|
-
const syPrice = baseTokenPrice.price * market.stats.syPriceInAsset;
|
29
|
-
const ytPriceInAsset = 1 - market.stats.ptPriceInAsset;
|
30
|
-
const ytPrice = baseTokenPrice.price * ytPriceInAsset;
|
31
|
-
tokenPriceSources.push({
|
32
|
-
address: market.id,
|
33
|
-
decimals: market.vault.decimals,
|
34
|
-
id: market.id,
|
35
|
-
networkId,
|
36
|
-
platformId: constants_1.platformId,
|
37
|
-
price: market.stats.ptAmountPerLpShare * ptPrice +
|
38
|
-
market.stats.syAmountPerLpShare * syPrice,
|
39
|
-
timestamp: Date.now(),
|
40
|
-
weight: 1,
|
41
|
-
underlyings: [
|
42
|
-
{
|
43
|
-
address: market.vault.mintPt,
|
44
|
-
amountPerLp: market.stats.ptAmountPerLpShare,
|
45
|
-
decimals: market.vault.decimals,
|
46
|
-
networkId,
|
47
|
-
price: ptPrice,
|
48
|
-
},
|
49
|
-
{
|
50
|
-
address: market.vault.mintSy,
|
51
|
-
amountPerLp: market.stats.syAmountPerLpShare,
|
52
|
-
decimals: market.vault.decimals,
|
53
|
-
networkId,
|
54
|
-
price: syPrice,
|
55
|
-
},
|
56
|
-
],
|
57
|
-
});
|
58
|
-
tokenPriceSources.push({
|
59
|
-
address: market.vault.mintSy,
|
60
|
-
decimals: market.vault.decimals,
|
61
|
-
id: market.id,
|
62
|
-
networkId,
|
63
|
-
platformId: constants_1.platformId,
|
64
|
-
price: baseTokenPrice.price * market.stats.syPriceInAsset,
|
65
|
-
timestamp: Date.now(),
|
66
|
-
weight: 1,
|
67
|
-
underlyings: [
|
68
|
-
{
|
69
|
-
address: baseTokenPrice.address,
|
70
|
-
amountPerLp: market.stats.syPriceInAsset,
|
71
|
-
decimals: baseTokenPrice.decimals,
|
72
|
-
networkId,
|
73
|
-
price: baseTokenPrice.price,
|
74
|
-
},
|
75
|
-
],
|
76
|
-
});
|
77
|
-
tokenPriceSources.push({
|
78
|
-
address: market.vault.mintYt,
|
79
|
-
decimals: market.vault.decimals,
|
80
|
-
id: market.id,
|
81
|
-
networkId,
|
82
|
-
platformId: constants_1.platformId,
|
83
|
-
price: ytPrice,
|
84
|
-
timestamp: Date.now(),
|
85
|
-
weight: 1,
|
86
|
-
underlyings: [
|
87
|
-
{
|
88
|
-
address: baseTokenPrice.address,
|
89
|
-
amountPerLp: ytPriceInAsset,
|
90
|
-
decimals: baseTokenPrice.decimals,
|
91
|
-
networkId,
|
92
|
-
price: baseTokenPrice.price,
|
93
|
-
},
|
94
|
-
],
|
95
|
-
});
|
20
|
+
yield cache.setItem(constants_1.marketsCacheKey, res.data.data, {
|
21
|
+
prefix: constants_1.platformId,
|
22
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
96
23
|
});
|
97
|
-
yield Promise.all([
|
98
|
-
cache.setItem(constants_1.marketsCacheKey, res.data.data, {
|
99
|
-
prefix: constants_1.platformId,
|
100
|
-
networkId: portfolio_core_1.NetworkId.solana,
|
101
|
-
}),
|
102
|
-
cache.setTokenPriceSources(tokenPriceSources),
|
103
|
-
]);
|
104
24
|
});
|
105
25
|
const job = {
|
106
26
|
id: `${constants_1.platformId}-markets`,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"marketsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/exponent/marketsJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA6C;AAC7C,+
|
1
|
+
{"version":3,"file":"marketsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/exponent/marketsJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA6C;AAC7C,+DAAuD;AAGvD,2CAAyE;AAGzE,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,GAAG,GAEJ,MAAM,eAAK,CAAC,GAAG,CAAC,yBAAa,CAAC,CAAC;IAEpC,MAAM,KAAK,CAAC,OAAO,CAAC,2BAAe,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;QAClD,MAAM,EAAE,sBAAU;QAClB,SAAS,EAAE,0BAAS,CAAC,MAAM;KAC5B,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,UAAU;IAC3B,QAAQ;IACR,KAAK,EAAE,QAAQ;CAChB,CAAC;AAEF,kBAAe,GAAG,CAAC"}
|
@@ -31,14 +31,13 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
31
31
|
const market = markets.find((m) => m.vault.id === account.vault.toString());
|
32
32
|
if (!market)
|
33
33
|
return;
|
34
|
-
const element = elementRegistry.
|
34
|
+
const element = elementRegistry.addElementMultiple({
|
35
35
|
label: 'Deposit',
|
36
36
|
name: `${market.vault.platform} ${market.vault.niceName}`,
|
37
37
|
});
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
amount: account.yt_balance,
|
38
|
+
element.addAsset({
|
39
|
+
address: market.vault.mintAsset,
|
40
|
+
amount: account.yt_balance.multipliedBy(1 - market.stats.ptPriceInAsset),
|
42
41
|
});
|
43
42
|
});
|
44
43
|
return elementRegistry.getElements(cache);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"tradeFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/exponent/tradeFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAuD;AAEvD,2CAA2E;AAE3E,gFAA6E;AAC7E,+CAA8D;AAC9D,iDAAsD;AACtD,uCAA6C;AAE7C,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,UAAU,GAAG,IAAA,yBAAe,GAAE,CAAC;IAErC,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAwB,EAC7C,UAAU,EACV,0BAAgB,EAChB,+BAAmB,EACnB;QACE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/C,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;KACxC,CACF,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,OAAO,GAAG,MAAM,uBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,0BAAS,CAAC,MAAM,EAAE,sBAAU,CAAC,CAAC;IAE1E,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,OAAO,GAAG,eAAe,CAAC,
|
1
|
+
{"version":3,"file":"tradeFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/exponent/tradeFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAuD;AAEvD,2CAA2E;AAE3E,gFAA6E;AAC7E,+CAA8D;AAC9D,iDAAsD;AACtD,uCAA6C;AAE7C,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,UAAU,GAAG,IAAA,yBAAe,GAAE,CAAC;IAErC,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAwB,EAC7C,UAAU,EACV,0BAAgB,EAChB,+BAAmB,EACnB;QACE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/C,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;KACxC,CACF,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,OAAO,GAAG,MAAM,uBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,0BAAS,CAAC,MAAM,EAAE,sBAAU,CAAC,CAAC;IAE1E,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,OAAO,GAAG,eAAe,CAAC,kBAAkB,CAAC;YACjD,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;SAC1D,CAAC,CAAC;QAEH,OAAO,CAAC,QAAQ,CAAC;YACf,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;YAC/B,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;SACzE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,QAAQ;IACzB,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|