@sonarwatch/portfolio-plugins 0.8.70 → 0.8.71

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,10 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
- ## [0.8.70](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.69...plugins-0.8.70) (2023-11-09)
5
+ ## [0.8.71](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.70...plugins-0.8.71) (2023-11-09)
6
6
 
7
7
 
8
8
 
9
+ ## [0.8.70](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.69...plugins-0.8.70) (2023-11-09)
10
+
11
+
12
+
9
13
  ## [0.8.69](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.68...plugins-0.8.69) (2023-11-09)
10
14
 
11
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.8.70",
3
+ "version": "0.8.71",
4
4
  "type": "commonjs",
5
5
  "generators": "./generators.json",
6
6
  "dependencies": {
@@ -39,7 +39,7 @@
39
39
  "web3-v1": "npm:web3@^1.5.0"
40
40
  },
41
41
  "peerDependencies": {
42
- "@sonarwatch/portfolio-core": "0.8.70"
42
+ "@sonarwatch/portfolio-core": "0.8.71"
43
43
  },
44
44
  "main": "./src/index.js",
45
45
  "types": "./src/index.d.ts"
@@ -13,12 +13,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const web3_js_1 = require("@solana/web3.js");
16
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
16
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
18
17
  const constants_1 = require("./constants");
19
18
  const clients_1 = require("../../utils/clients");
20
19
  const solana_1 = require("../../utils/solana");
21
20
  const structs_1 = require("./structs");
21
+ const getLpTokenSourceRaw_1 = __importDefault(require("../../utils/misc/getLpTokenSourceRaw"));
22
22
  const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
23
23
  const connection = (0, clients_1.getClientSolana)();
24
24
  const pools = yield (0, solana_1.getParsedProgramAccounts)(connection, structs_1.poolStruct, new web3_js_1.PublicKey(constants_1.fluxbeamPoolsPid), [{ dataSize: structs_1.poolStruct.byteSize }]);
@@ -36,16 +36,6 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
36
36
  const tokenMintsAddresses = pools
37
37
  .map((pool) => [pool.tokenAMint.toString(), pool.tokenBMint.toString()])
38
38
  .flat();
39
- // const tokenMints = await getParsedMultipleAccountsInfo(
40
- // connection,
41
- // mintAccountStruct,
42
- // tokenMintsAddresses
43
- // );
44
- // const tokenMintsMap: Map<string, ParsedAccount<MintAccount>> = new Map();
45
- // tokenMints.forEach((tokenMint) => {
46
- // if (!tokenMint) return;
47
- // tokenMintsMap.set(tokenMint.pubkey.toString(), tokenMint);
48
- // });
49
39
  const tokenPriceResults = yield cache.getTokenPrices(tokenMintsAddresses, portfolio_core_1.NetworkId.solana);
50
40
  const tokenPrices = new Map();
51
41
  tokenPriceResults.forEach((tokenPrice) => {
@@ -68,43 +58,24 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
68
58
  const tokenAccountB = tokenAccountsMap.get(pool.tokenB.toString());
69
59
  if (!tokenAccountA || !tokenAccountB)
70
60
  continue;
71
- const amountA = new bignumber_js_1.default(tokenAccountA.amount.toString())
72
- .div(Math.pow(10, tokenPriceA.decimals))
73
- .toNumber();
74
- const amountB = new bignumber_js_1.default(tokenAccountB.amount.toString())
75
- .div(Math.pow(10, tokenPriceB.decimals))
76
- .toNumber();
77
- const lpSupply = new bignumber_js_1.default(poolMint.supply)
78
- .div(Math.pow(10, poolMint.decimals))
79
- .toNumber();
80
- const price = (amountA * tokenPriceA.price + amountB * tokenPriceB.price) / lpSupply;
81
- const source = {
82
- networkId: portfolio_core_1.NetworkId.solana,
83
- elementName: 'Pools',
84
- platformId: constants_1.platformId,
85
- id: constants_1.platformId,
86
- weight: 1,
61
+ const source = (0, getLpTokenSourceRaw_1.default)(portfolio_core_1.NetworkId.solana, constants_1.platformId, constants_1.platformId, 'Pools', {
87
62
  address: pool.poolMint.toString(),
88
- price,
89
63
  decimals: poolMint.decimals,
90
- underlyings: [
91
- {
92
- networkId: portfolio_core_1.NetworkId.solana,
93
- address: tokenPriceA.address.toString(),
94
- decimals: tokenPriceA.decimals,
95
- price: tokenPriceA.price,
96
- amountPerLp: amountA / lpSupply,
97
- },
98
- {
99
- networkId: portfolio_core_1.NetworkId.solana,
100
- address: tokenPriceB.address.toString(),
101
- decimals: tokenPriceB.decimals,
102
- price: tokenPriceB.price,
103
- amountPerLp: amountB / lpSupply,
104
- },
105
- ],
106
- timestamp: Date.now(),
107
- };
64
+ supplyRaw: poolMint.supply,
65
+ }, [
66
+ {
67
+ address: tokenPriceA.address,
68
+ decimals: tokenPriceA.decimals,
69
+ price: tokenPriceA.price,
70
+ reserveAmountRaw: tokenAccountA.amount,
71
+ },
72
+ {
73
+ address: tokenPriceB.address,
74
+ decimals: tokenPriceB.decimals,
75
+ price: tokenPriceB.price,
76
+ reserveAmountRaw: tokenAccountB.amount,
77
+ },
78
+ ]);
108
79
  yield cache.setTokenPriceSource(source);
109
80
  }
110
81
  });
@@ -1 +1 @@
1
- {"version":3,"file":"poolsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/fluxbeam/poolsJob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poolsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/fluxbeam/poolsJob.ts"],"names":[],"mappings":"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"}
@@ -36,28 +36,28 @@ exports.getPairsV2 = void 0;
36
36
  const graphql_request_1 = __importStar(require("graphql-request"));
