@sonarwatch/portfolio-plugins 0.8.44 → 0.8.45

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,10 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.8.45](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.44...plugins-0.8.45) (2023-10-23)
6
+
7
+
8
+
5
9
  ## [0.8.44](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.43...plugins-0.8.44) (2023-10-23)
6
10
 
7
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.8.44",
3
+ "version": "0.8.45",
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.44"
42
+ "@sonarwatch/portfolio-core": "0.8.45"
43
43
  },
44
44
  "main": "./src/index.js",
45
45
  "types": "./src/index.d.ts"
@@ -1,5 +1,5 @@
1
1
  import { Platform } from '@sonarwatch/portfolio-core';
2
2
  export declare const platformId = "balancer";
3
3
  export declare const platform: Platform;
4
- export declare const poolsCacheKey: string;
4
+ export declare const poolsV2CacheKey: string;
5
5
  export declare const ethereumGaugeControllerAddress = "0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ethereumGaugeControllerAddress = exports.poolsCacheKey = exports.platform = exports.platformId = void 0;
3
+ exports.ethereumGaugeControllerAddress = exports.poolsV2CacheKey = exports.platform = exports.platformId = void 0;
4
4
  exports.platformId = 'balancer';
5
5
  exports.platform = {
6
6
  id: exports.platformId,
@@ -8,6 +8,6 @@ exports.platform = {
8
8
  image: 'https://sonar.watch/img/platforms/balancer.png',
9
9
  defiLlamaId: 'parent#balancer', // from https://defillama.com/docs/api
10
10
  };
11
- exports.poolsCacheKey = `${exports.platformId}-pools`;
11
+ exports.poolsV2CacheKey = `${exports.platformId}-pools-v2`;
12
12
  exports.ethereumGaugeControllerAddress = '0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD';
13
13
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG,UAAU,CAAC;AACxB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,gDAAgD;IACvD,WAAW,EAAE,iBAAiB,EAAE,sCAAsC;CACvE,CAAC;AACW,QAAA,aAAa,GAAG,GAAG,kBAAU,QAAQ,CAAC;AAEtC,QAAA,8BAA8B,GACzC,4CAA4C,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG,UAAU,CAAC;AACxB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,gDAAgD;IACvD,WAAW,EAAE,iBAAiB,EAAE,sCAAsC;CACvE,CAAC;AACW,QAAA,eAAe,GAAG,GAAG,kBAAU,WAAW,CAAC;AAE3C,QAAA,8BAA8B,GACzC,4CAA4C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { EvmNetworkIdType } from '@sonarwatch/portfolio-core';
2
+ import { Fetcher } from '../../Fetcher';
3
+ declare function getPoolsV2Fetcher(networkId: EvmNetworkIdType): Fetcher;
4
+ export default getPoolsV2Fetcher;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
13
+ const constants_1 = require("./constants");
14
+ const getTokenAssets_1 = require("../../utils/evm/getTokenAssets");
15
+ function getPoolsV2Fetcher(networkId) {
16
+ const executor = (owner, cache) => __awaiter(this, void 0, void 0, function* () {
17
+ const poolAddresses = yield cache.getItem(constants_1.poolsV2CacheKey, {
18
+ prefix: constants_1.platformId,
19
+ networkId,
20
+ });
21
+ if (!poolAddresses)
22
+ return [];
23
+ const assetss = yield (0, getTokenAssets_1.getTokenAssets)(owner, poolAddresses, networkId, cache);
24
+ const liquidities = assetss.map((assets) => {
25
+ const value = (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value));
26
+ return {
27
+ assets,
28
+ assetsValue: (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value)),
29
+ rewardAssets: [],
30
+ rewardAssetsValue: null,
31
+ value,
32
+ yields: [],
33
+ };
34
+ });
35
+ return [
36
+ {
37
+ type: portfolio_core_1.PortfolioElementType.liquidity,
38
+ label: 'LiquidityPool',
39
+ networkId,
40
+ platformId: constants_1.platformId,
41
+ value: 1,
42
+ name: 'Balancer V2',
43
+ data: {
44
+ liquidities,
45
+ },
46
+ },
47
+ ];
48
+ });
49
+ return {
50
+ id: `${constants_1.platformId}-${networkId}-pools-v2`,
51
+ networkId,
52
+ executor,
53
+ };
54
+ }
55
+ exports.default = getPoolsV2Fetcher;
56
+ //# sourceMappingURL=getPoolsV2Fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPoolsV2Fetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/getPoolsV2Fetcher.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAKoC;AAEpC,2CAA0D;AAE1D,mEAAgE;AAEhE,SAAS,iBAAiB,CAAC,SAA2B;IACpD,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;QACtE,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,OAAO,CAAW,2BAAe,EAAE;YACnE,MAAM,EAAE,sBAAU;YAClB,SAAS;SACV,CAAC,CAAC;QACH,IAAI,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAc,EAClC,KAAK,EACL,aAAa,EACb,SAAS,EACT,KAAK,CACN,CAAC;QACF,MAAM,WAAW,GAAyB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/D,MAAM,KAAK,GAAG,IAAA,+BAAc,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACzD,OAAO;gBACL,MAAM;gBACN,WAAW,EAAE,IAAA,+BAAc,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACvD,YAAY,EAAE,EAAE;gBAChB,iBAAiB,EAAE,IAAI;gBACvB,KAAK;gBACL,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO;YACL;gBACE,IAAI,EAAE,qCAAoB,CAAC,SAAS;gBACpC,KAAK,EAAE,eAAe;gBACtB,SAAS;gBACT,UAAU,EAAV,sBAAU;gBACV,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE;oBACJ,WAAW;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CAAA,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,GAAG,sBAAU,IAAI,SAAS,WAAW;QACzC,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AACD,kBAAe,iBAAiB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { NetworkIdType } from '@sonarwatch/portfolio-core';
2
2
  import { Cache } from '../../Cache';
