@sonarwatch/portfolio-plugins 0.8.44 → 0.8.46

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.
Files changed (41) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +2 -2
  3. package/src/plugins/balancer/abi.d.ts +31 -0
  4. package/src/plugins/balancer/abi.js +27 -0
  5. package/src/plugins/balancer/abi.js.map +1 -0
  6. package/src/plugins/balancer/constants.d.ts +2 -2
  7. package/src/plugins/balancer/constants.js +3 -3
  8. package/src/plugins/balancer/constants.js.map +1 -1
  9. package/src/plugins/balancer/getPoolsV2Fetcher.d.ts +4 -0
  10. package/src/plugins/balancer/getPoolsV2Fetcher.js +130 -0
  11. package/src/plugins/balancer/getPoolsV2Fetcher.js.map +1 -0
  12. package/src/plugins/balancer/helpers/gauges.d.ts +3 -0
  13. package/src/plugins/balancer/helpers/gauges.js +76 -0
  14. package/src/plugins/balancer/helpers/gauges.js.map +1 -0
  15. package/src/plugins/balancer/helpers/pools.d.ts +2 -0
  16. package/src/plugins/balancer/helpers/pools.js +69 -0
  17. package/src/plugins/balancer/helpers/pools.js.map +1 -0
  18. package/src/plugins/balancer/index.js +7 -2
  19. package/src/plugins/balancer/index.js.map +1 -1
  20. package/src/plugins/balancer/poolsJob.js +93 -3
  21. package/src/plugins/balancer/poolsJob.js.map +1 -1
  22. package/src/plugins/balancer/types.d.ts +2 -0
  23. package/src/plugins/maker/vaultsFetcher.js +1 -1
  24. package/src/plugins/maker/vaultsFetcher.js.map +1 -1
  25. package/src/utils/evm/getBalances.d.ts +1 -1
  26. package/src/utils/evm/getBalances.js.map +1 -1
  27. package/src/utils/evm/getTokenAssets.d.ts +3 -0
  28. package/src/utils/evm/getTokenAssets.js +49 -0
  29. package/src/utils/evm/getTokenAssets.js.map +1 -0
  30. package/src/utils/misc/range.d.ts +1 -0
  31. package/src/utils/misc/range.js +18 -0
  32. package/src/utils/misc/range.js.map +1 -0
  33. package/src/utils/misc/rangeBI.d.ts +1 -0
  34. package/src/utils/misc/rangeBI.js +18 -0
  35. package/src/utils/misc/rangeBI.js.map +1 -0
  36. package/src/plugins/balancer/helpers.d.ts +0 -3
  37. package/src/plugins/balancer/helpers.js +0 -135
  38. package/src/plugins/balancer/helpers.js.map +0 -1
  39. package/src/plugins/balancer/positionFetcher.d.ts +0 -3
  40. package/src/plugins/balancer/positionFetcher.js +0 -46
  41. package/src/plugins/balancer/positionFetcher.js.map +0 -1
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.8.46](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.45...plugins-0.8.46) (2023-10-24)
6
+
7
+
8
+
9
+ ## [0.8.45](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.44...plugins-0.8.45) (2023-10-23)
10
+
11
+
12
+
5
13
  ## [0.8.44](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.43...plugins-0.8.44) (2023-10-23)
6
14
 
7
15
 
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.46",
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.46"
43
43
  },
44
44
  "main": "./src/index.js",
45
45
  "types": "./src/index.d.ts"
