Сжигает баланс токенов пользователя на стороне канала в 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?