@sonarwatch/portfolio-plugins 0.15.36 → 0.15.39

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 (109) hide show
  1. package/CHANGELOG.md +2826 -2795
  2. package/README.md +3 -3
  3. package/package.json +1 -1
  4. package/src/Cache.js +9 -2
  5. package/src/Cache.js.map +1 -1
  6. package/src/memoryDriver.d.ts +1 -1
  7. package/src/overlayDriver.d.ts +1 -1
  8. package/src/plugins/balancer/helpers/pools.js +21 -21
  9. package/src/plugins/cropper/whirlpoolFetcher.js +2 -1
  10. package/src/plugins/cropper/whirlpoolFetcher.js.map +1 -1
  11. package/src/plugins/cudis/airdropFetcher.js +0 -1
  12. package/src/plugins/cudis/airdropFetcher.js.map +1 -1
  13. package/src/plugins/cudis/stakingFetcher.js +0 -1
  14. package/src/plugins/cudis/stakingFetcher.js.map +1 -1
  15. package/src/plugins/helium/constants.d.ts +1 -0
  16. package/src/plugins/helium/constants.js +2 -1
  17. package/src/plugins/helium/constants.js.map +1 -1
  18. package/src/plugins/helium/getHeliumPositions.d.ts +2 -2
  19. package/src/plugins/helium/getHeliumPositions.js +2 -1
  20. package/src/plugins/helium/getHeliumPositions.js.map +1 -1
  21. package/src/plugins/helium/positionsFetcher.js +2 -1
  22. package/src/plugins/helium/positionsFetcher.js.map +1 -1
  23. package/src/plugins/metaplex/constants.d.ts +1 -1
  24. package/src/plugins/metaplex/constants.js +2 -2
  25. package/src/plugins/metaplex/constants.js.map +1 -1
  26. package/src/plugins/metaplex/helpers.js +3 -3
  27. package/src/plugins/metaplex/helpers.js.map +1 -1
  28. package/src/plugins/metaplex/index.js +1 -5
  29. package/src/plugins/metaplex/index.js.map +1 -1
  30. package/src/plugins/metaplex/resizableNftFetcher.d.ts +3 -0
  31. package/src/plugins/metaplex/resizableNftFetcher.js +8 -3
  32. package/src/plugins/metaplex/resizableNftFetcher.js.map +1 -1
  33. package/src/plugins/metaplex/structs.d.ts +53 -0
  34. package/src/plugins/metaplex/structs.js +49 -0
  35. package/src/plugins/metaplex/structs.js.map +1 -0
  36. package/src/plugins/meteora/cpamm/cpammPositionsFetcher.d.ts +3 -0
  37. package/src/plugins/meteora/cpamm/cpammPositionsFetcher.js +10 -2
  38. package/src/plugins/meteora/cpamm/cpammPositionsFetcher.js.map +1 -1
  39. package/src/plugins/meteora/index.js +0 -2
  40. package/src/plugins/meteora/index.js.map +1 -1
  41. package/src/plugins/orca/getWhirlpoolPositions.d.ts +2 -2
  42. package/src/plugins/orca/getWhirlpoolPositions.js +5 -3
  43. package/src/plugins/orca/getWhirlpoolPositions.js.map +1 -1
  44. package/src/plugins/orca/helpers.d.ts +0 -2
  45. package/src/plugins/orca/helpers.js +1 -5
  46. package/src/plugins/orca/helpers.js.map +1 -1
  47. package/src/plugins/orca/whirlpoolFetcher.js +2 -1
  48. package/src/plugins/orca/whirlpoolFetcher.js.map +1 -1
  49. package/src/plugins/picasso/constants.d.ts +1 -0
  50. package/src/plugins/picasso/constants.js +2 -1
  51. package/src/plugins/picasso/constants.js.map +1 -1
  52. package/src/plugins/picasso/getPicassoPositions.d.ts +2 -2
  53. package/src/plugins/picasso/getPicassoPositions.js +2 -1
  54. package/src/plugins/picasso/getPicassoPositions.js.map +1 -1
  55. package/src/plugins/picasso/helpers.js +1 -1
  56. package/src/plugins/picasso/helpers.js.map +1 -1
  57. package/src/plugins/picasso/positionsFetcher.js +2 -1
  58. package/src/plugins/picasso/positionsFetcher.js.map +1 -1
  59. package/src/plugins/raydium/clmmFetcher.d.ts +3 -0
  60. package/src/plugins/raydium/clmmFetcher.js +94 -3
  61. package/src/plugins/raydium/clmmFetcher.js.map +1 -1
  62. package/src/plugins/raydium/helpers.d.ts +1 -2
  63. package/src/plugins/raydium/helpers.js +1 -5
  64. package/src/plugins/raydium/helpers.js.map +1 -1
  65. package/src/plugins/raydium/structs/clmms.d.ts +1 -0
  66. package/src/plugins/raydium/structs/clmms.js +2 -1
  67. package/src/plugins/raydium/structs/clmms.js.map +1 -1
  68. package/src/plugins/sushiswap/helpers.js +24 -24
  69. package/src/plugins/tokens/fetchers/solana-native.js +11 -21
  70. package/src/plugins/tokens/fetchers/solana-native.js.map +1 -1
  71. package/src/plugins/tokens/fetchers/solana-simple.js +4 -43
  72. package/src/plugins/tokens/fetchers/solana-simple.js.map +1 -1
  73. package/src/plugins/tokens/fetchers/solana.d.ts +4 -0
  74. package/src/plugins/tokens/fetchers/solana.js +86 -104
  75. package/src/plugins/tokens/fetchers/solana.js.map +1 -1
  76. package/src/plugins/tokens/index.js +2 -4
  77. package/src/plugins/tokens/index.js.map +1 -1
  78. package/src/plugins/tokens/types.d.ts +2 -2
  79. package/src/plugins/uniswap-v2/helpers.js +22 -22
  80. package/src/plugins/zeta/airdropFetcher.js +14 -14
  81. package/src/utils/elementbuilder/AssetCollectibleBuilder.js +5 -6
  82. package/src/utils/elementbuilder/AssetCollectibleBuilder.js.map +1 -1
  83. package/src/utils/elementbuilder/AssetGenericBuilder.js +1 -1
  84. package/src/utils/elementbuilder/AssetGenericBuilder.js.map +1 -1
  85. package/src/utils/elementbuilder/AssetTokenBuilder.d.ts +2 -1
  86. package/src/utils/elementbuilder/AssetTokenBuilder.js +2 -1
  87. package/src/utils/elementbuilder/AssetTokenBuilder.js.map +1 -1
  88. package/src/utils/elementbuilder/ElementLeverageBuilder.js +2 -2
  89. package/src/utils/elementbuilder/ElementLeverageBuilder.js.map +1 -1
  90. package/src/utils/elementbuilder/LevPositionBuilder.js +2 -2
  91. package/src/utils/elementbuilder/LevPositionBuilder.js.map +1 -1
  92. package/src/utils/elementbuilder/Params.d.ts +2 -1
  93. package/src/utils/misc/tokenPriceToAssetToken.js +5 -2
  94. package/src/utils/misc/tokenPriceToAssetToken.js.map +1 -1
  95. package/src/utils/misc/tokenPriceToLiquidity.js +2 -2
  96. package/src/utils/misc/tokenPriceToLiquidity.js.map +1 -1
  97. package/src/utils/sei/constants.js +8 -8
  98. package/src/utils/sei/getQueryBalanceByOwner.js +4 -4
  99. package/src/utils/solana/getTokenAccountsByOwner.d.ts +3 -2
  100. package/src/utils/solana/getTokenAccountsByOwner.js +22 -5
  101. package/src/utils/solana/getTokenAccountsByOwner.js.map +1 -1
  102. package/src/utils/solana/structs.d.ts +6 -0
  103. package/src/utils/solana/structs.js.map +1 -1
  104. package/src/plugins/raydium/getClmmPositions.d.ts +0 -3
  105. package/src/plugins/raydium/getClmmPositions.js +0 -107
  106. package/src/plugins/raydium/getClmmPositions.js.map +0 -1
  107. package/src/plugins/tokens/fetchers/solana-nfts-underlyings.d.ts +0 -3
  108. package/src/plugins/tokens/fetchers/solana-nfts-underlyings.js +0 -44
  109. package/src/plugins/tokens/fetchers/solana-nfts-underlyings.js.map +0 -1
