Skip to main content
事前確認はトランザクションがシュレッド化される前にストリームします—Heliusはリーダーがトランザクションを実行すると同時に、実行ステータスと共に事前確認を行います。このガイドでは、ターゲットアカウントを監視し、各トランザクションをデコードし、Sender Maxを使用して反応するリスナーを構築します。
Preconfirmations はすべての有料プランで利用でき、配信されたメッセージ 1 件につき 10 クレジットかかります。配信されたメッセージが 0 件のスロットには、クレジットはかかりません。スロットで 1 件以上のメッセージが配信されると、各サブスクリプションには最低 300 クレジットが課金されます。料金をご覧ください。

接続する前にストリームの範囲を決定する

フィルターが設定されていない preconfSubscribe は、すべてのトランザクションを配信し、各トランザクションに 10 クレジットがかかります。サーバー側でフィルタリングし、実際に取引するトランザクションだけに料金を抑えてください。対象となるスロットで 1 件以上のメッセージを受信すると、各サブスクリプションは個別に課金されます。そのため、可能であればアカウントフィルターを 1 つのサブスクリプションにまとめてください。regionInclude を使用して、必要なリージョンのみに課金対象を限定してください。BAM が不要な場合は includeSource: ["helius"] を設定し、Helius Dashboardでクレジットを監視してください。
ほとんどのトレーディングリスナーに対応する3つのフィルター:
  • failed: falseは、すでに逆転が知られているトランザクションを除外します。競争する理由がありません。
  • regionIncludeは、インフラに最も近い地域にストリームを固定します。クロスリージョンのホップがスタートを消費しないようにします。
  • accountIncludeは、ターゲットに関連する任意のtxと一致します。ウォレット、AMMプール、プログラムなどです。Heliusはアドレス検索テーブルをサーバー側で解決するため、アカウントがALT経由で読み込まれてもフィルターが一致します。

接続、購読、デコード

preconfSubscribeはゲートキーパーエンドポイント(wss://beta.helius-rpc.com)から提供され、通知はバイナリフレームとして送信され、JSONではありません。 各フレームは固定の18バイトのプレフィックスに続き、bincodeでシリアライズされたトランザクションが続きます:
listener.js
最初にバージョンバイトを確認します。Heliusがペイロードフォーマットを更新するとバージョンが増加し、それに基づいて分岐することでデコーダーを正常に動作させ続けます。デシリアライズされたトランザクションは、命令、アカウント、および署名を提供します。

Sender Maxで行動する

事前確認は、反応が最初に着地する場合にのみ価値があります。 Sender Maxを介して反応を送信します。0.001 SOLのチップは優先チップバッファに入り、すべての高速経路を通ります:
このハンドラーを短く保ちます。決定して送信し、ログ、会計、調整を受信パスから外してください。フル送信ループ、接続のウォーミングアップ、手数料見積もりについてはSend Trades with Senderを参照してください。

着地を確認しギャップを予測する

事前確認は早期の確認です。トランザクションはまだ着地しておらず、失敗またはドロップされる可能性があるため、次の2つのルールが適用されます。
  • 標準のコミットメントチェック(getSignatureStatuses、またはprocessedコミットメントストリーム経由)で確認し、観測されたトランザクションまたは反応を最終的なものとして扱う前に確認してください。
  • ギャップを予測します。カバレッジはHeliusに転送されるステークのシェアとともにスケールするため、いくつかのスロットではメッセージが生成されません。それは期待される動作であり、切断された接続とは異なります。キープアライブのpingがそれを区別します。接続が閉じたら再購読してください。

関連ガイド

preconfSubscribe APIリファレンス

フィルターの完全なセマンティクス、地域コード、バイナリペイロードのレイアウト

事前処理されたトランザクションでの取引

すべての有料プランで、メッセージごとに0.1クレジットの事前実行カバレッジ