@@ -0,0 +1,31 @@
1
+ export declare const abi: readonly [{
2
+ readonly stateMutability: "view";
3
+ readonly type: "function";
4
+ readonly name: "n_gauges";
5
+ readonly inputs: readonly [];
6
+ readonly outputs: readonly [{
7
+ readonly name: "";
8
+ readonly type: "int128";
9
+ }];
10
+ }, {
11
+ readonly stateMutability: "view";
12
+ readonly type: "function";
13
+ readonly name: "gauges";
14
+ readonly inputs: readonly [{
15
+ readonly name: "arg0";
16
+ readonly type: "uint256";
17
+ }];
18
+ readonly outputs: readonly [{
19
+ readonly name: "";
20
+ readonly type: "address";
21
+ }];
22
+ }, {
23
+ readonly stateMutability: "view";
24
+ readonly type: "function";
25
+ readonly name: "lp_token";
26
+ readonly inputs: readonly [];
27
+ readonly outputs: readonly [{
28
+ readonly name: "";
29
+ readonly type: "address";
30
+ }];
31
+ }];
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.abi = void 0;
4
+ exports.abi = [
5
+ {
6
+ stateMutability: 'view',
7
+ type: 'function',
8
+ name: 'n_gauges',
9
+ inputs: [],
10
+ outputs: [{ name: '', type: 'int128' }],
11
+ },
12
+ {
13
+ stateMutability: 'view',
14
+ type: 'function',
15
+ name: 'gauges',
16
+ inputs: [{ name: 'arg0', type: 'uint256' }],
17
+ outputs: [{ name: '', type: 'address' }],
18
+ },
19
+ {
20
+ stateMutability: 'view',
21
+ type: 'function',
22
+ name: 'lp_token',
23
+ inputs: [],
24
+ outputs: [{ name: '', type: 'address' }],
25
+ },
26
+ ];
27
+ //# sourceMappingURL=abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/abi.ts"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG;IACjB;QACE,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KACxC;IACD;QACE,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;IACD;QACE,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;CACO,CAAC"}
@@ -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;
5
- export declare const ethereumGaugeControllerAddress = "0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD";
4
+ export declare const poolsAndGaugesV2CacheKey: string;
5
+ export declare const ethGaugeControllerAddress = "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.ethGaugeControllerAddress = exports.poolsAndGaugesV2CacheKey = 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`;
12
- exports.ethereumGaugeControllerAddress = '0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD';
11
+ exports.poolsAndGaugesV2CacheKey = `${exports.platformId}-pools-and-gauges-v2`;
12
+ exports.ethGaugeControllerAddress = '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,wBAAwB,GAAG,GAAG,kBAAU,sBAAsB,CAAC;AAE/D,QAAA,yBAAyB,GACpC,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,130 @@
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
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
+ const constants_1 = require("./constants");
18
+ const getBalances_1 = require("../../utils/evm/getBalances");
19
+ const tokenPriceToAssetTokens_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetTokens"));
20
+ function getLiquidity(balance, tokenPrice) {
21
+ const amount = new bignumber_js_1.default(balance.toString())
22
+ .div(Math.pow(10, tokenPrice.decimals))
23
+ .toNumber();
24
+ console.log('amount:', amount);
25
+ const assets = (0, tokenPriceToAssetTokens_1.default)(tokenPrice.address, amount, tokenPrice.networkId, tokenPrice);
26
+ const value = (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value));
27
+ return {
28
+ assets,
29
+ assetsValue: (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value)),
30
+ rewardAssets: [],
31
+ rewardAssetsValue: null,
32
+ value,
33
+ yields: [],
34
+ };
35
+ }
36
+ function getPoolsV2Fetcher(networkId) {
37
+ const executor = (owner, cache) => __awaiter(this, void 0, void 0, function* () {
38
+ const gaugesByPool = yield cache.getItem(constants_1.poolsAndGaugesV2CacheKey, {
39
+ prefix: constants_1.platformId,
40
+ networkId,
41
+ });
42
+ if (!gaugesByPool)
43
+ return [];
44
+ const poolAddresses = Object.keys(gaugesByPool);
45
+ const gaugeAddresses = Object.values(gaugesByPool).flat();
46
+ const poolBalances = yield (0, getBalances_1.getBalances)(owner, poolAddresses, networkId);
47
+ const gaugeBalances = yield (0, getBalances_1.getBalances)(owner, gaugeAddresses, networkId);
48
+ const usefulPoolAddresses = [];
49
+ const userBalances = [];
50
+ let gaugeCount = 0;
51
+ for (let i = 0; i < poolAddresses.length; i++) {
52
+ const poolAddress = poolAddresses[i];
53
+ const poolBalance = poolBalances[i];
54
+ const cGaugeAddresses = gaugesByPool[poolAddress];
55
+ const userBalance = {
56
+ poolAddress,
57
+ poolBalance,
58
+ gauges: [],
59
+ };
60
+ for (let j = 0; j < cGaugeAddresses.length; j++) {
61
+ const gaugeAddress = cGaugeAddresses[j];
62
+ const gaugeBalance = gaugeBalances[gaugeCount + j];
63
+ if (gaugeBalance) {
64
+ userBalance.gauges.push({
65
+ gaugeAddress,
66
+ gaugeBalance,
67
+ });
68
+ }
69
+ }
70
+ gaugeCount += cGaugeAddresses.length;
71
+ if (userBalance.poolBalance || userBalance.gauges.length !== 0) {
72
+ userBalances.push(userBalance);
73
+ usefulPoolAddresses.push(poolAddress);
74
+ }
75
+ }
76
+ if (usefulPoolAddresses.length === 0)
77
+ return [];
78
+ const tokenPrices = yield cache.getTokenPrices(usefulPoolAddresses, networkId);
79
+ const poolLiquidities = [];
80
+ const farmLiquidities = [];
81
+ userBalances.forEach((userBalance, i) => {
82
+ const tokenPrice = tokenPrices[i];
83
+ if (!tokenPrice)
84
+ return;
85
+ if (userBalance.poolBalance) {
86
+ const liquidity = getLiquidity(userBalance.poolBalance, tokenPrice);
87
+ poolLiquidities.push(liquidity);
88
+ }
89
+ userBalance.gauges.forEach((gauge) => {
90
+ const liquidity = getLiquidity(gauge.gaugeBalance, tokenPrice);
91
+ farmLiquidities.push(liquidity);
92
+ });
93
+ });
94
+ const elements = [];
95
+ if (poolLiquidities.length !== 0) {
96
+ elements.push({
97
+ type: portfolio_core_1.PortfolioElementType.liquidity,
98
+ label: 'LiquidityPool',
99
+ networkId,
100
+ platformId: constants_1.platformId,
101
+ value: 1,
102
+ name: 'Balancer V2',
103
+ data: {
104
+ liquidities: poolLiquidities,
105
+ },
106
+ });
107
+ }
108
+ if (farmLiquidities.length !== 0) {
109
+ elements.push({
110
+ type: portfolio_core_1.PortfolioElementType.liquidity,
111
+ label: 'Farming',
112
+ networkId,
113
+ platformId: constants_1.platformId,
114
+ value: 1,
115
+ name: 'Balancer V2',
116
+ data: {
117
+ liquidities: farmLiquidities,
118
+ },
119
+ });
120
+ }
121
+ return elements;
122
+ });
123
+ return {
124
+ id: `${constants_1.platformId}-${networkId}-v2`,
125
+ networkId,
126
+ executor,
127
+ };
128
+ }
129
+ exports.default = getPoolsV2Fetcher;
130
+ //# sourceMappingURL=getPoolsV2Fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPoolsV2Fetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/getPoolsV2Fetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { NetworkIdType } from '@sonarwatch/portfolio-core';
2
+ import { GaugesByPool } from '../types';
3
+ export declare function getBalancerGaugesV2(gaugesUrl: string, networkId: NetworkIdType): Promise<GaugesByPool>;
@@ -0,0 +1,76 @@
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
+ exports.getBalancerGaugesV2 = void 0;
13
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
14
+ const clients_1 = require("../../../utils/clients");
15
+ const constants_1 = require("../constants");
16
+ const abi_1 = require("../abi");
17
+ const rangeBI_1 = require("../../../utils/misc/rangeBI");
18
+ function getBalancerGaugesV2(gaugesUrl, networkId) {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ if (networkId === portfolio_core_1.NetworkId.ethereum)
21
+ return getBalancerEthGaugesV2();
22
+ return getBalancerChildGaugesV2(gaugesUrl);
23
+ });
24
+ }
25
+ exports.getBalancerGaugesV2 = getBalancerGaugesV2;
26
+ function getBalancerChildGaugesV2(
27
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
28
+ gaugesUrl) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ // TODO
31
+ return {};
32
+ });
33
+ }
34
+ function getBalancerEthGaugesV2() {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ const client = (0, clients_1.getEvmClient)(portfolio_core_1.NetworkId.ethereum);
37
+ const nGauges = yield client.readContract({
38
+ address: constants_1.ethGaugeControllerAddress,
39
+ abi: abi_1.abi,
40
+ functionName: 'n_gauges',
41
+ });
42
+ const gaugesRes = yield client.multicall({
43
+ contracts: (0, rangeBI_1.rangeBI)(nGauges).map((i) => ({
44
+ abi: abi_1.abi,
45
+ address: constants_1.ethGaugeControllerAddress,
46
+ functionName: 'gauges',
47
+ args: [i],
48
+ })),
49
+ });
50
+ const lpTokensRes = yield client.multicall({
51
+ contracts: gaugesRes.map((g) => ({
52
+ abi: abi_1.abi,
53
+ address: g.result || portfolio_core_1.zeroAddressEvm,
54
+ functionName: 'lp_token',
55
+ })),
56
+ });
57
+ const gaugesByPool = {};
58
+ lpTokensRes.forEach((lpTokenRes, i) => {
59
+ if (lpTokenRes.status === 'failure')
60
+ return;
61
+ const gaugeRes = gaugesRes[i];
62
+ if (gaugeRes.status === 'failure')
63
+ return;
64
+ const lpAddress = (0, portfolio_core_1.formatTokenAddress)(lpTokenRes.result, portfolio_core_1.NetworkId.ethereum);
65
+ const gaugeAddress = (0, portfolio_core_1.formatTokenAddress)(gaugeRes.result, portfolio_core_1.NetworkId.ethereum);
66
+ if (lpAddress === portfolio_core_1.zeroAddressEvm)
67
+ return;
68
+ if (!gaugesByPool[lpAddress]) {
69
+ gaugesByPool[lpAddress] = [];
70
+ }
71
+ gaugesByPool[lpAddress].push(gaugeAddress);
72
+ });
73
+ return gaugesByPool;
74
+ });
75
+ }
76
+ //# sourceMappingURL=gauges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gauges.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/balancer/helpers/gauges.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAKoC;AACpC,oDAAsD;AACtD,4CAAyD;AACzD,gCAA6B;AAC7B,yDAAsD;AAGtD,SAAsB,mBAAmB,CACvC,SAAiB,EACjB,SAAwB;;QAExB,IAAI,SAAS,KAAK,0BAAS,CAAC,QAAQ;YAAE,OAAO,sBAAsB,EAAE,CAAC;QACtE,OAAO,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;CAAA;AAND,kDAMC;AAED,SAAe,wBAAwB;AACrC,6DAA6D;AAC7D,SAAiB;;QAEjB,OAAO;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;CAAA;AAED,SAAe,sBAAsB;;QACnC,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,0BAAS,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YACxC,OAAO,EAAE,qCAAyB;YAClC,GAAG,EAAH,SAAG;YACH,YAAY,EAAE,UAAU;SACzB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;YACvC,SAAS,EAAE,IAAA,iBAAO,EAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtC,GAAG,EAAH,SAAG;gBACH,OAAO,EAAE,qCAAyB;gBAClC,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,CAAC,CAAC,CAAC;aACV,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;YACzC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,GAAG,EAAH,SAAG;gBACH,OAAO,EAAE,CAAC,CAAC,MAAM,IAAI,+BAAc;gBACnC,YAAY,EAAE,UAAU;aACzB,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,MAAM,YAAY,GAAiB,EAAE,CAAC;QACtC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO;YAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO;YAE1C,MAAM,SAAS,GAAG,IAAA,mCAAkB,EAAC,UAAU,CAAC,MAAM,EAAE,0BAAS,CAAC,QAAQ,CAAC,CAAC;YAC5E,MAAM,YAAY,GAAG,IAAA,mCAAkB,EACrC,QAAQ,CAAC,MAAM,EACf,0BAAS,CAAC,QAAQ,CACnB,CAAC;YAEF,IAAI,SAAS,KAAK,+BAAc;gBAAE,OAAO;YACzC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;gBAC5B,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;aAC9B;YACD,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC;IACtB,CAAC;CAAA"}
@@ -0,0 +1,2 @@
1
+ import { Pool } from '../types';
2
+ export declare function getBalancerPoolsV2(url: string): Promise<Pool[]>;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.getBalancerPoolsV2 = void 0;
36
+ const graphql_request_1 = __importStar(require("graphql-request"));
37
+ function getBalancerPoolsV2(url) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const query = (0, graphql_request_1.gql) `
40
+ query pools {
41
+ pools(
42
+ first: 1000
43
+ orderBy: totalLiquidity
44
+ orderDirection: desc
45
+ where: { totalLiquidity_gt: "500" }
46
+ ) {
47
+ id
48
+ address
49
+ symbol
50
+ totalLiquidity
51
+ totalShares
52
+ tokens {
53
+ balance
54
+ decimals
55
+ symbol
56
+ address
57
+ }
58
+ }
59
+ }
60
+ `;
61
+ const res = yield (0, graphql_request_1.default)(url, query);
62
+ const pools = res.pools;
63
+ if (!pools || !pools.length)
64
+ return [];
65
+ return pools;
66
+ });
67
+ }
68
+ exports.getBalancerPoolsV2 = getBalancerPoolsV2;
69
+ //# sourceMappingURL=pools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pools.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/balancer/helpers/pools.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAA+C;AAG/C,SAAsB,kBAAkB,CAAC,GAAW;;QAClD,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,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;CAAA;AA3BD,gDA2BC"}
@@ -4,10 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.fetchers = exports.jobs = exports.platforms = void 0;
7
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
7
8
  const constants_1 = require("./constants");
