@sonarwatch/portfolio-plugins 0.8.72 → 0.8.74

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,18 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
- ## [0.8.72](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.71...plugins-0.8.72) (2023-11-10)
5
+ ## [0.8.74](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.73...plugins-0.8.74) (2023-11-11)
6
6
 
7
7
 
8
8
 
9
+ ## [0.8.73](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.72...plugins-0.8.73) (2023-11-10)
10
+
11
+
12
+
13
+ ## [0.8.72](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.71...plugins-0.8.72) (2023-11-10)
14
+
15
+
16
+
9
17
  ## [0.8.71](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.70...plugins-0.8.71) (2023-11-09)
10
18
 
11
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.8.72",
3
+ "version": "0.8.74",
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.72"
42
+ "@sonarwatch/portfolio-core": "0.8.74"
43
43
  },
44
44
  "main": "./src/index.js",
45
45
  "types": "./src/index.d.ts"
@@ -19,13 +19,15 @@ const clients_1 = require("../../utils/clients");
19
19
  const solana_1 = require("../../utils/solana");
20
20
  const structs_1 = require("./structs");
21
21
  const getLpTokenSourceRaw_1 = __importDefault(require("../../utils/misc/getLpTokenSourceRaw"));
22
+ const getLpUnderlyingTokenSource_1 = __importDefault(require("../../utils/misc/getLpUnderlyingTokenSource"));
22
23
  const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
23
24
  const connection = (0, clients_1.getClientSolana)();
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 }]);
25
- const tokenAccountsAddresses = pools
25
+ let pools = yield (0, solana_1.getParsedProgramAccounts)(connection, structs_1.poolStruct, new web3_js_1.PublicKey(constants_1.fluxbeamPoolsPid), [{ dataSize: structs_1.poolStruct.byteSize }]);
26
+ pools = pools.filter((pool) => pool.isInitialized);
27
+ const reserveAccountsAddresses = pools
26
28
  .map((pool) => [pool.tokenA, pool.tokenB])
27
29
  .flat();
28
- const tokenAccounts = yield (0, solana_1.getParsedMultipleAccountsInfo)(connection, solana_1.tokenAccountStruct, tokenAccountsAddresses);
30
+ const tokenAccounts = yield (0, solana_1.getParsedMultipleAccountsInfo)(connection, solana_1.tokenAccountStruct, reserveAccountsAddresses);
29
31
  const tokenAccountsMap = new Map();
30
32
  tokenAccounts.forEach((tokenAccount) => {
31
33
  if (!tokenAccount)
@@ -33,9 +35,18 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
33
35
  tokenAccountsMap.set(tokenAccount.pubkey.toString(), tokenAccount);
34
36
  });
35
37
  const poolMints = yield (0, solana_1.getParsedMultipleAccountsInfo)(connection, solana_1.mintAccountStruct, pools.map((p) => p.poolMint));
36
- const tokenMintsAddresses = pools
37
- .map((pool) => [pool.tokenAMint.toString(), pool.tokenBMint.toString()])
38
- .flat();
38
+ const tokenMintsAddresses = [
39
+ ...new Set(pools
40
+ .map((pool) => [pool.tokenAMint.toString(), pool.tokenBMint.toString()])
41
+ .flat()),
42
+ ];
43
+ const tokenMintsAccounts = yield (0, solana_1.getParsedMultipleAccountsInfo)(connection, solana_1.mintAccountStruct, tokenMintsAddresses.map((a) => new web3_js_1.PublicKey(a)));
44
+ const tokenMintsAccountsMap = new Map();
45
+ tokenMintsAccounts.forEach((tokenMintAccount) => {
46
+ if (!tokenMintAccount)
47
+ return;
48
+ tokenMintsAccountsMap.set(tokenMintAccount.pubkey.toString(), tokenMintAccount);
49
+ });
39
50
  const tokenPriceResults = yield cache.getTokenPrices(tokenMintsAddresses, portfolio_core_1.NetworkId.solana);
40
51
  const tokenPrices = new Map();
