@sonarwatch/portfolio-plugins 0.14.57 → 0.14.59

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 CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.14.59](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.58...plugins-0.14.59) (2024-12-05)
6
+
7
+
8
+
9
+ ## [0.14.58](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.57...plugins-0.14.58) (2024-12-05)
10
+
11
+
12
+
5
13
  ## [0.14.57](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.56...plugins-0.14.57) (2024-12-05)
6
14
 
7
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.14.57",
3
+ "version": "0.14.59",
4
4
  "type": "commonjs",
5
5
  "types": "./src/index.d.ts",
6
6
  "peerDependencies": {
@@ -15,10 +15,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
16
  const axios_1 = __importDefault(require("axios"));
17
17
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
18
- const constants_1 = require("./constants");
18
+ const constants_1 = require("../tokens/constants");
19
+ const constants_2 = require("./constants");
19
20
  const getLpTokenSource_1 = require("../../utils/misc/getLpTokenSource");
20
21
  const computeAndStoreLpPrice_1 = require("../../utils/misc/computeAndStoreLpPrice");
21
22
  const getLpUnderlyingTokenSource_1 = require("../../utils/misc/getLpUnderlyingTokenSource");
23
+ const getSourceWeight_1 = __importDefault(require("../../utils/misc/getSourceWeight"));
22
24
  const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
23
25
  var _a, _b;
24
26
  let apiRes;
@@ -26,9 +28,10 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
26
28
  let subPools;
27
29
  let tokenPriceById;
28
30
  let lastLiquidity;
31
+ const acceptedPairs = getLpUnderlyingTokenSource_1.defaultAcceptedPairs.get(portfolio_core_1.NetworkId.solana);
29
32
  do {
30
33
  apiRes = yield axios_1.default
31
- .get(`${constants_1.apiV3}pools/info/list`, {
34
+ .get(`${constants_2.apiV3}pools/info/list`, {
32
35
  params: {
33
36
  poolType: 'all',
34
37
  poolSortField: 'liquidity',
@@ -87,7 +90,7 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
87
90
  tokenPriceSources.push(...(0, getLpTokenSource_1.getLpTokenSource)({
88
91
  networkId: portfolio_core_1.NetworkId.solana,
89
92
  sourceId: poolInfo.id,
90
- platformId: constants_1.platformId,
93
+ platformId: constants_2.platformId,
91
94
  priceUnderlyings: true,
92
95
  lpDetails: {
93
96
  address: lpMint.toString(),
@@ -112,28 +115,35 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
112
115
  ],
113
116
  }));
114
117
  }
115
- else {
116
- tokenPriceSources.push(...(0, getLpUnderlyingTokenSource_1.getLpUnderlyingTokenSource)({
117
- networkId: portfolio_core_1.NetworkId.solana,
118
- sourceId: poolInfo.id,
119
- platformId: constants_1.platformId,
120
- poolUnderlyings: [
121
- {
122
- address: mintA,
123
- decimals: decimalsA,
124
- reserveAmount: tokenAmountA,
125
- tokenPrice: tokenPriceA,
126
- weight: 0.5,
127
- },
128
- {
129
- address: mintB,
130
- decimals: decimalsB,
131
- reserveAmount: tokenAmountB,
132
- tokenPrice: tokenPriceB,
133
- weight: 0.5,
134
- },
135
- ],
136
- }));
118
+ else if (acceptedPairs) {
119
+ if (acceptedPairs.includes(mintB) && tokenPriceB) {
120
+ tokenPriceSources.push({
121
+ id: poolInfo.id,
122
+ weight: (0, getSourceWeight_1.default)(poolInfo.tvl),
123
+ address: mintA,
124
+ networkId: portfolio_core_1.NetworkId.solana,
125
+ platformId: constants_1.walletTokensPlatform.id,
126
+ decimals: decimalsA,
127
+ price: new bignumber_js_1.default(tokenPriceB.price)
128
+ .multipliedBy(poolInfo.price)
129
+ .toNumber(),
130
+ timestamp: Date.now(),
131
+ });
132
+ }
133
+ else if (acceptedPairs.includes(mintA) && tokenPriceA) {
134
+ tokenPriceSources.push({
135
+ id: poolInfo.id,
136
+ weight: (0, getSourceWeight_1.default)(poolInfo.tvl),
137
+ address: mintB,
138
+ networkId: portfolio_core_1.NetworkId.solana,
139
+ platformId: constants_1.walletTokensPlatform.id,
140
+ decimals: decimalsB,
141
+ price: new bignumber_js_1.default(tokenPriceA.price)
142
+ .dividedBy(poolInfo.price)
143
+ .toNumber(),
144
+ timestamp: Date.now(),
145
+ });
146
+ }
137
147
  }
138
148
  }
139
149
  yield cache.setTokenPriceSources(tokenPriceSources);
@@ -141,7 +151,7 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
141
151
  } while (subPools.hasNextPage && computeAndStoreLpPrice_1.minimumLiquidity.isLessThan(lastLiquidity));
142
152
  });
143
153
  const job = {
144
- id: `${constants_1.platformId}-lp-tokens-api`,
154
+ id: `${constants_2.platformId}-lp-tokens-api`,
145
155
  executor,
146
156
  label: 'normal',
147
157
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ammV2ApiJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/raydium/ammV2ApiJob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ammV2ApiJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/raydium/ammV2ApiJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAAuD;AACvD,kDAA0B;AAC1B,gEAAqC;AACrC,mDAA2D;AAG3D,2CAAgD;AAEhD,wEAAqE;AACrE,oFAA2E;AAC3E,4FAAmF;AACnF,uFAA+D;AAE/D,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;;IACnD,IAAI,MAAM,CAAC;IACX,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,QAAQ,CAAC;IACb,IAAI,cAAc,CAAC;IACnB,IAAI,aAAa,CAAC;IAElB,MAAM,aAAa,GAAG,iDAAoB,CAAC,GAAG,CAAC,0BAAS,CAAC,MAAM,CAAC,CAAC;IAEjE,GAAG,CAAC;QACF,MAAM,GAAG,MAAM,eAAK;aACjB,GAAG,CAAgB,GAAG,iBAAK,iBAAiB,EAAE;YAC7C,MAAM,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,aAAa,EAAE,WAAW;gBAC1B,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,GAAG;gBACb,IAAI;aACL;SACF,CAAC;aACD,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;YACZ,MAAM,IAAI,KAAK,CACb,sEAAsE,EAAE,EAAE,CAC3E,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;YAAE,OAAO;QAEzC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAEtD,cAAc,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAC9C,QAAQ,CAAC,IAAI;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aACvD,IAAI,EAAE,EACT,0BAAS,CAAC,MAAM,CACjB,CAAC;QAEF,IAAI,QAAQ,CAAC;QACb,IAAI,QAAQ,CAAC;QACb,IAAI,KAAK,CAAC;QACV,IAAI,KAAK,CAAC;QACV,IAAI,MAAM,CAAC;QACX,IAAI,SAAS,CAAC;QACd,IAAI,SAAS,CAAC;QACd,IAAI,UAAU,CAAC;QACf,IAAI,YAAY,CAAC;QACjB,IAAI,YAAY,CAAC;QACjB,IAAI,WAAW,CAAC;QAChB,IAAI,WAAW,CAAC;QAEhB,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAE7B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7B,QAAQ,GAAG,IAAI,sBAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,QAAQ,CAAC,MAAM,EAAE;gBAAE,SAAS;YAChC,IAAI,IAAA,sBAAS,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,yCAAgB,CAAC;gBAAE,SAAS;YAEnE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/B,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YAE/B,MAAM,GAAG,MAAA,QAAQ,CAAC,MAAM,0CAAE,OAAO,CAAC;YAClC,UAAU,GAAG,MAAA,QAAQ,CAAC,MAAM,0CAAE,QAAQ,CAAC;YAEvC,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG;gBACvB,QAAQ,CAAC,KAAK,CAAC,QAAQ;gBACvB,QAAQ,CAAC,KAAK,CAAC,QAAQ;aACxB,CAAC;YAEF,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEvC,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC;YACpC,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC;YAEpC,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG;gBAC3B,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;gBACzB,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;aAC1B,CAAC;YAEF,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;gBACzB,iBAAiB,CAAC,IAAI,CACpB,GAAG,IAAA,mCAAgB,EAAC;oBAClB,SAAS,EAAE,0BAAS,CAAC,MAAM;oBAC3B,QAAQ,EAAE,QAAQ,CAAC,EAAE;oBACrB,UAAU,EAAV,sBAAU;oBACV,gBAAgB,EAAE,IAAI;oBACtB,SAAS,EAAE;wBACT,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE;wBAC1B,QAAQ,EAAE,UAAU;wBACpB,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE;qBAC5B;oBACD,eAAe,EAAE;wBACf;4BACE,OAAO,EAAE,KAAK;4BACd,QAAQ,EAAE,SAAS;4BACnB,aAAa,EAAE,YAAY;4BAC3B,UAAU,EAAE,WAAW;4BACvB,MAAM,EAAE,GAAG;yBACZ;wBACD;4BACE,OAAO,EAAE,KAAK;4BACd,QAAQ,EAAE,SAAS;4BACnB,aAAa,EAAE,YAAY;4BAC3B,UAAU,EAAE,WAAW;4BACvB,MAAM,EAAE,GAAG;yBACZ;qBACF;iBACF,CAAC,CACH,CAAC;YACJ,CAAC;iBAAM,IAAI,aAAa,EAAE,CAAC;gBACzB,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;oBACjD,iBAAiB,CAAC,IAAI,CAAC;wBACrB,EAAE,EAAE,QAAQ,CAAC,EAAE;wBACf,MAAM,EAAE,IAAA,yBAAe,EAAC,QAAQ,CAAC,GAAG,CAAC;wBACrC,OAAO,EAAE,KAAK;wBACd,SAAS,EAAE,0BAAS,CAAC,MAAM;wBAC3B,UAAU,EAAE,gCAAoB,CAAC,EAAE;wBACnC,QAAQ,EAAE,SAAS;wBACnB,KAAK,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC,KAAK,CAAC;6BACpC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;6BAC5B,QAAQ,EAAE;wBACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qBACtB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;oBACxD,iBAAiB,CAAC,IAAI,CAAC;wBACrB,EAAE,EAAE,QAAQ,CAAC,EAAE;wBACf,MAAM,EAAE,IAAA,yBAAe,EAAC,QAAQ,CAAC,GAAG,CAAC;wBACrC,OAAO,EAAE,KAAK;wBACd,SAAS,EAAE,0BAAS,CAAC,MAAM;wBAC3B,UAAU,EAAE,gCAAoB,CAAC,EAAE;wBACnC,QAAQ,EAAE,SAAS;wBACnB,KAAK,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC,KAAK,CAAC;6BACpC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;6BACzB,QAAQ,EAAE;wBACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qBACtB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,CAAC;IACZ,CAAC,QAAQ,QAAQ,CAAC,WAAW,IAAI,yCAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;AAC/E,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,gBAAgB;IACjC,QAAQ;IACR,KAAK,EAAE,QAAQ;CAChB,CAAC;AACF,kBAAe,GAAG,CAAC"}