오퍼레이터 전용 명령어로, Instance.current_tree_index를 증가시켜 Sparse Merkle Tree를 순환하고 출금 루트를 재설정하여 65,536건의 출금으로 구성된 새로운 epoch를 허용합니다.
에스크로 프로그램은 이 Sparse Merkle Tree 설계에서 온체인 논스 비트맵(업스트림에서 추적 중)으로 마이그레이션 중이며, 이 명령어는 RotateBitmap으로 변경될 예정입니다. 이 페이지는 현재 에스크로 프로그램을 기준으로 정확하며, 해당 변경 사항이 반영되면 업데이트될 예정입니다.
계정
| 계정 | 쓰기 가능 | 서명자 | 설명 |
|---|---|---|---|
payer | ✓ | ✓ | 수수료 납부자 |
operator | ✓ | 오퍼레이터 서명자 | |
instance | ✓ | 에스크로 인스턴스 PDA (current_tree_index 증가) | |
operator_pda | 서명자가 프로비저닝되었음을 증명하는 오퍼레이터 PDA | ||
event_authority | EmitEvent CPI용 이벤트 권한 PDA | ||
private_channel_escrow_program | 에스크로 프로그램 (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_pda가 필요하며, 그렇지 않으면InvalidOperatorPda가 발생합니다 expected_current_tree_index는 호출 시점의Instance.current_tree_index와 일치해야 합니다; 오래된 값은UnexpectedTreeIndex를 발생시키며, 이미 완료된 재설정의 재실행을 방지합니다Instance.current_tree_index를 증가시키며, 이전 트리 epoch에서 유효했던 논스는 순환 후 무효화됩니다operator-private-channel서비스는transaction_nonce % 65536 == 0(그리고nonce > 0)일 때 자동으로 이를 호출하여 새로운 epoch의 시작을 알립니다; 정상적인 운영 중에는 수동으로 호출할 필요가 없습니다- 순환 후 출금 루트가 빈 트리로 재설정되므로, 새로운 출금은 새로운 SMT에서 시작됩니다
EmitEventCPI를 통해 이벤트를 발생시킵니다
Is this page helpful?