Alleen-operator-instructie die de Sparse Merkle Tree roteert door
Instance.current_tree_index te verhogen en de opname-root te resetten, waardoor een nieuwe
epoch van 65.536 opnames mogelijk wordt.
Het escrow-programma migreert van dit Sparse Merkle Tree-ontwerp naar een
on-chain nonce-bitmap (bijgehouden upstream), waarbij deze instructie
RotateBitmap wordt. Deze pagina is accuraat ten opzichte van het huidige escrow-programma en
wordt herzien zodra die wijziging beschikbaar is.
Accounts
| Account | Schrijfbaar | Ondertekenaar | Beschrijving |
|---|---|---|---|
payer | ✓ | ✓ | Betalende partij |
operator | ✓ | Operator-ondertekenaar | |
instance | ✓ | Escrow-instantie PDA (current_tree_index verhoogd) | |
operator_pda | Operator-PDA die bewijst dat de ondertekenaar is ingericht | ||
event_authority | Gebeurtenisautoriteit-PDA voor EmitEvent CPI | ||
private_channel_escrow_program | Escrow-programma (zelfverwijzing voor CPI) |
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
expected_current_tree_index | u64 | Replay-beveiliging; moet overeenkomen met Instance.current_tree_index, anders mislukt de aanroep |
Retourwaarde
Retourneert een TransactionBuilder die kan worden gebruikt om de
transactie te bouwen en te verzenden.
Voorbeeld
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});
Belangrijke opmerkingen
- Alleen voor operators: vereist een geldige
operator_pda; geeft andersInvalidOperatorPdaterug expected_current_tree_indexmoet op het moment van aanroep gelijk zijn aanInstance.current_tree_index; een verouderde waarde geeftUnexpectedTreeIndexterug, als beveiliging tegen het opnieuw afspelen van een reset die al heeft plaatsgevonden- Verhoogt
Instance.current_tree_index; nonces die geldig waren in de vorige boom-epoch worden ongeldig na rotatie - De
operator-private-channel-service roept dit automatisch aan wanneertransaction_nonce % 65536 == 0(ennonce > 0), wat het begin van een nieuwe epoch signaleert; onder normale werking hoeft dit niet handmatig te worden aangeroepen - Na rotatie wordt de opname-root teruggezet naar de lege boom, zodat nieuwe opnames starten vanuit een nieuwe SMT
- Verstuurt een gebeurtenis via
EmitEventCPI
Is this page helpful?