Reset SMT Root

Instruksi khusus operator yang merotasi Sparse Merkle Tree dengan menginkrementasi Instance.current_tree_index dan mereset withdrawal root, memungkinkan epoch baru sebanyak 65.536 penarikan.

Program escrow sedang bermigrasi dari desain Sparse Merkle Tree ini ke nonce bitmap on-chain (dilacak di upstream), di mana instruksi ini menjadi RotateBitmap. Halaman ini akurat terhadap program escrow saat ini dan akan diperbarui setelah perubahan tersebut diterapkan.

Akun

AkunDapat DitulisPenanda TanganDeskripsi
payer✓✓Pembayar biaya
operator✓Penanda tangan operator
instance✓PDA instance escrow (current_tree_index diinkrementasi)
operator_pdaPDA operator yang membuktikan bahwa penanda tangan telah disediakan
event_authorityPDA otoritas event untuk CPI EmitEvent
private_channel_escrow_programProgram Escrow (referensi diri untuk CPI)

Parameter

ParameterTipeDeskripsi
expected_current_tree_indexu64Penjaga replay; harus cocok dengan Instance.current_tree_index atau pemanggilan gagal

Kembalian

Mengembalikan TransactionBuilder yang dapat digunakan untuk membangun dan mengirim transaksi.

Contoh

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

Catatan Penting

  • Khusus operator: memerlukan operator_pda yang valid; melempar InvalidOperatorPda jika tidak
  • expected_current_tree_index harus sama dengan Instance.current_tree_index pada saat pemanggilan; nilai yang usang akan melempar UnexpectedTreeIndex, melindungi dari pemutaran ulang reset yang sudah diterapkan
  • Menginkrementasi Instance.current_tree_index; nonce yang valid di epoch pohon sebelumnya akan dibatalkan setelah rotasi
  • Layanan operator-private-channel memanggil ini secara otomatis ketika transaction_nonce % 65536 == 0 (dan nonce > 0), menandakan dimulainya epoch baru; tidak perlu dipanggil secara manual dalam operasi normal
  • Setelah rotasi, withdrawal root direset ke pohon kosong, sehingga penarikan baru dimulai dari SMT yang baru
  • Memancarkan event melalui CPI EmitEvent

Is this page helpful?

Daftar Isi

Edit Halaman
© 2026 Yayasan Solana. Semua hak dilindungi.