SMT Kökünü Sıfırla

Yalnızca operatöre özgü bu talimat, Instance.current_tree_index değerini artırarak Seyrek Merkle Ağacını döndürür ve para çekme kökünü sıfırlar; böylece 65.536 para çekimi içeren yeni bir epoch başlatılır.

Emanet programı, bu Seyrek Merkle Ağacı tasarımından zincir üstü bir nonce bitmap'e (yukarı akışta izlenmektedir) geçiş yapmaktadır; bu geçişle birlikte talimat RotateBitmap adını alacaktır. Bu sayfa, mevcut emanet programıyla tutarlıdır ve söz konusu değişiklik uygulandıktan sonra güncellenecektir.

Hesaplar

HesapYazılabilirİmzalayanAçıklama
payer✓✓Ücret ödeyici
operator✓Operatör imzalayıcı
instance✓Emanet örneği PDA'sı (current_tree_index artırıldı)
operator_pdaİmzalayanın temin edildiğini kanıtlayan Operatör PDA'sı
event_authorityEmitEvent CPI için olay yetkisi PDA'sı
private_channel_escrow_programEmanet Programı (CPI için öz-referans)

Parametreler

ParametreTürAçıklama
expected_current_tree_indexu64Yeniden oynatma koruması; Instance.current_tree_index ile eşleşmesi gerekir, aksi takdirde çağrı başarısız olur

Döndürülen Değer

İşlemi oluşturup göndermek için kullanılabilecek bir TransactionBuilder döndürür.

Örnek

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

Önemli Notlar

  • Yalnızca operatör: geçerli bir operator_pda gerektirir; aksi takdirde InvalidOperatorPda hatası fırlatır
  • expected_current_tree_index, çağrı anında Instance.current_tree_index ile eşit olmalıdır; eski bir değer UnexpectedTreeIndex hatasına yol açar ve halihazırda gerçekleşmiş bir sıfırlamanın yeniden oynatılmasına karşı koruma sağlar
  • Instance.current_tree_index değerini artırır; bir önceki ağaç epoch'unda geçerli olan nonce değerleri, döndürme işleminden sonra geçersiz hale gelir
  • operator-private-channel servisi, transaction_nonce % 65536 == 0 (ve nonce > 0) koşulu sağlandığında bunu otomatik olarak çağırır; bu durum yeni bir epoch'un başladığına işaret eder ve normal işlem koşullarında manuel olarak çağrılması gerekmez
  • Döndürme işleminin ardından para çekme kökü boş ağaca sıfırlanır; böylece yeni para çekimleri temiz bir SMT üzerinden başlar
  • EmitEvent CPI aracılığıyla bir olay yayınlar

Is this page helpful?

İçindekiler

Sayfayı Düzenle
© 2026 Solana Vakfı. Tüm hakları saklıdır.