Tarik Dana

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

AkunDapat DitulisPenanda TanganDeskripsi
user✓Pemilik token yang memulai penarikan
mint✓Mint token SPL (yang dibakar)
token_account✓token account sisi channel milik pengguna (sumber)
token_programToken Program SPL
associated_token_programAssociated Token Program

Parameter

ParameterTipeDeskripsi
amountu64Jumlah token yang akan ditarik, dalam satuan terkecil token
destinationOption<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 (J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVi devnet), bukan di Escrow Program
  • Membakar token di sisi channel tidak secara otomatis melepaskan dana di Mainnet; operator harus kemudian memanggil ReleaseFunds pada Escrow Program dengan bukti eksklusi SMT yang valid
  • Error ZeroAmount akan muncul jika amount bernilai 0
  • Jika destination adalah None, panggilan ReleaseFunds oleh operator akan melepaskan dana ke dompet penanda tangan

Untuk referensi kode error lengkap untuk kedua program, lihat Instructions -> Error Codes.

Is this page helpful?

Daftar Isi

Edit Halaman
© 2026 Yayasan Solana. Semua hak dilindungi.