3
- export declare function getBalancerPools(url: string, networkId: NetworkIdType, cache: Cache): Promise<void>;
3
+ export declare function getBalancerPoolsV2(url: string, networkId: NetworkIdType, cache: Cache): Promise<void>;
@@ -35,13 +35,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.getBalancerPools = void 0;
38
+ exports.getBalancerPoolsV2 = void 0;
39
39
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
40
40
  const graphql_request_1 = __importStar(require("graphql-request"));
41
41
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
42
42
  const constants_1 = require("./constants");
43
43
  const runInBatch_1 = __importDefault(require("../../utils/misc/runInBatch"));
44
- function getBalancerPools(url, networkId, cache) {
44
+ function getBalancerPoolsV2(url, networkId, cache) {
45
45
  return __awaiter(this, void 0, void 0, function* () {
46
46
  const query = (0, graphql_request_1.gql) `
47
47
  query pools {
@@ -55,6 +55,7 @@ function getBalancerPools(url, networkId, cache) {
55
55
  address
56
56
  symbol
57
57
  totalLiquidity
58
+ totalShares
58
59
  tokens {
59
60
  balance
60
61
  decimals
@@ -93,13 +94,13 @@ function getBalancerPools(url, networkId, cache) {
93
94
  const tokenPrice = tokenPricesByAddress.get(address);
94
95
  if (!tokenPrice)
95
96
  break;
96
- tvl = tvl.plus(new bignumber_js_1.default(token.balance).times(token.balance));
97
+ tvl = tvl.plus(new bignumber_js_1.default(token.balance).times(tokenPrice.price));
97
98
  underlyings.push({
98
99
  networkId,
99
100
  address,
100
101
  decimals: token.decimals,
101
102
  price: tokenPrice.price,
102
- amountPerLp: new bignumber_js_1.default(pool.totalLiquidity)
103
+ amountPerLp: new bignumber_js_1.default(pool.totalShares)
103
104
  .div(token.balance)
104
105
  .toNumber(),
105
106
  });
@@ -108,7 +109,7 @@ function getBalancerPools(url, networkId, cache) {
108
109
  continue;
109
110
  if (underlyings.length === 0)
110
111
  continue;
111
- const price = tvl.div(pool.totalLiquidity).toNumber();
112
+ const price = tvl.div(pool.totalShares).toNumber();
112
113
  const lpAddress = (0, portfolio_core_1.formatTokenAddress)(pool.address, networkId);
113
114
  const source = {
114
115
  id: constants_1.platformId,
@@ -125,11 +126,11 @@ function getBalancerPools(url, networkId, cache) {
125
126
  yield cache.setTokenPriceSource(source);
126
127
  poolAddresses.push(lpAddress);
127
128
  }
128
- yield cache.setItem(constants_1.poolsCacheKey, poolAddresses, {
129
+ yield cache.setItem(constants_1.poolsV2CacheKey, poolAddresses, {
129
130
  prefix: constants_1.platformId,
130
131
  networkId,
131
132
  });
132
133
  });
133
134
  }
134
- exports.getBalancerPools = getBalancerPools;
135
+ exports.getBalancerPoolsV2 = getBalancerPoolsV2;
135
136
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAMoC;AACpC,mEAA+C;AAC/C,gEAAqC;AAGrC,2CAA0D;AAC1D,6EAAqD;AAErD,SAAsB,kBAAkB,CACtC,GAAW,EACX,SAAwB,EACxB,KAAY;;QAEZ,MAAM,KAAK,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;GAqBhB,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAA,yBAAO,EAAoB,GAAG,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAe,CAAC;QAClC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO;QAEpC,MAAM,mBAAmB,GAAG;YAC1B,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpE,CAAC;QAEF,MAAM,iBAAiB,GAAG,MAAM,IAAA,oBAAU,EACxC,CAAC,GAAG,mBAAmB,CAAC,CAAC,GAAG,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CACrD,CACF,CAAC;QACF,MAAM,oBAAoB,GAA4B,IAAI,GAAG,EAAE,CAAC;QAChE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;gBAAE,OAAO;YACpC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAAE,OAAO;YACrB,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,SAAS;YAExD,MAAM,WAAW,GAA2B,EAAE,CAAC;YAC/C,IAAI,GAAG,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,OAAO,GAAG,IAAA,mCAAkB,EAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC7D,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrD,IAAI,CAAC,UAAU;oBAAE,MAAM;gBACvB,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,sBAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrE,WAAW,CAAC,IAAI,CAAC;oBACf,SAAS;oBACT,OAAO;oBACP,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,WAAW,EAAE,IAAI,sBAAS,CAAC,IAAI,CAAC,WAAW,CAAC;yBACzC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;yBAClB,QAAQ,EAAE;iBACd,CAAC,CAAC;aACJ;YACD,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,SAAS;YACxD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEvC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,IAAA,mCAAkB,EAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAqB;gBAC/B,EAAE,EAAE,sBAAU;gBACd,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,EAAE;gBACZ,SAAS;gBACT,UAAU,EAAE,UAAU;gBACtB,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,MAAM,EAAE,CAAC;gBACT,WAAW,EAAE,aAAa;gBAC1B,WAAW;aACZ,CAAC;YACF,MAAM,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACxC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC/B;QACD,MAAM,KAAK,CAAC,OAAO,CAAC,2BAAe,EAAE,aAAa,EAAE;YAClD,MAAM,EAAE,sBAAU;YAClB,SAAS;SACV,CAAC,CAAC;IACL,CAAC;CAAA;AA9FD,gDA8FC"}
@@ -9,5 +9,9 @@ const poolsJob_1 = __importDefault(require("./poolsJob"));
9
9
  // import positionFetcher from './positionFetcher';
10
10
  exports.platforms = [constants_1.platform];
11
11
  exports.jobs = [poolsJob_1.default];
12
- exports.fetchers = [];
12
+ exports.fetchers = [
13
+ // getPoolsV2Fetcher(NetworkId.ethereum),
14
+ // getPoolsV2Fetcher(NetworkId.avalanche),
15
+ // getPoolsV2Fetcher(NetworkId.polygon),
16
+ ];
13
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAuC;AACvC,0DAAkC;AAClC,mDAAmD;AAEtC,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,kBAAQ,CAAC,CAAC;AACzB,QAAA,QAAQ,GAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAuC;AACvC,0DAAkC;AAElC,mDAAmD;AAEtC,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,kBAAQ,CAAC,CAAC;AACzB,QAAA,QAAQ,GAAc;AACjC,yCAAyC;AACzC,0CAA0C;AAC1C,wCAAwC;CACzC,CAAC"}
@@ -12,11 +12,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
13
13
  const constants_1 = require("./constants");
14
14
  const helpers_1 = require("./helpers");
15
+ const poolConfigs = [
16
+ {
17
+ url: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-v2',
18
+ networkId: portfolio_core_1.NetworkId.ethereum,
19
+ },
20
+ {
21
+ url: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-avalanche-v2',
22
+ networkId: portfolio_core_1.NetworkId.avalanche,
23
+ },
24
+ {
25
+ url: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-polygon-v2',
26
+ networkId: portfolio_core_1.NetworkId.polygon,
27
+ },
28
+ ];
15
29
  const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
16
- yield (0, helpers_1.getBalancerPools)('https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-v2', portfolio_core_1.NetworkId.ethereum, cache);
30
+ for (let i = 0; i < poolConfigs.length; i++) {
31
+ const poolConfig = poolConfigs[i];
32
+ yield (0, helpers_1.getBalancerPoolsV2)(poolConfig.url, poolConfig.networkId, cache);
33
+ }
17
34
  });
18
35
  const job = {
19
- id: `${constants_1.platformId}-pools`,
36
+ id: `${constants_1.platformId}-pools-v2`,
20
37
  executor,
21
38
  };
22
39
  exports.default = job;
@@ -1 +1 @@
1
- {"version":3,"file":"poolsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/poolsJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAuD;AAGvD,2CAAyC;AACzC,uCAA6C;AAE7C,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,IAAA,0BAAgB,EACpB,mEAAmE,EACnE,0BAAS,CAAC,QAAQ,EAClB,KAAK,CACN,CAAC;AACJ,CAAC,CAAA,CAAC;AACF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,QAAQ;IACzB,QAAQ;CACT,CAAC;AACF,kBAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"poolsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/poolsJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAuD;AAGvD,2CAAyC;AACzC,uCAA+C;AAE/C,MAAM,WAAW,GAAG;IAClB;QACE,GAAG,EAAE,mEAAmE;QACxE,SAAS,EAAE,0BAAS,CAAC,QAAQ;KAC9B;IACD;QACE,GAAG,EAAE,6EAA6E;QAClF,SAAS,EAAE,0BAAS,CAAC,SAAS;KAC/B;IACD;QACE,GAAG,EAAE,2EAA2E;QAChF,SAAS,EAAE,0BAAS,CAAC,OAAO;KAC7B;CACF,CAAC;AAEF,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,IAAA,4BAAkB,EAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KACvE;AACH,CAAC,CAAA,CAAC;AACF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,WAAW;IAC5B,QAAQ;CACT,CAAC;AACF,kBAAe,GAAG,CAAC"}
@@ -4,6 +4,7 @@ export type Pool = {
4
4
  symbol: string;
5
5
  tokens: PoolToken[];
6
6
  totalLiquidity: string;
7
+ totalShares: string;
7
8
  };
8
9
  export type PoolToken = {
9
10
  decimals: number;
@@ -1,2 +1,2 @@
1
1
  import { EvmNetworkIdType } from '@sonarwatch/portfolio-core';
2
- export declare function getBalances(owner: `0x${string}`, addresses: `0x${string}`[], networkId: EvmNetworkIdType): Promise<(bigint | null)[]>;
2
+ export declare function getBalances(owner: string, addresses: string[], networkId: EvmNetworkIdType): Promise<(bigint | null)[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"getBalances.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/evm/getBalances.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,wCAA0C;AAC1C,yCAAsC;AACtC,iDAA+C;AAE/C,SAAsB,WAAW,CAC/B,KAAoB,EACpB,SAA0B,EAC1B,SAA2B;;QAE3B,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,SAAS,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;YACtC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,GAAG,EAAE,mBAAQ;gBACb,OAAO,EAAE,CAAC;gBACV,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,KAAK,CAAC;aACd,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxB,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,sBAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CACvD,CAAC;IACJ,CAAC;CAAA;AAjBD,kCAiBC"}
1
+ {"version":3,"file":"getBalances.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/evm/getBalances.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,wCAA0C;AAC1C,yCAAsC;AACtC,iDAA+C;AAE/C,SAAsB,WAAW,CAC/B,KAAa,EACb,SAAmB,EACnB,SAA2B;;QAE3B,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,SAAS,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;YACtC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,GAAG,EAAE,mBAAQ;gBACb,OAAO,EAAE,CAAkB;gBAC3B,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,KAAsB,CAAC;aAC/B,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxB,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,sBAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CACvD,CAAC;IACJ,CAAC;CAAA;AAjBD,kCAiBC"}
@@ -0,0 +1,3 @@
1
+ import { EvmNetworkIdType, PortfolioAssetToken } from '@sonarwatch/portfolio-core';
2
+ import { Cache } from '../../Cache';
3
+ export declare function getTokenAssets(owner: string, addresses: string[], networkId: EvmNetworkIdType, cache: Cache): Promise<PortfolioAssetToken[][]>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.getTokenAssets = void 0;
16
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
+ const getBalances_1 = require("./getBalances");
18
+ const tokenPriceToAssetTokens_1 = __importDefault(require("../misc/tokenPriceToAssetTokens"));
19
+ function getTokenAssets(owner, addresses, networkId, cache) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ const fAddresses = [...new Set(addresses)];
22
+ const balances = yield (0, getBalances_1.getBalances)(owner, fAddresses, networkId);
23
+ const nonZeroAddresses = fAddresses.filter((adress, i) => {
24
+ const balance = balances[i];
25
+ if (!balance)
26
+ return false;
27
+ return true;
28
+ });
29
+ const tokenPrices = yield cache.getTokenPrices(nonZeroAddresses, networkId);
30
+ let count = 0;
31
+ const assets = [];
32
+ for (let i = 0; i < balances.length; i++) {
33
+ const balance = balances[i];
34
+ if (!balance)
35
+ continue;
36
+ const tokenPrice = tokenPrices[count];
37
+ count += 1;
38
+ if (!tokenPrice)
39
+ continue;
40
+ const amount = new bignumber_js_1.default(balance.toString())
41
+ .div(Math.pow(10, tokenPrice.decimals))
42
+ .toNumber();
43
+ assets.push((0, tokenPriceToAssetTokens_1.default)(tokenPrice.address, amount, networkId, tokenPrice));
44
+ }
45
+ return assets;
46
+ });
47
+ }
48
+ exports.getTokenAssets = getTokenAssets;
49
+ //# sourceMappingURL=getTokenAssets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTokenAssets.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/evm/getTokenAssets.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,gEAAqC;AAErC,+CAA4C;AAC5C,8FAAsE;AAEtE,SAAsB,cAAc,CAClC,KAAa,EACb,SAAmB,EACnB,SAA2B,EAC3B,KAAY;;QAEZ,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAW,EAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAC5E,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,CAAC,UAAU;gBAAE,SAAS;YAC1B,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;iBAC7C,GAAG,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC;iBAC9B,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CACT,IAAA,iCAAuB,EAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAC3E,CAAC;SACH;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CAAA;AA9BD,wCA8BC"}
@@ -1,3 +0,0 @@
1
- import { Fetcher } from '../../Fetcher';
2
- declare const fetcher: Fetcher;
3
- export default fetcher;
@@ -1,46 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const portfolio_core_1 = require("@sonarwatch/portfolio-core");
13
- const constants_1 = require("./constants");
14
- const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
15
- const ethTokenPrice = yield cache.getTokenPrice(portfolio_core_1.ethereumNativeAddress, portfolio_core_1.NetworkId.ethereum);
16
- const amount = 2;
17
- const price = (ethTokenPrice === null || ethTokenPrice === void 0 ? void 0 : ethTokenPrice.price) || null;
18
- const value = price ? amount * price : null;
19
- const element = {
20
- networkId: portfolio_core_1.NetworkId.ethereum,
21
- label: 'Deposit',
22
- platformId: constants_1.platformId,
23
- type: portfolio_core_1.PortfolioElementType.single,
24
- value,
25
- data: {
26
- asset: {
27
- type: portfolio_core_1.PortfolioAssetType.token,
28
- networkId: portfolio_core_1.NetworkId.ethereum,
29
- value,
30
- data: {
31
- address: portfolio_core_1.ethereumNativeAddress,
32
- amount,
33
- price,
34
- },
35
- },
36
- },
37
- };
38
- return [element];
39
- });
40
- const fetcher = {
41
- id: `${constants_1.platformId}-position`,
42
- networkId: portfolio_core_1.NetworkId.ethereum,
43
- executor,
44
- };
45
- exports.default = fetcher;
46
- //# sourceMappingURL=positionFetcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"positionFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/positionFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAMoC;AAEpC,2CAAyC;AAGzC,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,aAAa,CAC7C,sCAAqB,EACrB,0BAAS,CAAC,QAAQ,CACnB,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,CAAC;IACjB,MAAM,KAAK,GAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,KAAI,IAAI,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5C,MAAM,OAAO,GAA2B;QACtC,SAAS,EAAE,0BAAS,CAAC,QAAQ;QAC7B,KAAK,EAAE,SAAS;QAChB,UAAU,EAAV,sBAAU;QACV,IAAI,EAAE,qCAAoB,CAAC,MAAM;QACjC,KAAK;QACL,IAAI,EAAE;YACJ,KAAK,EAAE;gBACL,IAAI,EAAE,mCAAkB,CAAC,KAAK;gBAC9B,SAAS,EAAE,0BAAS,CAAC,QAAQ;gBAC7B,KAAK;gBACL,IAAI,EAAE;oBACJ,OAAO,EAAE,sCAAqB;oBAC9B,MAAM;oBACN,KAAK;iBACN;aACF;SACF;KACF,CAAC;IAEF,OAAO,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,WAAW;IAC5B,SAAS,EAAE,0BAAS,CAAC,QAAQ;IAC7B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}