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
| Hesap | Yazılabilir | İmzalayan | Açı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_authority | EmitEvent CPI için olay yetkisi PDA'sı | ||
private_channel_escrow_program | Emanet Programı (CPI için öz-referans) |
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
expected_current_tree_index | u64 | Yeniden 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_pdagerektirir; aksi takdirdeInvalidOperatorPdahatası fırlatır expected_current_tree_index, çağrı anındaInstance.current_tree_indexile eşit olmalıdır; eski bir değerUnexpectedTreeIndexhatasına yol açar ve halihazırda gerçekleşmiş bir sıfırlamanın yeniden oynatılmasına karşı koruma sağlarInstance.current_tree_indexdeğ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 geliroperator-private-channelservisi,transaction_nonce % 65536 == 0(venonce > 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
EmitEventCPI aracılığıyla bir olay yayınlar
Is this page helpful?