メインコンテンツへスキップ
Helius Rust SDKを使用するエージェント向けのベストプラクティスと推奨パターンです。インストールと開始方法については概要を参照してください。

エージェント向けの推奨事項

二段階ルックアップの代わりにget_transactions_for_addressを使用する

get_transactions_for_addressは、署名のルックアップと取引の取得を一度の呼び出しで行い、サーバー側でフィルタリングします。

標準送信にはsend_smart_transactionを使用する

自動シミュレーション、コンピュートユニットの推定、優先料金の取得、確認を自動的に行います。ComputeBudget命令を手動で作成しないでください — SDKが自動的に追加します。

超低遅延にはHelius Senderを使用する

時間が重要な取引(アービトラージ、スナイピング、清算)には、send_smart_transaction_with_senderを使用します。Heliusの多地域インフラストラクチャとJitoを経由します。

複数資産にはget_asset_batchを使用する

複数の資産を取得する場合は、バッチ処理を行います。get_assetをループで呼び出さないでください。

ポーリングの代わりにWebhookを使用する

get_transactions_for_addressをループでポーリングしないでください。サーバー間の通知にはWebhookを使用してください。

ページネーション

トークン/カーソルベース(RPC V2 メソッド)

ページベース(DAS API)

token_accountsフィルタ

get_transactions_for_addressをクエリするとき、トークンアカウントの活動が含まれるかどうかをtoken_accountsフィルタで制御します:

changed_since_slot — インクリメンタルアカウントフェッチング

changed_since_slotは指定されたスロット以降に変更されたアカウントのみを返します。同期やインデックス作業フローに便利です。get_program_accounts_v2, get_token_accounts_by_owner_v2, get_account_info, get_multiple_accounts, get_program_accounts, get_token_accounts_by_ownerがサポートしています。

一般的なミス

  1. デフォルトではtransaction_details: Some(TransactionDetails::Full)ではありません — デフォルトでは、get_transactions_for_addressは署名のみを返します。完全な取引データを取得するにはTransactionDetails::Fullを設定します。
  2. send_smart_transactionでComputeBudget命令を追加しない — SDKが自動的に追加します。独自に追加するとHeliusError::InvalidInputエラーが発生します。
  3. 優先料金はコンピュートユニットごとのマイクロランポーツです — ランポーツではありません。get_priority_fee_estimateからの値はすでに正しい単位になっています。
  4. DASページネーションは1インデックスですpage: 1は最初のページであり、page: 0ではありません。
  5. async_connection()new_asyncまたはHeliusBuilderを必要としますHelius::new()で作成されたクライアントでhelius.async_connection()を呼び出すとErr(HeliusError::ClientNotInitialized)が返ります。
  6. get_assetOption<Asset>を返すことがあります — 資産が存在しない場合、成功した応答でもNoneになることがあります。Optionを明示的に処理してください。
  7. 送信者のチップは必須ですsend_smart_transaction_with_senderは自動的にチップを決定し追加します。最小0.0002 SOL(デュアルモード)または0.000005 SOL(SWQOS専用)。
  8. TLS機能フラグ — クレートはデフォルトでnative-tlsです。OpenSSLが利用できない場合、純粋なRust TLSにはfeatures = ["rustls"](およびdefault-features = false)を使用してください。

エラーハンドリングと再試行

SDKはHeliusError列挙型を通じて型付きエラー変異を提供するので、直接マッチできます。

再試行戦略

RateLimitExceededInternalErrorで指数バックオフ再試行を行います: