Rút Tiền

Đốt số dư token phía kênh của người dùng trên Withdraw Program để báo hiệu một yêu cầu rút tiền đang chờ xử lý; sau đó operator phải gọi ReleaseFunds trên Escrow Program để hoàn tất thanh toán.

Tài Khoản

Tài khoảnCó thể ghiNgười kýMô tả
user✓Chủ sở hữu token khởi tạo yêu cầu rút tiền
mint✓SPL token mint (được đốt)
token_account✓token account phía kênh của người dùng (nguồn)
token_programSPL Token Program
associated_token_programAssociated Token Program

Tham Số

Tham sốKiểuMô tả
amountu64Số lượng token cần rút, tính theo đơn vị nhỏ nhất của token
destinationOption<Pubkey>Ví đích trên Mainnet; nếu là None, mặc định là ví của người ký

Trả Về

Trả về một TransactionBuilder có thể được sử dụng để xây dựng và gửi giao dịch.

Ví Dụ

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

Lưu Ý Quan Trọng

  • Lệnh này thuộc Withdraw Program (J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVi devnet), không phải Escrow Program
  • Việc đốt token phía kênh không tự động giải phóng tiền trên Mainnet; operator phải gọi ReleaseFunds trên Escrow Program với bằng chứng loại trừ SMT hợp lệ
  • Lỗi ZeroAmount được ném ra nếu amount bằng 0
  • Nếu destination là None, lệnh gọi ReleaseFunds của operator sẽ giải phóng tiền về ví của người ký

Để xem tài liệu tham chiếu mã lỗi đầy đủ cho cả hai chương trình, hãy xem Instructions -> Error Codes.

Is this page helpful?

Mục lục

Chỉnh sửa trang