Спалює баланс токенів користувача на стороні каналу у Withdraw Program, щоб сигналізувати про
очікуване виведення коштів; оператор має згодом викликати ReleaseFunds в
Escrow Program для завершення розрахунку.
Акаунти
| Акаунт | Записуваний | Підписант | Опис |
|---|---|---|---|
user | ✓ | Власник токена, що ініціює виведення | |
mint | ✓ | SPL token mint (проти якого виконується спалення) | |
token_account | ✓ | token account користувача на стороні каналу (джерело) | |
token_program | SPL Token Program | ||
associated_token_program | Associated Token Program |
Параметри
| Параметр | Тип | Опис |
|---|---|---|
amount | u64 | Кількість токенів для виведення, у найменшій одиниці токена |
destination | Option<Pubkey> | Цільовий гаманець у Mainnet; якщо None, за замовчуванням використовується гаманець підписанта |
Повертає
Повертає TransactionBuilder, який можна використати для побудови та надсилання
транзакції.
Приклад
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});
Важливі примітки
- Ця інструкція належить до Withdraw Program
(
J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVidevnet), а не до Escrow Program - Спалення токенів на стороні каналу не вивільняє кошти автоматично на
Mainnet; оператор має згодом викликати
ReleaseFundsв Escrow Program із дійсним доказом виключення SMT - Помилка
ZeroAmountвиникає, якщоamountдорівнює 0 - Якщо
destinationмає значенняNone, викликReleaseFundsоператором вивільнить кошти на гаманець підписанта
Повний довідник кодів помилок для обох програм див. у Instructions -> Error Codes.
Is this page helpful?