-1

如何将connection.onProgramAccountChange通知数据解析为 JSON?

https://solana-labs.github.io/solana-web3.js/modules.html#AccountInfo

文档将数据指定为 type T,对我来说通常是Buffer.

示例代码:

let progKey = new PublicKey("<program key here>");
conn.onProgramAccountChange(progKey, programCallback);
function programCallback(keyedAccountInfo: KeyedAccountInfo, context: Context) {
  let data = keyedAccountInfo.accountInfo.data.toString("hex");
  let ownerId = keyedAccountInfo.accountInfo.owner.toBase58();
  let accId = keyedAccountInfo.accountId.toBase58();
  console.log(`======
  owner: ${ownerId}
  accId: ${accId}
  data: ${data}`);
}

数据类型实际上只是这个特定实例中的缓冲区,还是我需要做一些额外的事情来解码它?将其解码为 hex、utf8、base64 和 base58 不起作用。

4

1 回答 1

0

即使是这样programSubscribe,通知格式也与 相同getProgramAccounts。因此,答案可以在我的其他答案中找到:https ://stackoverflow.com/a/71028298/7841421

于 2022-02-08T03:41:53.737 回答