@sonarwatch/portfolio-plugins 0.15.28 → 0.15.30

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 (206) hide show
  1. package/CHANGELOG.md +2746 -2715
  2. package/README.md +3 -3
  3. package/package.json +3 -3
  4. package/src/Job.d.ts +1 -1
  5. package/src/index.js +4 -0
  6. package/src/index.js.map +1 -1
  7. package/src/plugins/abex/getVaultInfo.d.ts +1 -2
  8. package/src/plugins/abex/getVaultInfo.js +14 -17
  9. package/src/plugins/abex/getVaultInfo.js.map +1 -1
  10. package/src/plugins/abex/helpers.js +1 -1
  11. package/src/plugins/abex/helpers.js.map +1 -1
  12. package/src/plugins/allbridge/helpers.js +6 -5
  13. package/src/plugins/allbridge/helpers.js.map +1 -1
  14. package/src/plugins/balancer/helpers/pools.js +21 -21
  15. package/src/plugins/bonfida/snsAirdropFetcher.js +10 -2
  16. package/src/plugins/bonfida/snsAirdropFetcher.js.map +1 -1
  17. package/src/plugins/bonkrewards/constants.d.ts +2 -0
  18. package/src/plugins/bonkrewards/constants.js +3 -1
  19. package/src/plugins/bonkrewards/constants.js.map +1 -1
  20. package/src/plugins/{tokens/fetchers/solana-nfts-underlyings.d.ts → bonkrewards/daoFetcher.d.ts} +1 -1
  21. package/src/plugins/bonkrewards/daoFetcher.js +57 -0
  22. package/src/plugins/bonkrewards/daoFetcher.js.map +1 -0
  23. package/src/plugins/bonkrewards/daoJob.d.ts +3 -0
  24. package/src/plugins/bonkrewards/daoJob.js +33 -0
  25. package/src/plugins/bonkrewards/daoJob.js.map +1 -0
  26. package/src/plugins/bonkrewards/index.js +4 -2
  27. package/src/plugins/bonkrewards/index.js.map +1 -1
  28. package/src/plugins/bonkrewards/structs.d.ts +27 -1
  29. package/src/plugins/bonkrewards/structs.js +25 -2
  30. package/src/plugins/bonkrewards/structs.js.map +1 -1
  31. package/src/plugins/cetus/index.js +6 -2
  32. package/src/plugins/cetus/index.js.map +1 -1
  33. package/src/plugins/cropper/whirlpoolFetcher.d.ts +3 -0
  34. package/src/plugins/cropper/whirlpoolFetcher.js +26 -0
  35. package/src/plugins/cropper/whirlpoolFetcher.js.map +1 -0
  36. package/src/plugins/cudis/airdropFetcher.d.ts +3 -0
  37. package/src/plugins/cudis/airdropFetcher.js +74 -0
  38. package/src/plugins/cudis/airdropFetcher.js.map +1 -0
  39. package/src/plugins/cudis/constants.d.ts +9 -0
  40. package/src/plugins/cudis/constants.js +18 -0
  41. package/src/plugins/cudis/constants.js.map +1 -0
  42. package/src/plugins/cudis/index.d.ts +5 -0
  43. package/src/plugins/cudis/index.js +15 -0
  44. package/src/plugins/cudis/index.js.map +1 -0
  45. package/src/plugins/cudis/stakingFetcher.d.ts +3 -0
  46. package/src/plugins/cudis/stakingFetcher.js +62 -0
  47. package/src/plugins/cudis/stakingFetcher.js.map +1 -0
  48. package/src/plugins/cudis/structs.d.ts +19 -0
  49. package/src/plugins/cudis/structs.js +20 -0
  50. package/src/plugins/cudis/structs.js.map +1 -0
  51. package/src/plugins/cudis/types.d.ts +8 -0
  52. package/src/plugins/cudis/types.js +3 -0
  53. package/src/plugins/cudis/types.js.map +1 -0
  54. package/src/plugins/daos/helpers.d.ts +0 -5
  55. package/src/plugins/daos/helpers.js +1 -51
  56. package/src/plugins/daos/helpers.js.map +1 -1
  57. package/src/plugins/daos/realmsProgramsJob.js.map +1 -1
  58. package/src/plugins/drift/helpers.js +47 -15
  59. package/src/plugins/drift/helpers.js.map +1 -1
  60. package/src/plugins/drift/struct.d.ts +9 -0
  61. package/src/plugins/drift/struct.js +10 -1
  62. package/src/plugins/drift/struct.js.map +1 -1
  63. package/src/plugins/drift-market-maker-vault/constants.d.ts +1 -0
  64. package/src/plugins/drift-market-maker-vault/constants.js +4 -1
  65. package/src/plugins/drift-market-maker-vault/constants.js.map +1 -1
  66. package/src/plugins/drift-market-maker-vault/vaultsJob.js +2 -2
  67. package/src/plugins/drift-market-maker-vault/vaultsJob.js.map +1 -1
  68. package/src/plugins/flash/helpers.js +8 -2
  69. package/src/plugins/flash/helpers.js.map +1 -1
  70. package/src/plugins/fluxbeam/poolsJob.js +25 -27
  71. package/src/plugins/fluxbeam/poolsJob.js.map +1 -1
  72. package/src/plugins/hawksight/positionsFetcher.js +3 -24
  73. package/src/plugins/hawksight/positionsFetcher.js.map +1 -1
  74. package/src/plugins/helium/getHeliumPositions.d.ts +3 -0
  75. package/src/plugins/helium/getHeliumPositions.js +53 -0
  76. package/src/plugins/helium/getHeliumPositions.js.map +1 -0
  77. package/src/plugins/helium/positionsFetcher.d.ts +3 -0
  78. package/src/{utils/misc/Memoized.js → plugins/helium/positionsFetcher.js} +15 -20
  79. package/src/plugins/helium/positionsFetcher.js.map +1 -0
  80. package/src/plugins/jupiter/launchpad/constants.js +7 -26
  81. package/src/plugins/jupiter/launchpad/constants.js.map +1 -1
  82. package/src/plugins/jupiter/launchpad/structs.d.ts +1 -1
  83. package/src/plugins/jupiter/launchpad/structs.js +1 -1
  84. package/src/plugins/jupiter/launchpad/structs.js.map +1 -1
  85. package/src/plugins/kamino/airdropHelpers.d.ts +2 -0
  86. package/src/plugins/kamino/airdropHelpers.js +38 -0
  87. package/src/plugins/kamino/airdropHelpers.js.map +1 -0
  88. package/src/plugins/kamino/constants.d.ts +2 -0
  89. package/src/plugins/kamino/constants.js +13 -4
  90. package/src/plugins/kamino/constants.js.map +1 -1
  91. package/src/plugins/kamino/index.js +8 -2
  92. package/src/plugins/kamino/index.js.map +1 -1
  93. package/src/plugins/kamino/s1AirdropFetcher.js +30 -5
  94. package/src/plugins/kamino/s1AirdropFetcher.js.map +1 -1
  95. package/src/plugins/kamino/{s2AirdropFetcher.old.js → s2AirdropFetcher.js} +31 -6
  96. package/src/plugins/kamino/s2AirdropFetcher.js.map +1 -0
  97. package/src/plugins/kamino/s3AirdropFetcher.d.ts +4 -0
  98. package/src/plugins/kamino/s3AirdropFetcher.js +68 -0
  99. package/src/plugins/kamino/s3AirdropFetcher.js.map +1 -0
  100. package/src/plugins/lulo/rewardsFetcher.js +5 -1
  101. package/src/plugins/lulo/rewardsFetcher.js.map +1 -1
  102. package/src/plugins/magna/constant.d.ts +4 -0
  103. package/src/plugins/magna/constant.js +6 -0
  104. package/src/plugins/magna/constant.js.map +1 -0
  105. package/src/plugins/magna/structs.d.ts +12 -0
  106. package/src/plugins/magna/structs.js +13 -0
  107. package/src/plugins/magna/structs.js.map +1 -0
  108. package/src/plugins/metaplex/index.js +1 -5
  109. package/src/plugins/metaplex/index.js.map +1 -1
  110. package/src/plugins/metaplex/resizableNftFetcher.d.ts +3 -0
  111. package/src/plugins/metaplex/resizableNftFetcher.js +9 -10
  112. package/src/plugins/metaplex/resizableNftFetcher.js.map +1 -1
  113. package/src/plugins/meteora/cpamm/cpammPositionsFetcher.d.ts +3 -0
  114. package/src/plugins/meteora/cpamm/cpammPositionsFetcher.js +11 -11
  115. package/src/plugins/meteora/cpamm/cpammPositionsFetcher.js.map +1 -1
  116. package/src/plugins/meteora/cpamm/cpammV2Job.js +58 -47
  117. package/src/plugins/meteora/cpamm/cpammV2Job.js.map +1 -1
  118. package/src/plugins/meteora/index.js +0 -2
  119. package/src/plugins/meteora/index.js.map +1 -1
  120. package/src/plugins/native-stake/index.js +2 -2
  121. package/src/plugins/native-stake/index.js.map +1 -1
  122. package/src/plugins/navi/index.js +4 -2
  123. package/src/plugins/navi/index.js.map +1 -1
  124. package/src/plugins/orca/getWhirlpoolPositions.d.ts +4 -3
  125. package/src/plugins/orca/getWhirlpoolPositions.js +9 -15
  126. package/src/plugins/orca/getWhirlpoolPositions.js.map +1 -1
  127. package/src/plugins/orca/helpers.d.ts +4 -0
  128. package/src/plugins/orca/helpers.js +6 -1
  129. package/src/plugins/orca/helpers.js.map +1 -1
  130. package/src/plugins/orca/whirlpoolFetcher.d.ts +3 -0
  131. package/src/plugins/orca/whirlpoolFetcher.js +26 -0
  132. package/src/plugins/orca/whirlpoolFetcher.js.map +1 -0
  133. package/src/plugins/parcl/helpersAirdrop.js +14 -5
  134. package/src/plugins/parcl/helpersAirdrop.js.map +1 -1
  135. package/src/plugins/picasso/getPicassoPositions.d.ts +3 -0
  136. package/src/plugins/picasso/getPicassoPositions.js +45 -0
  137. package/src/plugins/picasso/getPicassoPositions.js.map +1 -0
  138. package/src/plugins/picasso/helpers.d.ts +1 -3
  139. package/src/plugins/picasso/helpers.js +1 -60
  140. package/src/plugins/picasso/helpers.js.map +1 -1
  141. package/src/plugins/picasso/positionsFetcher.d.ts +3 -0
  142. package/src/plugins/picasso/positionsFetcher.js +26 -0
  143. package/src/plugins/picasso/positionsFetcher.js.map +1 -0
  144. package/src/plugins/pumpswap/marketsJob.js +8 -3
  145. package/src/plugins/pumpswap/marketsJob.js.map +1 -1
  146. package/src/plugins/raydium/clmmFetcher.d.ts +6 -0
  147. package/src/plugins/raydium/clmmFetcher.js +119 -0
  148. package/src/plugins/raydium/clmmFetcher.js.map +1 -0
  149. package/src/plugins/sushiswap/helpers.js +24 -24
  150. package/src/plugins/texture/helpers.js +4 -9
  151. package/src/plugins/texture/helpers.js.map +1 -1
  152. package/src/plugins/tokens/fetchers/solana-native.js +11 -21
  153. package/src/plugins/tokens/fetchers/solana-native.js.map +1 -1
  154. package/src/plugins/tokens/fetchers/solana-simple.js +4 -44
  155. package/src/plugins/tokens/fetchers/solana-simple.js.map +1 -1
  156. package/src/plugins/tokens/fetchers/solana.d.ts +4 -0
  157. package/src/plugins/tokens/fetchers/solana.js +85 -104
  158. package/src/plugins/tokens/fetchers/solana.js.map +1 -1
  159. package/src/plugins/tokens/getTokenListsJob.js +1 -1
  160. package/src/plugins/tokens/getTokenListsJob.js.map +1 -1
  161. package/src/plugins/tokens/index.js +2 -4
  162. package/src/plugins/tokens/index.js.map +1 -1
  163. package/src/plugins/tokens/types.d.ts +3 -2
  164. package/src/plugins/uniswap-v2/helpers.js +22 -22
  165. package/src/plugins/wasabi/constants.d.ts +5 -0
  166. package/src/plugins/wasabi/constants.js +7 -0
  167. package/src/plugins/wasabi/constants.js.map +1 -0
  168. package/src/plugins/wasabi/index.d.ts +4 -0
  169. package/src/plugins/wasabi/index.js +13 -0
  170. package/src/plugins/wasabi/index.js.map +1 -0
  171. package/src/plugins/wasabi/lpVaultsJob.d.ts +3 -0
  172. package/src/plugins/wasabi/lpVaultsJob.js +60 -0
  173. package/src/plugins/wasabi/lpVaultsJob.js.map +1 -0
  174. package/src/plugins/wasabi/positionsFetcher.d.ts +3 -0
  175. package/src/plugins/wasabi/positionsFetcher.js +67 -0
  176. package/src/plugins/wasabi/positionsFetcher.js.map +1 -0
  177. package/src/plugins/wasabi/structs.d.ts +30 -0
  178. package/src/plugins/wasabi/structs.js +30 -0
  179. package/src/plugins/wasabi/structs.js.map +1 -0
  180. package/src/plugins/zeta/airdropFetcher.js +21 -15
  181. package/src/plugins/zeta/airdropFetcher.js.map +1 -1
  182. package/src/utils/elementbuilder/AssetTokenBuilder.d.ts +2 -1
  183. package/src/utils/elementbuilder/AssetTokenBuilder.js +2 -1
  184. package/src/utils/elementbuilder/AssetTokenBuilder.js.map +1 -1
  185. package/src/utils/elementbuilder/Params.d.ts +2 -1
  186. package/src/utils/misc/MemoryCache.d.ts +6 -0
  187. package/src/utils/misc/MemoryCache.js +39 -0
  188. package/src/utils/misc/MemoryCache.js.map +1 -0
  189. package/src/utils/misc/getCachedDecimalsForToken.d.ts +1 -2
  190. package/src/utils/sei/constants.js +8 -8
  191. package/src/utils/sei/getQueryBalanceByOwner.js +4 -4
  192. package/src/utils/solana/getTokenAccountsByOwner.d.ts +4 -0
  193. package/src/utils/solana/getTokenAccountsByOwner.js +36 -0
  194. package/src/utils/solana/getTokenAccountsByOwner.js.map +1 -0
  195. package/src/utils/solana/zeroDecimalMints.d.ts +1 -0
  196. package/src/utils/solana/zeroDecimalMints.js +219 -0
  197. package/src/utils/solana/zeroDecimalMints.js.map +1 -0
  198. package/src/plugins/kamino/s2AirdropFetcher.old.js.map +0 -1
  199. package/src/plugins/raydium/getRaydiumCLMMPositions.d.ts +0 -3
  200. package/src/plugins/raydium/getRaydiumCLMMPositions.js +0 -113
  201. package/src/plugins/raydium/getRaydiumCLMMPositions.js.map +0 -1
  202. package/src/plugins/tokens/fetchers/solana-nfts-underlyings.js +0 -108
  203. package/src/plugins/tokens/fetchers/solana-nfts-underlyings.js.map +0 -1
  204. package/src/utils/misc/Memoized.d.ts +0 -8
  205. package/src/utils/misc/Memoized.js.map +0 -1
  206. /package/src/plugins/kamino/{s2AirdropFetcher.old.d.ts → s2AirdropFetcher.d.ts} +0 -0