@@ -54,30 +54,30 @@ function sushiV3PairToUniV2(pair) {
54
54
  }
55
55
  function getV3PairsAddresses(url, length = 300) {
56
56
  return __awaiter(this, void 0, void 0, function* () {
57
- const query = (0, graphql_request_1.gql) `
58
- {
59
- pools(
60
- orderBy: totalValueLockedUSD
61
- first: ${length}
62
- orderDirection: desc
63
- where: { volumeUSD_not: "0", liquidity_not: "0" }
64
- ) {
65
- id
66
- token0Price
67
- token1Price
68
- liquidity
69
- token0 {
70
- id
71
- totalSupply
72
- decimals
73
- }
74
- token1 {
75
- id
76
- totalSupply
77
- decimals
78
- }
79
- }
80
- }
57
+ const query = (0, graphql_request_1.gql) `
58
+ {
59
+ pools(
60
+ orderBy: totalValueLockedUSD
61
+ first: ${length}
62
+ orderDirection: desc
63
+ where: { volumeUSD_not: "0", liquidity_not: "0" }
64
+ ) {
65
+ id
66
+ token0Price
67
+ token1Price
68
+ liquidity
69
+ token0 {
70
+ id
71
+ totalSupply
72
+ decimals
73
+ }
74
+ token1 {
75
+ id
76
+ totalSupply
77
+ decimals
78
+ }
79
+ }
80
+ }
81
81
  `;
82
82
  const res = yield (0, graphql_request_1.default)(url, query);
83
83
  const pools = res.pools;
@@ -8,35 +8,25 @@ 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
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
13
  const web3_js_1 = require("@solana/web3.js");
17
14
  const clients_1 = require("../../../utils/clients");
18
- const tokenPriceToAssetToken_1 = __importDefault(require("../../../utils/misc/tokenPriceToAssetToken"));
19
- const solFactor = Math.pow(10, portfolio_core_1.solanaNetwork.native.decimals);
15
+ const ElementRegistry_1 = require("../../../utils/elementbuilder/ElementRegistry");
20
16
  const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
21
17
  const client = (0, clients_1.getClientSolana)();
22
- const ownerPubKey = new web3_js_1.PublicKey(owner);
23
- const amountLamports = yield client.getBalance(ownerPubKey);
24
- if (amountLamports === 0)
18
+ const amount = yield client.getBalance(new web3_js_1.PublicKey(owner));
19
+ if (amount === 0)
25
20
  return [];
26
- const amount = amountLamports / solFactor;
27
- const solTokenPrice = yield cache.getTokenPrice(portfolio_core_1.solanaNetwork.native.address, portfolio_core_1.NetworkId.solana);
28
- const asset = (0, tokenPriceToAssetToken_1.default)(portfolio_core_1.solanaNetwork.native.address, amount, portfolio_core_1.NetworkId.solana, solTokenPrice);
29
- const element = {
30
- type: portfolio_core_1.PortfolioElementType.multiple,
31
- networkId: portfolio_core_1.NetworkId.solana,
32
- platformId: portfolio_core_1.walletTokensPlatformId,
21
+ const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.solana, portfolio_core_1.walletTokensPlatformId);
22
+ const element = elementRegistry.addElementMultiple({
33
23
  label: 'Wallet',
34
- value: asset.value,
35
- data: {
36
- assets: [asset],
37
- },
38
- };
39
- return [element];
24
+ });
25
+ element.addAsset({
26
+ address: portfolio_core_1.solanaNetwork.native.address,
27
+ amount,
28
+ });
29
+ return elementRegistry.getElements(cache);
40
30
  });
41
31
  const fetcher = {
42
32
  id: `${portfolio_core_1.walletTokensPlatformId}-solana-native`,
@@ -1 +1 @@
1
- {"version":3,"file":"solana-native.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/tokens/fetchers/solana-native.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAMoC;AACpC,6CAA4C;AAG5C,oDAAyD;AACzD,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,mBAAS,CAAC,KAAK,CAAC,CAAC;IAEzC,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC5D,IAAI,cAAc,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC1C,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,aAAa,CAC7C,8BAAa,CAAC,MAAM,CAAC,OAAO,EAC5B,0BAAS,CAAC,MAAM,CACjB,CAAC;IAEF,MAAM,KAAK,GAAG,IAAA,gCAAsB,EAClC,8BAAa,CAAC,MAAM,CAAC,OAAO,EAC5B,MAAM,EACN,0BAAS,CAAC,MAAM,EAChB,aAAa,CACd,CAAC;IACF,MAAM,OAAO,GAA6B;QACxC,IAAI,EAAE,qCAAoB,CAAC,QAAQ;QACnC,SAAS,EAAE,0BAAS,CAAC,MAAM;QAC3B,UAAU,EAAE,uCAAsB;QAClC,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC,KAAK,CAAC;SAChB;KACF,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,uCAAsB,gBAAgB;IAC7C,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"solana-native.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/tokens/fetchers/solana-native.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAIoC;AACpC,6CAA4C;AAG5C,oDAAyD;AACzD,mFAAgF;AAEhF,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IAEjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,mBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE5B,MAAM,eAAe,GAAG,IAAI,iCAAe,CACzC,0BAAS,CAAC,MAAM,EAChB,uCAAsB,CACvB,CAAC;IAEF,MAAM,OAAO,GAAG,eAAe,CAAC,kBAAkB,CAAC;QACjD,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;IAEH,OAAO,CAAC,QAAQ,CAAC;QACf,OAAO,EAAE,8BAAa,CAAC,MAAM,CAAC,OAAO;QACrC,MAAM;KACP,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,uCAAsB,gBAAgB;IAC7C,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -8,53 +8,14 @@ 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
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
- const web3_js_1 = require("@solana/web3.js");
13
+ const getTokenAccountsByOwner_1 = require("../../../utils/solana/getTokenAccountsByOwner");
14
+ const solana_1 = require("./solana");
17
15
  const clients_1 = require("../../../utils/clients");
18
- const solana_1 = require("../../../utils/solana");
19
- const tokenPriceToAssetToken_1 = __importDefault(require("../../../utils/misc/tokenPriceToAssetToken"));
20
- const zeroDecimalMints_1 = require("../../../utils/solana/zeroDecimalMints");
21
16
  const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
22
- const client = yield (0, clients_1.getClientSolana)();
23
- const promises = [
24
- client.getParsedTokenAccountsByOwner(new web3_js_1.PublicKey(owner), {
25
- programId: solana_1.solanaTokenPidPk,
26
- }),
27
- client.getParsedTokenAccountsByOwner(new web3_js_1.PublicKey(owner), {
28
- programId: solana_1.solanaToken2022PidPk,
29
- }),
30
- ];
31
- const res = yield Promise.all(promises);
32
- const accounts = [...res[0].value, ...res[1].value].filter((acc) => acc.account.data.parsed.info.tokenAmount.uiAmount !== 0 &&
33
- (acc.account.data.parsed.info.tokenAmount.decimals !== 0 ||
34
- zeroDecimalMints_1.zeroDecimalMints.has(acc.account.data.parsed.info.mint)));
35
- const tokenPrices = yield cache.getTokenPricesAsMap(accounts.map((a) => a.account.data.parsed.info.mint), portfolio_core_1.NetworkId.solana);
36
- const tokenAssets = [];
37
- accounts.forEach((acc) => {
38
- const { mint, tokenAmount } = acc.account.data.parsed.info;
39
- const { uiAmount: amount } = tokenAmount;
40
- const tokenPrice = tokenPrices.get(mint);
41
- if (tokenPrice && tokenPrice.platformId !== portfolio_core_1.walletTokensPlatformId)
42
- return;
43
- tokenAssets.push(Object.assign(Object.assign({}, (0, tokenPriceToAssetToken_1.default)(mint, amount, portfolio_core_1.NetworkId.solana, tokenPrice)), { ref: acc.pubkey.toString(), link: tokenPrice === null || tokenPrice === void 0 ? void 0 : tokenPrice.link, sourceRefs: tokenPrice === null || tokenPrice === void 0 ? void 0 : tokenPrice.sourceRefs }));
44
- });
45
- if (tokenAssets.length === 0)
46
- return [];
47
- const element = {
48
- type: portfolio_core_1.PortfolioElementType.multiple,
49
- networkId: portfolio_core_1.NetworkId.solana,
50
- platformId: portfolio_core_1.walletTokensPlatformId,
51
- label: 'Wallet',
52
- value: (0, portfolio_core_1.getUsdValueSum)(tokenAssets.map((a) => a.value)),
53
- data: {
54
- assets: tokenAssets,
55
- },
56
- };
57
- return [element];
17
+ const tokenAccounts = yield (0, getTokenAccountsByOwner_1.getTokenAccountsByOwner)((0, clients_1.getClientSolana)(), owner);
18
+ return (0, solana_1.getSolanaTokens)(true)(tokenAccounts, cache);
58
19
  });
59
20
  const fetcher = {
60
21
  id: `${portfolio_core_1.walletTokensPlatformId}-solana-simple`,
@@ -1 +1 @@
1
- {"version":3,"file":"solana-simple.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/tokens/fetchers/solana-simple.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solana-simple.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/tokens/fetchers/solana-simple.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAA+E;AAI/E,2FAAwF;AACxF,qCAA2C;AAC3C,oDAAyD;AAEzD,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,aAAa,GAAG,MAAM,IAAA,iDAAuB,EAAC,IAAA,yBAAe,GAAE,EAAE,KAAK,CAAC,CAAC;IAE9E,OAAO,IAAA,wBAAe,EAAC,IAAI,CAAC,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,uCAAsB,gBAAgB;IAC7C,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -1,3 +1,7 @@
1
+ import { PortfolioElement } from '@sonarwatch/portfolio-core';
1
2
  import { Fetcher } from '../../../Fetcher';
3
+ import { Cache } from '../../../Cache';
4
+ import { ParsedAccount, TokenAccount } from '../../../utils/solana';
5
+ export declare const getSolanaTokens: (simple?: boolean) => (tokenAccounts: ParsedAccount<TokenAccount>[], cache: Cache) => Promise<PortfolioElement[]>;
2
6
  declare const fetcher: Fetcher;
3
7
  export default fetcher;
@@ -8,118 +8,100 @@ 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
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getSolanaTokens = void 0;
15
13
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
14
  const helpers_1 = require("../helpers");
18
- const tokenPriceToAssetToken_1 = __importDefault(require("../../../utils/misc/tokenPriceToAssetToken"));
19
- const heliusAssetToAssetCollectible_1 = require("../../../utils/solana/das/heliusAssetToAssetCollectible");
20
- const getAssetsByOwnerDas_1 = require("../../../utils/solana/das/getAssetsByOwnerDas");
21
- const isHeliusFungibleAsset_1 = require("../../../utils/solana/das/isHeliusFungibleAsset");
22
- const getSolanaDasEndpoint_1 = __importDefault(require("../../../utils/clients/getSolanaDasEndpoint"));
23
- const tokenPriceToAssetTokens_1 = __importDefault(require("../../../utils/misc/tokenPriceToAssetTokens"));
24
- const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
25
- var _a;
26
- const dasEndpoint = (0, getSolanaDasEndpoint_1.default)();
27
- const items = yield (0, getAssetsByOwnerDas_1.getAssetsByOwnerDas)(dasEndpoint, owner, {
28
- showNativeBalance: false,
29
- showGrandTotal: false,
30
- showInscription: false,
31
- });
32
- const fungibleAddresses = items.reduce((addresses, curr) => {
33
- if ((0, isHeliusFungibleAsset_1.isHeliusFungibleAsset)(curr))
34
- addresses.push(curr.id);
35
- return addresses;
36
- }, []);
15
+ const getTokenAccountsByOwner_1 = require("../../../utils/solana/getTokenAccountsByOwner");
16
+ const ElementRegistry_1 = require("../../../utils/elementbuilder/ElementRegistry");
17
+ const TokenYieldMap_1 = require("../../../TokenYieldMap");
18
+ const getWhirlpoolPositions_1 = require("../../orca/getWhirlpoolPositions");
19
+ const constants_1 = require("../../orca/constants");
20
+ const constants_2 = require("../../cropper/constants");
21
+ const getHeliumPositions_1 = require("../../helium/getHeliumPositions");
22
+ const getPicassoPositions_1 = require("../../picasso/getPicassoPositions");
23
+ const cpammPositionsFetcher_1 = require("../../meteora/cpamm/cpammPositionsFetcher");
24
+ const clmmFetcher_1 = require("../../raydium/clmmFetcher");
25
+ const resizableNftFetcher_1 = require("../../metaplex/resizableNftFetcher");
26
+ const clients_1 = require("../../../utils/clients");
27
+ const getSolanaTokens = (simple) => (tokenAccounts, cache) => __awaiter(void 0, void 0, void 0, function* () {
28
+ const fungibleAddresses = tokenAccounts.map((ta) => ta.mint.toString());
37
29
  const tokenPrices = yield cache.getTokenPricesAsMap(fungibleAddresses, portfolio_core_1.NetworkId.solana);
38
- const tokenYields = yield cache.getTokenYieldsAsMap(fungibleAddresses, portfolio_core_1.NetworkId.solana);
39
- const nftAssets = [];
40
- const tokenAssets = [];
41
- const liquiditiesByTag = {};
42
- for (let i = 0; i < items.length; i++) {
43
- const asset = items[i];
44
- const isFungible = (0, isHeliusFungibleAsset_1.isHeliusFungibleAsset)(asset);
45
- const address = asset.id;
46
- const tokenPrice = isFungible ? tokenPrices.get(address) : undefined;
47
- const tokenYield = isFungible ? tokenYields.get(address) : undefined;
48
- const amount = asset.token_info
49
- ? (0, bignumber_js_1.default)(asset.token_info.balance)
50
- .div(Math.pow(10, asset.token_info.decimals))
51
- .toNumber()
52
- : 1;
53
- // If it's an LP Token
54
- if (tokenPrice && tokenPrice.platformId !== portfolio_core_1.walletTokensPlatformId) {
55
- const assets = (0, tokenPriceToAssetTokens_1.default)(address, amount, portfolio_core_1.NetworkId.solana, tokenPrice);
56
- const liquidity = {
57
- assets,
58
- assetsValue: (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value)),
59
- rewardAssets: [],
60
- rewardAssetsValue: 0,
61
- value: (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value)),
62
- yields: tokenYield ? [tokenYield.yield] : [],
63
- name: tokenPrice.liquidityName,
64
- };
30
+ const tokenYields = !simple
31
+ ? yield cache.getTokenYieldsAsMap([...tokenPrices.keys()], portfolio_core_1.NetworkId.solana)
32
+ : new TokenYieldMap_1.TokenYieldMap(portfolio_core_1.NetworkId.solana);
33
+ const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.solana, portfolio_core_1.walletTokensPlatformId);
34
+ const elementTokens = elementRegistry.addElementMultiple({
35
+ label: 'Wallet',
36
+ });
37
+ const elementsLiquidity = new Map();
38
+ tokenAccounts.forEach((tokenAccount) => {
39
+ var _a;
40
+ const address = tokenAccount.mint.toString();
41
+ const tokenPrice = tokenPrices.get(address);
42
+ if (!tokenPrice)
43
+ return;
44
+ const tokenYield = tokenYields.get(address);
45
+ const amount = tokenAccount.amount.shiftedBy(-tokenPrice.decimals);
46
+ if (tokenPrice.platformId === portfolio_core_1.walletTokensPlatformId) {
47
+ // it's a regular token
48
+ elementTokens.addAsset({
49
+ address,
50
+ amount,
51
+ alreadyShifted: true,
52
+ ref: tokenAccount.pubkey,
53
+ link: tokenPrice.link,
54
+ sourceRefs: tokenPrice.sourceRefs,
55
+ tokenYield,
56
+ });
57
+ }
58
+ else if (!simple) {
59
+ // it's an LP Token
65
60
  const tag = (0, helpers_1.getLpTag)(tokenPrice.platformId, tokenPrice.elementName, tokenPrice.label);
66
- if (!liquiditiesByTag[tag]) {
67
- liquiditiesByTag[tag] = [];
61
+ let elementLiquidity = elementsLiquidity.get(tag);
62
+ if (!elementLiquidity) {
63
+ elementLiquidity = elementRegistry.addElementLiquidity({
64
+ name: tokenPrice.elementName,
65
+ label: (_a = tokenPrice.label) !== null && _a !== void 0 ? _a : 'LiquidityPool',
66
+ platformId: tokenPrice.platformId,
67
+ });
68
68
  }
69
- liquiditiesByTag[tag].push(liquidity);
70
- }
71
- // If it's a regular token
72
- else if (tokenPrice && tokenPrice.platformId === portfolio_core_1.walletTokensPlatformId) {
73
- tokenAssets.push(Object.assign(Object.assign({}, (0, tokenPriceToAssetToken_1.default)(address, amount, portfolio_core_1.NetworkId.solana, tokenPrice, undefined, undefined, undefined, tokenYield)), { ref: (_a = asset.token_info) === null || _a === void 0 ? void 0 : _a.associated_token_address, link: tokenPrice.link, sourceRefs: tokenPrice.sourceRefs }));
74
- }
75
- // If it's a NFT
76
- else {
77
- const nftAsset = (0, heliusAssetToAssetCollectible_1.heliusAssetToAssetCollectible)(asset);
78
- if (nftAsset)
79
- nftAssets.push(nftAsset);
69
+ const liquidity = elementLiquidity.addLiquidity({
70
+ name: tokenPrice.liquidityName,
71
+ });
72
+ liquidity.addAsset({
73
+ address,
74
+ amount,
75
+ alreadyShifted: true,
76
+ ref: tokenAccount.pubkey,
77
+ link: tokenPrice.link,
78
+ sourceRefs: tokenPrice.sourceRefs,
79
+ tokenYield,
80
+ });
81
+ elementsLiquidity.set(tag, elementLiquidity);
80
82
  }
83
+ });
84
+ return elementRegistry.getElements(cache);
85
+ });
86
+ exports.getSolanaTokens = getSolanaTokens;
87
+ const tokensFetchers = [
88
+ clmmFetcher_1.getRaydiumClmmPositions,
89
+ cpammPositionsFetcher_1.getMeteoraCpammPositions,
90
+ (0, getWhirlpoolPositions_1.getOrcaPositions)(constants_1.platformId),
91
+ (0, getWhirlpoolPositions_1.getOrcaPositions)(constants_2.platformId, constants_2.clmmPid),
92
+ getHeliumPositions_1.getHeliumPositions,
93
+ getPicassoPositions_1.getPicassoPositions,
94
+ (0, exports.getSolanaTokens)(false),
95
+ resizableNftFetcher_1.getResizableNfts,
96
+ ];
97
+ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
98
+ const tokenAccounts = yield (0, getTokenAccountsByOwner_1.getTokenAccountsByOwner)((0, clients_1.getClientSolana)(), owner);
99
+ const results = [];
100
+ for (const tokensFetcher of tokensFetchers) {
101
+ results.push(tokensFetcher(tokenAccounts, cache));
81
102
  }
82
- const elements = [];
83
- if (nftAssets.length !== 0) {
84
- elements.push({
85
- type: portfolio_core_1.PortfolioElementType.multiple,
86
- networkId: portfolio_core_1.NetworkId.solana,
87
- platformId: portfolio_core_1.walletNftsPlatformId,
88
- label: 'Wallet',
89
- value: null,
90
- data: {
91
- // Limit NFTs to 1K, to avoid fetcherResult to be too big
92
- assets: nftAssets.slice(0, 1000),
93
- },
94
- });
95
- }
96
- if (tokenAssets.length !== 0) {
97
- elements.push({
98
- type: portfolio_core_1.PortfolioElementType.multiple,
99
- networkId: portfolio_core_1.NetworkId.solana,
100
- platformId: portfolio_core_1.walletTokensPlatformId,
101
- label: 'Wallet',
102
- value: (0, portfolio_core_1.getUsdValueSum)(tokenAssets.map((a) => a.value)),
103
- data: {
104
- assets: tokenAssets,
105
- },
106
- });
107
- }
108
- for (const [tag, liquidities] of Object.entries(liquiditiesByTag)) {
109
- const { platformId, elementName, label } = (0, helpers_1.parseLpTag)(tag);
110
- elements.push({
111
- type: portfolio_core_1.PortfolioElementType.liquidity,
112
- networkId: portfolio_core_1.NetworkId.solana,
113
- platformId,
114
- name: elementName,
115
- label: label !== null && label !== void 0 ? label : 'LiquidityPool',
116
- value: (0, portfolio_core_1.getUsdValueSum)(liquidities.map((a) => a.value)),
117
- data: {
118
- liquidities,
119
- },
120
- });
121
- }
122
- return elements;
103
+ const result = yield Promise.allSettled(results);
104
+ return result.flatMap((res) => (res.status === 'rejected' ? [] : res.value));
123
105
  });
124
106
  const fetcher = {
125
107
  id: `${portfolio_core_1.walletTokensPlatformId}-solana`,
@@ -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":"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"}
@@ -11,9 +11,8 @@ const sui_1 = __importDefault(require("./fetchers/sui"));
11
11
  const sui_nfts_1 = __importDefault(require("./fetchers/sui-nfts"));
12
12
  const sei_1 = __importDefault(require("./fetchers/sei"));
13
13
  const bitcoin_1 = __importDefault(require("./fetchers/bitcoin"));
14
- const solana_1 = __importDefault(require("./fetchers/solana"));
15
14
  const solana_native_1 = __importDefault(require("./fetchers/solana-native"));
16
- const solana_nfts_underlyings_1 = __importDefault(require("./fetchers/solana-nfts-underlyings"));
15
+ const solana_1 = __importDefault(require("./fetchers/solana"));
17
16
  const evms_1 = require("./fetchers/evms");
18
17
  const getTokenListsJob_1 = __importDefault(require("./getTokenListsJob"));
19
18
  const solana_simple_1 = __importDefault(require("./fetchers/solana-simple"));
@@ -32,9 +31,8 @@ exports.jobs = [
32
31
  ];
33
32
  exports.fetchers = [
34
33
  aptos_1.default,
35
- solana_1.default,
36
34
  solana_native_1.default,
37
- solana_nfts_underlyings_1.default,
35
+ solana_1.default,
38
36
  sui_1.default,
39
37
  sui_nfts_1.default,
40
38
  sei_1.default,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/tokens/index.ts"],"names":[],"mappings":";;;;;;AAAA,+DAAwE;AAIxE,kEAA0C;AAC1C,6DAA4C;AAC5C,yDAAwC;AACxC,mEAAiD;AACjD,yDAAwC;AACxC,iEAAgD;AAChD,+DAA8C;AAC9C,6EAA2D;AAC3D,iGAA8E;AAC9E,0CAA0D;AAC1D,0EAAkD;AAElD,6EAA2D;AA2BlD,8BA3BF,uBAAmB,CA2BE;AAzBf,QAAA,IAAI,GAAU;IACzB,IAAA,sBAAY,EAAC,0BAAS,CAAC,OAAO,CAAC;IAC/B,IAAA,sBAAY,EAAC,0BAAS,CAAC,KAAK,CAAC;IAC7B,IAAA,sBAAY,EAAC,0BAAS,CAAC,MAAM,CAAC;IAC9B,IAAA,sBAAY,EAAC,0BAAS,CAAC,QAAQ,CAAC;IAChC,IAAA,sBAAY,EAAC,0BAAS,CAAC,SAAS,CAAC;IACjC,IAAA,sBAAY,EAAC,0BAAS,CAAC,OAAO,CAAC;IAC/B,IAAA,sBAAY,EAAC,0BAAS,CAAC,GAAG,CAAC;IAC3B,IAAA,sBAAY,EAAC,0BAAS,CAAC,GAAG,CAAC;IAC3B,IAAA,sBAAY,EAAC,0BAAS,CAAC,GAAG,CAAC;IAC3B,GAAG,gCAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,0BAAgB,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;CAClE,CAAC;AAEW,QAAA,QAAQ,GAAc;IACjC,eAAY;IACZ,gBAAa;IACb,uBAAmB;IACnB,iCAA4B;IAC5B,aAAU;IACV,kBAAc;IACd,aAAU;IACV,iBAAc;IACd,GAAG,eAAW;CACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/tokens/index.ts"],"names":[],"mappings":";;;;;;AAAA,+DAAwE;AAIxE,kEAA0C;AAC1C,6DAA4C;AAC5C,yDAAwC;AACxC,mEAAiD;AACjD,yDAAwC;AACxC,iEAAgD;AAChD,6EAA2D;AAC3D,+DAA6C;AAC7C,0CAA0D;AAC1D,0EAAkD;AAElD,6EAA2D;AA0BlD,8BA1BF,uBAAmB,CA0BE;AAxBf,QAAA,IAAI,GAAU;IACzB,IAAA,sBAAY,EAAC,0BAAS,CAAC,OAAO,CAAC;IAC/B,IAAA,sBAAY,EAAC,0BAAS,CAAC,KAAK,CAAC;IAC7B,IAAA,sBAAY,EAAC,0BAAS,CAAC,MAAM,CAAC;IAC9B,IAAA,sBAAY,EAAC,0BAAS,CAAC,QAAQ,CAAC;IAChC,IAAA,sBAAY,EAAC,0BAAS,CAAC,SAAS,CAAC;IACjC,IAAA,sBAAY,EAAC,0BAAS,CAAC,OAAO,CAAC;IAC/B,IAAA,sBAAY,EAAC,0BAAS,CAAC,GAAG,CAAC;IAC3B,IAAA,sBAAY,EAAC,0BAAS,CAAC,GAAG,CAAC;IAC3B,IAAA,sBAAY,EAAC,0BAAS,CAAC,GAAG,CAAC;IAC3B,GAAG,gCAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,0BAAgB,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;CAClE,CAAC;AAEW,QAAA,QAAQ,GAAc;IACjC,eAAY;IACZ,uBAAmB;IACnB,gBAAY;IACZ,aAAU;IACV,kBAAc;IACd,aAAU;IACV,iBAAc;IACd,GAAG,eAAW;CACf,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { PortfolioElement } from '@sonarwatch/portfolio-core';
2
2
  import { Cache } from '../../Cache';
3
- import { ParsedAccount, TokenAccount } from '../../utils/solana';
3
+ import { ParsedAccount, TokenAccountWithMetadata } from '../../utils/solana';
4
4
  export type TokenData = {
5
5
  address: string;
6
6
  decimals: number;
@@ -36,4 +36,4 @@ export type Token = {
36
36
  index?: string;
37
37
  };
38
38
  };
39
- export type NftFetcher = (potentialTokens: ParsedAccount<TokenAccount>[], cache: Cache) => Promise<PortfolioElement[]>;
39
+ export type TokenFetcher = (potentialTokens: ParsedAccount<TokenAccountWithMetadata>[], cache: Cache) => Promise<PortfolioElement[]>;
@@ -40,28 +40,28 @@ function getPairKey(version) {
40
40
  exports.getPairKey = getPairKey;
41
41
  function getPairsV2FromTheGraph(url, length = 300) {
42
42
  return __awaiter(this, void 0, void 0, function* () {
43
- const query = (0, graphql_request_1.gql) `
44
- {
45
- pairs(
46
- orderBy: reserveUSD
47
- first: ${length}
48
- orderDirection: desc
49
- where: { trackedReserveETH_not: "0" }
50
- ) {
51
- id
52
- reserve0
53
- reserve1
54
- totalSupply
55
- token0 {
56
- id
57
- decimals
58
- }
59
- token1 {
60
- id
61
- decimals
62
- }
63
- }
64
- }
43
+ const query = (0, graphql_request_1.gql) `
44
+ {
45
+ pairs(
46
+ orderBy: reserveUSD
47
+ first: ${length}
48
+ orderDirection: desc
49
+ where: { trackedReserveETH_not: "0" }
50
+ ) {
51
+ id
52
+ reserve0
53
+ reserve1
54
+ totalSupply
55
+ token0 {
56
+ id
57
+ decimals
58
+ }
59
+ token1 {
60
+ id
61
+ decimals
62
+ }
63
+ }
64
+ }
65
65
  `;
66
66
  const res = yield (0, graphql_request_1.default)(url, query);
67
67
  const pairs = res.pairs;
@@ -41,20 +41,20 @@ const getMultipleAccountsInfoSafe_1 = require("../../utils/solana/getMultipleAcc
41
41
  const helpers_1 = require("./helpers");
42
42
  const AirdropFetcher_1 = require("../../AirdropFetcher");
43
43
  const getClaimTransactions_1 = require("../../utils/solana/jupiter/getClaimTransactions");
44
- const query = (0, graphql_request_1.gql) `
45
- query GetAirdropFinalFrontend($authority: String!) {
46
- getAirdropFinalFrontend(authority: $authority) {
47
- authority
48
- community_allocation
49
- eligibility
50
- main_allocation
51
- og_allocation
52
- s1_allocation
53
- s2_allocation
54
- total_allocation
55
- __typename
56
- }
57
- }
44
+ const query = (0, graphql_request_1.gql) `
45
+ query GetAirdropFinalFrontend($authority: String!) {
46
+ getAirdropFinalFrontend(authority: $authority) {
47
+ authority
48
+ community_allocation
49
+ eligibility
50
+ main_allocation
51
+ og_allocation
52
+ s1_allocation
53
+ s2_allocation
54
+ total_allocation
55
+ __typename
56
+ }
57
+ }
58
58
  `;
59
59
  const executor = (owner) => __awaiter(void 0, void 0, void 0, function* () {
60
60
  const res = yield (0, graphql_request_1.default)(constants_1.graphqlApi, query, {
@@ -20,20 +20,19 @@ class AssetCollectibleBuilder extends AssetBuilder_1.AssetBuilder {
20
20
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
21
  tokenPrices) {
22
22
  var _a;
23
+ const amount = new bignumber_js_1.default(this.params.amount || 1).toFixed(1);
23
24
  return {
24
25
  type: portfolio_core_1.PortfolioAssetType.collectible,
25
26
  networkId,
26
- value: new bignumber_js_1.default(this.params.collection.floorPrice)
27
- .multipliedBy(new bignumber_js_1.default(this.params.amount || 1))
28
- .toNumber(),
27
+ value: (0, portfolio_core_1.fixUsdValue)(new bignumber_js_1.default(this.params.collection.floorPrice)
28
+ .multipliedBy(amount)
29
+ .toNumber()),
29
30
  name: this.params.name || this.params.collection.name,
30
31
  data: {
31
32
  address: this.params.address.toString(),
32
- amount: new bignumber_js_1.default(this.params.amount || 1).toNumber(),
33
+ amount: Number(amount),
33
34
  price: new bignumber_js_1.default(this.params.collection.floorPrice).toNumber(),
34
35
  name: this.params.name || this.params.collection.name,
35
- /* dataUri: asset.content.json_uri,
36
- attributes: asset.content.metadata.attributes, */
37
36
  collection: {
38
37
  name: this.params.collection.name,
39
38
  floorPrice: new bignumber_js_1.default(this.params.collection.floorPrice).toNumber(),
@@ -1 +1 @@
1
- {"version":3,"file":"AssetCollectibleBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetCollectibleBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,+DAKoC;AACpC,gEAAqC;AACrC,iDAA8C;AAG9C,MAAa,uBAAwB,SAAQ,2BAAY;IAGvD,YAAY,MAAuC;QACjD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kDAAkD;IAClD,cAAc;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CACD,SAAwB;IACxB,6DAA6D;IAC7D,WAA0B;;QAE1B,OAAO;YACL,IAAI,EAAE,mCAAkB,CAAC,WAAW;YACpC,SAAS;YACT,KAAK,EAAE,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;iBACpD,YAAY,CAAC,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;iBACpD,QAAQ,EAAE;YACb,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;YACrD,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACvC,MAAM,EAAE,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACzD,KAAK,EAAE,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;gBAClE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;gBACrD;iEACiD;gBACjD,UAAU,EAAE;oBACV,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;oBACjC,UAAU,EAAE,IAAI,sBAAS,CACvB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAClC,CAAC,QAAQ,EAAE;iBACb;aACF;YACD,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ;YACzC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;YACxC,IAAI,EACF,IAAI,CAAC,MAAM,CAAC,IAAI;gBAChB,iCAAiC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACxD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,GAAG,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,0CAAE,QAAQ,EAAE;SACjC,CAAC;IACJ,CAAC;CACF;AAhDD,0DAgDC"}
1
+ {"version":3,"file":"AssetCollectibleBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetCollectibleBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,+DAMoC;AACpC,gEAAqC;AACrC,iDAA8C;AAG9C,MAAa,uBAAwB,SAAQ,2BAAY;IAGvD,YAAY,MAAuC;QACjD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kDAAkD;IAClD,cAAc;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CACD,SAAwB;IACxB,6DAA6D;IAC7D,WAA0B;;QAE1B,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO;YACL,IAAI,EAAE,mCAAkB,CAAC,WAAW;YACpC,SAAS;YACT,KAAK,EAAE,IAAA,4BAAW,EAChB,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;iBAC7C,YAAY,CAAC,MAAM,CAAC;iBACpB,QAAQ,EAAE,CACd;YACD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;YACrD,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACvC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,KAAK,EAAE,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;gBAClE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;gBACrD,UAAU,EAAE;oBACV,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;oBACjC,UAAU,EAAE,IAAI,sBAAS,CACvB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAClC,CAAC,QAAQ,EAAE;iBACb;aACF;YACD,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ;YACzC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;YACxC,IAAI,EACF,IAAI,CAAC,MAAM,CAAC,IAAI;gBAChB,iCAAiC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACxD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,GAAG,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,0CAAE,QAAQ,EAAE;SACjC,CAAC;IACJ,CAAC;CACF;AAjDD,0DAiDC"}
@@ -30,7 +30,7 @@ class AssetGenericBuilder extends AssetBuilder_1.AssetBuilder {
30
30
  return {
31
31
  type: portfolio_core_1.PortfolioAssetType.generic,
32
32
  networkId,
33
- value: value.isZero() ? null : value.toNumber(),
33
+ value: value.isZero() ? null : (0, portfolio_core_1.fixUsdValue)(value.toNumber()),
34
34
  name: this.params.name,
35
35
  data: {
36
36
  address: this.params.address
@@ -1 +1 @@
1
- {"version":3,"file":"AssetGenericBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetGenericBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,+DAKoC;AACpC,gEAAqC;AACrC,iDAA8C;AAG9C,MAAa,mBAAoB,SAAQ,2BAAY;IAGnD,YAAY,MAAmC;QAC7C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kDAAkD;IAClD,cAAc;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CACD,SAAwB;IACxB,6DAA6D;IAC7D,WAA0B;;QAE1B,IAAI,KAAK,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACnD,KAAK,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CACnB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,mCAAkB,CAAC,OAAO;YAChC,SAAS;YACT,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAC1B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAChC,CAAC,CAAC,SAAS;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;oBACxB,CAAC,CAAC,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;oBAC9C,CAAC,CAAC,SAAS;aACd;YACD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;YACxC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,GAAG,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,0CAAE,QAAQ,EAAE;SACjC,CAAC;IACJ,CAAC;CACF;AA9CD,kDA8CC"}
1
+ {"version":3,"file":"AssetGenericBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetGenericBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,+DAMoC;AACpC,gEAAqC;AACrC,iDAA8C;AAG9C,MAAa,mBAAoB,SAAQ,2BAAY;IAGnD,YAAY,MAAmC;QAC7C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kDAAkD;IAClD,cAAc;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CACD,SAAwB;IACxB,6DAA6D;IAC7D,WAA0B;;QAE1B,IAAI,KAAK,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACnD,KAAK,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CACnB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,mCAAkB,CAAC,OAAO;YAChC,SAAS;YACT,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,4BAAW,EAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5D,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAC1B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAChC,CAAC,CAAC,SAAS;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;oBACxB,CAAC,CAAC,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;oBAC9C,CAAC,CAAC,SAAS;aACd;YACD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;YACxC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,GAAG,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,0CAAE,QAAQ,EAAE;SACjC,CAAC;IACJ,CAAC;CACF;AA9CD,kDA8CC"}