首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solana:解析令牌数据

Solana:解析令牌数据
EN

Stack Overflow用户
提问于 2022-03-14 17:36:11
回答 2查看 944关注 0票数 0

如何解析SPL令牌帐户中的数据?它包含一个二进制blob,我想得到令牌的类型和数量。

一种可接受的语言是solana-cli、web3.js或solana.py。我在找任何解决办法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-15 03:45:54

RPC提供了一种在默认情况下解析数据的好方法。您可以在web3.js中使用getParsedAccountInfo

让我们在9xqnnfeonbsEGSPgF5Wd7bf9RqXy4KP22bdaGmZbHGwp使用令牌帐户

代码语言:javascript
复制
import { Connection, PublicKey, ParsedAccountData, clusterApiUrl } from '@solana/web3.js';

(async () => {
  const connection = new Connection(clusterApiUrl('mainnet-beta'));
  const tokenAccount = await connection.getParsedAccountInfo(new PublicKey('9xqnnfeonbsEGSPgF5Wd7bf9RqXy4KP22bdaGmZbHGwp'));
  console.log((tokenAccount.value?.data as ParsedAccountData).parsed);
})();

/**
{
  info: {
    isNative: false,
    mint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
    owner: 'Ccyrkw1FdRVsfnt7qptyUXqyffq3i59GSPN1EULqZN6i',
    state: 'initialized',
    tokenAmount: {
      amount: '738576212',
      decimals: 6,
      uiAmount: 738.576212,
      uiAmountString: '738.576212'
    }
  },
  type: 'account'
}
**/

在这里,我们可以看到tokenAccount的输出有一个EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v薄荷(USDC),由address Ccyrkw1FdRVsfnt7qptyUXqyffq3i59GSPN1EULqZN6i拥有,其数量为738.576212。这就是我们从令牌帐户需要的所有数据。

票数 3
EN

Stack Overflow用户

发布于 2022-10-03 21:48:24

最近我在寻找相同问题的答案,最后我使用了来自@solana/spl-token-v2@solana/spl-token-v2

所以就像这样:

代码语言:javascript
复制
import { AccountLayout } from "@solana/spl-token-v2";
...

const tokenAccountInfo = await connection.getAccountInfo(tokenAccount);
const decodedTokenAccountInfo = AccountLayout.decode(tokenAccountInfo!.data);
console.log(decodedTokenAccountInfo);

/*
{
  mint: PublicKey {
    _bn: <BN: X>
  },
  owner: PublicKey {
    _bn: <BN: X>
  },
  amount: 0n,
  delegateOption: 0,
  delegate: PublicKey { 
    _bn: <BN: X>
  },
  state: 1,
  isNativeOption: 0,
  isNative: 0n,
  delegatedAmount: 0n,
  closeAuthorityOption: 0,
  closeAuthority: PublicKey { 
    _bn: <BN: X>
  }
}
*/

这里我假设令牌地址是有效的,并且getAccountInfo函数将返回有效的数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71471948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档