@sonarwatch/portfolio-plugins 0.8.77 → 0.8.79

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 (58) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/package.json +2 -2
  3. package/src/index.js +1 -0
  4. package/src/index.js.map +1 -1
  5. package/src/plugins/drift/deposits.js +1 -1
  6. package/src/plugins/drift/deposits.js.map +1 -1
  7. package/src/plugins/pancakeswap/abis.d.ts +164 -0
  8. package/src/plugins/pancakeswap/abis.js +135 -0
  9. package/src/plugins/pancakeswap/abis.js.map +1 -0
  10. package/src/plugins/pancakeswap/constants.d.ts +11 -0
  11. package/src/plugins/pancakeswap/constants.js +87 -1
  12. package/src/plugins/pancakeswap/constants.js.map +1 -1
  13. package/src/plugins/pancakeswap/getFarmsV2FetcherGenerator.d.ts +3 -0
  14. package/src/plugins/pancakeswap/getFarmsV2FetcherGenerator.js +116 -0
  15. package/src/plugins/pancakeswap/getFarmsV2FetcherGenerator.js.map +1 -0
  16. package/src/plugins/pancakeswap/getStakersBalancesFetcherGenerator.d.ts +4 -0
  17. package/src/plugins/pancakeswap/getStakersBalancesFetcherGenerator.js +74 -0
  18. package/src/plugins/pancakeswap/getStakersBalancesFetcherGenerator.js.map +1 -0
  19. package/src/plugins/pancakeswap/index.js +63 -2
  20. package/src/plugins/pancakeswap/index.js.map +1 -1
  21. package/src/plugins/pancakeswap/stakerCakeFetcher.js +74 -0
  22. package/src/plugins/pancakeswap/stakerCakeFetcher.js.map +1 -0
  23. package/src/plugins/pancakeswap/types.d.ts +6 -0
  24. package/src/plugins/uniswap/constants.d.ts +2 -2
  25. package/src/plugins/uniswap/constants.js +5 -5
  26. package/src/plugins/uniswap/constants.js.map +1 -1
  27. package/src/plugins/uniswap/getPositionsV3Fetcher.d.ts +2 -2
  28. package/src/plugins/uniswap/getPositionsV3Fetcher.js +3 -3
  29. package/src/plugins/uniswap/getPositionsV3Fetcher.js.map +1 -1
  30. package/src/plugins/uniswap/index.js +1 -1
  31. package/src/plugins/uniswap/index.js.map +1 -1
  32. package/src/plugins/uniswap/types.d.ts +1 -1
  33. package/src/plugins/uniswap-v2/abis.d.ts +105 -0
  34. package/src/plugins/uniswap-v2/abis.js +79 -0
  35. package/src/plugins/uniswap-v2/abis.js.map +1 -0
  36. package/src/plugins/uniswap-v2/getUniV2PoolsBalancesFetcherGenerator.d.ts +3 -0
  37. package/src/plugins/uniswap-v2/getUniV2PoolsBalancesFetcherGenerator.js +58 -0
  38. package/src/plugins/uniswap-v2/getUniV2PoolsBalancesFetcherGenerator.js.map +1 -0
  39. package/src/plugins/uniswap-v2/helpers.d.ts +1 -1
  40. package/src/plugins/uniswap-v2/helpers.js +3 -3
  41. package/src/plugins/uniswap-v2/helpers.js.map +1 -1
  42. package/src/plugins/uniswap-v2/index.js +18 -4
  43. package/src/plugins/uniswap-v2/index.js.map +1 -1
  44. package/src/plugins/uniswap-v2/poolJobExecutorGenerator.d.ts +3 -0
  45. package/src/plugins/uniswap-v2/poolJobExecutorGenerator.js +199 -0
  46. package/src/plugins/uniswap-v2/poolJobExecutorGenerator.js.map +1 -0
  47. package/src/plugins/uniswap-v2/types.d.ts +4 -4
  48. package/src/utils/misc/upperCaseFirstLetter.d.ts +1 -0
  49. package/src/utils/misc/upperCaseFirstLetter.js +9 -0
  50. package/src/utils/misc/upperCaseFirstLetter.js.map +1 -0
  51. package/src/utils/name-service/services/allDomains.js +4 -3
  52. package/src/utils/name-service/services/allDomains.js.map +1 -1
  53. package/src/plugins/uniswap-v2/v2Fetcher.js +0 -57
  54. package/src/plugins/uniswap-v2/v2Fetcher.js.map +0 -1
  55. package/src/plugins/uniswap-v2/v2Job.d.ts +0 -3
  56. package/src/plugins/uniswap-v2/v2Job.js +0 -85
  57. package/src/plugins/uniswap-v2/v2Job.js.map +0 -1
  58. /package/src/plugins/{uniswap-v2/v2Fetcher.d.ts → pancakeswap/stakerCakeFetcher.d.ts} +0 -0