41
52
  tokenPriceResults.forEach((tokenPrice) => {
@@ -50,15 +61,33 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
50
61
  const poolMint = poolMints[i];
51
62
  if (!poolMint)
52
63
  continue;
53
- const tokenPriceA = tokenPrices.get(pool.tokenAMint.toString());
54
- const tokenPriceB = tokenPrices.get(pool.tokenBMint.toString());
55
- if (!tokenPriceA || !tokenPriceB)
56
- continue;
57
64
  const tokenAccountA = tokenAccountsMap.get(pool.tokenA.toString());
58
65
  const tokenAccountB = tokenAccountsMap.get(pool.tokenB.toString());
59
66
  if (!tokenAccountA || !tokenAccountB)
60
67
  continue;
61
- const source = (0, getLpTokenSourceRaw_1.default)(portfolio_core_1.NetworkId.solana, constants_1.platformId, constants_1.platformId, 'Pools', {
68
+ const mintAccountA = tokenMintsAccountsMap.get(pool.tokenAMint.toString());
69
+ const mintAccountB = tokenMintsAccountsMap.get(pool.tokenBMint.toString());
70
+ if (!mintAccountA || !mintAccountB)
71
+ continue;
72
+ const tokenPriceA = tokenPrices.get(pool.tokenAMint.toString());
73
+ const tokenPriceB = tokenPrices.get(pool.tokenBMint.toString());
74
+ const underlyingsSource = (0, getLpUnderlyingTokenSource_1.default)(constants_1.platformId, constants_1.platformId, portfolio_core_1.NetworkId.solana, {
75
+ address: pool.tokenAMint.toString(),
76
+ decimals: mintAccountA.decimals,
77
+ reserveAmountRaw: tokenAccountA.amount,
78
+ tokenPrice: tokenPriceA,
79
+ }, {
80
+ address: pool.tokenBMint.toString(),
81
+ decimals: mintAccountB.decimals,
82
+ reserveAmountRaw: tokenAccountB.amount,
83
+ tokenPrice: tokenPriceB,
84
+ });
85
+ if (underlyingsSource) {
86
+ yield cache.setTokenPriceSource(underlyingsSource);
87
+ }
88
+ if (!tokenPriceA || !tokenPriceB)
89
+ continue;
90
+ const lpSource = (0, getLpTokenSourceRaw_1.default)(portfolio_core_1.NetworkId.solana, constants_1.platformId, constants_1.platformId, 'Pools', {
62
91
  address: pool.poolMint.toString(),
63
92
  decimals: poolMint.decimals,
64
93
  supplyRaw: poolMint.supply,
@@ -76,7 +105,7 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
76
105
  reserveAmountRaw: tokenAccountB.amount,
77
106
  },
78
107
  ]);
79
- yield cache.setTokenPriceSource(source);
108
+ yield cache.setTokenPriceSource(lpSource);
80
109
  }
81
110
  });