37
37
  function getPairsV2(url) {
38
38
  return __awaiter(this, void 0, void 0, function* () {
39
- const query = (0, graphql_request_1.gql) `
40
- {
41
- pairs(
42
- orderBy: reserveUSD
43
- first: 500
44
- orderDirection: desc
45
- where: { trackedReserveETH_not: "0" }
46
- ) {
47
- id
48
- reserve0
49
- reserve1
50
- totalSupply
51
- token0 {
52
- id
53
- decimals
54
- }
55
- token1 {
56
- id
57
- decimals
58
- }
59
- }
60
- }
39
+ const query = (0, graphql_request_1.gql) `
40
+ {
41
+ pairs(
42
+ orderBy: reserveUSD
43
+ first: 500
44
+ orderDirection: desc
45
+ where: { trackedReserveETH_not: "0" }
46
+ ) {
47
+ id
48
+ reserve0
49
+ reserve1
50
+ totalSupply
51
+ token0 {
52
+ id
53
+ decimals
54
+ }
55
+ token1 {
56
+ id
57
+ decimals
58
+ }
59
+ }
60
+ }
61
61
  `;
62
62
  const res = yield (0, graphql_request_1.default)(url, query);
63
63
  const pairs = res.pairs;
@@ -0,0 +1,14 @@
1
+ import { NetworkIdType, TokenPriceSource } from '@sonarwatch/portfolio-core';
2
+ type PoolUnderlying = {
3
+ address: string;
4
+ reserveAmount: number;
5
+ price: number;
6
+ decimals: number;
7
+ };
8
+ type LpDetails = {
9
+ address: string;
10
+ decimals: number;
11
+ supply: number;
12
+ };
13
+ export default function getLpTokenSource(networkId: NetworkIdType, sourceId: string, platformId: string, elementName: string, lpDetails: LpDetails, poolUnderlyings: PoolUnderlying[]): TokenPriceSource;
14
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function getLpTokenSource(networkId, sourceId, platformId, elementName, lpDetails, poolUnderlyings) {
4
+ const price = poolUnderlyings.reduce((acc, u) => u.reserveAmount * u.price, 0) /
5
+ lpDetails.supply;
6
+ return {
7
+ networkId,
8
+ platformId,
9
+ id: sourceId,
10
+ elementName,
11
+ weight: 1,
12
+ address: lpDetails.address,
13
+ price,
14
+ decimals: lpDetails.decimals,
15
+ underlyings: poolUnderlyings.map((u) => ({
16
+ networkId,
17
+ address: u.address,
18
+ price: u.price,
19
+ amountPerLp: u.reserveAmount / lpDetails.supply,
20
+ decimals: u.decimals,
21
+ })),
22
+ timestamp: Date.now(),
23
+ };
24
+ }
25
+ exports.default = getLpTokenSource;
26
+ //# sourceMappingURL=getLpTokenSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLpTokenSource.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/getLpTokenSource.ts"],"names":[],"mappings":";;AAeA,SAAwB,gBAAgB,CACtC,SAAwB,EACxB,QAAgB,EAChB,UAAkB,EAClB,WAAmB,EACnB,SAAoB,EACpB,eAAiC;IAEjC,MAAM,KAAK,GACT,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAChE,SAAS,CAAC,MAAM,CAAC;IAEnB,OAAO;QACL,SAAS;QACT,UAAU;QACV,EAAE,EAAE,QAAQ;QACZ,WAAW;QACX,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,KAAK;QACL,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,WAAW,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,SAAS;YACT,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM;YAC/C,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC;QACH,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AA9BD,mCA8BC"}
@@ -0,0 +1,15 @@
1
+ import { NetworkIdType, TokenPriceSource } from '@sonarwatch/portfolio-core';
2
+ import BigNumber from 'bignumber.js';
3
+ type PoolUnderlyingRaw = {
4
+ address: string;
5
+ reserveAmountRaw: BigNumber;
6
+ price: number;
7
+ decimals: number;
8
+ };
9
+ type LpDetailsRaw = {
10
+ address: string;
11
+ decimals: number;
12
+ supplyRaw: BigNumber;
13
+ };
14
+ export default function getLpTokenSourceRaw(networkId: NetworkIdType, sourceId: string, platformId: string, elementName: string, lpDetailsRaw: LpDetailsRaw, poolUnderlyingsRaw: PoolUnderlyingRaw[]): TokenPriceSource;
15
+ export {};
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const getLpTokenSource_1 = __importDefault(require("./getLpTokenSource"));
7
+ function getLpTokenSourceRaw(networkId, sourceId, platformId, elementName, lpDetailsRaw, poolUnderlyingsRaw) {
8
+ return (0, getLpTokenSource_1.default)(networkId, sourceId, platformId, elementName, Object.assign(Object.assign({}, lpDetailsRaw), { supply: lpDetailsRaw.supplyRaw
9
+ .div(Math.pow(10, lpDetailsRaw.decimals))
10
+ .toNumber() }), poolUnderlyingsRaw.map((u) => (Object.assign(Object.assign({}, u), { reserveAmount: u.reserveAmountRaw.div(Math.pow(10, u.decimals)).toNumber() }))));
11
+ }
12
+ exports.default = getLpTokenSourceRaw;
13
+ //# sourceMappingURL=getLpTokenSourceRaw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLpTokenSourceRaw.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/getLpTokenSourceRaw.ts"],"names":[],"mappings":";;;;;AAEA,0EAAkD;AAelD,SAAwB,mBAAmB,CACzC,SAAwB,EACxB,QAAgB,EAChB,UAAkB,EAClB,WAAmB,EACnB,YAA0B,EAC1B,kBAAuC;IAEvC,OAAO,IAAA,0BAAgB,EACrB,SAAS,EACT,QAAQ,EACR,UAAU,EACV,WAAW,kCAEN,YAAY,KACf,MAAM,EAAE,YAAY,CAAC,SAAS;aAC3B,GAAG,CAAC,SAAA,EAAE,EAAI,YAAY,CAAC,QAAQ,CAAA,CAAC;aAChC,QAAQ,EAAE,KAEf,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iCACzB,CAAC,KACJ,aAAa,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAA,EAAE,EAAI,CAAC,CAAC,QAAQ,CAAA,CAAC,CAAC,QAAQ,EAAE,IAClE,CAAC,CACJ,CAAC;AACJ,CAAC;AAxBD,sCAwBC"}