rubic-sdk 5.50.5-alpha.solana.3 → 5.50.5-alpha.solana.31

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 (51) hide show
  1. package/lib/common/tokens/token.d.ts +2 -0
  2. package/lib/common/tokens/token.js +5 -2
  3. package/lib/common/tokens/token.js.map +1 -1
  4. package/lib/core/blockchain/web3-private-service/web3-private/solana-web3-private/models/solana-transaction-options.d.ts +1 -0
  5. package/lib/core/blockchain/web3-private-service/web3-private/solana-web3-private/solana-web3-private.d.ts +1 -1
  6. package/lib/core/blockchain/web3-private-service/web3-private/solana-web3-private/solana-web3-private.js +41 -2
  7. package/lib/core/blockchain/web3-private-service/web3-private/solana-web3-private/solana-web3-private.js.map +1 -1
  8. package/lib/core/blockchain/web3-public-service/web3-public/models/supported-token-field.d.ts +1 -1
  9. package/lib/core/blockchain/web3-public-service/web3-public/solana-web3-public/models/solana-token.d.ts +6 -0
  10. package/lib/core/blockchain/web3-public-service/web3-public/solana-web3-public/services/solana-tokens-api-service.d.ts +0 -6
  11. package/lib/core/blockchain/web3-public-service/web3-public/solana-web3-public/services/solana-tokens-api-service.js +0 -31
  12. package/lib/core/blockchain/web3-public-service/web3-public/solana-web3-public/services/solana-tokens-api-service.js.map +1 -1
  13. package/lib/core/blockchain/web3-public-service/web3-public/solana-web3-public/services/solana-tokens-service.d.ts +14 -0
  14. package/lib/core/blockchain/web3-public-service/web3-public/solana-web3-public/services/solana-tokens-service.js +106 -0
  15. package/lib/core/blockchain/web3-public-service/web3-public/solana-web3-public/services/solana-tokens-service.js.map +1 -0
  16. package/lib/core/blockchain/web3-public-service/web3-public/solana-web3-public/solana-web3-public.d.ts +3 -2
  17. package/lib/core/blockchain/web3-public-service/web3-public/solana-web3-public/solana-web3-public.js +37 -69
  18. package/lib/core/blockchain/web3-public-service/web3-public/solana-web3-public/solana-web3-public.js.map +1 -1
  19. package/lib/core/blockchain/web3-public-service/web3-public/web3-public.js +0 -10
  20. package/lib/core/blockchain/web3-public-service/web3-public/web3-public.js.map +1 -1
  21. package/lib/features/common/models/swap-transaction-options.d.ts +1 -0
  22. package/lib/features/common/providers/dln/dln-api-service.d.ts +1 -1
  23. package/lib/features/common/providers/dln/dln-api-service.js +14 -10
  24. package/lib/features/common/providers/dln/dln-api-service.js.map +1 -1
  25. package/lib/features/common/providers/unizen/services/unizen-api-service.js +3 -3
  26. package/lib/features/common/providers/unizen/services/unizen-api-service.js.map +1 -1
  27. package/lib/features/cross-chain/calculation-manager/providers/debridge-provider/chains/debridge-solana-cross-chain-trade.js +5 -1
  28. package/lib/features/cross-chain/calculation-manager/providers/debridge-provider/chains/debridge-solana-cross-chain-trade.js.map +1 -1
  29. package/lib/features/cross-chain/calculation-manager/providers/lifi-provider/chains/lifi-solana-cross-chain-trade.js +5 -1
  30. package/lib/features/cross-chain/calculation-manager/providers/lifi-provider/chains/lifi-solana-cross-chain-trade.js.map +1 -1
  31. package/lib/features/on-chain/calculation-manager/providers/aggregators/dln/chains/dln-solana-on-chain-trade.js +1 -1
  32. package/lib/features/on-chain/calculation-manager/providers/aggregators/dln/chains/dln-solana-on-chain-trade.js.map +1 -1
  33. package/lib/features/on-chain/calculation-manager/providers/aggregators/dln/constants/dln-on-chain-supported-blockchains.d.ts +1 -1
  34. package/lib/features/on-chain/calculation-manager/providers/aggregators/dln/constants/dln-on-chain-supported-blockchains.js +8 -8
  35. package/lib/features/on-chain/calculation-manager/providers/aggregators/dln/constants/dln-on-chain-supported-blockchains.js.map +1 -1
  36. package/lib/features/on-chain/calculation-manager/providers/aggregators/lifi/chains/lifi-solana-on-chain-trade.js +1 -1
  37. package/lib/features/on-chain/calculation-manager/providers/aggregators/lifi/chains/lifi-solana-on-chain-trade.js.map +1 -1
  38. package/lib/features/on-chain/calculation-manager/providers/aggregators/okuswap/constants/okuswap-api.d.ts +1 -1
  39. package/lib/features/on-chain/calculation-manager/providers/aggregators/okuswap/constants/okuswap-api.js +2 -2
  40. package/lib/features/on-chain/calculation-manager/providers/aggregators/okuswap/constants/okuswap-api.js.map +1 -1
  41. package/lib/features/on-chain/calculation-manager/providers/aggregators/okuswap/services/okuswap-api-service.js +3 -3
  42. package/lib/features/on-chain/calculation-manager/providers/aggregators/okuswap/services/okuswap-api-service.js.map +1 -1
  43. package/lib/features/on-chain/calculation-manager/providers/common/on-chain-aggregator/aggregator-solana-on-chain-trade-abstract.d.ts +1 -1
  44. package/lib/features/on-chain/calculation-manager/providers/common/on-chain-aggregator/aggregator-solana-on-chain-trade-abstract.js +4 -5
  45. package/lib/features/on-chain/calculation-manager/providers/common/on-chain-aggregator/aggregator-solana-on-chain-trade-abstract.js.map +1 -1
  46. package/lib/features/on-chain/calculation-manager/providers/common/on-chain-trade/solana-on-chain-trade/solana-on-chain-trade.js +3 -2
  47. package/lib/features/on-chain/calculation-manager/providers/common/on-chain-trade/solana-on-chain-trade/solana-on-chain-trade.js.map +1 -1
  48. package/lib/index.d.ts +1 -0
  49. package/lib/index.js +1 -0
  50. package/lib/index.js.map +1 -1
  51. package/package.json +1 -1
