solana getParsedAccountInfo returns 值为空

solana getParsedAccountInfo returns null in value

我有这个测试钱包:

% solana account 9AYXoP3b22KHRhVuvjZbynpjNd2SXKFLoC1jrPMkyFkS

Public Key: 9AYXoP3b22KHRhVuvjZbynpjNd2SXKFLoC1jrPMkyFkS
Balance: 12.98943736 SOL
Owner: (removed by me)
Executable: false
Rent Epoch: 248

我有这个 javascript 片段:

const SOURCE_TOKEN_ACCOUNT = new PublicKey('9AYXoP3b22KHRhVuvjZbynpjNd2SXKFLoC1jrPMkyFkS');

    const sourceInfo = await connection.getParsedAccountInfo(
        SOURCE_TOKEN_ACCOUNT,
    );


console.log('tok ', sourceInfo);

当我 运行 时,我得到这个输出:

tok  { context: { slot: 191644 }, value: null }

我想指出,我正试图让它在多个帐户中运行。它们都具有相同的插槽值。

我想知道为什么价值会回来null.我不知道为什么会发生这种情况。我只想显示一些价值。因为我不知道当它起作用时应该显示什么,所以我不知道应该是什么值,除了显示某种 SOL。我所知道的是,我收到以下错误:

TypeError: Cannot read properties of null (reading 'data')

Solana 中的帐户存储 lamports (SOL) 和数据,在这种情况下,您的帐户中只有 SOL,没有数据,这就是 value 显示为 [=12= 的原因].例如,TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA 处的令牌程序还会显示帐户中数据的字节数以及余额:

$ solana account TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Public Key: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Balance: 1.08999168 SOL
Owner: BPFLoader2111111111111111111111111111111111
Executable: true
Rent Epoch: 161
Length: 156480 (0x26340) bytes
0000:   7f 45 4c 46  02 01 01 00  00 00 00 00  00 00 00 00   .ELF............
.... rest omitted for length ....

如果你想在你的帐户中使用数据,你必须为其分配数据,将其分配给程序,并在程序上使用事务来修改数据。

我强烈建议您阅读更多关于帐户如何运作的内容:https://docs.solana.com/developing/programming-model/accounts