如何将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 不起作用。