@@ -0,0 +1,58 @@
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 constants_1 = require("./constants");
17
+ const getTokenAssets_1 = require("../../utils/evm/getTokenAssets");
18
+ const upperCaseFirstLetter_1 = __importDefault(require("../../utils/misc/upperCaseFirstLetter"));
19
+ function getUniV2PoolsBalancesFetcherGenerator(platformId, networkId) {
20
+ const name = `${(0, upperCaseFirstLetter_1.default)(platformId)} V2`;
21
+ return (owner, cache) => __awaiter(this, void 0, void 0, function* () {
22
+ const pairsV2 = yield cache.getItem(constants_1.pairsV2Key, {
23
+ networkId,
24
+ prefix: platformId,
25
+ });
26
+ if (!pairsV2)
27
+ return [];
28
+ const tokenAssets = yield (0, getTokenAssets_1.getTokenAssets)(owner, pairsV2, networkId, cache);
29
+ const liquidities = tokenAssets.map((assets) => {
30
+ const value = (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value));
31
+ return {
32
+ assets,
33
+ assetsValue: value,
34
+ rewardAssets: [],
35
+ rewardAssetsValue: null,
36
+ value,
37
+ yields: [],
38
+ };
39
+ });
40
+ if (liquidities.length === 0)
41
+ return [];
42
+ return [
43
+ {
44
+ type: portfolio_core_1.PortfolioElementType.liquidity,
45
+ label: 'LiquidityPool',
46
+ networkId,
47
+ platformId,
48
+ value: (0, portfolio_core_1.getUsdValueSum)(liquidities.map((l) => l.value)),
49
+ name,
50
+ data: {
51
+ liquidities,
52
+ },
53
+ },
54
+ ];
55
+ });
56
+ }
57
+ exports.default = getUniV2PoolsBalancesFetcherGenerator;
58
+ //# sourceMappingURL=getUniV2PoolsBalancesFetcherGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUniV2PoolsBalancesFetcherGenerator.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/uniswap-v2/getUniV2PoolsBalancesFetcherGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAKoC;AAEpC,2CAAyC;AAEzC,mEAAgE;AAChE,iGAAyE;AAEzE,SAAwB,qCAAqC,CAC3D,UAAkB,EAClB,SAA2B;IAE3B,MAAM,IAAI,GAAG,GAAG,IAAA,8BAAoB,EAAC,UAAU,CAAC,KAAK,CAAC;IACtD,OAAO,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAW,sBAAU,EAAE;YACxD,SAAS;YACT,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAc,EAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAE3E,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAsB,EAAE;YACjE,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,KAAK;gBAClB,YAAY,EAAE,EAAE;gBAChB,iBAAiB,EAAE,IAAI;gBACvB,KAAK;gBACL,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACxC,OAAO;YACL;gBACE,IAAI,EAAE,qCAAoB,CAAC,SAAS;gBACpC,KAAK,EAAE,eAAe;gBACtB,SAAS;gBACT,UAAU;gBACV,KAAK,EAAE,IAAA,+BAAc,EAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACtD,IAAI;gBACJ,IAAI,EAAE;oBACJ,WAAW;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CAAA,CAAC;AACJ,CAAC;AAzCD,wDAyCC"}
@@ -1,2 +1,2 @@
1
1
  import { TheGraphUniV2Pair } from './types';
2
- export declare function getPairsV2(url: string): Promise<TheGraphUniV2Pair[]>;
2
+ export declare function getPairsV2FromTheGraph(url: string): Promise<TheGraphUniV2Pair[]>;
@@ -32,9 +32,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
32
32
  });
33
33
  };
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.getPairsV2 = void 0;
35
+ exports.getPairsV2FromTheGraph = void 0;
36
36
  const graphql_request_1 = __importStar(require("graphql-request"));
37
- function getPairsV2(url) {
37
+ function getPairsV2FromTheGraph(url) {
38
38
  return __awaiter(this, void 0, void 0, function* () {
39
39
  const query = (0, graphql_request_1.gql) `
40
40
  {
@@ -66,5 +66,5 @@ function getPairsV2(url) {
66
66
  return pairs;
67
67
  });
68
68
  }
69
- exports.getPairsV2 = getPairsV2;
69
+ exports.getPairsV2FromTheGraph = getPairsV2FromTheGraph;
70
70
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/uniswap-v2/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAA+C;AAI/C,SAAsB,UAAU,CAAC,GAAW;;QAC1C,MAAM,KAAK,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;GAsBhB,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAA,yBAAO,EAAiC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,GAAG,CAAC,KAA4B,CAAC;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;CAAA;AA5BD,gCA4BC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/uniswap-v2/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAA+C;AAI/C,SAAsB,sBAAsB,CAAC,GAAW;;QACtD,MAAM,KAAK,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;GAsBhB,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAA,yBAAO,EAAiC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,GAAG,CAAC,KAA4B,CAAC;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;CAAA;AA5BD,wDA4BC"}
@@ -4,8 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.fetchers = exports.jobs = void 0;
7
- const v2Job_1 = __importDefault(require("./v2Job"));
8
- const v2Fetcher_1 = __importDefault(require("./v2Fetcher"));
9
- exports.jobs = [v2Job_1.default];
10
- exports.fetchers = [v2Fetcher_1.default];
7
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
8
+ const constants_1 = require("./constants");
9
+ const poolJobExecutorGenerator_1 = __importDefault(require("./poolJobExecutorGenerator"));
10
+ const constants_2 = require("../uniswap/constants");
11
+ const getUniV2PoolsBalancesFetcherGenerator_1 = __importDefault(require("./getUniV2PoolsBalancesFetcherGenerator"));
12
+ exports.jobs = [
13
+ {
14
+ id: `${constants_2.platformId}-v2`,
15
+ executor: (0, poolJobExecutorGenerator_1.default)(constants_1.theGraphUrl, constants_2.platformId, portfolio_core_1.NetworkId.ethereum),
16
+ },
17
+ ];
18
+ exports.fetchers = [
19
+ {
20
+ id: `${constants_2.platformId}-v2`,
21
+ executor: (0, getUniV2PoolsBalancesFetcherGenerator_1.default)(constants_2.platformId, portfolio_core_1.NetworkId.ethereum),
22
+ networkId: portfolio_core_1.NetworkId.ethereum,
23
+ },
24
+ ];
11
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/uniswap-v2/index.ts"],"names":[],"mappings":";;;;;;AAEA,oDAA4B;AAC5B,4DAAoC;AAEvB,QAAA,IAAI,GAAU,CAAC,eAAK,CAAC,CAAC;AACtB,QAAA,QAAQ,GAAc,CAAC,mBAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/uniswap-v2/index.ts"],"names":[],"mappings":";;;;;;AAAA,+DAAuD;AAGvD,2CAA0C;AAC1C,0FAAuE;AACvE,oDAAqE;AACrE,oHAA4F;AAE/E,QAAA,IAAI,GAAU;IACzB;QACE,EAAE,EAAE,GAAG,sBAAe,KAAK;QAC3B,QAAQ,EAAE,IAAA,kCAA6B,EACrC,uBAAW,EACX,sBAAe,EACf,0BAAS,CAAC,QAAQ,CACnB;KACF;CACF,CAAC;AACW,QAAA,QAAQ,GAAc;IACjC;QACE,EAAE,EAAE,GAAG,sBAAe,KAAK;QAC3B,QAAQ,EAAE,IAAA,+CAAqC,EAC7C,sBAAe,EACf,0BAAS,CAAC,QAAQ,CACnB;QACD,SAAS,EAAE,0BAAS,CAAC,QAAQ;KAC9B;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { EvmNetworkIdType } from '@sonarwatch/portfolio-core';
2
+ import { JobExecutor } from '../../Job';
3
+ export default function uniPoolV2JobExecutorGenerator(contractOrTheGraphUrl: string, platformId: string, networkId: EvmNetworkIdType, forcedPools?: `0x${string}`[]): JobExecutor;
@@ -0,0 +1,199 @@
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 helpers_1 = require("./helpers");
18
+ const constants_1 = require("./constants");
19
+ const clients_1 = require("../../utils/clients");
20
+ const abis_1 = require("./abis");
21
+ const upperCaseFirstLetter_1 = __importDefault(require("../../utils/misc/upperCaseFirstLetter"));
22
+ const maxPairsToFetch = 100;
23
+ function uniPoolV2JobExecutorGenerator(contractOrTheGraphUrl, platformId, networkId, forcedPools) {
24
+ const client = (0, clients_1.getEvmClient)(networkId);
25
+ const elementName = `${(0, upperCaseFirstLetter_1.default)(platformId)} V2`;
26
+ return (cache) => __awaiter(this, void 0, void 0, function* () {
27
+ let pairs = [];
28
+ if (contractOrTheGraphUrl.startsWith('0x')) {
29
+ const contract = contractOrTheGraphUrl;
30
+ const allPairsLength = yield client.readContract({
31
+ abi: [abis_1.abi.allPairsLength],
32
+ address: contract,
33
+ functionName: abis_1.abi.allPairsLength.name,
34
+ });
35
+ const end = Math.min(maxPairsToFetch, Number(allPairsLength));
36
+ const allPairsContractBase = {
37
+ address: contract,
38
+ abi: [abis_1.abi.allPairs],
39
+ functionName: abis_1.abi.allPairs.name,
40
+ };
41
+ const allPairsContracts = [];
42
+ for (let pid = BigInt(0); pid < end; pid++) {
43
+ allPairsContracts.push(Object.assign(Object.assign({}, allPairsContractBase), { args: [pid] }));
44
+ }
45
+ const allPairsRes = yield client.multicall({
46
+ contracts: allPairsContracts,
47
+ });
48
+ const contracts = allPairsRes
49
+ .map((res) => (res.status === 'success' ? res.result : []))
50
+ .flat();
51
+ if (forcedPools)
52
+ contracts.push(...forcedPools);
53
+ pairs = yield getPairsDetails(contracts, networkId);
54
+ }
55
+ else if (contractOrTheGraphUrl.startsWith('https://api.thegraph.com/')) {
56
+ pairs = yield (0, helpers_1.getPairsV2FromTheGraph)(contractOrTheGraphUrl);
57
+ }
58
+ else {
59
+ console.error('Wrong contract or TheGraph url :', contractOrTheGraphUrl);
60
+ return;
61
+ }
62
+ const tokenAddresses = [
63
+ ...new Set(pairs.map((p) => [p.token0.id, p.token1.id]).flat()),
64
+ ];
65
+ const tokenPrices = yield cache.getTokenPrices(tokenAddresses, networkId);
66
+ const tokenPricesByAddress = new Map();
67
+ tokenPrices.forEach((tp) => {
68
+ if (!tp)
69
+ return;
70
+ tokenPricesByAddress.set(tp.address, tp);
71
+ });
72
+ const pairAddresses = [];
73
+ for (let i = 0; i < pairs.length; i++) {
74
+ const pair = pairs[i];
75
+ const underlyingsTokens = [
76
+ [pair.token0.id, pair.reserve0],
77
+ [pair.token1.id, pair.reserve1],
78
+ ];
79
+ const underlyings = [];
80
+ let tvl = new bignumber_js_1.default(0);
81
+ for (let j = 0; j < underlyingsTokens.length; j++) {
82
+ const [address, amount] = underlyingsTokens[j];
83
+ const fAddress = (0, portfolio_core_1.formatTokenAddress)(address, networkId);
84
+ const tokenPrice = tokenPricesByAddress.get(fAddress);
85
+ if (!tokenPrice)
86
+ break;
87
+ tvl = tvl.plus(new bignumber_js_1.default(amount).times(tokenPrice.price));
88
+ underlyings.push({
89
+ networkId,
90
+ address: fAddress,
91
+ decimals: tokenPrice.decimals,
92
+ price: tokenPrice.price,
93
+ amountPerLp: new bignumber_js_1.default(amount).div(pair.totalSupply).toNumber(),
94
+ });
95
+ }
96
+ if (underlyings.length !== underlyingsTokens.length)
97
+ continue;
98
+ const price = tvl.div(pair.totalSupply).toNumber();
99
+ const lpAddress = (0, portfolio_core_1.formatTokenAddress)(pair.id, networkId);
100
+ const source = {
101
+ id: platformId,
102
+ address: lpAddress,
103
+ decimals: 18,
104
+ networkId,
105
+ platformId,
106
+ price,
107
+ timestamp: Date.now(),
108
+ weight: 1,
109
+ elementName,
110
+ underlyings,
111
+ };
112
+ yield cache.setTokenPriceSource(source);
113
+ pairAddresses.push(lpAddress);
114
+ }
115
+ yield cache.setItem(constants_1.pairsV2Key, pairAddresses, {
116
+ prefix: platformId,
117
+ networkId,
118
+ });
119
+ });
120
+ }
121
+ exports.default = uniPoolV2JobExecutorGenerator;
122
+ function getPairsDetails(contracts, networkId) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const client = (0, clients_1.getEvmClient)(networkId);
125
+ const contractToken0Base = {
126
+ abi: [abis_1.abi.token0],
127
+ functionName: abis_1.abi.token0.name,
128
+ };
129
+ const contractToken1Base = {
130
+ abi: [abis_1.abi.token1],
131
+ functionName: abis_1.abi.token1.name,
132
+ };
133
+ const contractReserveBase = {
134
+ abi: [abis_1.abi.reserves],
135
+ functionName: abis_1.abi.reserves.name,
136
+ };
137
+ const totalSupplyBase = {
138
+ abi: [abis_1.abi.totalSupply],
139
+ functionName: abis_1.abi.totalSupply.name,
140
+ };
141
+ const decimalsBase = {
142
+ abi: [abis_1.abi.decimals],
143
+ functionName: abis_1.abi.decimals.name,
144
+ };
145
+ const token0Contracts = [];
146
+ const token1Contracts = [];
147
+ const reservesContracts = [];
148
+ const totalSuppliesContracts = [];
149
+ const decimalsContracts = [];
150
+ for (const contract of contracts) {
151
+ token0Contracts.push(Object.assign(Object.assign({}, contractToken0Base), { address: contract }));
152
+ token1Contracts.push(Object.assign(Object.assign({}, contractToken1Base), { address: contract }));
153
+ reservesContracts.push(Object.assign(Object.assign({}, contractReserveBase), { address: contract }));
154
+ totalSuppliesContracts.push(Object.assign(Object.assign({}, totalSupplyBase), { address: contract }));
155
+ decimalsContracts.push(Object.assign(Object.assign({}, decimalsBase), { address: contract }));
156
+ }
157
+ const [token0Res, token1Res, reservesRes, totalSuppliesRes, decimalsRes] = yield Promise.all([
158
+ client.multicall({ contracts: token0Contracts }),
159
+ client.multicall({ contracts: token1Contracts }),
160
+ client.multicall({ contracts: reservesContracts }),
161
+ client.multicall({ contracts: totalSuppliesContracts }),
162
+ client.multicall({ contracts: decimalsContracts }),
163
+ ]);
164
+ const pairs = [];
165
+ for (let i = 0; i < contracts.length; i++) {
166
+ const token0 = token0Res[i];
167
+ const token1 = token1Res[i];
168
+ const reserves = reservesRes[i];
169
+ const totalSupply = totalSuppliesRes[i];
170
+ const decimals = decimalsRes[i];
171
+ if (token0.status === 'success' &&
172
+ token1.status === 'success' &&
173
+ totalSupply.status === 'success' &&
174
+ decimals.status === 'success' &&
175
+ reserves.status === 'success') {
176
+ pairs.push({
177
+ id: contracts[i].toString(),
178
+ reserve0: new bignumber_js_1.default(reserves.result[0].toString())
179
+ .dividedBy(Math.pow(10, 18))
180
+ .toString(),
181
+ reserve1: new bignumber_js_1.default(reserves.result[1].toString())
182
+ .dividedBy(Math.pow(10, 18))
183
+ .toString(),
184
+ totalSupply: new bignumber_js_1.default(totalSupply.result.toString())
185
+ .dividedBy(Math.pow(10, decimals.result))
186
+ .toString(),
187
+ token0: {
188
+ id: token0.result,
189
+ },
190
+ token1: {
191
+ id: token1.result,
192
+ },
193
+ });
194
+ }
195
+ }
196
+ return pairs;
197
+ });
198
+ }
199
+ //# sourceMappingURL=poolJobExecutorGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poolJobExecutorGenerator.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/uniswap-v2/poolJobExecutorGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAMoC;AACpC,gEAAqC;AAGrC,uCAAmD;AACnD,2CAAyC;AACzC,iDAAmD;AACnD,iCAA6B;AAE7B,iGAAyE;AAEzE,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,SAAwB,6BAA6B,CACnD,qBAA6B,EAC7B,UAAkB,EAClB,SAA2B,EAC3B,WAA6B;IAE7B,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,SAAS,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,GAAG,IAAA,8BAAoB,EAAC,UAAU,CAAC,KAAK,CAAC;IAE7D,OAAO,CAAO,KAAY,EAAE,EAAE;QAC5B,IAAI,KAAK,GAAsC,EAAE,CAAC;QAClD,IAAI,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAC1C,MAAM,QAAQ,GAAG,qBAAsC,CAAC;YAExD,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;gBAC/C,GAAG,EAAE,CAAC,UAAG,CAAC,cAAc,CAAC;gBACzB,OAAO,EAAE,QAAQ;gBACjB,YAAY,EAAE,UAAG,CAAC,cAAc,CAAC,IAAI;aACtC,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAE9D,MAAM,oBAAoB,GAAG;gBAC3B,OAAO,EAAE,QAAQ;gBACjB,GAAG,EAAE,CAAC,UAAG,CAAC,QAAQ,CAAC;gBACnB,YAAY,EAAE,UAAG,CAAC,QAAQ,CAAC,IAAI;aACvB,CAAC;YAEX,MAAM,iBAAiB,GAAG,EAAE,CAAC;YAC7B,KAAK,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC1C,iBAAiB,CAAC,IAAI,CAAC,gCAClB,oBAAoB,KACvB,IAAI,EAAE,CAAC,GAAG,CAAC,GACH,CAAC,CAAC;aACb;YAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;gBACzC,SAAS,EAAE,iBAAiB;aAC7B,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,WAAW;iBAC1B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBAC1D,IAAI,EAAE,CAAC;YAEV,IAAI,WAAW;gBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;YAEhD,KAAK,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;SACrD;aAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE;YACxE,KAAK,GAAG,MAAM,IAAA,gCAAsB,EAAC,qBAAqB,CAAC,CAAC;SAC7D;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,qBAAqB,CAAC,CAAC;YACzE,OAAO;SACR;QAED,MAAM,cAAc,GAAG;YACrB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAChE,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAC1E,MAAM,oBAAoB,GAA4B,IAAI,GAAG,EAAE,CAAC;QAChE,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACzB,IAAI,CAAC,EAAE;gBAAE,OAAO;YAChB,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC3C,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;YAEtB,MAAM,iBAAiB,GAAG;gBACxB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;gBAC/B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;aACvB,CAAC;YACX,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,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjD,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAC/C,MAAM,QAAQ,GAAG,IAAA,mCAAkB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxD,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtD,IAAI,CAAC,UAAU;oBAAE,MAAM;gBACvB,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,sBAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9D,WAAW,CAAC,IAAI,CAAC;oBACf,SAAS;oBACT,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,WAAW,EAAE,IAAI,sBAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;iBACpE,CAAC,CAAC;aACJ;YACD,IAAI,WAAW,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM;gBAAE,SAAS;YAE9D,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,IAAA,mCAAkB,EAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YACzD,MAAM,MAAM,GAAqB;gBAC/B,EAAE,EAAE,UAAU;gBACd,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,EAAE;gBACZ,SAAS;gBACT,UAAU;gBACV,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,MAAM,EAAE,CAAC;gBACT,WAAW;gBACX,WAAW;aACZ,CAAC;YACF,MAAM,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACxC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC/B;QAED,MAAM,KAAK,CAAC,OAAO,CAAC,sBAAU,EAAE,aAAa,EAAE;YAC7C,MAAM,EAAE,UAAU;YAClB,SAAS;SACV,CAAC,CAAC;IACL,CAAC,CAAA,CAAC;AACJ,CAAC;AAjHD,gDAiHC;AAED,SAAe,eAAe,CAC5B,SAA0B,EAC1B,SAA2B;;QAE3B,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,kBAAkB,GAAG;YACzB,GAAG,EAAE,CAAC,UAAG,CAAC,MAAM,CAAC;YACjB,YAAY,EAAE,UAAG,CAAC,MAAM,CAAC,IAAI;SACrB,CAAC;QACX,MAAM,kBAAkB,GAAG;YACzB,GAAG,EAAE,CAAC,UAAG,CAAC,MAAM,CAAC;YACjB,YAAY,EAAE,UAAG,CAAC,MAAM,CAAC,IAAI;SACrB,CAAC;QACX,MAAM,mBAAmB,GAAG;YAC1B,GAAG,EAAE,CAAC,UAAG,CAAC,QAAQ,CAAC;YACnB,YAAY,EAAE,UAAG,CAAC,QAAQ,CAAC,IAAI;SACvB,CAAC;QACX,MAAM,eAAe,GAAG;YACtB,GAAG,EAAE,CAAC,UAAG,CAAC,WAAW,CAAC;YACtB,YAAY,EAAE,UAAG,CAAC,WAAW,CAAC,IAAI;SAC1B,CAAC;QACX,MAAM,YAAY,GAAG;YACnB,GAAG,EAAE,CAAC,UAAG,CAAC,QAAQ,CAAC;YACnB,YAAY,EAAE,UAAG,CAAC,QAAQ,CAAC,IAAI;SACvB,CAAC;QAEX,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAC7B,MAAM,sBAAsB,GAAG,EAAE,CAAC;QAClC,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAC7B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,eAAe,CAAC,IAAI,CAAC,gCAAK,kBAAkB,KAAE,OAAO,EAAE,QAAQ,GAAW,CAAC,CAAC;YAC5E,eAAe,CAAC,IAAI,CAAC,gCAAK,kBAAkB,KAAE,OAAO,EAAE,QAAQ,GAAW,CAAC,CAAC;YAC5E,iBAAiB,CAAC,IAAI,CAAC,gCAClB,mBAAmB,KACtB,OAAO,EAAE,QAAQ,GACT,CAAC,CAAC;YACZ,sBAAsB,CAAC,IAAI,CAAC,gCACvB,eAAe,KAClB,OAAO,EAAE,QAAQ,GACT,CAAC,CAAC;YACZ,iBAAiB,CAAC,IAAI,CAAC,gCAClB,YAAY,KACf,OAAO,EAAE,QAAQ,GACT,CAAC,CAAC;SACb;QAED,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,CAAC,GACtE,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;YAChD,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;YAChD,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;YAClD,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;SACnD,CAAC,CAAC;QAEL,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAChC,IACE,MAAM,CAAC,MAAM,KAAK,SAAS;gBAC3B,MAAM,CAAC,MAAM,KAAK,SAAS;gBAC3B,WAAW,CAAC,MAAM,KAAK,SAAS;gBAChC,QAAQ,CAAC,MAAM,KAAK,SAAS;gBAC7B,QAAQ,CAAC,MAAM,KAAK,SAAS,EAC7B;gBACA,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;oBAC3B,QAAQ,EAAE,IAAI,sBAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;yBACnD,SAAS,CAAC,SAAA,EAAE,EAAI,EAAE,CAAA,CAAC;yBACnB,QAAQ,EAAE;oBACb,QAAQ,EAAE,IAAI,sBAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;yBACnD,SAAS,CAAC,SAAA,EAAE,EAAI,EAAE,CAAA,CAAC;yBACnB,QAAQ,EAAE;oBACb,WAAW,EAAE,IAAI,sBAAS,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;yBACtD,SAAS,CAAC,SAAA,EAAE,EAAI,QAAQ,CAAC,MAAM,CAAA,CAAC;yBAChC,QAAQ,EAAE;oBACb,MAAM,EAAE;wBACN,EAAE,EAAE,MAAM,CAAC,MAAM;qBAClB;oBACD,MAAM,EAAE;wBACN,EAAE,EAAE,MAAM,CAAC,MAAM;qBAClB;iBACF,CAAC,CAAC;aACJ;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CAAA"}
@@ -1,18 +1,18 @@
1
- export type TheGraphUniV2Pair = {
2
- id: string;
1
+ export type TheGraphUniV2Pair = UniV2Pair & {
3
2
  reserveUSD: string;
4
3
  volumeUSD: string;
5
4
  trackedReserveETH: string;
6
5
  reserveETH: string;
6
+ };
7
+ export type UniV2Pair = {
8
+ id: string;
7
9
  reserve0: string;
8
10
  reserve1: string;
9
11
  totalSupply: string;
10
12
  token0: {
11
13
  id: string;
12
- decimals: string;
13
14
  };
14
15
  token1: {
15
16
  id: string;
16
- decimals: string;
17
17
  };
18
18
  };
@@ -0,0 +1 @@
1
+ export default function upperCaseFirstLetter(word: string): string;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function upperCaseFirstLetter(word) {
4
+ if (word.length > 1)
5
+ return word.slice(0, 1).toUpperCase() + word.slice(1);
6
+ return word.toUpperCase();
7
+ }
8
+ exports.default = upperCaseFirstLetter;
9
+ //# sourceMappingURL=upperCaseFirstLetter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upperCaseFirstLetter.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/upperCaseFirstLetter.ts"],"names":[],"mappings":";;AAAA,SAAwB,oBAAoB,CAAC,IAAY;IACvD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC;AAHD,uCAGC"}
@@ -11,8 +11,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.nameService = void 0;
13
13
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
14
- const clients_1 = require("../../clients");
15
14
  const tldparser_1 = require("@onsol/tldparser");
15
+ const clients_1 = require("../../clients");
16
16
  function getOwner(name) {
17
17
  return __awaiter(this, void 0, void 0, function* () {
18
18
  const client = (0, clients_1.getClientSolana)();
@@ -27,11 +27,12 @@ function getNames(address) {
27
27
  return __awaiter(this, void 0, void 0, function* () {
28
28
  const client = (0, clients_1.getClientSolana)();
29
29
  const parser = new tldparser_1.TldParser(client);
30
- const allDomainsWithNameAccounts = yield parser.getParsedAllUserDomains(address).catch(() => undefined);
30
+ const allDomainsWithNameAccounts = yield parser
31
+ .getParsedAllUserDomains(address)
32
+ .catch(() => undefined);
31
33
  if (!allDomainsWithNameAccounts)
32
34
  return [];
33
35
  return allDomainsWithNameAccounts.map((domainsWithNameAccounts) => domainsWithNameAccounts.domain);
34
- ;
35
36
  });
36
37
  }
37
38
  exports.nameService = {
@@ -1 +1 @@
1
- {"version":3,"file":"allDomains.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/utils/name-service/services/allDomains.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAAmE;AACnE,2CAAgD;AAEhD,gDAA6C;AAE7C,SAAe,QAAQ,CAAC,IAAY;;QAClC,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,qBAAS,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;QACtD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;CAAA;AAED,SAAe,QAAQ,CAAC,OAAe;;QACrC,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,IAAI,qBAAS,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,0BAA0B,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACvG,IAAI,CAAC,0BAA0B;YAAE,OAAO,EAAE,CAAC;QAC3C,OAAO,0BAA0B,CAAC,GAAG,CAAC,CAAC,uBAAuB,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAAA,CAAC;IACtG,CAAC;CAAA;AAEY,QAAA,WAAW,GAAgB;IACtC,EAAE,EAAE,YAAY;IAChB,OAAO,EAAE,sCAAqB;IAC9B,QAAQ;IACR,QAAQ;CACT,CAAC"}
1
+ {"version":3,"file":"allDomains.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/utils/name-service/services/allDomains.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAAmE;AACnE,gDAA6C;AAC7C,2CAAgD;AAGhD,SAAe,QAAQ,CAAC,IAAY;;QAClC,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,qBAAS,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;CAAA;AAED,SAAe,QAAQ,CAAC,OAAe;;QACrC,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,IAAI,qBAAS,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,0BAA0B,GAAG,MAAM,MAAM;aAC5C,uBAAuB,CAAC,OAAO,CAAC;aAChC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,0BAA0B;YAAE,OAAO,EAAE,CAAC;QAC3C,OAAO,0BAA0B,CAAC,GAAG,CACnC,CAAC,uBAAuB,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAC5D,CAAC;IACJ,CAAC;CAAA;AAEY,QAAA,WAAW,GAAgB;IACtC,EAAE,EAAE,YAAY;IAChB,OAAO,EAAE,sCAAqB;IAC9B,QAAQ;IACR,QAAQ;CACT,CAAC"}
@@ -1,57 +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 constants_2 = require("../uniswap/constants");
15
- const getTokenAssets_1 = require("../../utils/evm/getTokenAssets");
16
- const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
17
- const pairsV2 = yield cache.getItem(constants_1.pairsV2Key, {
18
- networkId: portfolio_core_1.NetworkId.ethereum,
19
- prefix: constants_2.platformId,
20
- });
21
- if (!pairsV2)
22
- return [];
23
- const tokenAssets = yield (0, getTokenAssets_1.getTokenAssets)(owner, pairsV2, portfolio_core_1.NetworkId.ethereum, cache);
24
- const liquidities = tokenAssets.map((assets) => {
25
- const value = (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value));
26
- return {
27
- assets,
28
- assetsValue: value,
29
- rewardAssets: [],
30
- rewardAssetsValue: null,
31
- value,
32
- yields: [],
33
- };
34
- });
35
- if (liquidities.length === 0)
36
- return [];
37
- return [
38
- {
39
- type: portfolio_core_1.PortfolioElementType.liquidity,
40
- label: 'LiquidityPool',
41
- networkId: portfolio_core_1.NetworkId.ethereum,
42
- platformId: constants_2.platformId,
43
- value: (0, portfolio_core_1.getUsdValueSum)(liquidities.map((l) => l.value)),
44
- name: 'Uniswap V2',
45
- data: {
46
- liquidities,
47
- },
48
- },
49
- ];
50
- });
51
- const fetcher = {
52
- id: `${constants_2.platformId}-v2`,
53
- networkId: portfolio_core_1.NetworkId.ethereum,
54
- executor,
55
- };
56
- exports.default = fetcher;
57
- //# sourceMappingURL=v2Fetcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v2Fetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/uniswap-v2/v2Fetcher.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAKoC;AAEpC,2CAAyC;AAEzC,oDAAkD;AAClD,mEAAgE;AAEhE,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAW,sBAAU,EAAE;QACxD,SAAS,EAAE,0BAAS,CAAC,QAAQ;QAC7B,MAAM,EAAE,sBAAU;KACnB,CAAC,CAAC;IACH,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAc,EACtC,KAAK,EACL,OAAO,EACP,0BAAS,CAAC,QAAQ,EAClB,KAAK,CACN,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAsB,EAAE;QACjE,MAAM,KAAK,GAAG,IAAA,+BAAc,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,OAAO;YACL,MAAM;YACN,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,EAAE;YAChB,iBAAiB,EAAE,IAAI;YACvB,KAAK;YACL,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,OAAO;QACL;YACE,IAAI,EAAE,qCAAoB,CAAC,SAAS;YACpC,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,0BAAS,CAAC,QAAQ;YAC7B,UAAU,EAAV,sBAAU;YACV,KAAK,EAAE,IAAA,+BAAc,EAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE;gBACJ,WAAW;aACZ;SACF;KACF,CAAC;AACJ,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,KAAK;IACtB,SAAS,EAAE,0BAAS,CAAC,QAAQ;IAC7B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Job } from '../../Job';
2
- declare const job: Job;
3
- export default job;
@@ -1,85 +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
- 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 helpers_1 = require("./helpers");
18
- const constants_1 = require("../uniswap/constants");
19
- const constants_2 = require("./constants");
20
- const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
21
- const pairs = yield (0, helpers_1.getPairsV2)(constants_2.theGraphUrl);
22
- const tokenAddresses = [
23
- ...new Set(pairs.map((p) => [p.token0.id, p.token1.id]).flat()),
24
- ];
25
- const tokenPrices = yield cache.getTokenPrices(tokenAddresses, portfolio_core_1.NetworkId.ethereum);
26
- const tokenPricesByAddress = new Map();
27
- tokenPrices.forEach((tp) => {
28
- if (!tp)
29
- return;
30
- tokenPricesByAddress.set(tp.address, tp);
31
- });
32
- const pairAddresses = [];
33
- for (let i = 0; i < pairs.length; i++) {
34
- const pair = pairs[i];
35
- const underlyingsTokens = [
36
- [pair.token0.id, pair.reserve0],
37
- [pair.token1.id, pair.reserve1],
38
- ];
39
- const underlyings = [];
40
- let tvl = new bignumber_js_1.default(0);
41
- for (let j = 0; j < underlyingsTokens.length; j++) {
42
- const [address, amount] = underlyingsTokens[j];
43
- const fAddress = (0, portfolio_core_1.formatTokenAddress)(address, portfolio_core_1.NetworkId.ethereum);
44
- const tokenPrice = tokenPricesByAddress.get(fAddress);
45
- if (!tokenPrice)
46
- break;
47
- tvl = tvl.plus(new bignumber_js_1.default(amount).times(tokenPrice.price));
48
- underlyings.push({
49
- networkId: portfolio_core_1.NetworkId.ethereum,
50
- address: fAddress,
51
- decimals: tokenPrice.decimals,
52
- price: tokenPrice.price,
53
- amountPerLp: new bignumber_js_1.default(amount).div(pair.totalSupply).toNumber(),
54
- });
55
- }
56
- if (underlyings.length !== underlyingsTokens.length)
57
- continue;
58
- const price = tvl.div(pair.totalSupply).toNumber();
59
- const lpAddress = (0, portfolio_core_1.formatTokenAddress)(pair.id, portfolio_core_1.NetworkId.ethereum);
60
- const source = {
61
- id: constants_1.platformId,
62
- address: lpAddress,
63
- decimals: 18,
64
- networkId: portfolio_core_1.NetworkId.ethereum,
65
- platformId: constants_1.platformId,
66
- price,
67
- timestamp: Date.now(),
68
- weight: 1,
69
- elementName: 'Uniswap V2',
70
- underlyings,
71
- };
72
- yield cache.setTokenPriceSource(source);
73
- pairAddresses.push(lpAddress);
74
- }
75
- yield cache.setItem(constants_2.pairsV2Key, pairAddresses, {
76
- prefix: constants_1.platformId,
77
- networkId: portfolio_core_1.NetworkId.ethereum,
78
- });
79
- });
80
- const job = {
81
- id: `${constants_1.platformId}-v2`,
82
- executor,
83
- };
84
- exports.default = job;
85
- //# sourceMappingURL=v2Job.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v2Job.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/uniswap-v2/v2Job.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAMoC;AACpC,gEAAqC;AAGrC,uCAAuC;AACvC,oDAAkD;AAClD,2CAAsD;AAEtD,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,KAAK,GAAG,MAAM,IAAA,oBAAU,EAAC,uBAAW,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG;QACrB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KAChE,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,cAAc,CAC5C,cAAc,EACd,0BAAS,CAAC,QAAQ,CACnB,CAAC;IACF,MAAM,oBAAoB,GAA4B,IAAI,GAAG,EAAE,CAAC;IAChE,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,MAAM,iBAAiB,GAAG;YACxB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;YAC/B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;SACvB,CAAC;QACX,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,IAAI,GAAG,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAA,mCAAkB,EAAC,OAAO,EAAE,0BAAS,CAAC,QAAQ,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU;gBAAE,MAAM;YACvB,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,sBAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9D,WAAW,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,0BAAS,CAAC,QAAQ;gBAC7B,OAAO,EAAE,QAAQ;gBACjB,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,WAAW,EAAE,IAAI,sBAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;aACpE,CAAC,CAAC;SACJ;QACD,IAAI,WAAW,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM;YAAE,SAAS;QAE9D,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,IAAA,mCAAkB,EAAC,IAAI,CAAC,EAAE,EAAE,0BAAS,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,MAAM,GAAqB;YAC/B,EAAE,EAAE,sBAAU;YACd,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,0BAAS,CAAC,QAAQ;YAC7B,UAAU,EAAV,sBAAU;YACV,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,YAAY;YACzB,WAAW;SACZ,CAAC;QACF,MAAM,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACxC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC/B;IAED,MAAM,KAAK,CAAC,OAAO,CAAC,sBAAU,EAAE,aAAa,EAAE;QAC7C,MAAM,EAAE,sBAAU;QAClB,SAAS,EAAE,0BAAS,CAAC,QAAQ;KAC9B,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,KAAK;IACtB,QAAQ;CACT,CAAC;AACF,kBAAe,GAAG,CAAC"}