0

我有这个测试钱包:

% 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')
4

1 回答 1

3

Solana 中的帐户存储灯 (SOL) 和数据,在这种情况下,您的帐户中只有 SOL,没有数据,这就是value为什么null. 例如,token 程序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

于 2022-01-13T22:54:18.243 回答