8
9
  const poolsJob_1 = __importDefault(require("./poolsJob"));
9
- // import positionFetcher from './positionFetcher';
10
+ const getPoolsV2Fetcher_1 = __importDefault(require("./getPoolsV2Fetcher"));
10
11
  exports.platforms = [constants_1.platform];
11
12
  exports.jobs = [poolsJob_1.default];
12
- exports.fetchers = [];
13
+ exports.fetchers = [
14
+ (0, getPoolsV2Fetcher_1.default)(portfolio_core_1.NetworkId.ethereum),
15
+ (0, getPoolsV2Fetcher_1.default)(portfolio_core_1.NetworkId.avalanche),
16
+ (0, getPoolsV2Fetcher_1.default)(portfolio_core_1.NetworkId.polygon),
17
+ ];
13
18
  //# 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":";;;;;;AAAA,+DAAiE;AAGjE,2CAAuC;AACvC,0DAAkC;AAClC,4EAAoD;AAEvC,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,kBAAQ,CAAC,CAAC;AACzB,QAAA,QAAQ,GAAc;IACjC,IAAA,2BAAiB,EAAC,0BAAS,CAAC,QAAQ,CAAC;IACrC,IAAA,2BAAiB,EAAC,0BAAS,CAAC,SAAS,CAAC;IACtC,IAAA,2BAAiB,EAAC,0BAAS,CAAC,OAAO,CAAC;CACrC,CAAC"}
