授权
消息
gRPC API 支持多种订阅类型,可以在单个请求中组合:object
订阅账户更新。当指定账户被修改时返回数据。
隐藏 属性
隐藏 属性
array
要监控的账户公钥数组。
array
要监控的所有者公钥数组(这些程序拥有的所有账户)。
object
boolean
如果
true,仅包括由交易引起的更新。如果 false,仅包括不是由交易引起的更新。如果 undefined,包括所有更新。object
object
订阅交易更新。
隐藏 properties
隐藏 properties
boolean
包含投票交易。
boolean
包含失败的交易。
string
监控特定交易签名。
array
仅包含影响这些账户的交易。
array
排除影响这些账户的交易。
array
交易必须影响所有这些账户。
enum
可选的关联令牌账户 (ATA) 扩展(字段标签 30,
TokenAccountExpansionControlFlag)。设置后,account_include 钱包也匹配其持有SPL 代币余额的交易——例如涉及钱包的代币账户而不是其公钥的传入代币转账。两个变体:ALL(0) — 匹配引用钱包持有的代币余额的任何交易,即使未改变。较高的交易量。BALANCE_CHANGED(1) — 当钱包持有的代币余额发生变化(或代币账户在交易中被关闭)时匹配。
None)—没有“关闭”枚举值。超出范围的整数将在配置构建时被拒绝:Invalid token_accounts value, expected ALL (0) or BALANCE_CHANGED (1)。ALL 是零值。设置枚举为 0 期待“默认/关闭” 的客户端将得到 ALL — 最广泛、最高量模式。想要表示“无扩展”,唯一的方法是完全省略这个字段。object
object
object
integer
接收更新的起始槽位。此值之前的槽位更新将被排除。
{
"slots": {
"slots": {}
},
"accounts": {
"user-defined-label": {
"account": [
"DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu",
"5U3bH5b6XtG99aVCE9ycvDgBKQx3fVT8WwTNbMToFuEr"
],
"owner": [
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
],
"filter": {
"memcmp": {
"offset": 0,
"bytes": "0102030405"
},
"datasize": 165,
"token_account_state": true,
"lamports": {
"gt": 100000000
}
},
"nonempty_txn_signature": true
}
},
"transactions": {},
"blocks": {},
"blocks_meta": {},
"accounts_data_slice": [],
"commitment": 1
}
{
"slots": {
"incoming_slots": {}
},
"commitment": 1
}
{
"transactions": {
"vote": false,
"failed": true,
"signature": "4RPMxKBhCBubFmZ1r9BC52ztjG3qBTW9Gp1PXfufUSATQaLKTW3Dj6vQBYyVrhfjgJ4PjZLzwYs4Z92KDCPw8Qym",
"account_include": ["DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu"],
"account_exclude": ["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],
"account_required": ["11111111111111111111111111111111"]
},
"commitment": 2
}
{
"transactions": {
"wallet": {
"vote": false,
"failed": false,
"account_include": ["DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu"],
"account_exclude": [],
"account_required": [],
"token_accounts": 1
}
},
"commitment": 1
}
{
"transactions_status": {
"vote": false,
"failed": true,
"account_include": ["DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu"],
"account_exclude": ["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],
"account_required": ["11111111111111111111111111111111"]
},
"commitment": 2
}
{
"blocks": {
"account_include": ["DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu"],
"include_transactions": 1,
"include_accounts": 1,
"include_entries": 0
},
"commitment": 2
}
{
"blocks_meta": {},
"commitment": 2,
"from_slot": 139000000
}
{
"entry": {},
"commitment": 1
}
{
"accounts": {
"account": ["DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu"]
},
"accounts_data_slice": [
{
"offset": 0,
"length": 64
},
{
"offset": 128,
"length": 32
}
],
"commitment": 2
}
{
"ping": {
"id": 1
}
}
{
"accounts": {
"account": ["DjUF9ASpyMbVpGJmTvzfSbCgUWj6JowwLh8dGAJzSPmu"],
"nonempty_txn_signature": true
},
"slots": {
"filter_by_commitment": 1,
"interslot_updates": 1
},
"commitment": 2,
"from_slot": 139000000,
"ping": {
"id": 123
}
}
承诺级别
所有订阅支持以下承诺级别:PROCESSED: 由当前节点处理 (0)CONFIRMED: 由集群的超级多数确认 (1)FINALIZED: 由集群最终确定 (2)
响应结构
订阅响应包括:filters: 匹配此更新的过滤器名称- 以下更新类型之一:
account: 账户数据、所有者、lamports、可执行状态等。slot: 插槽信息和状态更新transaction: 完整的交易详情、签名和元数据transaction_status: 交易执行状态(成功/错误)block: 包含交易、账户、奖励等的完整区块数据block_meta: 不含完整交易详细信息的轻量级区块元数据entry: 区块内的条目详情ping/pong: 连接健康检查消息
created_at: 更新创建时的时间戳
{
"filters": ["accounts"],
"account": {
"account": {
"pubkey": "BASE58_ENCODED_PUBKEY",
"lamports": 12345678,
"owner": "BASE58_ENCODED_OWNER",
"executable": false,
"rent_epoch": 361,
"data": "BASE64_ENCODED_DATA",
"write_version": 123,
"txn_signature": "BASE58_ENCODED_SIGNATURE"
},
"slot": 189554321,
"is_startup": false
},
"created_at": "2023-04-28T12:34:56.789Z"
}
{
"filters": ["slots"],
"slot": {
"slot": 189554321,
"parent": 189554320,
"status": 2,
"dead_error": null
},
"created_at": "2023-04-28T12:34:56.789Z"
}
{
"filters": ["transactions"],
"transaction": {
"transaction": {
"signature": "BASE58_ENCODED_SIGNATURE",
"is_vote": false,
"transaction": {
"signatures": ["BASE58_ENCODED_SIGNATURE"],
"message": {
"header": {
"num_required_signatures": 1,
"num_readonly_signed_accounts": 0,
"num_readonly_unsigned_accounts": 1
},
"account_keys": ["BASE58_ENCODED_PUBKEY1", "BASE58_ENCODED_PUBKEY2"],
"recent_blockhash": "BASE58_ENCODED_BLOCKHASH",
"instructions": [
{
"program_id_index": 1,
"accounts": [0],
"data": "BASE64_ENCODED_INSTRUCTION_DATA"
}
]
}
},
"meta": {
"err": null,
"fee": 5000,
"pre_balances": [10000000, 1],
"post_balances": [9995000, 1],
"pre_token_balances": [],
"post_token_balances": [],
"log_messages": ["Program log: Instruction executed"],
"rewards": []
},
"index": 2
},
"slot": 189554321
},
"created_at": "2023-04-28T12:34:56.789Z"
}
{
"filters": ["blocks_meta"],
"block_meta": {
"slot": 189554321,
"blockhash": "BASE58_ENCODED_BLOCKHASH",
"rewards": [
{
"pubkey": "BASE58_ENCODED_PUBKEY",
"lamports": 1785000,
"post_balance": 48589432109,
"reward_type": 0,
"commission": 10
}
],
"block_time": 1682684096,
"block_height": 185432109,
"parent_slot": 189554320,
"parent_blockhash": "BASE58_ENCODED_PARENT_BLOCKHASH",
"executed_transaction_count": 2576,
"entries_count": 16
},
"created_at": "2023-04-28T12:34:56.789Z"
}
{
"filters": ["entry"],
"entry": {
"slot": 189554321,
"index": 5,
"num_hashes": 8765432,
"hash": "BASE58_ENCODED_HASH",
"executed_transaction_count": 128,
"starting_transaction_index": 1024
},
"created_at": "2023-04-28T12:34:56.789Z"
}
代码占位符_ec4065032abdfb70_结束