エージェント向けの推奨事項
二段階ルックアップの代わりに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がサポートしています。
一般的なミス
-
デフォルトでは
transaction_details: Some(TransactionDetails::Full)ではありません — デフォルトでは、get_transactions_for_addressは署名のみを返します。完全な取引データを取得するにはTransactionDetails::Fullを設定します。 -
send_smart_transactionでComputeBudget命令を追加しない — SDKが自動的に追加します。独自に追加するとHeliusError::InvalidInputエラーが発生します。 -
優先料金はコンピュートユニットごとのマイクロランポーツです — ランポーツではありません。
get_priority_fee_estimateからの値はすでに正しい単位になっています。 -
DASページネーションは1インデックスです —
page: 1は最初のページであり、page: 0ではありません。 -
async_connection()はnew_asyncまたはHeliusBuilderを必要とします —Helius::new()で作成されたクライアントでhelius.async_connection()を呼び出すとErr(HeliusError::ClientNotInitialized)が返ります。 -
get_assetはOption<Asset>を返すことがあります — 資産が存在しない場合、成功した応答でもNoneになることがあります。Optionを明示的に処理してください。 -
送信者のチップは必須です —
send_smart_transaction_with_senderは自動的にチップを決定し追加します。最小0.0002 SOL(デュアルモード)または0.000005 SOL(SWQOS専用)。 -
TLS機能フラグ — クレートはデフォルトで
native-tlsです。OpenSSLが利用できない場合、純粋なRust TLSにはfeatures = ["rustls"](およびdefault-features = false)を使用してください。
エラーハンドリングと再試行
SDKはHeliusError列挙型を通じて型付きエラー変異を提供するので、直接マッチできます。
再試行戦略
RateLimitExceededとInternalErrorで指数バックオフ再試行を行います: