@lifi/sdk 3.7.5 → 3.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -69,5 +69,5 @@
69
69
  "sideEffects": false,
70
70
  "types": "./src/_types/index.d.ts",
71
71
  "typings": "./src/_types/index.d.ts",
72
- "version": "3.7.5"
72
+ "version": "3.7.6"
73
73
  }
@@ -21,25 +21,38 @@ const getSolanaBalance = async (walletAddress, tokens) => {
21
21
  exports.getSolanaBalance = getSolanaBalance;
22
22
  const getSolanaBalanceDefault = async (_chainId, tokens, walletAddress) => {
23
23
  const accountPublicKey = new web3_js_1.PublicKey(walletAddress);
24
- const tokenProgramPublicKey = new web3_js_1.PublicKey(types_js_1.TokenProgramAddress);
25
- const [slot, balance, tokenAccountsByOwner] = await Promise.allSettled([
24
+ const tokenProgramIdPublicKey = new web3_js_1.PublicKey(types_js_1.TokenProgramId);
25
+ const token2022ProgramIdPublicKey = new web3_js_1.PublicKey(types_js_1.Token2022ProgramId);
26
+ const [slot, balance, tokenAccountsByOwner, token2022AccountsByOwner] = await Promise.allSettled([
26
27
  (0, withDedupe_js_1.withDedupe)(() => (0, connection_js_1.callSolanaWithRetry)((connection) => connection.getSlot('confirmed')), { id: `${getSolanaBalanceDefault.name}.getSlot` }),
27
28
  (0, withDedupe_js_1.withDedupe)(() => (0, connection_js_1.callSolanaWithRetry)((connection) => connection.getBalance(accountPublicKey, 'confirmed')), { id: `${getSolanaBalanceDefault.name}.getBalance` }),
28
29
  (0, withDedupe_js_1.withDedupe)(() => (0, connection_js_1.callSolanaWithRetry)((connection) => connection.getParsedTokenAccountsByOwner(accountPublicKey, {
29
- programId: tokenProgramPublicKey,
30
- }, 'confirmed')), { id: `${getSolanaBalanceDefault.name}.getParsedTokenAccountsByOwner` }),
30
+ programId: tokenProgramIdPublicKey,
31
+ }, 'confirmed')), {
32
+ id: `${getSolanaBalanceDefault.name}.getParsedTokenAccountsByOwner.${types_js_1.TokenProgramId}`,
33
+ }),
34
+ (0, withDedupe_js_1.withDedupe)(() => (0, connection_js_1.callSolanaWithRetry)((connection) => connection.getParsedTokenAccountsByOwner(accountPublicKey, {
35
+ programId: token2022ProgramIdPublicKey,
36
+ }, 'confirmed')), {
37
+ id: `${getSolanaBalanceDefault.name}.getParsedTokenAccountsByOwner.${types_js_1.Token2022ProgramId}`,
38
+ }),
31
39
  ]);
32
40
  const blockNumber = slot.status === 'fulfilled' ? BigInt(slot.value) : 0n;
33
41
  const solBalance = balance.status === 'fulfilled' ? BigInt(balance.value) : 0n;
34
- const walletTokenAmounts = tokenAccountsByOwner.status === 'fulfilled'
35
- ? tokenAccountsByOwner.value.value.reduce((tokenAmounts, value) => {
36
- const amount = BigInt(value.account.data.parsed.info.tokenAmount.amount);
37
- if (amount > 0n) {
38
- tokenAmounts[value.account.data.parsed.info.mint] = amount;
39
- }
40
- return tokenAmounts;
41
- }, {})
42
- : {};
42
+ const walletTokenAmounts = [
43
+ ...(tokenAccountsByOwner.status === 'fulfilled'
44
+ ? tokenAccountsByOwner.value.value
45
+ : []),
46
+ ...(token2022AccountsByOwner.status === 'fulfilled'
47
+ ? token2022AccountsByOwner.value.value
48
+ : []),
49
+ ].reduce((tokenAmounts, value) => {
50
+ const amount = BigInt(value.account.data.parsed.info.tokenAmount.amount);
51
+ if (amount > 0n) {
52
+ tokenAmounts[value.account.data.parsed.info.mint] = amount;
53
+ }
54
+ return tokenAmounts;
55
+ }, {});
43
56
  walletTokenAmounts[constants_js_1.SolSystemProgram] = solBalance;
