Skip to content

Commit

Permalink
Review change
Browse files Browse the repository at this point in the history
  • Loading branch information
yuli-ferna committed Oct 29, 2024
1 parent f5edc12 commit 5d26b6f
Showing 1 changed file with 13 additions and 18 deletions.
31 changes: 13 additions & 18 deletions platforms/solana/src/platform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import { SolanaChain } from './chain.js';

import { TOKEN_PROGRAM_ID, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token';
import type {
AccountInfo,
Commitment,
ConnectionConfig,
ParsedAccountData,
Expand Down Expand Up @@ -150,30 +151,24 @@ export class SolanaPlatform<N extends Network>
native = BigInt(await rpc.getBalance(new PublicKey(walletAddress)));
}

const splParsedTokenAccounts = await rpc.getParsedTokenAccountsByOwner(
new PublicKey(walletAddress),
{
programId: new PublicKey(TOKEN_PROGRAM_ID),
},
);

// Fetch 2022 tokens
const splParsedToken2022Accounts = await rpc.getParsedTokenAccountsByOwner(
new PublicKey(walletAddress),
{
programId: new PublicKey(TOKEN_2022_PROGRAM_ID),
},
);
const splParsedTokenAccounts = (await Promise.all(
[TOKEN_PROGRAM_ID, TOKEN_2022_PROGRAM_ID]
.map(pid => new PublicKey(pid))
.map(programId => rpc.getParsedTokenAccountsByOwner(new PublicKey(walletAddress), { programId })
))).reduce<{
pubkey: PublicKey;
account: AccountInfo<ParsedAccountData>;
}[]
>((acc, val) => {
return acc.concat(val.value);
}, []);

// Merge the two token account lists
splParsedTokenAccounts.value.push(...splParsedToken2022Accounts.value);

const balancesArr = tokens.map((token) => {
if (isNative(token)) {
return { ['native']: native };
}
const addrString = new SolanaAddress(token).toString();
const amount = splParsedTokenAccounts.value.find(
const amount = splParsedTokenAccounts.find(
(v) => v?.account.data.parsed?.info?.mint === token,
)?.account.data.parsed?.info?.tokenAmount?.amount;
if (!amount) return { [addrString]: null };
Expand Down

0 comments on commit 5d26b6f

Please sign in to comment.