Der manuelle Workflow
Das manuelle Senden einer Transaktion umfasst die folgenden Schritte:1
Build the Initial Transaction
Stelle deine Anweisungen zusammen und signiere die Transaktion, damit du sie simulieren kannst.
2
Optimize Compute Units
Simuliere die Transaktion, um die genaue Anzahl benötigter CUs zu ermitteln, und füge einen kleinen Puffer hinzu.
3
Add Priority Fees
Rufe eine Gebührenschätzung von der Helius Priority Fee API ab und füge sie deiner Transaktion hinzu.
4
Send and Re-broadcast
Sende die endgültige Transaktion und implementiere eine robuste Polling-Strategie für die Bestätigung.
Die Helius SDKs sind Open Source. Sieh dir den zugrunde liegenden Code für die Methode
sendSmartTransaction in unserem TypeScript SDK und Rust SDK an, um eine produktionsreife Implementierung dieses Workflows zu sehen.1. Erstelle die erste Transaktion
Stelle zuerst alle Anweisungen zusammen, die du in deine Transaktion aufnehmen möchtest. Erstelle dann einTransaction- oder VersionedTransaction-Objekt. Außerdem musst du einen aktuellen Blockhash abrufen.
Dieses Beispiel bereitet eine versionierte Transaktion vor. In dieser Phase musst du sie auch signieren, damit du sie im nächsten Schritt simulieren kannst.
2. Optimiere die Nutzung von Compute Units (CU)
Um keine Gebühren zu verschwenden und ein Fehlschlagen deiner Transaktion zu vermeiden, solltest du das Limit für Compute Units (CU) so genau wie möglich festlegen. Simuliere dazu die Transaktion mit der RPC-MethodesimulateTransaction.
Es hat sich bewährt, die Transaktion zuerst mit einem hohen CU-Limit zu simulieren, damit die Simulation selbst erfolgreich ist. Verwende anschließend unitsConsumed aus der response, um dein tatsächliches Limit festzulegen.
3. Lege die richtige Prioritätsgebühr fest
Ermittle als Nächstes die optimale Prioritätsgebühr für deine Transaktion. Mit der Helius Priority Fee API erhältst du am besten eine Echtzeitschätzung auf Basis der aktuellen Netzwerkbedingungen. Dazu musst du die RPC-MethodegetPriorityFeeEstimate aufrufen. Verwende die Option recommended: true, um über die gestakten Verbindungen von Helius die höchste Chance auf Aufnahme zu erzielen.
4. Erstelle, sende und bestätige die Transaktion
Stelle jetzt die endgültige Transaktion mit den neuen Compute-Budget-Anweisungen zusammen, sende sie und implementiere einen robusten Polling-Mechanismus, um ihre Aufnahme zu bestätigen. Ein gängiges Muster besteht darin, dieselbe Transaktion regelmäßig erneut zu senden, bis der Blockhash abläuft. Signiere die Transaktion nur erneut, wenn du auch einen neuen Blockhash abrufst. Wenn du sie mit demselben Blockhash erneut signierst, können doppelte Transaktionen bestätigt werden.Schutz vor Sandwich-Angriffen
Füge deiner RPC-URL den Abfrageparametermev-protect=true hinzu, um deine Transaktion an Validatoren vorbeizuleiten, die statistisch mit Sandwich-Angriffen in Verbindung stehen. Deine Transaktionslogik musst du nicht ändern:
MEV Protect
Erfahre, wie MEV Protect funktioniert, welche Methoden es unterstützt und welche Kompromisse damit verbunden sind.
Erhalte Rückvergütungen für deine Transaktionen
Du kannst dich dafür anmelden, einen Anteil an dem MEV zu erhalten, den deine Transaktionen erzeugen. Die Auszahlung erfolgt automatisch in SOL, ohne dass du deine Transaktionslogik ändern musst.Transaction Rebates
Füge deinen
sendTransaction-Aufrufen einen Parameter hinzu, um SOL-Rückvergütungen zu erhalten.Verwandte Methoden
sendTransaction
Sende eine signierte Transaktion an das Netzwerk
simulateTransaction
Simuliere eine Transaktion, um die benötigten Compute Units zu schätzen
getSignatureStatuses
Prüfe den Bestätigungsstatus von Transaktionen
getLatestBlockhash
Rufe einen aktuellen Blockhash zum Signieren einer Transaktion ab
getBlockHeight
Rufe die aktuelle Blockhöhe für Ablaufprüfungen ab