@@ -8,15 +8,105 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
13
17
  const constants_1 = require("./constants");
14
- const helpers_1 = require("./helpers");
18
+ const pools_1 = require("./helpers/pools");
19
+ const gauges_1 = require("./helpers/gauges");
20
+ const runInBatch_1 = __importDefault(require("../../utils/misc/runInBatch"));
21
+ const poolConfigs = [
22
+ {
23
+ poolsUrl: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-v2',
24
+ gaugesUrl: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-gauges',
25
+ networkId: portfolio_core_1.NetworkId.ethereum,
26
+ },
27
+ {
28
+ poolsUrl: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-avalanche-v2',
29
+ gaugesUrl: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-gauges-avalanche',
30
+ networkId: portfolio_core_1.NetworkId.avalanche,
31
+ },
32
+ {
33
+ poolsUrl: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-polygon-v2',
34
+ gaugesUrl: 'https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-gauges-polygon',
35
+ networkId: portfolio_core_1.NetworkId.polygon,
36
+ },
37
+ ];
15
38
  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);
39
+ for (let k = 0; k < poolConfigs.length; k++) {
40
+ const poolConfig = poolConfigs[k];
41
+ const { networkId, poolsUrl, gaugesUrl } = poolConfig;
42
+ const pools = yield (0, pools_1.getBalancerPoolsV2)(poolsUrl);
43
+ const gaugesByPool = yield (0, gauges_1.getBalancerGaugesV2)(gaugesUrl, networkId);
44
+ const underlyingAddresses = [
45
+ ...new Set(pools.map((p) => p.tokens.map((t) => t.address)).flat()),
46
+ ];
47
+ const tokenPriceResults = yield (0, runInBatch_1.default)([...underlyingAddresses].map((a) => () => cache.getTokenPrice(a, networkId)));
48
+ const tokenPricesByAddress = new Map();
49
+ tokenPriceResults.forEach((r) => {
50
+ if (r.status === 'rejected')
51
+ return;
52
+ if (!r.value)
53
+ return;
54
+ tokenPricesByAddress.set(r.value.address, r.value);
55
+ });
56
+ const gGaugesByPool = {};
57
+ for (let i = 0; i < pools.length; i++) {
58
+ const pool = pools[i];
59
+ if (!pool.address || !pool.tokens || !pool.id)
60
+ continue;
61
+ const underlyings = [];
62
+ let tvl = new bignumber_js_1.default(0);
63
+ for (let j = 0; j < pool.tokens.length; j++) {
64
+ const token = pool.tokens[j];
65
+ const address = (0, portfolio_core_1.formatTokenAddress)(token.address, networkId);
66
+ const tokenPrice = tokenPricesByAddress.get(address);
67
+ if (!tokenPrice)
68
+ break;
69
+ tvl = tvl.plus(new bignumber_js_1.default(token.balance).times(tokenPrice.price));
70
+ underlyings.push({
71
+ networkId,
72
+ address,
73
+ decimals: token.decimals,
74
+ price: tokenPrice.price,
75
+ amountPerLp: new bignumber_js_1.default(token.balance)
76
+ .div(pool.totalShares)
77
+ .toNumber(),
78
+ });
79
+ }
80
+ if (underlyings.length !== pool.tokens.length)
81
+ continue;
82
+ if (underlyings.length === 0)
83
+ continue;
84
+ const price = tvl.div(pool.totalShares).toNumber();
85
+ const lpAddress = (0, portfolio_core_1.formatTokenAddress)(pool.address, networkId);
86
+ const source = {
87
+ id: constants_1.platformId,
88
+ address: lpAddress,
89
+ decimals: 18,
90
+ networkId,
91
+ platformId: 'balancer',
92
+ price,
93
+ timestamp: Date.now(),
94
+ weight: 1,
95
+ elementName: 'Balancer V2',
96
+ underlyings,
97
+ };
98
+ yield cache.setTokenPriceSource(source);
99
+ const gauges = gaugesByPool[lpAddress] || [];
100
+ gGaugesByPool[lpAddress] = gauges;
101
+ }
102
+ yield cache.setItem(constants_1.poolsAndGaugesV2CacheKey, gGaugesByPool, {
103
+ prefix: constants_1.platformId,
104
+ networkId,
105
+ });
106
+ }
17
107
  });