82
111
  const job = {
@@ -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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"}
@@ -25,7 +25,7 @@ export type SwapCurve = {
25
25
  export declare const swapCurveStruct: BeetStruct<SwapCurve, Partial<SwapCurve>>;
26
26
  export type Pool = {
27
27
  padding: Buffer;
28
- isInitialized: number;
28
+ isInitialized: boolean;
29
29
  bumpSeed: number;
30
30
  tokenProgramId: PublicKey;
31
31
  tokenA: PublicKey;
@@ -26,7 +26,7 @@ exports.swapCurveStruct = new beet_1.BeetStruct([
26
26
  ], (args) => args);
27
27
  exports.poolStruct = new beet_1.BeetStruct([
28
28
  ['padding', (0, solana_1.blob)(1)],
29
- ['isInitialized', beet_1.u8],
29
+ ['isInitialized', beet_1.bool],
30
30
  ['bumpSeed', beet_1.u8],
31
31
  ['tokenProgramId', beet_solana_1.publicKey],
32
32
  ['tokenA', beet_solana_1.publicKey],
@@ -1 +1 @@
1
- {"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/fluxbeam/structs.ts"],"names":[],"mappings":";;;AAAA,oDAA2D;AAC3D,kEAA6D;AAG7D,+CAA+C;AAalC,QAAA,UAAU,GAAG,IAAI,iBAAU,CACtC;IACE,CAAC,mBAAmB,EAAE,YAAG,CAAC;IAC1B,CAAC,qBAAqB,EAAE,YAAG,CAAC;IAC5B,CAAC,wBAAwB,EAAE,YAAG,CAAC;IAC/B,CAAC,0BAA0B,EAAE,YAAG,CAAC;IACjC,CAAC,2BAA2B,EAAE,YAAG,CAAC;IAClC,CAAC,6BAA6B,EAAE,YAAG,CAAC;IACpC,CAAC,kBAAkB,EAAE,YAAG,CAAC;IACzB,CAAC,oBAAoB,EAAE,YAAG,CAAC;CAC5B,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAY,CACvB,CAAC;AAEF,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,+DAAe,CAAA;IACf,2DAAa,CAAA;IACb,6CAAM,CAAA;AACR,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAOY,QAAA,eAAe,GAAG,IAAI,iBAAU,CAC3C;IACE,CAAC,WAAW,EAAE,SAAE,CAAC;IACjB,CAAC,YAAY,EAAE,IAAA,aAAI,EAAC,EAAE,CAAC,CAAC;CACzB,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAiB,CAC5B,CAAC;AAiBW,QAAA,UAAU,GAAG,IAAI,iBAAU,CACtC;IACE,CAAC,SAAS,EAAE,IAAA,aAAI,EAAC,CAAC,CAAC,CAAC;IACpB,CAAC,eAAe,EAAE,SAAE,CAAC;IACrB,CAAC,UAAU,EAAE,SAAE,CAAC;IAChB,CAAC,gBAAgB,EAAE,uBAAS,CAAC;IAC7B,CAAC,QAAQ,EAAE,uBAAS,CAAC;IACrB,CAAC,QAAQ,EAAE,uBAAS,CAAC;IACrB,CAAC,UAAU,EAAE,uBAAS,CAAC;IACvB,CAAC,YAAY,EAAE,uBAAS,CAAC;IACzB,CAAC,YAAY,EAAE,uBAAS,CAAC;IACzB,CAAC,gBAAgB,EAAE,uBAAS,CAAC;IAC7B,CAAC,MAAM,EAAE,kBAAU,CAAC;IACpB,CAAC,WAAW,EAAE,uBAAe,CAAC;CAC/B,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAY,CACvB,CAAC"}
1
+ {"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/fluxbeam/structs.ts"],"names":[],"mappings":";;;AAAA,oDAAiE;AACjE,kEAA6D;AAG7D,+CAA+C;AAalC,QAAA,UAAU,GAAG,IAAI,iBAAU,CACtC;IACE,CAAC,mBAAmB,EAAE,YAAG,CAAC;IAC1B,CAAC,qBAAqB,EAAE,YAAG,CAAC;IAC5B,CAAC,wBAAwB,EAAE,YAAG,CAAC;IAC/B,CAAC,0BAA0B,EAAE,YAAG,CAAC;IACjC,CAAC,2BAA2B,EAAE,YAAG,CAAC;IAClC,CAAC,6BAA6B,EAAE,YAAG,CAAC;IACpC,CAAC,kBAAkB,EAAE,YAAG,CAAC;IACzB,CAAC,oBAAoB,EAAE,YAAG,CAAC;CAC5B,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAY,CACvB,CAAC;AAEF,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,+DAAe,CAAA;IACf,2DAAa,CAAA;IACb,6CAAM,CAAA;AACR,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAOY,QAAA,eAAe,GAAG,IAAI,iBAAU,CAC3C;IACE,CAAC,WAAW,EAAE,SAAE,CAAC;IACjB,CAAC,YAAY,EAAE,IAAA,aAAI,EAAC,EAAE,CAAC,CAAC;CACzB,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAiB,CAC5B,CAAC;AAiBW,QAAA,UAAU,GAAG,IAAI,iBAAU,CACtC;IACE,CAAC,SAAS,EAAE,IAAA,aAAI,EAAC,CAAC,CAAC,CAAC;IACpB,CAAC,eAAe,EAAE,WAAI,CAAC;IACvB,CAAC,UAAU,EAAE,SAAE,CAAC;IAChB,CAAC,gBAAgB,EAAE,uBAAS,CAAC;IAC7B,CAAC,QAAQ,EAAE,uBAAS,CAAC;IACrB,CAAC,QAAQ,EAAE,uBAAS,CAAC;IACrB,CAAC,UAAU,EAAE,uBAAS,CAAC;IACvB,CAAC,YAAY,EAAE,uBAAS,CAAC;IACzB,CAAC,YAAY,EAAE,uBAAS,CAAC;IACzB,CAAC,gBAAgB,EAAE,uBAAS,CAAC;IAC7B,CAAC,MAAM,EAAE,kBAAU,CAAC;IACpB,CAAC,WAAW,EAAE,uBAAe,CAAC;CAC/B,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAY,CACvB,CAAC"}
@@ -47,15 +47,16 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
47
47
  .flat();
48
48
  const lpTokenSupply = yield client.getTokenSupply(constants_1.jlpToken);
49
49
  const lpAmount = new bignumber_js_1.default(lpTokenSupply.value.amount).dividedBy(Math.pow(10, lpTokenSupply.value.decimals));
50
+ const price = poolAccount.aumUsd.dividedBy(Math.pow(10, 6)).dividedBy(lpAmount);
50
51
  const underlyingsAmounts = tokensAmounts
51
52
  .map((amount) => amount.dividedBy(lpAmount))
52
53
  .flat();
53
- const price = tokensAmounts
54
+ const basePrice = tokensAmounts
54
55
  .map((amount, i) => amount.multipliedBy(tokensPrices[i].price))
55
56
  .reduce((sum, current) => current.plus(sum), new bignumber_js_1.default(0))
56
- .dividedBy(lpAmount)
57
- .toNumber();
58
- const underlyings = (0, portfolio_core_1.getTokenPricesUnderlyingsFromTokensPrices)(tokensPrices, underlyingsAmounts.map((a) => a.toNumber()));
57
+ .dividedBy(lpAmount);
58
+ const factor = price.dividedBy(basePrice);
59
+ const underlyings = (0, portfolio_core_1.getTokenPricesUnderlyingsFromTokensPrices)(tokensPrices, underlyingsAmounts.map((a) => a.multipliedBy(factor).toNumber()));
59
60
  yield cache.setTokenPriceSource({
60
61
  address: constants_1.jlpToken.toString(),
61
62
  decimals: 6,
@@ -63,7 +64,7 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
63
64
  networkId: portfolio_core_1.NetworkId.solana,
64
65
  elementName: 'JLP Pool',
65
66
  platformId,
66
- price,
67
+ price: price.toNumber(),
67
68
  timestamp: Date.now(),
68
69
  weight: 1,
69
70
  underlyings,
@@ -1 +1 @@
1
- {"version":3,"file":"poolJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/jupiter/poolJob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poolJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/jupiter/poolJob.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;
@@ -1 +1,3 @@
1
+ import BigNumber from 'bignumber.js';
1
2
  export declare const zeroBigInt: bigint;
3
+ export declare const zeroBigNumber: BigNumber;
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.zeroBigInt = void 0;
6
+ exports.zeroBigNumber = exports.zeroBigInt = void 0;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
4
8
  exports.zeroBigInt = BigInt(0);
9
+ exports.zeroBigNumber = (0, bignumber_js_1.default)(0);
5
10
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/constants.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAExB,QAAA,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,QAAA,aAAa,GAAG,IAAA,sBAAS,EAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { NetworkIdType, TokenPrice, TokenPriceSource } from '@sonarwatch/portfolio-core';
2
+ import BigNumber from 'bignumber.js';
3
+ export type PoolData = {
4
+ id: string;
5
+ supply: BigNumber;
6
+ lpDecimals: number;
7
+ reserveTokenX: BigNumber;
8
+ reserveTokenY: BigNumber;
9
+ mintTokenX: string;
10
+ decimalX?: number;
11
+ mintTokenY: string;
12
+ decimalY?: number;
13
+ };
14
+ type PoolUnderlyingRaw = {
15
+ address: string;
16
+ reserveAmountRaw: BigNumber;
17
+ decimals: number;
18
+ tokenPrice: TokenPrice | undefined;
19
+ };
20
+ export default function getLpUnderlyingTokenSource(sourceId: string, platformId: string, networkId: NetworkIdType, poolUnderlyingsA: PoolUnderlyingRaw, poolUnderlyingsB: PoolUnderlyingRaw, minTvl?: number, acceptedPairs?: string[]): TokenPriceSource | null;
21
+ export {};
@@ -0,0 +1,80 @@
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 portfolio_core_1 = require("@sonarwatch/portfolio-core");
7
+ const getSourceWeight_1 = __importDefault(require("./getSourceWeight"));
8
+ const defaultAcceptedPairs = [
9
+ // Sei Addresses
10
+ portfolio_core_1.seiNativeAddress,
11
+ 'ibc/ED07A3391A112B175915CD8FAF43A2DA8E4790EDE12566649D0C2F97716B8518',
12
+ 'factory/sei189adguawugk3e55zn63z8r9ll29xrjwca636ra7v7gxuzn98sxyqwzt47l/Hq4tuDzhRBnxw3tFA5n6M52NVMVcC19XggbyDiJKCD6H',
13
+ // Solana Addresses
14
+ portfolio_core_1.solanaNativeAddress,
15
+ portfolio_core_1.solanaNativeWrappedAddress,
16
+ 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
17
+ 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',
18
+ // Aptos Addresses
19
+ portfolio_core_1.aptosNativeAddress,
20
+ '0x5e156f1207d0ebfa19a9eeff00d62a282278fb8719f4fab3a586a0a2c0fffbea::coin::T',
21
+ '0x6f986d146e4a90b828d8c12c14b6f4e003fdff11a8eecceceb63744363eaac01::mod_coin::MOD',
22
+ // Sui addresses
23
+ portfolio_core_1.suiNativeAddress,
24
+ '0x2::sui::SUI',
25
+ '0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN',
26
+ '0x6864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS', // CETUS
27
+ ];
28
+ function getLpUnderlyingTokenSource(sourceId, platformId, networkId, poolUnderlyingsA, poolUnderlyingsB, minTvl = 5000, acceptedPairs = defaultAcceptedPairs) {
29
+ var _a, _b;
30
+ if (!poolUnderlyingsA.tokenPrice && !poolUnderlyingsB.tokenPrice)
31
+ return null;
32
+ if (((_a = poolUnderlyingsA.tokenPrice) === null || _a === void 0 ? void 0 : _a.price) === 0)
33
+ return null;
34
+ if (((_b = poolUnderlyingsB.tokenPrice) === null || _b === void 0 ? void 0 : _b.price) === 0)
35
+ return null;
36
+ const isAcceptedTokenA = acceptedPairs.includes(poolUnderlyingsA.address);
37
+ const isAcceptedTokenB = acceptedPairs.includes(poolUnderlyingsB.address);
38
+ if (isAcceptedTokenA && isAcceptedTokenB)
39
+ return null;
40
+ let knownUnderlaying;
41
+ let unknownUnderlaying;
42
+ if (poolUnderlyingsA.tokenPrice && isAcceptedTokenA) {
43
+ knownUnderlaying = poolUnderlyingsA;
44
+ unknownUnderlaying = poolUnderlyingsB;
45
+ }
46
+ else if (poolUnderlyingsB.tokenPrice && isAcceptedTokenB) {
47
+ knownUnderlaying = poolUnderlyingsB;
48
+ unknownUnderlaying = poolUnderlyingsA;
49
+ }
50
+ if (!knownUnderlaying || !unknownUnderlaying)
51
+ return null;
52
+ if (unknownUnderlaying.tokenPrice &&
53
+ unknownUnderlaying.tokenPrice.sources.some((source) => source.id === portfolio_core_1.coingeckoSourceId)) {
54
+ return null;
55
+ }
56
+ const knownReserveAmount = knownUnderlaying.reserveAmountRaw
57
+ .div(Math.pow(10, knownUnderlaying.decimals))
58
+ .toNumber();
59
+ const knownReserveValue = knownReserveAmount * knownUnderlaying.tokenPrice.price;
60
+ const poolTvl = knownReserveValue * 2;
61
+ if (minTvl > poolTvl)
62
+ return null;
63
+ const unknownReserveAmount = unknownUnderlaying.reserveAmountRaw
64
+ .div(Math.pow(10, unknownUnderlaying.decimals))
65
+ .toNumber();
66
+ const price = knownReserveValue / unknownReserveAmount;
67
+ const source = {
68
+ id: sourceId,
69
+ networkId,
70
+ platformId,
71
+ address: unknownUnderlaying.address,
72
+ decimals: unknownUnderlaying.decimals,
73
+ price,
74
+ weight: (0, getSourceWeight_1.default)(poolTvl),
75
+ timestamp: Date.now(),
76
+ };
77
+ return source;
78
+ }
79
+ exports.default = getLpUnderlyingTokenSource;
80
+ //# sourceMappingURL=getLpUnderlyingTokenSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLpUnderlyingTokenSource.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/getLpUnderlyingTokenSource.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@ import BigNumber from 'bignumber.js';
2
2
  /**
3
3
  * Get the weight of a new TokenPriceSource depending on the size of the pool in USD$ value
4
4
  *
5
- * @param poolUsdValue Total value in USD$ of the pool
5
+ * @param {BigNumber | number} poolTvl Pool total value locked (in USD$)
6
+ * @param {number} [trustValue=1000000000] Value (in USD$) from which the weight is 1
6
7
  *
7
8
  * @returns weight between 0 and 1
8
9
  */
9
- export default function getSourceWeight(poolUsdValue: BigNumber): number;
10
+ export default function getSourceWeight(poolTvl: BigNumber | number, trustValue?: number): number;
@@ -4,19 +4,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
7
- const usdValueForWeightOfOne = new bignumber_js_1.default(10).pow(9);
7
+ const constants_1 = require("./constants");
8
8
  /**
9
9
  * Get the weight of a new TokenPriceSource depending on the size of the pool in USD$ value
10
10
  *
11
- * @param poolUsdValue Total value in USD$ of the pool
11
+ * @param {BigNumber | number} poolTvl Pool total value locked (in USD$)
12
+ * @param {number} [trustValue=1000000000] Value (in USD$) from which the weight is 1
12
13
  *
13
14
  * @returns weight between 0 and 1
14
15
  */
15
- function getSourceWeight(poolUsdValue) {
16
- if (poolUsdValue.isGreaterThan(usdValueForWeightOfOne))
16
+ function getSourceWeight(poolTvl, trustValue = 1000000000) {
17
+ const fPoolTvl = new bignumber_js_1.default(poolTvl);
18
+ if (fPoolTvl.isGreaterThanOrEqualTo(trustValue))
17
19
  return 1;
18
- return poolUsdValue
19
- .dividedBy(usdValueForWeightOfOne)
20
+ if (fPoolTvl.isLessThanOrEqualTo(constants_1.zeroBigNumber))
21
+ return 0;
22
+ return fPoolTvl
23
+ .dividedBy(trustValue)
20
24
  .decimalPlaces(3, bignumber_js_1.default.ROUND_CEIL)
21
25
  .toNumber();
22
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getSourceWeight.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/getSourceWeight.ts"],"names":[],"mappings":";;;;;AAAA,gEAAqC;AAErC,MAAM,sBAAsB,GAAG,IAAI,sBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxD;;;;;;GAMG;AACH,SAAwB,eAAe,CAAC,YAAuB;IAC7D,IAAI,YAAY,CAAC,aAAa,CAAC,sBAAsB,CAAC;QAAE,OAAO,CAAC,CAAC;IACjE,OAAO,YAAY;SAChB,SAAS,CAAC,sBAAsB,CAAC;SACjC,aAAa,CAAC,CAAC,EAAE,sBAAS,CAAC,UAAU,CAAC;SACtC,QAAQ,EAAE,CAAC;AAChB,CAAC;AAND,kCAMC"}
1
+ {"version":3,"file":"getSourceWeight.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/getSourceWeight.ts"],"names":[],"mappings":";;;;;AAAA,gEAAqC;AACrC,2CAA4C;AAE5C;;;;;;;GAOG;AACH,SAAwB,eAAe,CACrC,OAA2B,EAC3B,UAAU,GAAG,UAAU;IAEvB,MAAM,QAAQ,GAAG,IAAI,sBAAS,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,sBAAsB,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,mBAAmB,CAAC,yBAAa,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,QAAQ;SACZ,SAAS,CAAC,UAAU,CAAC;SACrB,aAAa,CAAC,CAAC,EAAE,sBAAS,CAAC,UAAU,CAAC;SACtC,QAAQ,EAAE,CAAC;AAChB,CAAC;AAXD,kCAWC"}