Εντολή αποκλειστικά για τον 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_pda | PDA Operator που αποδεικνύει ότι ο υπογράφων έχει παραχωρηθεί | ||
event_authority | PDA αρχής συμβάντων για το EmitEvent CPI | ||
private_channel_escrow_program | Πρόγραμμα Escrow (αυτο-αναφορά για CPI) |
Παράμετροι
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
expected_current_tree_index | u64 | Προστασία από επανάληψη· πρέπει να ταιριάζει με το 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
- Εκπέμπει ένα συμβάν μέσω
EmitEventCPI
Is this page helpful?