Nur für Operatoren verfügbare Anweisung, die den Sparse Merkle Tree rotiert, indem
Instance.current_tree_index inkrementiert und der Auszahlungs-Root zurückgesetzt wird, wodurch eine neue
Epoche von 65.536 Auszahlungen ermöglicht wird.
Das Escrow-Programm migriert von diesem Sparse Merkle Tree-Design zu einer
On-Chain-Nonce-Bitmap (upstream verfolgt), bei der diese Anweisung zu
RotateBitmap wird. Diese Seite ist korrekt gegenüber dem aktuellen Escrow-Programm und
wird überarbeitet, sobald diese Änderung eingeführt wird.
Konten
| Konten | Beschreibbar | Signer | Beschreibung |
|---|---|---|---|
payer | ✓ | ✓ | Gebührenzahler |
operator | ✓ | Operator-Signer | |
instance | ✓ | Escrow-Instanz-PDA (current_tree_index inkrementiert) | |
operator_pda | Operator-PDA, der bestätigt, dass der Signer bereitgestellt ist | ||
event_authority | Ereignisautoritäts-PDA für EmitEvent-CPI | ||
private_channel_escrow_program | Escrow-Programm (Selbstreferenz für CPI) |
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
expected_current_tree_index | u64 | Replay-Schutz; muss mit Instance.current_tree_index übereinstimmen, sonst schlägt der Aufruf fehl |
Rückgabewert
Gibt einen TransactionBuilder zurück, der zum Erstellen und Senden der
Transaktion verwendet werden kann.
Beispiel
import { getResetSmtRootInstruction } from "../private-channel-escrow-program/clients/typescript/src/generated";const resetIx = getResetSmtRootInstruction({payer: operatorPayerSigner,operator: operatorSigner,instance: instancePda,operatorPda: operatorPdaAddress,eventAuthority: eventAuthorityPda,privateChannelEscrowProgram: ESCROW_PROGRAM_ID,expectedCurrentTreeIndex: currentTreeIndex // u64});
Wichtige Hinweise
- Nur für Operatoren: erfordert eine gültige
operator_pda; andernfalls wirdInvalidOperatorPdaausgelöst expected_current_tree_indexmuss zum Zeitpunkt des Aufrufs mitInstance.current_tree_indexübereinstimmen; ein veralteter Wert löstUnexpectedTreeIndexaus und schützt vor dem erneuten Ausführen eines bereits durchgeführten Resets- Inkrementiert
Instance.current_tree_index; Nonces, die in der vorherigen Baum-Epoche gültig waren, werden nach der Rotation ungültig - Der Dienst
operator-private-channelruft dies automatisch auf, wenntransaction_nonce % 65536 == 0(undnonce > 0), was den Beginn einer neuen Epoche signalisiert; unter normalen Betriebsbedingungen sollte kein manueller Aufruf erforderlich sein - Nach der Rotation wird der Auszahlungs-Root auf den leeren Baum zurückgesetzt, sodass neue Auszahlungen mit einem frischen SMT beginnen
- Gibt ein Ereignis über
EmitEvent-CPI aus
Is this page helpful?