手動ワークフロー
手動でトランザクションを送信するには、次のステップを実行します。1
初期トランザクションの構築
指示を組み立て、トランザクションに署名してシミュレーションできるようにします。
2
計算ユニットの最適化
トランザクションをシミュレートして、必要な正確なCUを決定し、小さな余裕を追加します。
3
優先手数料の追加
Helius Priority Fee APIから手数料の見積もりを取得し、それをトランザクションに追加します。
4
送信と再送信
最終トランザクションを送信し、確認を処理するための堅牢なポーリング戦略を実装します。
Helius SDKはオープンソースです。
sendSmartTransactionメソッドの基礎コードをNode.js SDKおよびRust SDKで確認して、このワークフローの本番レベルの実装を見てください。1. 初期トランザクションの構築
まず、トランザクションに含めるすべての指示を集めます。それから、TransactionまたはVersionedTransactionオブジェクトを作成します。また、最近のブロックハッシュを取得する必要があります。
この例では、バージョン付きトランザクションを準備しています。この段階で、次のステップでシミュレーションできるようにするために署名する必要があります。
2. 計算ユニット(CU)の使用を最適化
手数料の無駄を避けたり、トランザクションの失敗を避けるために、計算ユニット(CU)制限を可能な限り正確に設定する必要があります。これを実現するには、simulateTransaction RPCメソッドを使用してトランザクションをシミュレートします。
シミュレーション自体が成功するように最初に高いCU制限でシミュレーションし、その後、応答から得られるunitsConsumedを使用して実際の制限を設定するのが最良の方法です。
3. 適切な優先手数料を設定
次に、トランザクションに追加する最適な優先手数料を決定します。現行のネットワーク状況に基づいたリアルタイムの見積もりを得るために、HeliusのPriority Fee APIを使用するのが最良です。getPriorityFeeEstimate RPCメソッドを呼び出す必要があります。Heliusのステークされた接続を介しての含まれる確率を高めるために、recommended: trueオプションを使用してください。
4. 構築、送信、確認
新しい計算予算命令で最終トランザクションを組み立てて送信し、着地が確認されるまでの堅牢なポーリングメカニズムを実装します。 一般的なパターンは、ブロックハッシュが失効するまで定期的に同じトランザクションを再送信することです。**新しいブロックハッシュを取得する場合にのみトランザクションに再署名してください。**同じブロックハッシュで再署名すると、重複したトランザクションが確認される可能性があります。サンドイッチ攻撃からの保護
統計的にサンドイッチ攻撃に関連付けられたバリデーターからトランザクションをルーティングするため、RPC URLにmev-protect=trueクエリパラメータを追加します。トランザクションロジックを変更する必要はありません。
MEV保護
MEV保護がどのように機能するか、どのメソッドをサポートしているか、そのトレードオフを確認してください。
トランザクションでリベートを獲得する
あなたのトランザクションが生み出すMEVの一部をSOLで自動的に支払われる形で獲得することができます。トランザクションロジックを変更する必要はありません。トランザクションリベート
sendTransactionコールにパラメータを1つ追加するだけで、SOLリベートの獲得を開始できます。関連メソッド
sendTransaction
署名済みトランザクションをネットワークに送信
simulateTransaction
トランザクションをシミュレートして計算ユニットを見積もる
getSignatureStatuses
トランザクションの確認ステータスを確認
getLatestBlockhash
トランザクション署名のための最新のブロックハッシュを取得
getBlockHeight
失効チェックのために現在のブロックの高さを取得