@sonarwatch/portfolio-plugins 0.8.47 → 0.8.49

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 (61) hide show
  1. package/CHANGELOG.md +165 -152
  2. package/package.json +2 -2
  3. package/src/index.js +8 -0
  4. package/src/index.js.map +1 -1
  5. package/src/plugins/balancer/helpers/pools.js +21 -21
  6. package/src/plugins/paraswap/abis.d.ts +76 -0
  7. package/src/plugins/paraswap/abis.js +69 -0
  8. package/src/plugins/paraswap/abis.js.map +1 -0
  9. package/src/plugins/paraswap/bptFarmingFetcher.d.ts +3 -0
  10. package/src/plugins/paraswap/bptFarmingFetcher.js +106 -0
  11. package/src/plugins/paraswap/bptFarmingFetcher.js.map +1 -0
  12. package/src/plugins/paraswap/bptInfoJob.d.ts +3 -0
  13. package/src/plugins/paraswap/bptInfoJob.js +47 -0
  14. package/src/plugins/paraswap/bptInfoJob.js.map +1 -0
  15. package/src/plugins/paraswap/bptStakingFetcher.d.ts +3 -0
  16. package/src/plugins/paraswap/bptStakingFetcher.js +140 -0
  17. package/src/plugins/paraswap/bptStakingFetcher.js.map +1 -0
  18. package/src/plugins/paraswap/constants.d.ts +24 -0
  19. package/src/plugins/paraswap/constants.js +79 -0
  20. package/src/plugins/paraswap/constants.js.map +1 -0
  21. package/src/plugins/paraswap/index.d.ts +6 -0
  22. package/src/plugins/paraswap/index.js +19 -0
  23. package/src/plugins/paraswap/index.js.map +1 -0
  24. package/src/plugins/paraswap/stakingFetcher.d.ts +3 -0
  25. package/src/plugins/paraswap/stakingFetcher.js +114 -0
  26. package/src/plugins/paraswap/stakingFetcher.js.map +1 -0
  27. package/src/plugins/paraswap/types.d.ts +9 -0
  28. package/src/plugins/paraswap/types.js +3 -0
  29. package/src/plugins/paraswap/types.js.map +1 -0
  30. package/src/plugins/tokens/fetchers/evms/evmExecutorGenerator.js +1 -1
  31. package/src/plugins/tokens/fetchers/evms/evmExecutorGenerator.js.map +1 -1
  32. package/src/plugins/top-tokens/forcedAddresses.js +11 -0
  33. package/src/plugins/top-tokens/forcedAddresses.js.map +1 -1
  34. package/src/plugins/top-tokens/ignoredAddresses.js +1 -0
  35. package/src/plugins/top-tokens/ignoredAddresses.js.map +1 -1
  36. package/src/plugins/top-tokens/topTokensJob.js +6 -1
  37. package/src/plugins/top-tokens/topTokensJob.js.map +1 -1
  38. package/src/plugins/uniswap/abis.d.ts +201 -0
  39. package/src/plugins/uniswap/abis.js +132 -0
  40. package/src/plugins/uniswap/abis.js.map +1 -0
  41. package/src/plugins/uniswap/constants.d.ts +7 -0
  42. package/src/plugins/uniswap/constants.js +46 -0
  43. package/src/plugins/uniswap/constants.js.map +1 -0
  44. package/src/plugins/uniswap/getPositionsV3Fetcher.d.ts +3 -0
  45. package/src/plugins/uniswap/getPositionsV3Fetcher.js +318 -0
  46. package/src/plugins/uniswap/getPositionsV3Fetcher.js.map +1 -0
  47. package/src/plugins/uniswap/index.d.ts +6 -0
  48. package/src/plugins/uniswap/index.js +11 -0
  49. package/src/plugins/uniswap/index.js.map +1 -0
  50. package/src/plugins/uniswap/types.d.ts +55 -0
  51. package/src/plugins/uniswap/types.js +3 -0
  52. package/src/plugins/uniswap/types.js.map +1 -0
  53. package/src/utils/clients/constants.js +2 -0
  54. package/src/utils/clients/constants.js.map +1 -1
  55. package/src/utils/clients/getEvmClients.js +1 -0
  56. package/src/utils/clients/getEvmClients.js.map +1 -1
  57. package/src/utils/evm/erc20Abi.d.ts +1 -1
  58. package/src/utils/evm/erc20Abi.js +2 -2
  59. package/src/utils/evm/erc20Abi.js.map +1 -1
  60. package/src/utils/evm/getBalances.js +1 -1
  61. package/src/utils/evm/getBalances.js.map +1 -1
