Επαναφορά Ρίζας SMT

Εντολή αποκλειστικά για τον Operator που περιστρέφει το Sparse Merkle Tree αυξάνοντας το Instance.current_tree_index και επαναφέροντας τη ρίζα ανάληψης, επιτρέποντας ένα νέο epoch 65.536 αναλήψεων.

Το πρόγραμμα escrow μεταφέρεται από αυτήν την αρχιτεκτονική Sparse Merkle Tree σε ένα on-chain nonce bitmap (παρακολουθείται upstream), όπου αυτή η εντολή γίνεται RotateBitmap. Αυτή η σελίδα είναι ακριβής σε σχέση με το τρέχον πρόγραμμα escrow και θα αναθεωρηθεί μόλις εφαρμοστεί αυτή η αλλαγή.

Λογαριασμοί

ΛογαριασμόςΕγγράψιμοΥπογράφωνΠεριγραφή
payer✓✓Πληρωτής τελών
operator✓Υπογράφων Operator
instance✓PDA στιγμιότυπου escrow (το current_tree_index αυξάνεται)
operator_pdaPDA Operator που αποδεικνύει ότι ο υπογράφων έχει παραχωρηθεί
event_authorityPDA αρχής συμβάντων για το EmitEvent CPI
private_channel_escrow_programΠρόγραμμα Escrow (αυτο-αναφορά για CPI)

Παράμετροι

ΠαράμετροςΤύποςΠεριγραφή
expected_current_tree_indexu64Προστασία από επανάληψη· πρέπει να ταιριάζει με το Instance.current_tree_index ή η κλήση αποτυγχάνει

Επιστρεφόμενη Τιμή

Επιστρέφει ένα TransactionBuilder που μπορεί να χρησιμοποιηθεί για την κατασκευή και αποστολή της συναλλαγής.

Παράδειγμα

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
});

Σημαντικές Σημειώσεις

  • Αποκλειστικά για Operator: απαιτεί έγκυρο operator_pda· διαφορετικά εκπέμπει InvalidOperatorPda
  • Το expected_current_tree_index πρέπει να ισούται με το Instance.current_tree_index τη στιγμή της κλήσης· μια ξεπερασμένη τιμή εκπέμπει UnexpectedTreeIndex, προστατεύοντας από την επανάληψη μιας επαναφοράς που έχει ήδη εκτελεστεί
  • Αυξάνει το Instance.current_tree_index· τα nonces που ήταν έγκυρα στο προηγούμενο epoch δέντρου ακυρώνονται μετά την περιστροφή
  • Η υπηρεσία operator-private-channel την καλεί αυτόματα όταν transaction_nonce % 65536 == 0 (και nonce > 0), σηματοδοτώντας την έναρξη ενός νέου epoch· δεν θα χρειαστεί να κληθεί χειροκίνητα υπό κανονική λειτουργία
  • Μετά την περιστροφή, η ρίζα ανάληψης επαναφέρεται στο κενό δέντρο, οπότε οι νέες αναλήψεις ξεκινούν από ένα νέο SMT
  • Εκπέμπει ένα συμβάν μέσω EmitEvent CPI

Is this page helpful?

Πίνακας Περιεχομένων

Επεξεργασία Σελίδας
© 2026 Ίδρυμα Solana. Με επιφύλαξη παντός δικαιώματος.