@@ -6,6 +6,7 @@ export type TokenStruct<T extends BlockchainName = BlockchainName> = {
6
6
  name: string;
7
7
  symbol: string;
8
8
  decimals: number;
9
+ image?: string;
9
10
  };
10
11
  /**
11
12
  * Contains main token's fields.
@@ -29,6 +30,7 @@ export declare class Token<T extends BlockchainName = BlockchainName> {
29
30
  readonly name: string;
30
31
  readonly symbol: string;
31
32
  readonly decimals: number;
33
+ readonly image: string | undefined;
32
34
  get isNative(): boolean;
33
35
  get isWrapped(): boolean;
34
36
  constructor(tokenStruct: TokenStruct<T>);
@@ -39,7 +39,8 @@ class Token {
39
39
  ...tokenBaseStruct,
40
40
  name: tokenInfo.name,
41
41
  symbol: tokenInfo.symbol,
42
- decimals: parseInt(tokenInfo.decimals)
42
+ decimals: parseInt(tokenInfo.decimals),
43
+ ...('image' in tokenInfo && { image: tokenInfo.image })
43
44
  });
44
45
  }
45
46
  /**
@@ -66,7 +67,8 @@ class Token {
66
67
  blockchain,
67
68
  name: tokenInfo.name,
68
69
  symbol: tokenInfo.symbol,
69
- decimals: parseInt(tokenInfo.decimals)
70
+ decimals: parseInt(tokenInfo.decimals),
71
+ ...('image' in tokenInfo && { image: tokenInfo.image })
70
72
  });
71
73
  });
72
74
  }
@@ -96,6 +98,7 @@ class Token {
96
98
  this.name = tokenStruct.name;
97
99
  this.symbol = tokenStruct.symbol;
98
100
  this.decimals = tokenStruct.decimals;
101
+ this.image = tokenStruct.image;
99
102
  }
100
103
  isEqualTo(token) {
101
104
  return (token.blockchain === this.blockchain && (0, blockchain_1.compareAddresses)(token.address, this.address));
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/common/tokens/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/common/tokens/token.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@ export interface SolanaTransactionOptions extends BasicTransactionOptions {
4
4
  * Encoded data, which will be executed in transaction.
5
5
  */
6
6
  data?: string;
7
+ fromAddress: string;
7
8
  }
@@ -7,6 +7,6 @@ export declare class SolanaWeb3Private extends Web3Private {
7
7
  private readonly solanaWeb3;
8
8
  protected readonly Web3Pure: typeof SolanaWeb3Pure;
9
9
  getBlockchainName(): Promise<BlockchainName | undefined>;
10
- sendTransaction(options?: SolanaTransactionOptions): Promise<string>;
10
+ sendTransaction(options: SolanaTransactionOptions): Promise<string>;
11
11
  constructor(solanaWeb3: SolanaWeb3);
12
12
  }
