json 如何获取我拥有的令牌列表?

e0uiprwp  于 2023-03-13  发布在  其他
关注(0)|答案(2)|浏览(151)

我想得到一个我当前拥有的令牌列表,用于给定的钱包公钥。
目前我使用https://api.solscan.io/account/tokens?address="PUBLIC_KEY">&price=1来获取我拥有的令牌。
好的。我找到了这个。使用SPL令牌ID作为程序ID将返回所有用户拥有的令牌。

connection
  .getParsedTokenAccountsByOwner(
    new PublicKey("PUBLIC_KEY"),
    {
      programId: new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")
    }
  )
bvhaajcl

bvhaajcl1#

我建议使用Connection类的.getParsedProgramAccounts()方法。

import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
import { clusterApiUrl, Connection } from "@solana/web3.js";

(async () => {
  const MY_WALLET_ADDRESS = "FriELggez2Dy3phZeHHAdpcoEXkKQVkv6tx3zDtCVP8T";
  const connection = new Connection(clusterApiUrl("devnet"), "confirmed");

  const accounts = await connection.getParsedProgramAccounts(
    TOKEN_PROGRAM_ID, // new PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")
    {
      filters: [
        {
          dataSize: 165, // number of bytes
        },
        {
          memcmp: {
            offset: 32, // number of bytes
            bytes: MY_WALLET_ADDRESS, // base58 encoded string
          },
        },
      ],
    }
  );
})();

详细说明链接:https://solanacookbook.com/ingredients/get-program-accounts.html#filters

zfciruhq

zfciruhq2#

看一下JSON RPC调用getTokenAccountsByOwner,其中所有者将是钱包的公钥。
更多信息请访问https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountsbyowner

相关问题