@@ -8,118 +8,99 @@ 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 getSolanaTokens = (simple) => (tokenAccounts, cache) => __awaiter(void 0, void 0, void 0, function* () {
27
+ const fungibleAddresses = tokenAccounts.map((ta) => ta.mint.toString());
37
28
  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
- };
29
+ const tokenYields = !simple
30
+ ? yield cache.getTokenYieldsAsMap([...tokenPrices.keys()], portfolio_core_1.NetworkId.solana)
31
+ : new TokenYieldMap_1.TokenYieldMap(portfolio_core_1.NetworkId.solana);
32
+ const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.solana, portfolio_core_1.walletTokensPlatformId);
33
+ const elementTokens = elementRegistry.addElementMultiple({
34
+ label: 'Wallet',
35
+ });
36
+ const elementsLiquidity = new Map();
37
+ tokenAccounts.forEach((tokenAccount) => {
38
+ var _a;
39
+ const address = tokenAccount.mint.toString();
40
+ const tokenPrice = tokenPrices.get(address);
41
+ if (!tokenPrice)
42
+ return;
43
+ const tokenYield = tokenYields.get(address);
44
+ const amount = tokenAccount.amount.shiftedBy(-tokenPrice.decimals);
45
+ if (tokenPrice.platformId === portfolio_core_1.walletTokensPlatformId) {
46
+ // it's a regular token
47
+ elementTokens.addAsset({
48
+ address,
49
+ amount,
50
+ alreadyShifted: true,
51
+ ref: tokenAccount.pubkey,
52
+ link: tokenPrice.link,
53
+ sourceRefs: tokenPrice.sourceRefs,
54
+ tokenYield,
55
+ });
56
+ }
57
+ else if (!simple) {
58
+ // it's an LP Token
65
59
  const tag = (0, helpers_1.getLpTag)(tokenPrice.platformId, tokenPrice.elementName, tokenPrice.label);
66
- if (!liquiditiesByTag[tag]) {
67
- liquiditiesByTag[tag] = [];
60
+ let elementLiquidity = elementsLiquidity.get(tag);
61
+ if (!elementLiquidity) {
62
+ elementLiquidity = elementRegistry.addElementLiquidity({
63
+ name: tokenPrice.elementName,
64
+ label: (_a = tokenPrice.label) !== null && _a !== void 0 ? _a : 'LiquidityPool',
65
+ platformId: tokenPrice.platformId,
66
+ });
68
67
  }
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);
68
+ const liquidity = elementLiquidity.addLiquidity({
69
+ name: tokenPrice.liquidityName,
70
+ });
71
+ liquidity.addAsset({
72
+ address,
73
+ amount,
74
+ alreadyShifted: true,
75
+ ref: tokenAccount.pubkey,
76
+ link: tokenPrice.link,
77
+ sourceRefs: tokenPrice.sourceRefs,
78
+ tokenYield,
79
+ });
80
+ elementsLiquidity.set(tag, elementLiquidity);
80
81
  }
82
+ });
83
+ return elementRegistry.getElements(cache);
84
+ });
85
+ exports.getSolanaTokens = getSolanaTokens;
86
+ const tokensFetchers = [
87
+ clmmFetcher_1.getRaydiumClmmPositions,
88
+ cpammPositionsFetcher_1.getMeteoraCpammPositions,
89
+ (0, getWhirlpoolPositions_1.getOrcaPositions)(constants_1.platformId),
90
+ (0, getWhirlpoolPositions_1.getOrcaPositions)(constants_2.platformId, constants_2.clmmPid),
91
+ getHeliumPositions_1.getHeliumPositions,
92
+ getPicassoPositions_1.getPicassoPositions,
93
+ (0, exports.getSolanaTokens)(false),
94
+ resizableNftFetcher_1.getResizableNfts,
95
+ ];
96
+ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
97
+ const tokenAccounts = yield (0, getTokenAccountsByOwner_1.getTokenAccountsByOwner)(owner);
98
+ const results = [];
99
+ for (const tokensFetcher of tokensFetchers) {
100
+ results.push(tokensFetcher(tokenAccounts, cache));
81
101
  }
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;
102
+ const result = yield Promise.allSettled(results);
103
+ return result.flatMap((res) => (res.status === 'rejected' ? [] : res.value));
123
104
  });
