@sonarwatch/portfolio-plugins 0.15.6 → 0.15.8
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 +9 -1
- package/package.json +1 -1
- package/src/plugins/meteora/dlmm/dlmmJob.js +5 -3
- package/src/plugins/meteora/dlmm/dlmmJob.js.map +1 -1
- package/src/plugins/meteora/index.js +2 -2
- package/src/plugins/meteora/index.js.map +1 -1
- package/src/plugins/pumpswap/marketsJob.js +10 -2
- package/src/plugins/pumpswap/marketsJob.js.map +1 -1
- package/src/utils/misc/MemoizedCache.d.ts +1 -0
- package/src/utils/misc/MemoizedCache.js +12 -2
- package/src/utils/misc/MemoizedCache.js.map +1 -1
package/CHANGELOG.md
CHANGED
@@ -2,10 +2,18 @@
|
|
2
2
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
4
4
|
|
5
|
-
## [0.15.
|
5
|
+
## [0.15.8](https://github.com/sonarwatch/portfolio/compare/plugins-0.15.7...plugins-0.15.8) (2025-05-19)
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
+
## [0.15.7](https://github.com/sonarwatch/portfolio/compare/plugins-0.15.6...plugins-0.15.7) (2025-05-19)
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
## [0.15.6](https://github.com/sonarwatch/portfolio/compare/plugins-0.15.5...plugins-0.15.6) (2025-05-18)
|
14
|
+
|
15
|
+
|
16
|
+
|
9
17
|
## [0.15.5](https://github.com/sonarwatch/portfolio/compare/plugins-0.15.4...plugins-0.15.5) (2025-05-16)
|
10
18
|
|
11
19
|
|
package/package.json
CHANGED
@@ -35,9 +35,11 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
35
|
.flat(), portfolio_core_1.NetworkId.solana);
|
36
36
|
for (const pair of apiRes.data.pairs) {
|
37
37
|
const tokenPriceX = tokenPrices.get(pair.mint_x);
|
38
|
-
const decimalsX =
|
38
|
+
const decimalsX = (tokenPriceX === null || tokenPriceX === void 0 ? void 0 : tokenPriceX.decimals) ||
|
39
|
+
(yield (0, getCachedDecimalsForToken_1.getCachedDecimalsForToken)(cache, pair.mint_x, portfolio_core_1.NetworkId.solana));
|
39
40
|
const tokenPriceY = tokenPrices.get(pair.mint_y);
|
40
|
-
const decimalsY =
|
41
|
+
const decimalsY = (tokenPriceY === null || tokenPriceY === void 0 ? void 0 : tokenPriceY.decimals) ||
|
42
|
+
(yield (0, getCachedDecimalsForToken_1.getCachedDecimalsForToken)(cache, pair.mint_y, portfolio_core_1.NetworkId.solana));
|
41
43
|
if (!decimalsX || !decimalsY)
|
42
44
|
continue;
|
43
45
|
const price = pair.current_price;
|
@@ -80,7 +82,7 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
|
80
82
|
address: pair.mint_x,
|
81
83
|
networkId: portfolio_core_1.NetworkId.solana,
|
82
84
|
platformId: portfolio_core_1.walletTokensPlatformId,
|
83
|
-
decimals:
|
85
|
+
decimals: decimalsX,
|
84
86
|
price: new bignumber_js_1.default(tokenPriceY.price)
|
85
87
|
.multipliedBy(price)
|
86
88
|
.toNumber(),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dlmmJob.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/meteora/dlmm/dlmmJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAMoC;AACpC,gEAAqC;AACrC,kDAA0B;AAG1B,4CAA0C;AAC1C,0FAAkE;AAClE,+FAAsF;AACtF,6FAA0F;AAC1F,uFAA8E;AAE9E,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,aAAa,GAAG,iDAAoB,CAAC,GAAG,CAAC,0BAAS,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,CAAC,aAAa;QAAE,OAAO;IAE3B,IAAI,MAAM,CAAC;IACX,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,GAAG,CAAC;QACF,MAAM,GAAG,MAAM,eAAK,CAAC,GAAG,CAYtB,6DAA6D,IAAI,UAAU,KAAK,iBAAiB,yCAAgB,CAAC,YAAY,CAC5H,CAAC,CACF,wBAAwB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACnD,CAAC;QAEF,MAAM,iBAAiB,GAAuB,EAAE,CAAC;QAEjD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,mBAAmB,CACjD,MAAM,CAAC,IAAI,CAAC,KAAK;aACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACvD,IAAI,EAAE,EACT,0BAAS,CAAC,MAAM,CACjB,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,SAAS,
|
1
|
+
{"version":3,"file":"dlmmJob.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/meteora/dlmm/dlmmJob.ts"],"names":[],"mappings":"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"}
|
@@ -16,13 +16,13 @@ const stakeForFeeFetcher_1 = __importDefault(require("./stake2earn/stakeForFeeFe
|
|
16
16
|
const stakeForFeeVaultsJob_1 = __importDefault(require("./stake2earn/stakeForFeeVaultsJob"));
|
17
17
|
const cpammV2Job_1 = __importDefault(require("./cpamm/cpammV2Job"));
|
18
18
|
const cpammPositionsFetcher_1 = __importDefault(require("./cpamm/cpammPositionsFetcher"));
|
19
|
-
|
19
|
+
// import dlmmJob from './dlmm/dlmmJob';
|
20
20
|
exports.jobs = [
|
21
21
|
vaultsJob_1.default,
|
22
22
|
poolsJob_1.default,
|
23
23
|
farmsJob_1.default,
|
24
24
|
multiTokenPoolsJob_1.default,
|
25
|
-
|
25
|
+
// dlmmJob,
|
26
26
|
dlmmVaultsJob_1.default,
|
27
27
|
stakeForFeeVaultsJob_1.default,
|
28
28
|
cpammV2Job_1.default,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/meteora/index.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoC;AACpC,gEAAwC;AACxC,8FAAsE;AACtE,gEAAwC;AACxC,yEAAiD;AAGjD,wEAAgD;AAChD,uFAA8D;AAC9D,iFAAyD;AACzD,yFAAiE;AACjE,6FAAqE;AACrE,oEAA2C;AAC3C,0FAAiE;AACjE,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/meteora/index.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoC;AACpC,gEAAwC;AACxC,8FAAsE;AACtE,gEAAwC;AACxC,yEAAiD;AAGjD,wEAAgD;AAChD,uFAA8D;AAC9D,iFAAyD;AACzD,yFAAiE;AACjE,6FAAqE;AACrE,oEAA2C;AAC3C,0FAAiE;AACjE,wCAAwC;AAE3B,QAAA,IAAI,GAAU;IACzB,mBAAS;IACT,kBAAQ;IACR,kBAAQ;IACR,4BAAkB;IAClB,WAAW;IACX,uBAAa;IACb,8BAAoB;IACpB,oBAAS;CACV,CAAC;AACW,QAAA,QAAQ,GAAc;IACjC,sBAAY;IACZ,8BAAmB;IACnB,2BAAiB;IACjB,4BAAkB;IAClB,+BAAoB;CACrB,CAAC"}
|
@@ -35,8 +35,16 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
35
|
(0, solana_1.getParsedMultipleAccountsInfo)(connection, solana_1.tokenAccountStruct, markets.map((market) => market.pool_quote_token_account)),
|
36
36
|
]);
|
37
37
|
const [baseDecimals, quoteDecimals] = yield Promise.all([
|
38
|
-
Promise.all(markets.map((market) =>
|
39
|
-
|
38
|
+
Promise.all(markets.map((market) => {
|
39
|
+
const tokenPrice = tokenPrices.get(market.base_mint.toString());
|
40
|
+
return ((tokenPrice === null || tokenPrice === void 0 ? void 0 : tokenPrice.decimals) ||
|
41
|
+
(0, getCachedDecimalsForToken_1.getCachedDecimalsForToken)(cache, market.base_mint.toString(), portfolio_core_1.NetworkId.solana));
|
42
|
+
})),
|
43
|
+
Promise.all(markets.map((market) => {
|
44
|
+
const tokenPrice = tokenPrices.get(market.quote_mint.toString());
|
45
|
+
return ((tokenPrice === null || tokenPrice === void 0 ? void 0 : tokenPrice.decimals) ||
|
46
|
+
(0, getCachedDecimalsForToken_1.getCachedDecimalsForToken)(cache, market.quote_mint.toString(), portfolio_core_1.NetworkId.solana));
|
47
|
+
})),
|
40
48
|
]);
|
41
49
|
const sources = [];
|
42
50
|
markets.forEach((market, i) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"marketsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/pumpswap/marketsJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAyE;AAGzE,2CAAoD;AACpD,iDAAsD;AACtD,uCAAyC;AACzC,kEAA+D;AAC/D,+CAG4B;AAC5B,8EAA2E;AAC3E,0FAAuF;AAEvF,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,UAAU,GAAG,IAAA,yBAAe,GAAE,CAAC;IAErC,MAAM,OAAO,GAAG,MAAM,qBAAS,CAAC,KAAK,CAAC,UAAU,EAAE,sBAAY,EAAE,qBAAS,CAAC;SACvE,SAAS,CAAC,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACxE,GAAG,EAAE,CAAC;IAET,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAElD,MAAM,CAAC,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,GACxD,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,KAAK,CAAC,mBAAmB,CACvB,OAAO;aACJ,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC3B,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;SAC7B,CAAC;aACD,IAAI,EAAE,EACT,0BAAS,CAAC,MAAM,CACjB;QACD,IAAA,sCAA6B,EAC3B,UAAU,EACV,2BAAkB,EAClB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CACxD;QACD,IAAA,sCAA6B,EAC3B,UAAU,EACV,2BAAkB,EAClB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CACzD;KACF,CAAC,CAAC;IAEL,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtD,OAAO,CAAC,GAAG,CACT,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,
|
1
|
+
{"version":3,"file":"marketsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/pumpswap/marketsJob.ts"],"names":[],"mappings":"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"}
|
@@ -6,6 +6,7 @@ export declare class MemoizedCache<T extends StorageValue, K = T> {
|
|
6
6
|
private readonly transform;
|
7
7
|
private readonly ttl;
|
8
8
|
private readonly fetch;
|
9
|
+
private fetchPromise;
|
9
10
|
private item;
|
10
11
|
private lastUpdate;
|
11
12
|
constructor(key: string, opts: TransactionOptions, transform?: (i: T | undefined) => K, ttl?: number, fetch?: () => Promise<T>);
|
@@ -20,8 +20,18 @@ class MemoizedCache {
|
|
20
20
|
if (!this.item || this.lastUpdate + this.ttl < now) {
|
21
21
|
let rawItem = yield cache.getItem(this.key, this.opts);
|
22
22
|
if (!rawItem && this.fetch) {
|
23
|
-
|
24
|
-
|
23
|
+
if (!this.fetchPromise) {
|
24
|
+
this.fetchPromise = this.fetch();
|
25
|
+
this.fetchPromise
|
26
|
+
.then((i) => {
|
27
|
+
cache.setItem(this.key, i, this.opts);
|
28
|
+
return i;
|
29
|
+
})
|
30
|
+
.finally(() => {
|
31
|
+
this.fetchPromise = undefined;
|
32
|
+
});
|
33
|
+
}
|
34
|
+
rawItem = yield this.fetchPromise;
|
25
35
|
}
|
26
36
|
this.item = this.transform ? this.transform(rawItem) : rawItem;
|
27
37
|
this.lastUpdate = now;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MemoizedCache.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/MemoizedCache.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,MAAM,mCAAmC,GAAG,OAAO,CAAC;AAEpD,wCAAwC;AACxC,iDAAiD;AACjD,MAAa,aAAa;
|
1
|
+
{"version":3,"file":"MemoizedCache.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/MemoizedCache.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,MAAM,mCAAmC,GAAG,OAAO,CAAC;AAEpD,wCAAwC;AACxC,iDAAiD;AACjD,MAAa,aAAa;IAWxB,YACE,GAAW,EACX,IAAwB,EACxB,SAAmC,EACnC,MAAc,mCAAmC,EACjD,KAAwB;QAU1B,YAAO,GAAG,CAAO,KAAY,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;gBACnD,IAAI,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE1D,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;wBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;wBACjC,IAAI,CAAC,YAAY;6BACd,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;4BACV,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;4BACtC,OAAO,CAAC,CAAC;wBACX,CAAC,CAAC;6BACD,OAAO,CAAC,GAAG,EAAE;4BACZ,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;wBAChC,CAAC,CAAC,CAAC;oBACP,CAAC;oBACD,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;gBACpC,CAAC;gBAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,OAAa,CAAC;gBACtE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACxB,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,CAAA,CAAC;QAlCA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CA6BF;AArDD,sCAqDC"}
|