44
57
  const tokenAmounts = tokens.map((token) => {
45
58
  if (walletTokenAmounts[token.address]) {
@@ -1 +1 @@
1
- {"version":3,"file":"getSolanaBalance.js","sourceRoot":"","sources":["../../../core/Solana/getSolanaBalance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getSolanaBalance.js","sourceRoot":"","sources":["../../../core/Solana/getSolanaBalance.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TokenProgramAddress = void 0;
3
+ exports.Token2022ProgramId = exports.TokenProgramId = void 0;
4
4
  exports.isSolana = isSolana;
5
5
  const types_1 = require("@lifi/types");
6
6
  function isSolana(provider) {
7
7
  return provider.type === types_1.ChainType.SVM;
8
8
  }
9
- exports.TokenProgramAddress = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
9
+ exports.TokenProgramId = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
10
+ exports.Token2022ProgramId = 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb';
10
11
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../core/Solana/types.ts"],"names":[],"mappings":";;;AAYA,4BAEC;AAdD,uCAAuC;AAYvC,SAAgB,QAAQ,CAAC,QAAqB;IAC5C,OAAO,QAAQ,CAAC,IAAI,KAAK,iBAAS,CAAC,GAAG,CAAA;AACxC,CAAC;AAMY,QAAA,mBAAmB,GAAG,6CAA6C,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../core/Solana/types.ts"],"names":[],"mappings":";;;AAYA,4BAEC;AAdD,uCAAuC;AAYvC,SAAgB,QAAQ,CAAC,QAAqB;IAC5C,OAAO,QAAQ,CAAC,IAAI,KAAK,iBAAS,CAAC,GAAG,CAAA;AACxC,CAAC;AAMY,QAAA,cAAc,GAAG,6CAA6C,CAAA;AAC9D,QAAA,kBAAkB,GAAG,6CAA6C,CAAA"}
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = exports.name = void 0;
4
4
  exports.name = '@lifi/sdk';
5
- exports.version = '3.7.5';
5
+ exports.version = '3.7.6';
6
6
  //# sourceMappingURL=version.js.map
@@ -2,7 +2,7 @@ import { PublicKey } from '@solana/web3.js';
2
2
  import { SolSystemProgram } from '../../constants.js';
3
3
  import { withDedupe } from '../../utils/withDedupe.js';
4
4
  import { callSolanaWithRetry } from './connection.js';
5
- import { TokenProgramAddress } from './types.js';
5
+ import { Token2022ProgramId, TokenProgramId } from './types.js';
6
6
  export const getSolanaBalance = async (walletAddress, tokens) => {
7
7
  if (tokens.length === 0) {
8
8
  return [];
@@ -17,25 +17,38 @@ export const getSolanaBalance = async (walletAddress, tokens) => {
17
17
  };
18
18
  const getSolanaBalanceDefault = async (_chainId, tokens, walletAddress) => {
19
19
  const accountPublicKey = new PublicKey(walletAddress);
20
- const tokenProgramPublicKey = new PublicKey(TokenProgramAddress);
21
- const [slot, balance, tokenAccountsByOwner] = await Promise.allSettled([
20
+ const tokenProgramIdPublicKey = new PublicKey(TokenProgramId);
21
+ const token2022ProgramIdPublicKey = new PublicKey(Token2022ProgramId);
22
+ const [slot, balance, tokenAccountsByOwner, token2022AccountsByOwner] = await Promise.allSettled([
22
23
  withDedupe(() => callSolanaWithRetry((connection) => connection.getSlot('confirmed')), { id: `${getSolanaBalanceDefault.name}.getSlot` }),
23
24
  withDedupe(() => callSolanaWithRetry((connection) => connection.getBalance(accountPublicKey, 'confirmed')), { id: `${getSolanaBalanceDefault.name}.getBalance` }),
24
25
  withDedupe(() => callSolanaWithRetry((connection) => connection.getParsedTokenAccountsByOwner(accountPublicKey, {
25
- programId: tokenProgramPublicKey,
26
- }, 'confirmed')), { id: `${getSolanaBalanceDefault.name}.getParsedTokenAccountsByOwner` }),
26
+ programId: tokenProgramIdPublicKey,
27
+ }, 'confirmed')), {
28
+ id: `${getSolanaBalanceDefault.name}.getParsedTokenAccountsByOwner.${TokenProgramId}`,
29
+ }),
30
+ withDedupe(() => callSolanaWithRetry((connection) => connection.getParsedTokenAccountsByOwner(accountPublicKey, {
31
+ programId: token2022ProgramIdPublicKey,
32
+ }, 'confirmed')), {
33
+ id: `${getSolanaBalanceDefault.name}.getParsedTokenAccountsByOwner.${Token2022ProgramId}`,
34
+ }),
27
35
  ]);
28
36
  const blockNumber = slot.status === 'fulfilled' ? BigInt(slot.value) : 0n;
29
37
  const solBalance = balance.status === 'fulfilled' ? BigInt(balance.value) : 0n;
30
- const walletTokenAmounts = tokenAccountsByOwner.status === 'fulfilled'
31
- ? tokenAccountsByOwner.value.value.reduce((tokenAmounts, value) => {
32
- const amount = BigInt(value.account.data.parsed.info.tokenAmount.amount);
33
- if (amount > 0n) {
34
- tokenAmounts[value.account.data.parsed.info.mint] = amount;
35
- }
36
- return tokenAmounts;
37
- }, {})
38
- : {};
38
+ const walletTokenAmounts = [
39
+ ...(tokenAccountsByOwner.status === 'fulfilled'
40
+ ? tokenAccountsByOwner.value.value
41
+ : []),
42
+ ...(token2022AccountsByOwner.status === 'fulfilled'
43
+ ? token2022AccountsByOwner.value.value
44
+ : []),
45
+ ].reduce((tokenAmounts, value) => {
46
+ const amount = BigInt(value.account.data.parsed.info.tokenAmount.amount);
47
+ if (amount > 0n) {
48
+ tokenAmounts[value.account.data.parsed.info.mint] = amount;
49
+ }
50
+ return tokenAmounts;
51
+ }, {});
39
52
  walletTokenAmounts[SolSystemProgram] = solBalance;
40
53
  const tokenAmounts = tokens.map((token) => {
41
54
  if (walletTokenAmounts[token.address]) {
@@ -1 +1 @@
1
- {"version":3,"file":"getSolanaBalance.js","sourceRoot":"","sources":["../../../core/Solana/getSolanaBalance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getSolanaBalance.js","sourceRoot":"","sources":["../../../core/Solana/getSolanaBalance.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,6 @@ import { ChainType } from '@lifi/types';
2
2
  export function isSolana(provider) {
3
3
  return provider.type === ChainType.SVM;
4
4
  }
5
- export const TokenProgramAddress = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
5
+ export const TokenProgramId = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
6
+ export const Token2022ProgramId = 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb';
6
7
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../core/Solana/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAYvC,MAAM,UAAU,QAAQ,CAAC,QAAqB;IAC5C,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAA;AACxC,CAAC;AAMD,MAAM,CAAC,MAAM,mBAAmB,GAAG,6CAA6C,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../core/Solana/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAYvC,MAAM,UAAU,QAAQ,CAAC,QAAqB;IAC5C,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAA;AACxC,CAAC;AAMD,MAAM,CAAC,MAAM,cAAc,GAAG,6CAA6C,CAAA;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,6CAA6C,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export const name = '@lifi/sdk';
2
- export const version = '3.7.5';
2
+ export const version = '3.7.6';
3
3
  //# sourceMappingURL=version.js.map
@@ -10,5 +10,6 @@ export declare function isSolana(provider: SDKProvider): provider is SolanaProvi
10
10
  export interface SolanaStepExecutorOptions extends StepExecutorOptions {
11
11
  walletAdapter: SignerWalletAdapter;
12
12
  }
13
- export declare const TokenProgramAddress = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
13
+ export declare const TokenProgramId = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
14
+ export declare const Token2022ProgramId = "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
14
15
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../core/Solana/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEnE,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,UAAU,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;CACjD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,IAAI,cAAc,CAE1E;AAED,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,aAAa,EAAE,mBAAmB,CAAA;CACnC;AAED,eAAO,MAAM,mBAAmB,gDAAgD,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../core/Solana/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEnE,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,UAAU,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAA;CACjD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,IAAI,cAAc,CAE1E;AAED,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,aAAa,EAAE,mBAAmB,CAAA;CACnC;AAED,eAAO,MAAM,cAAc,gDAAgD,CAAA;AAC3E,eAAO,MAAM,kBAAkB,gDAAgD,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export declare const name = "@lifi/sdk";
2
- export declare const version = "3.7.5";
2
+ export declare const version = "3.7.6";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -3,7 +3,7 @@ import { PublicKey } from '@solana/web3.js'
3
3
  import { SolSystemProgram } from '../../constants.js'
4
4
  import { withDedupe } from '../../utils/withDedupe.js'
5
5
  import { callSolanaWithRetry } from './connection.js'
6
- import { TokenProgramAddress } from './types.js'
6
+ import { Token2022ProgramId, TokenProgramId } from './types.js'
7
7
 
8
8
  export const getSolanaBalance = async (
9
9
  walletAddress: string,
@@ -28,51 +28,74 @@ const getSolanaBalanceDefault = async (
28
28
  walletAddress: string
29
29
  ): Promise<TokenAmount[]> => {
30
30
  const accountPublicKey = new PublicKey(walletAddress)
31
- const tokenProgramPublicKey = new PublicKey(TokenProgramAddress)
32
- const [slot, balance, tokenAccountsByOwner] = await Promise.allSettled([
33
- withDedupe(
34
- () =>
35
- callSolanaWithRetry((connection) => connection.getSlot('confirmed')),
36
- { id: `${getSolanaBalanceDefault.name}.getSlot` }
37
- ),
38
- withDedupe(
39
- () =>
40
- callSolanaWithRetry((connection) =>
41
- connection.getBalance(accountPublicKey, 'confirmed')
42
- ),
43
- { id: `${getSolanaBalanceDefault.name}.getBalance` }
44
- ),
45
- withDedupe(
46
- () =>
47
- callSolanaWithRetry((connection) =>
48
- connection.getParsedTokenAccountsByOwner(
49
- accountPublicKey,
50
- {
51
- programId: tokenProgramPublicKey,
52
- },
53
- 'confirmed'
54
- )
55
- ),
56
- { id: `${getSolanaBalanceDefault.name}.getParsedTokenAccountsByOwner` }
57
- ),
58
- ])
31
+ const tokenProgramIdPublicKey = new PublicKey(TokenProgramId)
32
+ const token2022ProgramIdPublicKey = new PublicKey(Token2022ProgramId)
33
+ const [slot, balance, tokenAccountsByOwner, token2022AccountsByOwner] =
34
+ await Promise.allSettled([
35
+ withDedupe(
36
+ () =>
37
+ callSolanaWithRetry((connection) => connection.getSlot('confirmed')),
38
+ { id: `${getSolanaBalanceDefault.name}.getSlot` }
39
+ ),
40
+ withDedupe(
41
+ () =>
42
+ callSolanaWithRetry((connection) =>
43
+ connection.getBalance(accountPublicKey, 'confirmed')
44
+ ),
45
+ { id: `${getSolanaBalanceDefault.name}.getBalance` }
46
+ ),
47
+ withDedupe(
48
+ () =>
49
+ callSolanaWithRetry((connection) =>
50
+ connection.getParsedTokenAccountsByOwner(
51
+ accountPublicKey,
52
+ {
53
+ programId: tokenProgramIdPublicKey,
54
+ },
55
+ 'confirmed'
56
+ )
57
+ ),
58
+ {
59
+ id: `${getSolanaBalanceDefault.name}.getParsedTokenAccountsByOwner.${TokenProgramId}`,
60
+ }
61
+ ),
62
+ withDedupe(
63
+ () =>
64
+ callSolanaWithRetry((connection) =>
65
+ connection.getParsedTokenAccountsByOwner(
66
+ accountPublicKey,
67
+ {
68
+ programId: token2022ProgramIdPublicKey,
69
+ },
70
+ 'confirmed'
71
+ )
72
+ ),
73
+ {
74
+ id: `${getSolanaBalanceDefault.name}.getParsedTokenAccountsByOwner.${Token2022ProgramId}`,
75
+ }
76
+ ),
77
+ ])
59
78
  const blockNumber = slot.status === 'fulfilled' ? BigInt(slot.value) : 0n
60
79
  const solBalance = balance.status === 'fulfilled' ? BigInt(balance.value) : 0n
61
- const walletTokenAmounts =
62
- tokenAccountsByOwner.status === 'fulfilled'
63
- ? tokenAccountsByOwner.value.value.reduce(
64
- (tokenAmounts, value) => {
65
- const amount = BigInt(
66
- value.account.data.parsed.info.tokenAmount.amount
67
- )
68
- if (amount > 0n) {
69
- tokenAmounts[value.account.data.parsed.info.mint] = amount
70
- }
71
- return tokenAmounts
72
- },
73
- {} as Record<string, bigint>
74
- )
75
- : {}
80
+
81
+ const walletTokenAmounts = [
82
+ ...(tokenAccountsByOwner.status === 'fulfilled'
83
+ ? tokenAccountsByOwner.value.value
84
+ : []),
85
+ ...(token2022AccountsByOwner.status === 'fulfilled'
86
+ ? token2022AccountsByOwner.value.value
87
+ : []),
88
+ ].reduce(
89
+ (tokenAmounts: Record<string, bigint>, value: any) => {
90
+ const amount = BigInt(value.account.data.parsed.info.tokenAmount.amount)
91
+ if (amount > 0n) {
92
+ tokenAmounts[value.account.data.parsed.info.mint] = amount
93
+ }
94
+ return tokenAmounts
95
+ },
96
+ {} as Record<string, bigint>
97
+ )
98
+
76
99
  walletTokenAmounts[SolSystemProgram] = solBalance
77
100
  const tokenAmounts: TokenAmount[] = tokens.map((token) => {
78
101
  if (walletTokenAmounts[token.address]) {
@@ -18,4 +18,5 @@ export interface SolanaStepExecutorOptions extends StepExecutorOptions {
18
18
  walletAdapter: SignerWalletAdapter
19
19
  }
20
20
 
21
- export const TokenProgramAddress = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'
21
+ export const TokenProgramId = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'
22
+ export const Token2022ProgramId = 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb'
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export const name = '@lifi/sdk'
2
- export const version = '3.7.5'
2
+ export const version = '3.7.6'