Вивести кошти

Спалює баланс токенів користувача на стороні каналу у Withdraw Program, щоб сигналізувати про очікуване виведення коштів; оператор має згодом викликати ReleaseFunds в Escrow Program для завершення розрахунку.

Акаунти

АкаунтЗаписуванийПідписантОпис
user✓Власник токена, що ініціює виведення
mint✓SPL token mint (проти якого виконується спалення)
token_account✓token account користувача на стороні каналу (джерело)
token_programSPL Token Program
associated_token_programAssociated Token Program

Параметри

ПараметрТипОпис
amountu64Кількість токенів для виведення, у найменшій одиниці токена
destinationOption<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 (J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVi devnet), а не до Escrow Program
  • Спалення токенів на стороні каналу не вивільняє кошти автоматично на Mainnet; оператор має згодом викликати ReleaseFunds в Escrow Program із дійсним доказом виключення SMT
  • Помилка ZeroAmount виникає, якщо amount дорівнює 0
  • Якщо destination має значення None, виклик ReleaseFunds оператором вивільнить кошти на гаманець підписанта

Повний довідник кодів помилок для обох програм див. у Instructions -> Error Codes.

Is this page helpful?

Зміст

Редагувати сторінку