@@ -12,16 +12,55 @@ class SolanaWeb3Private extends web3_private_1.Web3Private {
12
12
  async getBlockchainName() {
13
13
  return blockchain_name_1.BLOCKCHAIN_NAME.SOLANA;
14
14
  }
15
- async sendTransaction(options = {}) {
15
+ async sendTransaction(options) {
16
16
  try {
17
17
  const web3Public = injector_1.Injector.web3PublicService.getWeb3Public(blockchain_name_1.BLOCKCHAIN_NAME.SOLANA);
18
18
  const decodedData = options.data.startsWith('0x')
19
19
  ? Buffer.from(options.data.slice(2), 'hex')
20
20
  : utils_1.base64.decode(options.data);
21
21
  const tx = web3_js_1.VersionedTransaction.deserialize(decodedData);
22
+ // const txMessage = TransactionMessage.decompile(tx.message);
22
23
  const { blockhash } = await web3Public.getRecentBlockhash();
24
+ const avgGas = await injector_1.Injector.web3PublicService
25
+ .getWeb3Public('SOLANA')
26
+ .getLastComputeUnits();
27
+ // tx.message.recentBlockhash = blockhash;
28
+ // Create the priority fee instructions
29
+ const computeUnitLimit = avgGas.multipliedBy(1.2).toNumber();
30
+ const computePriceIx = web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
31
+ microLamports: 1
32
+ });
33
+ const computeLimitIx = web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
34
+ units: computeUnitLimit
35
+ });
36
+ const swapIx = tx.message.compiledInstructions.map((ci) => {
37
+ const programId = tx.message.staticAccountKeys[ci.programIdIndex];
38
+ const keys = ci.accountKeyIndexes.map(index => ({
39
+ pubkey: tx.message.staticAccountKeys[index],
40
+ isSigner: tx.message.isAccountSigner(index),
41
+ isWritable: tx.message.isAccountWritable(index)
42
+ }));
43
+ return new web3_js_1.TransactionInstruction({
44
+ programId,
45
+ keys,
46
+ data: Buffer.from(ci.data)
47
+ });
48
+ });
23
49
  tx.message.recentBlockhash = blockhash;
24
- const { signature } = await this.solanaWeb3.signAndSendTransaction(tx);
50
+ const instructions = [
51
+ computePriceIx,
52
+ computeLimitIx,
53
+ ...swapIx
54
+ ];
55
+ // txMessage.instructions.push(computePriceIx, computeLimitIx);
56
+ // const msgWithGas = txMessage.compileToV0Message();
57
+ const msgWithGas = new web3_js_1.TransactionMessage({
58
+ instructions,
59
+ payerKey: new web3_js_1.PublicKey(options.fromAddress),
60
+ recentBlockhash: blockhash
61
+ }).compileToV0Message();
62
+ const txWithGas = new web3_js_1.VersionedTransaction(msgWithGas);
63
+ const { signature } = await this.solanaWeb3.signAndSendTransaction(txWithGas);
25
64
  options.onTransactionHash?.(signature);
26
65
  return signature;
