programSubscribe RPC 方法
订阅一个程序,以便在由该程序拥有的账户的 lamports 或数据发生更改时接收通知
{"jsonrpc": "2.0","id": 1,"method": "programSubscribe","params": ["11111111111111111111111111111111",{"encoding": "base64","filters": [{ "dataSize": 80 }]}]}
params
stringrequired
以 base-58 编码字符串形式表示的 program_id
的 pubkey
objectoptional
包含以下字段的配置对象:
result
Response
{"jsonrpc": "2.0","result": 24040,"id": 1}
integer
订阅 ID(取消订阅时需要)
通知格式
通知格式是一个单一的 program account 对象,如 getProgramAccounts RPC HTTP 方法中所示。
Base58 编码:
{"jsonrpc": "2.0","method": "programNotification","params": {"result": {"context": {"slot": 5208469},"value": {"pubkey": "H4vnBqifaSACnKa7acsxstsY1iV1bvJNxsCY7enrd1hq","account": {"data": ["11116bv5nS2h3y12kD1yUKeMZvGcKLSjQgX6BeV7u1FrjeJcKfsHPXHRDEHrBesJhZyqnnq9qJeUuF7WHxiuLuL5twc38w2TXNLxnDbjmuR","base58"],"executable": false,"lamports": 33594,"owner": "11111111111111111111111111111111","rentEpoch": 636,"space": 80}}},"subscription": 24040}}
解析后的 JSON 编码:
{"jsonrpc": "2.0","method": "programNotification","params": {"result": {"context": {"slot": 5208469},"value": {"pubkey": "H4vnBqifaSACnKa7acsxstsY1iV1bvJNxsCY7enrd1hq","account": {"data": {"program": "nonce","parsed": {"type": "initialized","info": {"authority": "Bbqg1M4YVVfbhEzwA9SpC9FhsaG83YMTYoR4a8oTDLX","blockhash": "LUaQTmM7WbMRiATdMMHaRGakPtCkc2GHtH57STKXs6k","feeCalculator": {"lamportsPerSignature": 5000}}}},"executable": false,"lamports": 33594,"owner": "11111111111111111111111111111111","rentEpoch": 636,"space": 80}}},"subscription": 24040}}
Is this page helpful?