124
105
  const fetcher = {
125
106
  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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"}
@@ -53,7 +53,7 @@ function getTokenListsJob(networkId) {
53
53
  const job = {
54
54
  id: `token-lists-${networkId}`,
55
55
  executor,
56
- labels: ['normal'],
56
+ labels: ['normal', 'evm', networkId],
57
57
  };
58
58
  return job;
59
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getTokenListsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/tokens/getTokenListsJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAIoC;AACpC,kDAA6C;AAG7C,2CAA+C;AAC/C,uCAA4C;AAE5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS;AAE9C,SAAS,gBAAgB,CAAC,SAAwB;IAChD,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;QACnD,MAAM,OAAO,GAAG,yBAAQ,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,SAAS,GAAuC,MAAM,eAAK;aAC9D,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;aACzB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,OAAO,CAAe,SAAS,EAAE;YACnE,MAAM,EAAE,4BAAgB;SACzB,CAAC,CAAC;QAEH,IACE,eAAe;YACf,CAAC,IAAA,yBAAe,EAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,EACjE,CAAC;YACD,OAAO;QACT,CAAC;QAED,2DAA2D;QAC3D,4CAA4C;QAC5C,kEAAkE;QAClE,qBAAqB;QACrB,gBAAgB;QAChB,eAAe;QACf,OAAO;QACP,2CAA2C;QAC3C,uCAAuC;QACvC,iBAAiB;QACjB,WAAW;QACX,QAAQ;QACR,IAAI;QACJ,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;YAC7C,MAAM,EAAE,4BAAgB;YACxB,GAAG;SACJ,CAAC,CAAC;IACL,CAAC,CAAA,CAAC;IACF,MAAM,GAAG,GAAQ;QACf,EAAE,EAAE,eAAe,SAAS,EAAE;QAC9B,QAAQ;QACR,MAAM,EAAE,CAAC,QAAQ,CAAC;KACnB,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AACD,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"getTokenListsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/tokens/getTokenListsJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAIoC;AACpC,kDAA6C;AAG7C,2CAA+C;AAC/C,uCAA4C;AAE5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS;AAE9C,SAAS,gBAAgB,CAAC,SAAwB;IAChD,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;QACnD,MAAM,OAAO,GAAG,yBAAQ,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,SAAS,GAAuC,MAAM,eAAK;aAC9D,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;aACzB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,OAAO,CAAe,SAAS,EAAE;YACnE,MAAM,EAAE,4BAAgB;SACzB,CAAC,CAAC;QAEH,IACE,eAAe;YACf,CAAC,IAAA,yBAAe,EAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,EACjE,CAAC;YACD,OAAO;QACT,CAAC;QAED,2DAA2D;QAC3D,4CAA4C;QAC5C,kEAAkE;QAClE,qBAAqB;QACrB,gBAAgB;QAChB,eAAe;QACf,OAAO;QACP,2CAA2C;QAC3C,uCAAuC;QACvC,iBAAiB;QACjB,WAAW;QACX,QAAQ;QACR,IAAI;QACJ,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;YAC7C,MAAM,EAAE,4BAAgB;YACxB,GAAG;SACJ,CAAC,CAAC;IACL,CAAC,CAAA,CAAC;IACF,MAAM,GAAG,GAAQ;QACf,EAAE,EAAE,eAAe,SAAS,EAAE;QAC9B,QAAQ;QACR,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KACrC,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AACD,kBAAe,gBAAgB,CAAC"}
@@ -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;AAKxE,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,5 +1,6 @@
1
- import { PortfolioAssetCollectible, PortfolioElement } from '@sonarwatch/portfolio-core';
1
+ import { PortfolioElement } from '@sonarwatch/portfolio-core';
2
2
  import { Cache } from '../../Cache';
3
+ import { ParsedAccount, TokenAccount } from '../../utils/solana';
3
4
  export type TokenData = {
4
5
  address: string;
5
6
  decimals: number;
@@ -35,4 +36,4 @@ export type Token = {
35
36
  index?: string;
36
37
  };
37
38
  };
38
- export type NftFetcher = (cache: Cache, nfts: PortfolioAssetCollectible[]) => Promise<PortfolioElement[]>;
39
+ export type TokenFetcher = (potentialTokens: ParsedAccount<TokenAccount>[], 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;
@@ -0,0 +1,5 @@
1
+ /// <reference types="@drift-labs/sdk/node_modules/@solana/web3.js" />
2
+ /// <reference types="jito-ts/node_modules/@solana/web3.js" />
3
+ import { PublicKey } from '@solana/web3.js';
4
+ export declare const platformId = "wasabi";
5
+ export declare const pid: PublicKey;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pid = exports.platformId = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ exports.platformId = 'wasabi';
6
+ exports.pid = new web3_js_1.PublicKey('spicyTHtbmarmUxwFSHYpA8G4uP2nRNq38RReMpoZ9c');
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/wasabi/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,UAAU,GAAG,QAAQ,CAAC;AACtB,QAAA,GAAG,GAAG,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Fetcher } from '../../Fetcher';
2
+ import { Job } from '../../Job';
3
+ export declare const jobs: Job[];
4
+ export declare const fetchers: Fetcher[];
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fetchers = exports.jobs = void 0;
7
+ const lpVaultsJob_1 = __importDefault(require("./lpVaultsJob"));
8
+ // import depositsFetcher from './positionsFetcher';
9
+ exports.jobs = [lpVaultsJob_1.default];
10
+ exports.fetchers = [
11
+ // depositsFetcher
12
+ ];
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/wasabi/index.ts"],"names":[],"mappings":";;;;;;AAEA,gEAAwC;AACxC,oDAAoD;AAEvC,QAAA,IAAI,GAAU,CAAC,qBAAW,CAAC,CAAC;AAC5B,QAAA,QAAQ,GAAc;AACjC,mBAAmB;CACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Job } from '../../Job';
2
+ declare const job: Job;
3
+ export default job;
@@ -0,0 +1,60 @@
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 clients_1 = require("../../utils/clients");
15
+ const ParsedGpa_1 = require("../../utils/solana/beets/ParsedGpa");
16
+ const solana_1 = require("../../utils/solana");
17
+ const structs_1 = require("./structs");
18
+ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
19
+ const connection = (0, clients_1.getClientSolana)();
20
+ const lpVaults = yield ParsedGpa_1.ParsedGpa.build(connection, structs_1.lpVaultStruct, constants_1.pid)
21
+ .addFilter('discriminator', [189, 45, 167, 23, 91, 118, 105, 190])
22
+ .run();
23
+ const [mintAccounts, tokenPricesMap] = yield Promise.all([
24
+ (0, solana_1.getParsedMultipleAccountsInfo)(connection, solana_1.mintAccountStruct, lpVaults.map((vault) => vault.sharesMint)),
25
+ cache.getTokenPricesAsMap(lpVaults.map((vault) => vault.asset.toString()), portfolio_core_1.NetworkId.solana),
26
+ ]);
27
+ const sources = [];
28
+ for (let i = 0; i < lpVaults.length; i++) {
29
+ const mintAccount = mintAccounts[i];
30
+ if (!mintAccount)
31
+ continue;
32
+ const lpVault = lpVaults[i];
33
+ const assetPrice = tokenPricesMap.get(lpVault.asset.toString());
34
+ if (!assetPrice)
35
+ continue;
36
+ const { totalAssets, sharesMint } = lpVault;
37
+ const sPrice = totalAssets
38
+ .dividedBy(mintAccount.supply)
39
+ .times(assetPrice.price);
40
+ sources.push({
41
+ address: sharesMint.toString(),
42
+ decimals: mintAccount.decimals,
43
+ price: sPrice.toNumber(),
44
+ networkId: portfolio_core_1.NetworkId.solana,
45
+ id: lpVault.pubkey.toString(),
46
+ platformId: constants_1.platformId,
47
+ timestamp: Date.now(),
48
+ weight: 1,
49
+ link: `https://app.wasabi.xyz/?earn=${lpVault.sharesMint.toString()}&network=solana&chain=solana`,
50
+ });
51
+ }
52
+ yield cache.setTokenPriceSources(sources);
53
+ });
54
+ const job = {
55
+ id: `${constants_1.platformId}-lp-vaults`,
56
+ executor,
57
+ labels: ['normal'],
58
+ };
59
+ exports.default = job;
60
+ //# sourceMappingURL=lpVaultsJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lpVaultsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/wasabi/lpVaultsJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAyE;AAGzE,2CAA8C;AAC9C,iDAAsD;AACtD,kEAA+D;AAC/D,+CAG4B;AAC5B,uCAA0C;AAE1C,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,UAAU,GAAG,IAAA,yBAAe,GAAE,CAAC;IAErC,MAAM,QAAQ,GAAG,MAAM,qBAAS,CAAC,KAAK,CAAC,UAAU,EAAE,uBAAa,EAAE,eAAG,CAAC;SACnE,SAAS,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACjE,GAAG,EAAE,CAAC;IAET,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvD,IAAA,sCAA6B,EAC3B,UAAU,EACV,0BAAiB,EACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAC1C;QACD,KAAK,CAAC,mBAAmB,CACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAC/C,0BAAS,CAAC,MAAM,CACjB;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAE5C,MAAM,MAAM,GAAG,WAAW;aACvB,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC;aAC7B,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE;YAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;YACxB,SAAS,EAAE,0BAAS,CAAC,MAAM;YAC3B,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC7B,UAAU,EAAV,sBAAU;YACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,gCAAgC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,8BAA8B;SAClG,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AACF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,YAAY;IAC7B,QAAQ;IACR,MAAM,EAAE,CAAC,QAAQ,CAAC;CACnB,CAAC;AACF,kBAAe,GAAG,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Fetcher } from '../../Fetcher';
2
+ declare const fetcher: Fetcher;
3
+ export default fetcher;
@@ -0,0 +1,67 @@
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 web3_js_1 = require("@solana/web3.js");
14
+ const constants_1 = require("./constants");
15
+ const clients_1 = require("../../utils/clients");
16
+ const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
17
+ const structs_1 = require("./structs");
18
+ const ParsedGpa_1 = require("../../utils/solana/beets/ParsedGpa");
19
+ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
20
+ const connection = (0, clients_1.getClientSolana)();
21
+ const accounts = yield ParsedGpa_1.ParsedGpa.build(connection, structs_1.positionStruct, constants_1.pid)
22
+ .addFilter('discriminator', [170, 188, 143, 228, 122, 64, 247, 208])
23
+ .addFilter('trader', new web3_js_1.PublicKey(owner))
24
+ .run();
25
+ if (!accounts.length)
26
+ return [];
27
+ const tokenPricesMap = yield cache.getTokenPricesAsMap(accounts.map((acc) => acc.collateral.toString()), portfolio_core_1.NetworkId.solana);
28
+ const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.solana, constants_1.platformId);
29
+ accounts.forEach((position) => {
30
+ const element = elementRegistry.addElementLeverage({
31
+ label: 'Leverage',
32
+ ref: position.pubkey,
33
+ });
34
+ const collatPrice = tokenPricesMap.get(position.collateral.toString());
35
+ const principalPrice = tokenPricesMap.get(position.currency.toString());
36
+ if (!collatPrice || !principalPrice)
37
+ return;
38
+ const collateralValue = position.collateralAmount.times(collatPrice.price);
39
+ const principalValue = position.principal.times(principalPrice.price);
40
+ const leverage = collateralValue
41
+ .plus(principalValue)
42
+ .dividedBy(collateralValue)
43
+ .toNumber();
44
+ element.addIsoPosition({
45
+ collateralValue: collateralValue.toNumber(),
46
+ address: position.collateral.toString(),
47
+ entryPrice: 0, // missing
48
+ leverage,
49
+ markPrice: principalPrice.price,
50
+ liquidationPrice: 0, // missing
51
+ side: portfolio_core_1.LeverageSide.long, // missing
52
+ size: position.collateralAmount
53
+ .dividedBy(Math.pow(10, collatPrice.decimals))
54
+ .toNumber(),
55
+ sizeValue: collateralValue.toNumber(),
56
+ pnlValue: 0, // missing
57
+ });
58
+ });
59
+ return elementRegistry.getElements(cache);
60
+ });
61
+ const fetcher = {
62
+ id: `${constants_1.platformId}-deposits`,
63
+ networkId: portfolio_core_1.NetworkId.solana,
64
+ executor,
65
+ };
66
+ exports.default = fetcher;
67
+ //# sourceMappingURL=positionsFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"positionsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/wasabi/positionsFetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /// <reference types="@drift-labs/sdk/node_modules/@solana/web3.js" />
2
+ /// <reference types="jito-ts/node_modules/@solana/web3.js" />
3
+ import { BeetStruct } from '@metaplex-foundation/beet';
4
+ import { PublicKey } from '@solana/web3.js';
5
+ import BigNumber from 'bignumber.js';
6
+ export type LpVault = {
7
+ discriminator: number[];
8
+ bump: number;
9
+ asset: PublicKey;
10
+ vault: PublicKey;
11
+ sharesMint: PublicKey;
12
+ totalAssets: BigNumber;
13
+ maxBorrow: BigNumber;
14
+ totalBorrowed: BigNumber;
15
+ };
16
+ export declare const lpVaultStruct: BeetStruct<LpVault, Partial<LpVault>>;
17
+ export type Position = {
18
+ discriminator: number[];
19
+ trader: PublicKey;
20
+ currency: PublicKey;
21
+ collateral: PublicKey;
22
+ lastFundingTimestamp: BigNumber;
23
+ downPayment: BigNumber;
24
+ principal: BigNumber;
25
+ collateralAmount: BigNumber;
26
+ feesToBePaid: BigNumber;
27
+ collateralVault: PublicKey;
28
+ lpVault: PublicKey;
29
+ };
30
+ export declare const positionStruct: BeetStruct<Position, Partial<Position>>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.positionStruct = exports.lpVaultStruct = void 0;
4
+ const beet_1 = require("@metaplex-foundation/beet");
5
+ const beet_solana_1 = require("@metaplex-foundation/beet-solana");
6
+ const solana_1 = require("../../utils/solana");
7
+ exports.lpVaultStruct = new beet_1.BeetStruct([
8
+ ['discriminator', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 8)],
9
+ ['bump', beet_1.u8],
10
+ ['asset', beet_solana_1.publicKey],
11
+ ['vault', beet_solana_1.publicKey],
12
+ ['sharesMint', beet_solana_1.publicKey],
13
+ ['totalAssets', solana_1.u64],
14
+ ['maxBorrow', solana_1.u64],
15
+ ['totalBorrowed', solana_1.u64],
16
+ ], (args) => args);
17
+ exports.positionStruct = new beet_1.BeetStruct([
18
+ ['discriminator', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 8)],
19
+ ['trader', beet_solana_1.publicKey],
20
+ ['currency', beet_solana_1.publicKey],
21
+ ['collateral', beet_solana_1.publicKey],
22
+ ['lastFundingTimestamp', solana_1.i64],
23
+ ['downPayment', solana_1.u64],
24
+ ['principal', solana_1.u64],
25
+ ['collateralAmount', solana_1.u64],
26
+ ['feesToBePaid', solana_1.u64],
27
+ ['collateralVault', beet_solana_1.publicKey],
28
+ ['lpVault', beet_solana_1.publicKey],
29
+ ], (args) => args);
30
+ //# sourceMappingURL=structs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/wasabi/structs.ts"],"names":[],"mappings":";;;AAAA,oDAImC;AACnC,kEAA6D;AAG7D,+CAA8C;AAajC,QAAA,aAAa,GAAG,IAAI,iBAAU,CACzC;IACE,CAAC,eAAe,EAAE,IAAA,4BAAqB,EAAC,SAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,MAAM,EAAE,SAAE,CAAC;IACZ,CAAC,OAAO,EAAE,uBAAS,CAAC;IACpB,CAAC,OAAO,EAAE,uBAAS,CAAC;IACpB,CAAC,YAAY,EAAE,uBAAS,CAAC;IACzB,CAAC,aAAa,EAAE,YAAG,CAAC;IACpB,CAAC,WAAW,EAAE,YAAG,CAAC;IAClB,CAAC,eAAe,EAAE,YAAG,CAAC;CACvB,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAe,CAC1B,CAAC;AAgBW,QAAA,cAAc,GAAG,IAAI,iBAAU,CAC1C;IACE,CAAC,eAAe,EAAE,IAAA,4BAAqB,EAAC,SAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,QAAQ,EAAE,uBAAS,CAAC;IACrB,CAAC,UAAU,EAAE,uBAAS,CAAC;IACvB,CAAC,YAAY,EAAE,uBAAS,CAAC;IACzB,CAAC,sBAAsB,EAAE,YAAG,CAAC;IAC7B,CAAC,aAAa,EAAE,YAAG,CAAC;IACpB,CAAC,WAAW,EAAE,YAAG,CAAC;IAClB,CAAC,kBAAkB,EAAE,YAAG,CAAC;IACzB,CAAC,cAAc,EAAE,YAAG,CAAC;IACrB,CAAC,iBAAiB,EAAE,uBAAS,CAAC;IAC9B,CAAC,SAAS,EAAE,uBAAS,CAAC;CACvB,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAgB,CAC3B,CAAC"}