18
108
  const job = {
19
- id: `${constants_1.platformId}-pools`,
109
+ id: `${constants_1.platformId}-v2`,
20
110
  executor,
21
111
  };
22
112
  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":"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"}
@@ -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;
@@ -11,3 +12,4 @@ export type PoolToken = {
11
12
  address: string;
12
13
  balance: string;
13
14
  };
15
+ export type GaugesByPool = Record<string, string[]>;
@@ -32,7 +32,7 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
32
32
  args: [owner],
33
33
  });
34
34
  const proxyAddresses = [owner, ...instadappAccounts.map((a) => a.address)];
35
- if (ownerProxyRes !== portfolio_core_1.zeroAddress)
35
+ if (ownerProxyRes !== portfolio_core_1.zeroAddressEvm)
36
36
  proxyAddresses.push(ownerProxyRes);
37
37
  if (proxyAddresses.length === 0)
38
38
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"vaultsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/maker/vaultsFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vaultsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/maker/vaultsFetcher.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -0,0 +1 @@
1
+ export declare function range(start: number, stop?: number, step?: number): number[];
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.range = void 0;
4
+ function range(start, stop, step = 1) {
5
+ const nums = [];
6
+ let fStart = start;
7
+ let fStop = stop || 0;
8
+ if (stop === undefined) {
9
+ fStart = 0;
10
+ fStop = start;
11
+ }
12
+ for (let i = fStart; i < fStop; i += step) {
13
+ nums.push(i);
14
+ }
15
+ return nums;
16
+ }
17
+ exports.range = range;
18
+ //# sourceMappingURL=range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/range.ts"],"names":[],"mappings":";;;AAAA,SAAgB,KAAK,CAAC,KAAa,EAAE,IAAa,EAAE,IAAI,GAAG,CAAC;IAC1D,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC;IACtB,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,MAAM,GAAG,CAAC,CAAC;QACX,KAAK,GAAG,KAAK,CAAC;KACf;IACD,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,IAAI,EAAE;QACzC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAbD,sBAaC"}
@@ -0,0 +1 @@
1
+ export declare function rangeBI(start: bigint, stop?: bigint, step?: bigint): bigint[];
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rangeBI = void 0;
4
+ function rangeBI(start, stop, step = BigInt(1)) {
5
+ const nums = [];
6
+ let fStart = start;
7
+ let fStop = stop || BigInt(0);
8
+ if (stop === undefined) {
9
+ fStart = BigInt(0);
10
+ fStop = start;
11
+ }
12
+ for (let i = fStart; i < fStop; i += step) {
13
+ nums.push(i);
14
+ }
15
+ return nums;
16
+ }
17
+ exports.rangeBI = rangeBI;
18
+ //# sourceMappingURL=rangeBI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rangeBI.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/rangeBI.ts"],"names":[],"mappings":";;;AAAA,SAAgB,OAAO,CAAC,KAAa,EAAE,IAAa,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;IACpE,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,KAAK,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,GAAG,KAAK,CAAC;KACf;IAED,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,IAAI,EAAE;QACzC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAdD,0BAcC"}
@@ -1,3 +0,0 @@
1
- import { NetworkIdType } from '@sonarwatch/portfolio-core';
2
- import { Cache } from '../../Cache';
3
- export declare function getBalancerPools(url: string, networkId: NetworkIdType, cache: Cache): Promise<void>;
@@ -1,135 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.getBalancerPools = void 0;
39
- const portfolio_core_1 = require("@sonarwatch/portfolio-core");
40
- const graphql_request_1 = __importStar(require("graphql-request"));
41
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
42
- const constants_1 = require("./constants");
43
- const runInBatch_1 = __importDefault(require("../../utils/misc/runInBatch"));
44
- function getBalancerPools(url, networkId, cache) {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- const query = (0, graphql_request_1.gql) `
47
- query pools {
48
- pools(
49
- first: 1000
50
- orderBy: totalLiquidity
51
- orderDirection: desc
52
- where: { totalLiquidity_gt: "500" }
53
- ) {
54
- id
55
- address
56
- symbol
57
- totalLiquidity
58
- tokens {
59
- balance
60
- decimals
61
- symbol
62
- address
63
- }
64
- }
65
- }
66
- `;
67
- const res = yield (0, graphql_request_1.default)(url, query);
68
- const pools = res.pools;
69
- if (!pools || !pools.length)
70
- return;
71
- const underlyingAddresses = [
72
- ...new Set(pools.map((p) => p.tokens.map((t) => t.address)).flat()),
73
- ];
74
- const tokenPriceResults = yield (0, runInBatch_1.default)([...underlyingAddresses].map((mint) => () => cache.getTokenPrice(mint, networkId)));
75
- const tokenPricesByAddress = new Map();
76
- tokenPriceResults.forEach((r) => {
77
- if (r.status === 'rejected')
78
- return;
79
- if (!r.value)
80
- return;
81
- tokenPricesByAddress.set(r.value.address, r.value);
82
- });
83
- const poolAddresses = [];
84
- for (let i = 0; i < pools.length; i++) {
85
- const pool = pools[i];
86
- if (!pool.address || !pool.tokens || !pool.id)
87
- continue;
88
- const underlyings = [];
89
- let tvl = new bignumber_js_1.default(0);
90
- for (let j = 0; j < pool.tokens.length; j++) {
91
- const token = pool.tokens[j];
92
- const address = (0, portfolio_core_1.formatTokenAddress)(token.address, networkId);
93
- const tokenPrice = tokenPricesByAddress.get(address);
94
- if (!tokenPrice)
95
- break;
96
- tvl = tvl.plus(new bignumber_js_1.default(token.balance).times(token.balance));
97
- underlyings.push({
98
- networkId,
99
- address,
100
- decimals: token.decimals,
101
- price: tokenPrice.price,
102
- amountPerLp: new bignumber_js_1.default(pool.totalLiquidity)
103
- .div(token.balance)
104
- .toNumber(),
105
- });
106
- }
107
- if (underlyings.length !== pool.tokens.length)
108
- continue;
109
- if (underlyings.length === 0)
110
- continue;
111
- const price = tvl.div(pool.totalLiquidity).toNumber();
112
- const lpAddress = (0, portfolio_core_1.formatTokenAddress)(pool.address, networkId);
113
- const source = {
114
- id: constants_1.platformId,
115
- address: lpAddress,
116
- decimals: 18,
117
- networkId,
118
- platformId: 'balancer',
119
- price,
120
- timestamp: Date.now(),
121
- weight: 1,
122
- elementName: 'Balancer V2',
123
- underlyings,
124
- };
125
- yield cache.setTokenPriceSource(source);
126
- poolAddresses.push(lpAddress);
127
- }
128
- yield cache.setItem(constants_1.poolsCacheKey, poolAddresses, {
129
- prefix: constants_1.platformId,
130
- networkId,
131
- });
132
- });
133
- }
134
- exports.getBalancerPools = getBalancerPools;
135
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/balancer/helpers.ts"],"names":[],"mappings":"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"}
@@ -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"}