認証
メッセージ
gRPC APIは、単一のリクエストで組み合わせることのできる複数のサブスクリプションタイプをサポートします:アカウントの更新を購読します。指定されたアカウントが変更された場合にデータを返します。
非表示 プロパティ
非表示 プロパティ
監視するアカウントのパブキーの配列。
監視する所有者のパブキーの配列(これらのプログラムが所有するすべてのアカウント)。
オプションで適用するフィルタ。
表示 フィルタオプション
表示 フィルタオプション
正確なアカウントデータサイズによるフィルタリング(バイト単位)。
トークンアカウントのみをフィルタ。
trueの場合、トランザクションによって引き起こされた更新のみを含めます。falseの場合、トランザクションによって引き起こされていない更新のみを含めます。undefinedの場合、すべての更新を含めます。トランザクションの更新を購読します。
非表示 プロパティ
非表示 プロパティ
投票トランザクションを含めます。
失敗したトランザクションを含めます。
特定のトランザクション署名を監視します。
これらのアカウントに影響を与えるトランザクションのみを含めます。
これらのアカウントに影響を与えるトランザクションを除外します。
これらすべてのアカウントに影響を与える必要があるトランザクション。
オプションの関連トークンアカウント(ATA)展開(フィールドタグ30,
TokenAccountExpansionControlFlag)。設定した場合、account_includeウォレットは、SPLトークンバランスを所有するトランザクションと一致します。例えば、ウォレットのトークンアカウントではなく、そのパブキーに触れるトークンの受信転送。2つのバリアント:ALL(0) — ウォレットが所有するトークンバランスを参照する任意のトランザクションに一致します。高ボリューム。BALANCE_CHANGED(1) — ウォレットが所有するトークンバランスがトランザクションで変更(またはトークンアカウントが閉鎖)された場合に一致します。
None) — “off”の列挙値はありません。範囲外の整数は構成ビルド時に拒否されます: Invalid token_accounts value, expected ALL (0) or BALANCE_CHANGED (1)。ALLはゼロ値です。列挙を0に設定して”デフォルト/オフ”を期待するクライアントはALLを取得します — 最も幅広く、高ボリュームなモードです。“拡張なし”を意味する唯一の方法はフィールドを完全に省略することです。更新を受信し始めるスロット。これより前のスロットの更新は除外されます。
{
"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: この更新に一致したフィルタ名- 以下の更新タイプの1つ:
account: アカウントデータ、所有者、ラメンツ、実行可能ステータスなど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"
}
{
"filters": [],
"pong": {
"id": 1
},
"created_at": "2023-04-28T12:34:56.789Z"
}