SMT-Root zurücksetzen

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

KontenBeschreibbarSignerBeschreibung
payer✓✓Gebührenzahler
operator✓Operator-Signer
instance✓Escrow-Instanz-PDA (current_tree_index inkrementiert)
operator_pdaOperator-PDA, der bestätigt, dass der Signer bereitgestellt ist
event_authorityEreignisautoritäts-PDA für EmitEvent-CPI
private_channel_escrow_programEscrow-Programm (Selbstreferenz für CPI)

Parameter

ParameterTypBeschreibung
expected_current_tree_indexu64Replay-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 wird InvalidOperatorPda ausgelöst
  • expected_current_tree_index muss zum Zeitpunkt des Aufrufs mit Instance.current_tree_index übereinstimmen; ein veralteter Wert löst UnexpectedTreeIndex aus 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-channel ruft dies automatisch auf, wenn transaction_nonce % 65536 == 0 (und nonce > 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?

Inhaltsverzeichnis

Seite bearbeiten
© 2026 Solana Foundation. Alle Rechte vorbehalten.