27
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"solana-web3-private.js","sourceRoot":"","sources":["../../../../../../src/core/blockchain/web3-private-service/web3-private/solana-web3-private/solana-web3-private.ts"],"names":[],"mappings":";;;AAAA,6CAAuD;AACvD,4CAA0C;AAC1C,gFAA6F;AAC7F,8HAAyH;AAGzH,qGAAiG;AACjG,sHAAiH;AACjH,yDAAsD;AAGtD,MAAa,iBAAkB,SAAQ,0BAAW;IAGvC,KAAK,CAAC,iBAAiB;QAC1B,OAAO,iCAAe,CAAC,MAAM,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,UAAoC,EAAE;QAC/D,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,mBAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,iCAAe,CAAC,MAAM,CAAC,CAAC;YACpF,MAAM,WAAW,GAAG,OAAO,CAAC,IAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC9C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;gBAC5C,CAAC,CAAC,cAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAK,CAAC,CAAC;YAEnC,MAAM,EAAE,GAAG,8BAAoB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACzD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC5D,EAAE,CAAC,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;YAEvC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC;YACvC,OAAO,SAAS,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM,iCAAc,CAAC,UAAU,CAAC,GAAgB,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAED,YAA6B,UAAsB;QAC/C,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QADrB,eAAU,GAAV,UAAU,CAAY;QA1BhC,aAAQ,GAAG,iCAAc,CAAC;IA4B7C,CAAC;CACJ;AA9BD,8CA8BC"}
1
+ {"version":3,"file":"solana-web3-private.js","sourceRoot":"","sources":["../../../../../../src/core/blockchain/web3-private-service/web3-private/solana-web3-private/solana-web3-private.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export type SupportedTokenField = 'decimals' | 'symbol' | 'name';
1
+ export type SupportedTokenField = 'decimals' | 'symbol' | 'name' | 'image';
@@ -1,3 +1,4 @@
1
+ import { PublicKey } from '@solana/web3.js';
1
2
  export interface SolanaToken {
2
3
  name: string;
3
4
  symbol: string;
@@ -7,3 +8,8 @@ export interface SolanaToken {
7
8
  decimals: number | null;
8
9
  holders?: number | null;
9
10
  }
11
+ export interface SolanaTokensFetchingResp {
12
+ tokensList: SolanaToken[];
13
+ notFetchedMints: PublicKey[];
14
+ hasNotFetchedTokens: boolean;
15
+ }
@@ -1,14 +1,8 @@
1
1
  import { SolanaToken } from '../models/solana-token';
2
- interface TokenList {
3
- preparedTokens: SolanaToken[];
4
- addresses: string[];
5
- }
6
2
  export declare class SolanaTokensApiService {
7
3
  private static readonly apiEndpoint;
8
4
  private static readonly xApiKey;
9
5
  static getTokensList(tokenAddresses: string[]): Promise<{
10
6
  content: SolanaToken[];
11
7
  }>;
12
- static prepareTokens(tokenAddresses: string[]): TokenList;
13
8
  }
14
- export {};
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SolanaTokensApiService = void 0;
4
- const blockchain_1 = require("../../../../../../common/utils/blockchain");
5
4
  const injector_1 = require("../../../../../injector/injector");
6
5
  class SolanaTokensApiService {
7
6
  static getTokensList(tokenAddresses) {
@@ -11,36 +10,6 @@ class SolanaTokensApiService {
11
10
  }
12
11
  });
13
12
  }
14
- static prepareTokens(tokenAddresses) {
15
- const preparedTokens = [
16
- {
17
- name: 'Happy Cat',
18
- symbol: 'HAPPY',
19
- logoURI: null,
20
- address: 'HAPPYwgFcjEJDzRtfWE6tiHE9zGdzpNky2FvjPHsvvGZ',
21
- decimals: 9
22
- },
23
- {
24
- name: 'Just a chill guy',
25
- symbol: 'CHILLGUY',
26
- logoURI: 'https://ipfs.io/ipfs/Qmckb3nWWHyoJKtX3FeagfmDZXNVqiXM4nKkYsTnygm2Ah',
27
- address: 'Df6yfrKC8kZE3KNkrHERKzAetSxbrWeniQfyJY4Jpump',
28
- decimals: 6
29
- }
30
- ];
31
- return tokenAddresses.reduce((list, address) => {
32
- const existedToken = preparedTokens.find(token => (0, blockchain_1.compareAddresses)(token.address, address));
33
- return existedToken
34
- ? {
35
- preparedTokens: [...list.preparedTokens, existedToken],
36
- addresses: list.addresses
37
- }
38
- : {
39
- preparedTokens: list.preparedTokens,
40
- addresses: [...list.addresses, address]
41
- };
42
- }, { preparedTokens: [], addresses: [] });
43
- }
44
13
  }
45
14
  exports.SolanaTokensApiService = SolanaTokensApiService;
46
15
  SolanaTokensApiService.apiEndpoint = 'https://x-api.rubic.exchange/sol_token_list';
@@ -1 +1 @@
1
- {"version":3,"file":"solana-tokens-api-service.js","sourceRoot":"","sources":["../../../../../../../src/core/blockchain/web3-public-service/web3-public/solana-web3-public/services/solana-tokens-api-service.ts"],"names":[],"mappings":";;;AAAA,4DAA+D;AAC/D,yDAAsD;AAStD,MAAa,sBAAsB;IAKxB,MAAM,CAAC,aAAa,CAAC,cAAwB;QAChD,OAAO,mBAAQ,CAAC,UAAU,CAAC,IAAI,CAC3B,GAAG,IAAI,CAAC,WAAW,uBAAuB,EAC1C,EAAE,SAAS,EAAE,cAAc,EAAE,EAC7B;YACI,OAAO,EAAE;gBACL,MAAM,EAAE,IAAI,CAAC,OAAO;aACvB;SACJ,CACJ,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,cAAwB;QAChD,MAAM,cAAc,GAAG;YACnB;gBACI,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,8CAA8C;gBACvD,QAAQ,EAAE,CAAC;aACd;YACD;gBACI,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,qEAAqE;gBAC9E,OAAO,EAAE,8CAA8C;gBACvD,QAAQ,EAAE,CAAC;aACd;SACJ,CAAC;QACF,OAAO,cAAc,CAAC,MAAM,CACxB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YACd,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAC7C,IAAA,6BAAgB,EAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAC3C,CAAC;YACF,OAAO,YAAY;gBACf,CAAC,CAAC;oBACI,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC;oBACtD,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC5B;gBACH,CAAC,CAAC;oBACI,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;iBAC1C,CAAC;QACZ,CAAC,EACD,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAe,CACrD,CAAC;IACN,CAAC;;AAnDL,wDAoDC;AAnD2B,kCAAW,GAAG,6CAA6C,CAAC;AAE5D,8BAAO,GAAG,8CAA8C,CAAC"}
1
+ {"version":3,"file":"solana-tokens-api-service.js","sourceRoot":"","sources":["../../../../../../../src/core/blockchain/web3-public-service/web3-public/solana-web3-public/services/solana-tokens-api-service.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AAItD,MAAa,sBAAsB;IAKxB,MAAM,CAAC,aAAa,CAAC,cAAwB;QAChD,OAAO,mBAAQ,CAAC,UAAU,CAAC,IAAI,CAC3B,GAAG,IAAI,CAAC,WAAW,uBAAuB,EAC1C,EAAE,SAAS,EAAE,cAAc,EAAE,EAC7B;YACI,OAAO,EAAE;gBACL,MAAM,EAAE,IAAI,CAAC,OAAO;aACvB;SACJ,CACJ,CAAC;IACN,CAAC;;AAfL,wDAgBC;AAf2B,kCAAW,GAAG,6CAA6C,CAAC;AAE5D,8BAAO,GAAG,8CAA8C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Connection, PublicKey } from '@solana/web3.js';
2
+ import { SolanaToken } from '../models/solana-token';
3
+ export declare class SolanaTokensService {
4
+ private connection;
5
+ private tokensOrder;
6
+ private initialMints;
7
+ constructor(connection: Connection);
8
+ fetchTokensData(mints: PublicKey[]): Promise<SolanaToken[]>;
9
+ private fetchTokensFromBackend;
10
+ private fetchTokensFromMetaplex;
11
+ private fetchTokensFromSplApi;
12
+ private sortTokensByIdx;
13
+ private getNotFetchedTokensList;
14
+ }
@@ -0,0 +1,106 @@
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.SolanaTokensService = void 0;
7
+ const spl_token_1 = require("@solana/spl-token");
8
+ const utl_sdk_1 = require("@solflare-wallet/utl-sdk");
9
+ const blockchain_1 = require("../../../../../../common/utils/blockchain");
10
+ const p_timeout_1 = __importDefault(require("../../../../../../common/utils/p-timeout"));
11
+ const solana_tokens_api_service_1 = require("./solana-tokens-api-service");
12
+ class SolanaTokensService {
13
+ constructor(connection) {
14
+ // key - address of token, value - idx of token in initial tokensAddress
15
+ this.tokensOrder = {};
16
+ this.initialMints = [];
17
+ this.connection = connection;
18
+ }
19
+ async fetchTokensData(mints) {
20
+ const tokensAddresses = mints.map(mint => mint.toString());
21
+ this.initialMints = mints;
22
+ this.tokensOrder = tokensAddresses.reduce((acc, address, idx) => ({ ...acc, [address.toLowerCase()]: idx }), {});
23
+ const fromBackend = await this.fetchTokensFromBackend(mints);
24
+ if (!fromBackend.hasNotFetchedTokens)
25
+ return this.sortTokensByIdx(fromBackend.tokensList);
26
+ const fromMetaplex = await this.fetchTokensFromMetaplex(fromBackend.notFetchedMints, fromBackend.tokensList);
27
+ const backendWithMetaplexTokens = this.sortTokensByIdx([
28
+ ...fromBackend.tokensList,
29
+ ...fromMetaplex.tokensList
30
+ ]);
31
+ if (!fromMetaplex.hasNotFetchedTokens)
32
+ return backendWithMetaplexTokens;
33
+ const fromSplApi = await this.fetchTokensFromSplApi(fromMetaplex.notFetchedMints, backendWithMetaplexTokens);
34
+ return this.sortTokensByIdx([
35
+ ...fromBackend.tokensList,
36
+ ...fromMetaplex.tokensList,
37
+ ...fromSplApi.tokensList
38
+ ]);
39
+ }
40
+ async fetchTokensFromBackend(mints) {
41
+ try {
42
+ const tokensAddresses = mints.map(mint => mint.toString());
43
+ const { content: notSortedTokensList } = await (0, p_timeout_1.default)(solana_tokens_api_service_1.SolanaTokensApiService.getTokensList(tokensAddresses), 4000, new Error('Api Timeout!'));
44
+ const notFetchedMints = this.getNotFetchedTokensList(notSortedTokensList);
45
+ return {
46
+ tokensList: notSortedTokensList,
47
+ notFetchedMints,
48
+ hasNotFetchedTokens: notFetchedMints.length > 0
49
+ };
50
+ }
51
+ catch {
52
+ return {
53
+ tokensList: [],
54
+ notFetchedMints: [...mints],
55
+ hasNotFetchedTokens: true
56
+ };
57
+ }
58
+ }
59
+ async fetchTokensFromMetaplex(mints, prevTokensList) {
60
+ const config = new utl_sdk_1.UtlConfig({
61
+ connection: this.connection,
62
+ timeout: 5000
63
+ });
64
+ const tokenSDK = new utl_sdk_1.Client(config);
65
+ const metaplexTokens = await tokenSDK.getFromMetaplex(mints).catch(() => []);
66
+ const notSortedTokensList = [...prevTokensList, ...metaplexTokens];
67
+ const notFetchedMints = this.getNotFetchedTokensList(notSortedTokensList);
68
+ return {
69
+ tokensList: metaplexTokens,
70
+ notFetchedMints,
71
+ hasNotFetchedTokens: notFetchedMints.length > 0
72
+ };
73
+ }
74
+ async fetchTokensFromSplApi(mints, prevTokensList) {
75
+ const splApiResp = await Promise.all(mints.map(mint => (0, spl_token_1.getMint)(this.connection, mint, 'confirmed'))).catch(() => []);
76
+ const splApiTokens = splApiResp.filter(Boolean).map(token => ({
77
+ name: `Token ${token.address.toString().slice(0, 10)}`,
78
+ symbol: `Token ${token.address.toString().slice(0, 10)}`,
79
+ logoURI: null,
80
+ decimals: token.decimals,
81
+ address: token.address.toString(),
82
+ verified: token.isInitialized
83
+ }));
84
+ const notSortedTokensList = [...prevTokensList, ...splApiTokens];
85
+ const notFetchedMints = this.getNotFetchedTokensList(notSortedTokensList);
86
+ return {
87
+ tokensList: notSortedTokensList,
88
+ notFetchedMints,
89
+ hasNotFetchedTokens: notFetchedMints.length > 0
90
+ };
91
+ }
92
+ sortTokensByIdx(notSortedList) {
93
+ const sortedList = [];
94
+ for (const token of notSortedList) {
95
+ const originalIdx = this.tokensOrder[token.address.toLowerCase()];
96
+ sortedList[originalIdx] = token;
97
+ }
98
+ return sortedList;
99
+ }
100
+ getNotFetchedTokensList(tokensList) {
101
+ const notFetchedTokensList = this.initialMints.filter(mint => tokensList.every(token => !(0, blockchain_1.compareAddresses)(token.address, mint.toString())));
102
+ return notFetchedTokensList;
103
+ }
104
+ }
105
+ exports.SolanaTokensService = SolanaTokensService;
106
+ //# sourceMappingURL=solana-tokens-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-tokens-service.js","sourceRoot":"","sources":["../../../../../../../src/core/blockchain/web3-public-service/web3-public/solana-web3-public/services/solana-tokens-service.ts"],"names":[],"mappings":"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"}
@@ -13,13 +13,16 @@ import { AbiItem } from 'web3-utils';
13
13
  */
14
14
  export declare class SolanaWeb3Public extends Web3Public {
15
15
  private readonly connection;
16
+ private readonly MAX_TRANSFER_COST;
16
17
  constructor(connection: Connection);
18
+ getLastComputeUnits(): Promise<BigNumber>;
17
19
  getBlockNumber(): Promise<number>;
18
20
  multicallContractsMethods<Output extends Web3PrimitiveType>(_contractAbi: AbiItem[], _contractsData: {
19
21
  contractAddress: string;
20
22
  methodsData: MethodData[];
21
23
  }[]): Promise<ContractMulticallResponse<Output>[][]>;
22
24
  getTransactionStatus(hash: string): Promise<TxStatus>;
25
+ callForTokenInfo(tokenAddress: string, tokenFields?: SupportedTokenField[]): Promise<Partial<Record<SupportedTokenField, string>>>;
23
26
  callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>, tokenFields?: SupportedTokenField[]): Promise<Partial<Record<SupportedTokenField, string>>[]>;
24
27
  getBalance(userAddress: string, tokenAddress: string): Promise<BigNumber>;
25
28
  getTokenBalance(address: string, tokenAddress: string): Promise<BigNumber>;
@@ -29,8 +32,6 @@ export declare class SolanaWeb3Public extends Web3Public {
29
32
  gasPrice?: string;
30
33
  gas?: string;
31
34
  }): Promise<T>;
32
- private fetchMints;
33
- private hasNotFetchedTokens;
34
35
  healthCheck(timeoutMs?: number): Promise<boolean>;
35
36
  /**
36
37
  * Gets balance of multiple tokens.
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
4
  };
@@ -12,18 +6,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
6
  exports.SolanaWeb3Public = void 0;
13
7
  const spl_token_1 = require("@solana/spl-token");
14
8
  const web3_js_1 = require("@solana/web3.js");
15
- const utl_sdk_1 = require("@solflare-wallet/utl-sdk");
16
9
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
10
  const rxjs_1 = require("rxjs");
18
11
  const native_tokens_1 = require("../../../../../common/tokens/constants/native-tokens");
19
- const blockchain_1 = require("../../../../../common/utils/blockchain");
20
- const decorators_1 = require("../../../../../common/utils/decorators");
21
12
  const native_solana_mint_address_1 = require("../../../constants/solana/native-solana-mint-address");
22
13
  const blockchain_name_1 = require("../../../models/blockchain-name");
23
14
  const tx_status_1 = require("../models/tx-status");
24
15
  const web3_public_1 = require("../web3-public");
25
16
  const solana_web3_pure_1 = require("../../../web3-pure/typed-web3-pure/solana-web3-pure/solana-web3-pure");
26
- const solana_tokens_api_service_1 = require("./services/solana-tokens-api-service");
17
+ const solana_tokens_service_1 = require("./services/solana-tokens-service");
27
18
  /**
28
19
  * Class containing methods for calling contracts in order to obtain information from the blockchain.
29
20
  * To send transaction or execute contract method use {@link Web3Private}.
@@ -32,6 +23,21 @@ class SolanaWeb3Public extends web3_public_1.Web3Public {
32
23
  constructor(connection) {
33
24
  super(blockchain_name_1.BLOCKCHAIN_NAME.SOLANA);
34
25
  this.connection = connection;
26
+ this.MAX_TRANSFER_COST = 10000;
27
+ }
28
+ /* like gasLimit in evm */
29
+ async getLastComputeUnits() {
30
+ const latestSlot = await this.connection.getSlot();
31
+ const block = await this.connection.getParsedBlock(latestSlot, {
32
+ transactionDetails: 'full',
33
+ maxSupportedTransactionVersion: 0
34
+ });
35
+ const txCountInLastBlock = block.transactions.length;
36
+ const onlyDeFiSwaps = block.transactions.filter(tx => Number(tx.meta?.computeUnitsConsumed) > this.MAX_TRANSFER_COST);
37
+ const totalGasForSwaps = onlyDeFiSwaps.reduce((acc, tx) => acc + Number(tx.meta?.computeUnitsConsumed), 0);
38
+ const avgGas = new bignumber_js_1.default(totalGasForSwaps).dividedBy(txCountInLastBlock);
39
+ console.log('%cLAST_BLOCK ===> ', 'color: pink; font-size: 20px;', { block, avgGas });
40
+ return avgGas;
35
41
  }
36
42
  getBlockNumber() {
37
43
  return this.connection.getBlockHeight('finalized');
@@ -56,25 +62,33 @@ class SolanaWeb3Public extends web3_public_1.Web3Public {
56
62
  return tx_status_1.TX_STATUS.PENDING;
57
63
  }
58
64
  }
59
- async callForTokensInfo(tokenAddresses, tokenFields = ['decimals', 'symbol', 'name']) {
65
+ async callForTokenInfo(tokenAddress, tokenFields = ['decimals', 'symbol', 'name', 'image']) {
66
+ return (await this.callForTokensInfo([tokenAddress], tokenFields))[0];
67
+ }
68
+ async callForTokensInfo(tokenAddresses, tokenFields = ['decimals', 'symbol', 'name', 'image']) {
60
69
  const nativeTokenIndex = tokenAddresses.findIndex(address => this.Web3Pure.isNativeAddress(address));
61
70
  const filteredTokenAddresses = tokenAddresses.filter((_, index) => index !== nativeTokenIndex);
62
- const { preparedTokens, addresses } = solana_tokens_api_service_1.SolanaTokensApiService.prepareTokens(filteredTokenAddresses);
63
- const mints = addresses.map(address => new web3_js_1.PublicKey(address));
64
- const tokensMint = await this.fetchMints(mints);
65
- const fetchedTokens = tokensMint.map(token => {
66
- const entries = tokenFields.map(field => [field, token?.[field]]);
67
- return Object.fromEntries(entries);
68
- });
69
- const tokens = [...fetchedTokens, ...preparedTokens];
70
- if (nativeTokenIndex === -1) {
71
- return tokens;
72
- }
73
71
  const blockchainNativeToken = native_tokens_1.nativeTokensList[this.blockchainName];
74
72
  const nativeToken = {
75
73
  ...blockchainNativeToken,
76
74
  decimals: blockchainNativeToken.decimals.toString()
77
75
  };
76
+ // only native token in array
77
+ if (!filteredTokenAddresses.length && nativeTokenIndex !== -1) {
78
+ return [nativeToken];
79
+ }
80
+ const mints = filteredTokenAddresses.map(address => new web3_js_1.PublicKey(address));
81
+ const tokensMint = await new solana_tokens_service_1.SolanaTokensService(this.connection).fetchTokensData(mints);
82
+ const tokens = tokensMint.map(token => {
83
+ const data = tokenFields.reduce((acc, fieldName) => ({
84
+ ...acc,
85
+ [fieldName]: fieldName === 'image' ? token.logoURI : token[fieldName]
86
+ }), {});
87
+ return data;
88
+ });
89
+ if (nativeTokenIndex === -1) {
90
+ return tokens;
91
+ }
78
92
  tokens.splice(nativeTokenIndex, 0, nativeToken);
79
93
  return tokens;
80
94
  }
@@ -94,49 +108,6 @@ class SolanaWeb3Public extends web3_public_1.Web3Public {
94
108
  async callContractMethod(_contractAddress, _contractAbi, _methodName, _methodArguments = [], _options = {}) {
95
109
  throw new Error('Method call is not supported');
96
110
  }
97
- async fetchMints(mints) {
98
- const tokensAddresses = mints.map(mint => mint.toString());
99
- let tokensList = [];
100
- let notFetchedList = [];
101
- const m = await (0, spl_token_1.getMint)(this.connection, mints[0], 'confirmed');
102
- const tokenData = await (0, spl_token_1.getTokenMetadata)(this.connection, mints[0], 'confirmed').catch(err => err);
103
- console.log(`%cMINT`, 'color: aqua; font-sie: 20px;', { mint: m, tokenData });
104
- try {
105
- const { content } = await solana_tokens_api_service_1.SolanaTokensApiService.getTokensList(tokensAddresses);
106
- tokensList = content;
107
- notFetchedList = mints.filter(mint => tokensList.some(token => !(0, blockchain_1.compareAddresses)(token.address, mint.toString())));
108
- }
109
- catch { }
110
- if (!this.hasNotFetchedTokens(notFetchedList))
111
- return tokensList;
112
- const config = new utl_sdk_1.UtlConfig({
113
- connection: this.connection,
114
- timeout: 5000
115
- });
116
- const tokenSDK = new utl_sdk_1.Client(config);
117
- const metaplexTokens = await tokenSDK.getFromMetaplex(notFetchedList);
118
- notFetchedList = mints.filter(mint => [...tokensList, ...metaplexTokens].some(token => !(0, blockchain_1.compareAddresses)(token.address, mint.toString())));
119
- if (!this.hasNotFetchedTokens(notFetchedList))
120
- return [...tokensList, ...metaplexTokens];
121
- // const splApiResp = await Promise.all(
122
- notFetchedList.map(mint => (0, spl_token_1.getTokenMetadata)(this.connection, mint, 'confirmed'));
123
- // );
124
- // const splApiTokens = splApiResp.filter(Boolean).map(
125
- // token =>
126
- // ({
127
- // name: token!.name,
128
- // symbol: token!.symbol,
129
- // logoURI: token!.uri,
130
- // decimals: Number(token?.additionalMetadata?.[0]?.[0] || 9),
131
- // address: token!.mint.toString(),
132
- // verified: true
133
- // } as SolanaToken)
134
- // );
135
- return [...tokensList, ...metaplexTokens];
136
- }
137
- hasNotFetchedTokens(notFetchedList) {
138
- return notFetchedList.length > 0;
139
- }
140
111
  healthCheck(timeoutMs = 4000) {
141
112
  const request = this.connection.getBalanceAndContext(new web3_js_1.PublicKey('DVLwQbEaw5txuduQwvfbNP3sXvjawHqaoMuGMKZx15bQ'), 'confirmed');
142
113
  return (0, rxjs_1.firstValueFrom)((0, rxjs_1.from)(request).pipe((0, rxjs_1.timeout)(timeoutMs), (0, rxjs_1.map)(result => Boolean(result)), (0, rxjs_1.catchError)((err) => {
@@ -157,7 +128,7 @@ class SolanaWeb3Public extends web3_public_1.Web3Public {
157
128
  async getTokensBalances(address, tokensAddresses) {
158
129
  const resp = await this.connection._rpcRequest('getTokenAccountsByOwner', [
159
130
  address,
160
- { programId: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' },
131
+ { programId: spl_token_1.TOKEN_PROGRAM_ID },
161
132
  { encoding: 'jsonParsed' }
162
133
  ]);
163
134
  const tokenInfo = new Map(resp.result.value.map(el => {
@@ -191,7 +162,4 @@ class SolanaWeb3Public extends web3_public_1.Web3Public {
191
162
  }
192
163
  }
193
164
  exports.SolanaWeb3Public = SolanaWeb3Public;
194
- __decorate([
195
- decorators_1.Cache
196
- ], SolanaWeb3Public.prototype, "callForTokensInfo", null);
197
165
  //# sourceMappingURL=solana-web3-public.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"solana-web3-public.js","sourceRoot":"","sources":["../../../../../../src/core/blockchain/web3-public-service/web3-public/solana-web3-public/solana-web3-public.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solana-web3-public.js","sourceRoot":"","sources":["../../../../../../src/core/blockchain/web3-public-service/web3-public/solana-web3-public/solana-web3-public.ts"],"names":[],"mappings":"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"}