@sonarwatch/portfolio-plugins 0.4.18 → 0.4.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.4.19](https://github.com/sonarwatch/portfolio/compare/plugins-0.4.18...plugins-0.4.19) (2023-07-10)
6
+
7
+
8
+
5
9
  ## [0.4.18](https://github.com/sonarwatch/portfolio/compare/plugins-0.4.17...plugins-0.4.18) (2023-07-09)
6
10
 
7
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.4.18",
3
+ "version": "0.4.19",
4
4
  "type": "commonjs",
5
5
  "generators": "./generators.json",
6
6
  "dependencies": {
@@ -22,7 +22,7 @@
22
22
  "viem": "^1.2.9"
23
23
  },
24
24
  "peerDependencies": {
25
- "@sonarwatch/portfolio-core": "0.4.18"
25
+ "@sonarwatch/portfolio-core": "0.4.19"
26
26
  },
27
27
  "main": "./src/index.js",
28
28
  "types": "./src/index.d.ts"
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const js_1 = require("@metaplex-foundation/js");
16
16
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
17
+ const runInBatch_1 = __importDefault(require("packages/plugins/src/utils/misc/runInBatch"));
17
18
  const platforms_1 = require("../../../platforms");
18
19
  const clients_1 = require("../../../utils/clients");
19
20
  const solana_1 = require("../../../utils/solana");
@@ -22,21 +23,28 @@ const solFactor = Math.pow(10, portfolio_core_1.solanaNetwork.native.decimals);
22
23
  const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
23
24
  const client = (0, clients_1.getClientSolana)();
24
25
  const ownerPubKey = new js_1.PublicKey(owner);
25
- const promiseSolTokenPrice = cache.getTokenPrice(portfolio_core_1.solanaNetwork.native.address, portfolio_core_1.NetworkId.solana);
26
- const balanceAssetPromise = getBalance(ownerPubKey, client, promiseSolTokenPrice);
26
+ const balancePromise = getBalance(ownerPubKey, client, cache);
27
27
  const tokenAccounts = yield (0, solana_1.getTokenAccountsByOwner)(client, ownerPubKey);
28
- const unsolvedTokenAccounts = [];
28
+ const mints = [...new Set(tokenAccounts.map((ta) => ta.mint.toString()))];
29
+ const functionsToRun = mints.map((mint) => () => cache.getTokenPrice(mint, portfolio_core_1.NetworkId.solana));
30
+ const results = yield (0, runInBatch_1.default)(functionsToRun);
31
+ const tokenPrices = new Map();
32
+ results.forEach((r) => {
33
+ if (r.status === 'rejected')
34
+ return;
35
+ if (!r.value)
36
+ return;
37
+ tokenPrices.set(r.value.address, r.value);
38
+ });
29
39
  const assets = [];
30
40
  for (let i = 0; i < tokenAccounts.length; i++) {
31
41
  const tokenAccount = tokenAccounts[i];
32
42
  if (tokenAccount.amount.isZero())
33
43
  continue;
34
44
  const address = tokenAccount.mint.toString();
35
- const tokenPrice = yield cache.getTokenPrice(address, portfolio_core_1.NetworkId.solana);
36
- if (!tokenPrice) {
37
- unsolvedTokenAccounts.push(tokenAccount);
45
+ const tokenPrice = tokenPrices.get(address);
46
+ if (!tokenPrice)
38
47
  continue;
39
- }
40
48
  const amount = tokenAccount.amount
41
49
  .div(Math.pow(10, tokenPrice.decimals))
42
50
  .toNumber();
@@ -50,7 +58,7 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
50
58
  });
51
59
  }
52
60
  // Native sol
53
- const balanceAsset = yield balanceAssetPromise;
61
+ const balanceAsset = yield balancePromise;
54
62
  if (balanceAsset)
55
63
  assets.push(balanceAsset);
56
64
  if (assets.length === 0)
@@ -67,15 +75,14 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
67
75
  };
68
76
  return [element];
69
77
  });
70
- function getBalance(owner, client, promiseSolTokenPrice) {
78
+ function getBalance(owner, client, cache) {
71
79
  return __awaiter(this, void 0, void 0, function* () {
80
+ const pTokenPrice = cache.getTokenPrice(portfolio_core_1.solanaNetwork.native.address, portfolio_core_1.NetworkId.solana);
72
81
  const amountLamports = yield client.getBalance(owner);
73
82
  if (amountLamports === 0)
74
83
  return null;
75
84
  const amount = amountLamports / solFactor;
76
- const solTokenPrice = yield promiseSolTokenPrice;
77
- if (!promiseSolTokenPrice)
78
- return null;
85
+ const solTokenPrice = yield pTokenPrice;
79
86
  return (0, tokenPriceToAssetToken_1.default)(portfolio_core_1.solanaNetwork.native.address, amount, portfolio_core_1.NetworkId.solana, solTokenPrice);
80
87
  });
81
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/tokens/fetchers/solana.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/tokens/fetchers/solana.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gDAAoD;AACpD,+DAYoC;AAEpC,4FAAoE;AACpE,kDAA0D;AAC1D,oDAAyD;AACzD,kDAI+B;AAC/B,wGAAgF;AAEhF,MAAM,SAAS,GAAG,SAAA,EAAE,EAAI,8BAAa,CAAC,MAAM,CAAC,QAAQ,CAAA,CAAC;AAEtD,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IACjC,MAAM,WAAW,GAAG,IAAI,cAAS,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAE9D,MAAM,aAAa,GAAG,MAAM,IAAA,gCAAuB,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1E,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAC9B,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,0BAAS,CAAC,MAAM,CAAC,CAC5D,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAAC,cAAc,CAAC,CAAC;IACjD,MAAM,WAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;IACvD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO;QACpC,IAAI,CAAC,CAAC,CAAC,KAAK;YAAE,OAAO;QACrB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,SAAS;QAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM;aAC/B,GAAG,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC;aAC9B,QAAQ,EAAE,CAAC;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAC7B,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,mCAAkB,CAAC,KAAK;YAC9B,SAAS,EAAE,0BAAS,CAAC,MAAM;YAC3B,KAAK;YACL,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;SACjC,CAAC,CAAC;KACJ;IAED,aAAa;IACb,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC;IAC1C,IAAI,YAAY;QAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,OAAO,GAA6B;QACxC,IAAI,EAAE,qCAAoB,CAAC,QAAQ;QACnC,SAAS,EAAE,0BAAS,CAAC,MAAM;QAC3B,UAAU,EAAE,gCAAoB,CAAC,EAAE;QACnC,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,IAAA,+BAAc,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,EAAE;YACJ,MAAM;SACP;KACF,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC,CAAA,CAAC;AAEF,SAAe,UAAU,CACvB,KAAgB,EAChB,MAAkB,EAClB,KAAY;;QAEZ,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CACrC,8BAAa,CAAC,MAAM,CAAC,OAAO,EAC5B,0BAAS,CAAC,MAAM,CACjB,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,cAAc,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEtC,MAAM,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;QAC1C,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC;QAExC,OAAO,IAAA,gCAAsB,EAC3B,8BAAa,CAAC,MAAM,CAAC,OAAO,EAC5B,MAAM,EACN,0BAAS,CAAC,MAAM,EAChB,aAAa,CACd,CAAC;IACJ,CAAC;CAAA;AAED,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,gCAAoB,CAAC,EAAE,SAAS;IACvC,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}