@@ -0,0 +1,318 @@
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.getPositionsV3Fetcher = void 0;
16
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
17
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
18
+ const constants_1 = require("./constants");
19
+ const abis_1 = require("../curve/abis");
20
+ const clients_1 = require("../../utils/clients");
21
+ const abis_2 = require("./abis");
22
+ const tokenAmountFromLiquidity_1 = require("../../utils/clmm/tokenAmountFromLiquidity");
23
+ const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
24
+ function getPositionsV3Fetcher(config) {
25
+ const { networkId } = config;
26
+ const executor = (owner, cache) => __awaiter(this, void 0, void 0, function* () {
27
+ const client = (0, clients_1.getEvmClient)(networkId);
28
+ // Get the number of positions on all pools
29
+ const balanceOfContract = {
30
+ address: config.positionManager,
31
+ abi: abis_1.balanceOfAbI,
32
+ functionName: 'balanceOf',
33
+ args: [owner],
34
+ };
35
+ const nbrOfPositions = yield client.readContract(balanceOfContract);
36
+ // Get the tokenIndex of the pool for each positions
37
+ const baseTokenOfOwner = {
38
+ address: config.positionManager,
39
+ abi: abis_2.tokenOfOwnerByIndexAbi,
40
+ functionName: 'tokenOfOwnerByIndex',
41
+ };
42
+ const tokenOfOwnerContracts = [];
43
+ for (let i = BigInt(0); i < nbrOfPositions; i++) {
44
+ tokenOfOwnerContracts.push(Object.assign(Object.assign({}, baseTokenOfOwner), { args: [owner, i] }));
45
+ }
46
+ const tokensOfOwnerRes = yield client.multicall({
47
+ contracts: tokenOfOwnerContracts,
48
+ });
49
+ // Get each pool data (tokens, ticks), with the tokenIndex
50
+ const basePositionsContract = {
51
+ address: config.positionManager,
52
+ abi: abis_2.positionsAbi,
53
+ functionName: 'positions',
54
+ };
55
+ const positionsContracts = [];
56
+ for (const tokenOfOwner of tokensOfOwnerRes) {
57
+ if (tokenOfOwner.status === 'failure')
58
+ continue;
59
+ const tokenId = tokenOfOwner.result;
60
+ positionsContracts.push(Object.assign(Object.assign({}, basePositionsContract), { args: [tokenId] }));
61
+ }
62
+ const positionsRes = yield client.multicall({
63
+ contracts: positionsContracts,
64
+ });
65
+ if (positionsRes.length === 0)
66
+ return [];
67
+ // Get the address of each pool based on [token1, token0, fee]
68
+ const baseGetPoolContract = {
69
+ address: config.factory,
70
+ abi: abis_2.getPoolsAbi,
71
+ functionName: 'getPool',
72
+ };
73
+ const getPoolContracts = [];
74
+ const positions = [];
75
+ for (const positionRes of positionsRes) {
76
+ if (positionRes.status === 'failure')
77
+ continue;
78
+ // If 0 amount of liquidity
79
+ if (positionRes.result[7] === BigInt(0))
80
+ continue;
81
+ const position = {
82
+ nonce: positionRes.result[0],
83
+ operator: positionRes.result[1],
84
+ token0: positionRes.result[2],
85
+ token1: positionRes.result[3],
86
+ fee: positionRes.result[4],
87
+ tickLower: positionRes.result[5],
88
+ tickUpper: positionRes.result[6],
89
+ liquidity: positionRes.result[7],
90
+ feeGrowthInside0LastX128: positionRes.result[8],
91
+ feeGrowthInside1LastX128: positionRes.result[9],
92
+ tokensOwed0: positionRes.result[10],
93
+ tokensOwed1: positionRes.result[11],
94
+ };
95
+ positions.push(position);
96
+ getPoolContracts.push(Object.assign(Object.assign({}, baseGetPoolContract), { args: [position.token0, position.token1, position.fee] }));
97
+ }
98
+ if (positions.length === 0)
99
+ return [];
100
+ const poolsAddressesRes = yield client.multicall({
101
+ contracts: getPoolContracts,
102
+ });
103
+ // To avoid duplicate RPC call, we remove duplicates of pools
104
+ const positionsData = [];
105
+ const poolsAddressesUniq = new Set();
106
+ poolsAddressesRes.forEach((poolRes, index) => {
107
+ if (poolRes.status === 'success') {
108
+ const poolAddress = poolRes.result;
109
+ poolsAddressesUniq.add(poolAddress);
110
+ // Store it to keep the relation between position and pool
111
+ positionsData.push({
112
+ userPosition: positions[index],
113
+ poolAddress,
114
+ });
115
+ }
116
+ });
117
+ const poolsAddresses = Array.from(poolsAddressesUniq);
118
+ // Check if some pools data were already fetched by previous users
119
+ const availablePoolsInfo = yield cache.getItem(constants_1.poolsKey, {
120
+ prefix: constants_1.poolsPrefix,
121
+ networkId,
122
+ });
123
+ const availablePoolsAd = availablePoolsInfo
124
+ ? availablePoolsInfo.map((p) => (p === undefined ? [] : p.id)).flat()
125
+ : undefined;
126
+ // Get the missing pools to fetch
127
+ const missingPoolsAd = availablePoolsAd
128
+ ? poolsAddresses.filter((pool) => !availablePoolsAd.includes(pool))
129
+ : poolsAddresses;
130
+ // Get slot0 and fees for each pool on which we don't have the data
131
+ const slot0Contracts = [];
132
+ const feeGrowth0Contracts = [];
133
+ const feeGrowth1Contracts = [];
134
+ for (const missingPool of missingPoolsAd) {
135
+ slot0Contracts.push({
136
+ address: missingPool,
137
+ abi: abis_2.slot0Abi,
138
+ functionName: 'slot0',
139
+ });
140
+ feeGrowth0Contracts.push({
141
+ address: missingPool,
142
+ abi: abis_2.feeGrowthGlobal0X128Abi,
143
+ functionName: 'feeGrowthGlobal0X128',
144
+ });
145
+ feeGrowth1Contracts.push({
146
+ address: missingPool,
147
+ abi: abis_2.feeGrowthGlobal1X128Abi,
148
+ functionName: 'feeGrowthGlobal1X128',
149
+ });
150
+ }
151
+ const [slots0sRes, feesGrowthGlobal0X128Res, feesGrowthGlobal1X128Res] = yield Promise.all([
152
+ client.multicall({ contracts: slot0Contracts }),
153
+ client.multicall({ contracts: feeGrowth0Contracts }),
154
+ client.multicall({ contracts: feeGrowth1Contracts }),
155
+ ]);
156
+ // Merge pools infos
157
+ const missingPoolsInfo = slots0sRes.map((slot0, index) => {
158
+ var _a, _b, _c, _d, _e, _f, _g;
159
+ return ({
160
+ id: missingPoolsAd[index],
161
+ slot0: {
162
+ sqrtPriceX96: (_a = slot0.result) === null || _a === void 0 ? void 0 : _a[0].toString(),
163
+ tick: Number((_b = slot0.result) === null || _b === void 0 ? void 0 : _b[1]),
164
+ observationIndex: Number((_c = slot0.result) === null || _c === void 0 ? void 0 : _c[2]),
165
+ observationCardinality: Number((_d = slot0.result) === null || _d === void 0 ? void 0 : _d[3]),
166
+ observationCardinalityNext: Number((_e = slot0.result) === null || _e === void 0 ? void 0 : _e[4]),
167
+ feeProtocol: Number((_f = slot0.result) === null || _f === void 0 ? void 0 : _f[5]),
168
+ unlocked: (_g = slot0.result) === null || _g === void 0 ? void 0 : _g[6],
169
+ },
170
+ fees: {
171
+ zeroX: Number(feesGrowthGlobal0X128Res[index].result),
172
+ oneX: Number(feesGrowthGlobal1X128Res[index].result),
173
+ },
174
+ });
175
+ });
176
+ const poolsInfo = availablePoolsInfo
177
+ ? [...missingPoolsInfo, ...availablePoolsInfo]
178
+ : missingPoolsInfo;
179
+ // Store poolsInfo by pool's address
180
+ const poolsInfoById = new Map();
181
+ poolsInfo.forEach((poolInfo) => {
182
+ if (poolInfo) {
183
+ poolsInfoById.set(poolInfo.id, poolInfo);
184
+ }
185
+ });
186
+ // Store infos in cache for next users
187
+ yield cache.setItem(constants_1.poolsKey, poolsInfo, {
188
+ prefix: constants_1.poolsPrefix,
189
+ networkId,
190
+ });
191
+ // Get ticks info for a pool base on tickUpper and tickLower of each position
192
+ const contractsLower = [];
193
+ const contractsUpper = [];
194
+ for (const positionData of positionsData) {
195
+ contractsLower.push({
196
+ address: positionData.poolAddress,
197
+ abi: abis_2.ticksAbi,
198
+ functionName: 'ticks',
199
+ args: [positionData.userPosition.tickLower],
200
+ });
201
+ contractsUpper.push({
202
+ address: positionData.poolAddress,
203
+ abi: abis_2.ticksAbi,
204
+ functionName: 'ticks',
205
+ args: [positionData.userPosition.tickUpper],
206
+ });
207
+ }
208
+ const [tickLowerRes, tickUpperRes] = yield Promise.all([
209
+ client.multicall({ contracts: contractsLower }),
210
+ client.multicall({ contracts: contractsUpper }),
211
+ ]);
212
+ for (let ind = 0; ind < positionsData.length; ind++) {
213
+ const tickUpper = tickUpperRes[ind];
214
+ const tickLower = tickLowerRes[ind];
215
+ const positionData = positionsData[ind];
216
+ const poolInfo = poolsInfoById.get(positionData.poolAddress);
217
+ if (!poolInfo)
218
+ continue;
219
+ positionData.poolInfo = poolInfo;
220
+ if (tickUpper.status === 'success' && tickLower.status === 'success') {
221
+ positionData.ticks = {
222
+ upper: {
223
+ liquidityGross: tickUpper.result[0],
224
+ liquidityNet: tickUpper.result[1],
225
+ feeGrowthOutside0X128: tickUpper.result[2],
226
+ feeGrowthOutside1X128: tickUpper.result[3],
227
+ tickCumulativeOutside: tickUpper.result[4],
228
+ secondsPerLiquidityOutsideX128: tickUpper.result[5],
229
+ secondsOutside: tickUpper.result[6],
230
+ initialized: tickUpper.result[7],
231
+ },
232
+ lower: {
233
+ liquidityGross: tickLower.result[0],
234
+ liquidityNet: tickLower.result[1],
235
+ feeGrowthOutside0X128: tickLower.result[2],
236
+ feeGrowthOutside1X128: tickLower.result[3],
237
+ tickCumulativeOutside: tickLower.result[4],
238
+ secondsPerLiquidityOutsideX128: tickLower.result[5],
239
+ secondsOutside: tickLower.result[6],
240
+ initialized: tickLower.result[7],
241
+ },
242
+ };
243
+ }
244
+ }
245
+ // Get all tokens
246
+ const tokensAddresses = positionsData
247
+ .map((pos) => [pos.userPosition.token0, pos.userPosition.token1])
248
+ .flat();
249
+ // Fetch all tokens prices
250
+ const tokensPrices = yield cache.getTokenPrices(tokensAddresses, networkId);
251
+ const tokenPriceByAddress = new Map();
252
+ for (const tokenPrice of tokensPrices) {
253
+ if (!tokenPrice)
254
+ continue;
255
+ tokenPriceByAddress.set(tokenPrice.address, tokenPrice);
256
+ }
257
+ const assets = [];
258
+ let totalLiquidityValue = 0;
259
+ // Create each position element
260
+ for (const positionData of positionsData) {
261
+ if (!positionData.poolInfo ||
262
+ !positionData.ticks ||
263
+ !positionData.poolInfo.slot0)
264
+ continue;
265
+ const { token0, token1, tickLower, tickUpper } = positionData.userPosition;
266
+ const tokenPrice0 = tokenPriceByAddress.get(token0);
267
+ const tokenPrice1 = tokenPriceByAddress.get(token1);
268
+ if (!tokenPrice0 || !tokenPrice1)
269
+ continue;
270
+ const { tick } = positionData.poolInfo.slot0;
271
+ if (!tick)
272
+ continue;
273
+ const { tokenAmountA, tokenAmountB } = (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(new bignumber_js_1.default(positionData.userPosition.liquidity.toString()), Number(tick), Number(tickLower), Number(tickUpper), false);
274
+ if (tokenAmountA.isZero() && tokenAmountB.isZero())
275
+ continue;
276
+ const assetToken0 = (0, tokenPriceToAssetToken_1.default)(token0, tokenAmountA.dividedBy(Math.pow(10, tokenPrice0.decimals)).toNumber(), networkId, tokenPrice0);
277
+ const assetToken1 = (0, tokenPriceToAssetToken_1.default)(token1, tokenAmountB.dividedBy(Math.pow(10, tokenPrice1.decimals)).toNumber(), networkId, tokenPrice1);
278
+ if (!assetToken0 ||
279
+ !assetToken1 ||
280
+ assetToken0.value === null ||
281
+ assetToken1.value === null)
282
+ continue;
283
+ const value = assetToken0.value + assetToken1.value;
284
+ assets.push({
285
+ assets: [assetToken0, assetToken1],
286
+ assetsValue: value,
287
+ rewardAssets: [],
288
+ rewardAssetsValue: 0,
289
+ value,
290
+ yields: [],
291
+ });
292
+ totalLiquidityValue += value;
293
+ }
294
+ if (assets.length === 0)
295
+ return [];
296
+ return [
297
+ {
298
+ type: portfolio_core_1.PortfolioElementType.liquidity,
299
+ networkId,
300
+ platformId: constants_1.platformId,
301
+ label: 'LiquidityPool',
302
+ tags: ['Concentrated'],
303
+ name: 'V3',
304
+ value: totalLiquidityValue,
305
+ data: {
306
+ liquidities: assets,
307
+ },
308
+ },
309
+ ];
310
+ });
311
+ return {
312
+ executor,
313
+ id: `${constants_1.platformId}-${networkId}-v3-positions`,
314
+ networkId,
315
+ };
316
+ }
317
+ exports.getPositionsV3Fetcher = getPositionsV3Fetcher;
318
+ //# sourceMappingURL=getPositionsV3Fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPositionsV3Fetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/uniswap/getPositionsV3Fetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Platform } from '@sonarwatch/portfolio-core';
2
+ import { Fetcher } from '../../Fetcher';
3
+ import { Job } from '../../Job';
4
+ export declare const jobs: Job[];
5
+ export declare const fetchers: Fetcher[];
6
+ export declare const platforms: Platform[];
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.platforms = exports.fetchers = exports.jobs = void 0;
4
+ const constants_1 = require("./constants");
5
+ const getPositionsV3Fetcher_1 = require("./getPositionsV3Fetcher");
6
+ exports.jobs = [];
7
+ exports.fetchers = [
8
+ ...constants_1.uniswapNetworksConfigs.map((config) => (0, getPositionsV3Fetcher_1.getPositionsV3Fetcher)(config)),
9
+ ];
10
+ exports.platforms = [constants_1.uniswapPlatform];
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/uniswap/index.ts"],"names":[],"mappings":";;;AAIA,2CAAsE;AACtE,mEAAgE;AAEnD,QAAA,IAAI,GAAU,EAAE,CAAC;AACjB,QAAA,QAAQ,GAAc;IACjC,GAAG,kCAAsB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,6CAAqB,EAAC,MAAM,CAAC,CAAC;CACzE,CAAC;AACW,QAAA,SAAS,GAAe,CAAC,2BAAe,CAAC,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { EvmNetworkIdType } from '@sonarwatch/portfolio-core';
2
+ export type PoolInfo = {
3
+ id: `0x${string}`;
4
+ slot0: {
5
+ sqrtPriceX96: string | undefined;
6
+ tick: number | undefined;
7
+ observationIndex: number | undefined;
8
+ observationCardinality: number | undefined;
9
+ observationCardinalityNext: number | undefined;
10
+ feeProtocol: number | undefined;
11
+ unlocked: boolean | undefined;
12
+ };
13
+ fees: {
14
+ zeroX: number | undefined;
15
+ oneX: number | undefined;
16
+ };
17
+ };
18
+ export type Position = {
19
+ nonce: bigint;
20
+ operator: `0x${string}`;
21
+ token0: `0x${string}`;
22
+ token1: `0x${string}`;
23
+ fee: number;
24
+ tickLower: number;
25
+ tickUpper: number;
26
+ liquidity: bigint;
27
+ feeGrowthInside0LastX128: bigint;
28
+ feeGrowthInside1LastX128: bigint;
29
+ tokensOwed0: bigint;
30
+ tokensOwed1: bigint;
31
+ };
32
+ export type Tick = {
33
+ liquidityGross: bigint;
34
+ liquidityNet: bigint;
35
+ feeGrowthOutside0X128: bigint;
36
+ feeGrowthOutside1X128: bigint;
37
+ tickCumulativeOutside: bigint;
38
+ secondsPerLiquidityOutsideX128: bigint;
39
+ secondsOutside: number;
40
+ initialized: boolean;
41
+ };
42
+ export type PositionData = {
43
+ userPosition: Position;
44
+ poolAddress: `0x${string}`;
45
+ poolInfo?: PoolInfo;
46
+ ticks?: {
47
+ lower: Tick;
48
+ upper: Tick;
49
+ };
50
+ };
51
+ export type UniswapConfig = {
52
+ networkId: EvmNetworkIdType;
53
+ positionManager: `0x${string}`;
54
+ factory: `0x${string}`;
55
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/uniswap/types.ts"],"names":[],"mappings":""}
@@ -10,11 +10,13 @@ exports.viemChainsByNetworkId = {
10
10
  ethereum: chains_1.mainnet,
11
11
  avalanche: chains_1.avalanche,
12
12
  polygon: chains_1.polygon,
13
+ bnb: chains_1.bsc,
13
14
  };
14
15
  function getUrlEndpoints() {
15
16
  return {
16
17
  sei: process.env['PORTFOLIO_SEI_RPC'] || 'https://sei-rpc.brocha.in/',
17
18
  bitcoin: process.env['PORTFOLIO_BITCOIN_RPC'] || 'https://blockstream.info/api/',
19
+ bnb: process.env['PORTFOLIO_BNB_RPC'] || 'https://binance.llamarpc.com',
18
20
  solana: process.env['PORTFOLIO_SOLANA_RPC'] ||
19
21
  'https://api.mainnet-beta.solana.com',
20
22
  ethereum: process.env['PORTFOLIO_ETHEREUM_RPC'] || 'https://eth.llamarpc.com',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/clients/constants.ts"],"names":[],"mappings":";;;;;;AAKA,wCAAiE;AACjE,0EAAkD;AAErC,QAAA,qBAAqB,GAAoC;IACpE,QAAQ,EAAE,gBAAO;IACjB,SAAS,EAAT,kBAAS;IACT,OAAO,EAAP,gBAAO;CACR,CAAC;AAEF,SAAgB,eAAe;IAC7B,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,4BAA4B;QACrE,OAAO,EACL,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,+BAA+B;QACzE,MAAM,EACJ,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;YACnC,qCAAqC;QACvC,QAAQ,EACN,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,0BAA0B;QACrE,SAAS,EACP,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;YACtC,uCAAuC;QACzC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,uBAAuB;QACxE,KAAK,EACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAClC,wCAAwC;QAC1C,GAAG,EACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAChC,iDAAiD;KACpD,CAAC;AACJ,CAAC;AArBD,0CAqBC;AAED,SAAgB,cAAc,CAAC,SAAwB;IACrD,OAAO,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAFD,wCAEC;AAED,SAAgB,eAAe;IAC7B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACjD,GAAG;QACH,IAAA,0BAAgB,EAAC,KAAK,CAAC;KACxB,CAAC,CACmC,CAAC;AAC1C,CAAC;AARD,0CAQC;AAED,SAAgB,cAAc,CAAC,SAAwB;IACrD,OAAO,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAFD,wCAEC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/clients/constants.ts"],"names":[],"mappings":";;;;;;AAKA,wCAAsE;AACtE,0EAAkD;AAErC,QAAA,qBAAqB,GAAoC;IACpE,QAAQ,EAAE,gBAAO;IACjB,SAAS,EAAT,kBAAS;IACT,OAAO,EAAP,gBAAO;IACP,GAAG,EAAE,YAAG;CACT,CAAC;AAEF,SAAgB,eAAe;IAC7B,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,4BAA4B;QACrE,OAAO,EACL,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,+BAA+B;QACzE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,8BAA8B;QACvE,MAAM,EACJ,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;YACnC,qCAAqC;QACvC,QAAQ,EACN,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,0BAA0B;QACrE,SAAS,EACP,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;YACtC,uCAAuC;QACzC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,uBAAuB;QACxE,KAAK,EACH,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAClC,wCAAwC;QAC1C,GAAG,EACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAChC,iDAAiD;KACpD,CAAC;AACJ,CAAC;AAtBD,0CAsBC;AAED,SAAgB,cAAc,CAAC,SAAwB;IACrD,OAAO,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAFD,wCAEC;AAED,SAAgB,eAAe;IAC7B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACjD,GAAG;QACH,IAAA,0BAAgB,EAAC,KAAK,CAAC;KACxB,CAAC,CACmC,CAAC;AAC1C,CAAC;AARD,0CAQC;AAED,SAAgB,cAAc,CAAC,SAAwB;IACrD,OAAO,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAFD,wCAEC"}
@@ -10,6 +10,7 @@ function getEvmClients() {
10
10
  avalanche: (0, getEvmClient_1.default)(portfolio_core_1.NetworkId.avalanche),
11
11
  ethereum: (0, getEvmClient_1.default)(portfolio_core_1.NetworkId.ethereum),
12
12
  polygon: (0, getEvmClient_1.default)(portfolio_core_1.NetworkId.polygon),
13
+ bnb: (0, getEvmClient_1.default)(portfolio_core_1.NetworkId.bnb),
13
14
  };
14
15
  }
15
16
  exports.default = getEvmClients;
@@ -1 +1 @@
1
- {"version":3,"file":"getEvmClients.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/clients/getEvmClients.ts"],"names":[],"mappings":";;;;;AACA,+DAAyE;AACzE,kEAA0C;AAE1C,SAAwB,aAAa;IAInC,OAAO;QACL,SAAS,EAAE,IAAA,sBAAY,EAAC,0BAAS,CAAC,SAAS,CAAC;QAC5C,QAAQ,EAAE,IAAA,sBAAY,EAAC,0BAAS,CAAC,QAAQ,CAAC;QAC1C,OAAO,EAAE,IAAA,sBAAY,EAAC,0BAAS,CAAC,OAAO,CAAC;KACzC,CAAC;AACJ,CAAC;AATD,gCASC"}
1
+ {"version":3,"file":"getEvmClients.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/clients/getEvmClients.ts"],"names":[],"mappings":";;;;;AACA,+DAAyE;AACzE,kEAA0C;AAE1C,SAAwB,aAAa;IAInC,OAAO;QACL,SAAS,EAAE,IAAA,sBAAY,EAAC,0BAAS,CAAC,SAAS,CAAC;QAC5C,QAAQ,EAAE,IAAA,sBAAY,EAAC,0BAAS,CAAC,QAAQ,CAAC;QAC1C,OAAO,EAAE,IAAA,sBAAY,EAAC,0BAAS,CAAC,OAAO,CAAC;QACxC,GAAG,EAAE,IAAA,sBAAY,EAAC,0BAAS,CAAC,GAAG,CAAC;KACjC,CAAC;AACJ,CAAC;AAVD,gCAUC"}
@@ -1,4 +1,4 @@
1
- export declare const erc20ABI: readonly [{
1
+ export declare const balanceOfErc20ABI: readonly [{
2
2
  readonly type: "function";
3
3
  readonly name: "balanceOf";
4
4
  readonly stateMutability: "view";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.erc20ABI = void 0;
4
- exports.erc20ABI = [
3
+ exports.balanceOfErc20ABI = void 0;
4
+ exports.balanceOfErc20ABI = [
5
5
  {
6
6
  type: 'function',
7
7
  name: 'balanceOf',
@@ -1 +1 @@
1
- {"version":3,"file":"erc20Abi.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/evm/erc20Abi.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG;IACtB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;KACF;CACO,CAAC"}
1
+ {"version":3,"file":"erc20Abi.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/evm/erc20Abi.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG;IAC/B;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;KACF;CACO,CAAC"}
@@ -18,7 +18,7 @@ function getBalances(owner, addresses, networkId) {
18
18
  const client = (0, clients_1.getEvmClient)(networkId);
19
19
  const balances = yield client.multicall({
20
20
  contracts: addresses.map((a) => ({
21
- abi: erc20Abi_1.erc20ABI,
21
+ abi: erc20Abi_1.balanceOfErc20ABI,
22
22
  address: a,
23
23
  functionName: 'balanceOf',
24
24
  args: [owner],
@@ -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,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"}
1
+ {"version":3,"file":"getBalances.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/evm/getBalances.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,wCAA0C;AAC1C,yCAA+C;AAC/C,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,4BAAiB;gBACtB,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"}