Chuyển token SPL từ associated token account của người dùng vào associated token account của tài khoản ký quỹ, ghi có số dư kênh của người dùng nạp tiền (hoặc số dư của người nhận tùy chọn).
Tài khoản
| Tài khoản | Có thể ghi | Người ký | Mô tả |
|---|---|---|---|
payer | ✓ | ✓ | Người trả phí giao dịch |
user | ✓ | Chủ sở hữu token thực hiện nạp tiền | |
instance | PDA của phiên bản ký quỹ | ||
mint | Mint token SPL | ||
allowed_mint | PDA xác minh mint được phép trên phiên bản này | ||
user_ata | ✓ | associated token account của người dùng (nguồn) | |
instance_ata | ✓ | associated token account của tài khoản ký quỹ (đích) | |
system_program | System Program | ||
token_program | SPL Token Program | ||
associated_token_program | Associated Token Program | ||
event_authority | PDA quyền sự kiện cho CPI EmitEvent | ||
private_channel_escrow_program | Chương trình ký quỹ (tự tham chiếu cho CPI) |
Tham số
| Tham số | Kiểu | Mô tả |
|---|---|---|
amount | u64 | Số lượng token cần nạp, tính theo đơn vị nhỏ nhất của token |
recipient | Option<Pubkey> | Người nhận on-chain tùy chọn; nếu là None, ghi có số dư kênh của người dùng nạp tiền |
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 { getDepositInstructionAsync } from "../private-channel-escrow-program/clients/typescript/src/generated";// allowedMint and instanceAta are auto-derived from mint and instanceconst depositIx = await getDepositInstructionAsync({payer: payerSigner,user: userSigner,instance: instancePda,mint: mintAddress,userAta: userAtaAddress,amount: 1_000_000n,recipient: null});
Lưu ý quan trọng
- ID chương trình:
9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU - Đối với các mint Token-2022, hãy truyền
tokenProgram: TOKEN_2022_PROGRAM_ADDRESSmột cách tường minh, vì mặc định là SPL Token Program tiêu chuẩn - PDA
allowed_mintphải tồn tại (được tạo bởiAllowMint); nạp tiền với mint chưa được liệt kê sẽ ném lỗiInvalidAllowedMint - Khi
recipientlàNone, số dư kênh của người dùng nạp tiền được ghi có; khi được cung cấp, số dư của ví được chỉ định sẽ được ghi có thay thế - Cả
payervàuserđều phải ký giao dịch instance_ataphải đã tồn tại (được tạo bởiAllowMintcho mint này)
Is this page helpful?