Membakar saldo token sisi channel milik pengguna pada Withdraw Program untuk menandakan
penarikan yang tertunda; operator harus kemudian memanggil ReleaseFunds pada
Escrow Program untuk menyelesaikan penyelesaian transaksi.
Akun
| Akun | Dapat Ditulis | Penanda Tangan | Deskripsi |
|---|---|---|---|
user | ✓ | Pemilik token yang memulai penarikan | |
mint | ✓ | Mint token SPL (yang dibakar) | |
token_account | ✓ | token account sisi channel milik pengguna (sumber) | |
token_program | Token Program SPL | ||
associated_token_program | Associated Token Program |
Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
amount | u64 | Jumlah token yang akan ditarik, dalam satuan terkecil token |
destination | Option<Pubkey> | Dompet tujuan di Mainnet; jika None, default ke dompet penanda tangan |
Nilai Kembalian
Mengembalikan TransactionBuilder yang dapat digunakan untuk membangun dan mengirim
transaksi.
Contoh
import { getWithdrawFundsInstruction } from "../private-channel-withdraw-program/clients/typescript/src/generated";const withdrawIx = getWithdrawFundsInstruction({user: userSigner,mint: mintAddress,tokenAccount: channelTokenAccount,tokenProgram: TOKEN_PROGRAM_ID,associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,amount: 1_000_000n,destination: null // null = release to signer's Mainnet wallet});
Catatan Penting
- Instruksi ini berada di Withdraw Program
(
J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVidevnet), bukan di Escrow Program - Membakar token di sisi channel tidak secara otomatis melepaskan dana di
Mainnet; operator harus kemudian memanggil
ReleaseFundspada Escrow Program dengan bukti eksklusi SMT yang valid - Error
ZeroAmountakan muncul jikaamountbernilai 0 - Jika
destinationadalahNone, panggilanReleaseFundsoleh operator akan melepaskan dana ke dompet penanda tangan
Untuk referensi kode error lengkap untuk kedua program, lihat Instructions -> Error Codes.
Is this page helpful?