Der manuelle Workflow
Das manuelle Senden einer Transaktion umfasst folgende Schritte:1
Erstellen der anfänglichen Transaktion
Stellen Sie Ihre Anweisungen zusammen und signieren Sie die Transaktion, damit sie simuliert werden kann.
2
Optimierung der Recheneinheiten
Simulieren Sie die Transaktion, um die genauen CUs zu bestimmen und fügen Sie einen kleinen Puffer hinzu.
3
Hinzufügen von Prioritätsgebühren
Holen Sie eine Gebührenabschätzung von der Helius Priority Fee API ein und fügen Sie sie Ihrer Transaktion hinzu.
4
Senden und erneut senden
Senden Sie die endgültige Transaktion und implementieren Sie eine robuste Polling-Strategie, um die Bestätigung zu bearbeiten.
Die Helius SDKs sind Open Source. Sie können den zugrunde liegenden Code für die
sendSmartTransaction-Methode in unserem TypeScript SDK und Rust SDK ansehen, um eine produktionsreife Implementierung dieses Workflows zu sehen.1. Erstellen der anfänglichen Transaktion
Zuerst sammeln Sie alle Anweisungen, die Sie in Ihre Transaktion aufnehmen möchten. Erstellen Sie dann einTransaction- oder VersionedTransaction-Objekt. Sie müssen auch einen aktuellen Blockhash abrufen.
Dieses Beispiel bereitet eine versionierte Transaktion vor. In diesem Stadium müssen Sie sie auch signieren, damit sie im nächsten Schritt simuliert werden kann.
2. Optimierung der Nutzung von Recheneinheiten (CU)
Um unnötige Gebühren zu vermeiden oder das Scheitern Ihrer Transaktion zu verhindern, sollten Sie das Limit für die Recheneinheiten (CU) so präzise wie möglich festlegen. Sie können dies tun, indem Sie die Transaktion mit dersimulateTransaction-RPC-Methode simulieren.
Es ist eine bewährte Praxis, zuerst mit einem hohen CU-Limit zu simulieren, um sicherzustellen, dass die Simulation selbst erfolgreich ist, und dann den unitsConsumed aus der Antwort zu verwenden, um Ihr tatsächliches Limit festzulegen.
3. Festlegen der richtigen Prioritätsgebühr
Als nächstes bestimmen Sie die optimale Prioritätsgebühr, die Ihrer Transaktion hinzugefügt werden soll. Die Verwendung der Helius Priority Fee API ist der beste Weg, um eine Echtzeitschätzung basierend auf den aktuellen Netzwerkbedingungen zu erhalten. Sie müssen diegetPriorityFeeEstimate-RPC-Methode aufrufen. Für die höchste Einbeziehungschance über die gestakten Verbindungen von Helius verwenden Sie die recommended: true-Option.
4. Erstellen, Senden und Bestätigen
Stellen Sie nun die endgültige Transaktion mit den neuen Budgetanweisungen für die Berechnung zusammen, senden Sie sie und implementieren Sie einen robusten Polling-Mechanismus, um ihre Bestätigung sicherzustellen. Ein häufiges Muster ist es, dieselbe Transaktion periodisch erneut zu senden, bis der Blockhash abläuft. Signieren Sie die Transaktion nur dann erneut, wenn Sie auch einen neuen Blockhash abrufen. Ein erneutes Signieren mit demselben Blockhash kann dazu führen, dass doppelte Transaktionen bestätigt werden.Schutz vor Sandwich-Angriffen
Um Ihre Transaktion von Validatoren wegzuleiten, die statistisch mit Sandwich-Angriffen in Verbindung stehen, fügen Sie denmev-protect=true-Parameter zu Ihrer RPC-URL hinzu — keine Änderungen an Ihrer Transaktionslogik:
MEV Schutz
Sehen Sie, wie MEV Schutz funktioniert, welche Methoden er unterstützt und welche Kompromisse es gibt.
Verdienen Sie Rabatte auf Ihre Transaktionen
Sie können sich dafür entscheiden, einen Anteil des MEV zu verdienen, den Ihre Transaktionen erzeugen, automatisch in SOL bezahlt — ohne Änderungen an Ihrer Transaktionslogik.Transaktionsrabatte
Fügen Sie einen Parameter zu Ihren
sendTransaction-Aufrufen hinzu, um SOL-Rabatte zu verdienen.Verwandte Methoden
sendTransaction
Senden Sie eine signierte Transaktion an das Netzwerk
simulateTransaction
Simulieren Sie eine Transaktion, um Recheneinheiten zu schätzen
getSignatureStatuses
Bestätigungsstatus von Transaktionen überprüfen
getLatestBlockhash
Abrufen eines aktuellen Blockhashes zur Transaktionssignierung
getBlockHeight
Aktuelle Blockhöhe für Ablaufprüfungen abrufen