Wypłata środków

Spala saldo tokenów użytkownika po stronie kanału w Withdraw Program, sygnalizując pendującą wypłatę; operator musi następnie wywołać ReleaseFunds w Escrow Program, aby zakończyć rozliczenie.

Konta

KontoZapisywalnePodpisującyOpis
user✓Właściciel tokena inicjujący wypłatę
mint✓Mint tokena SPL (spalany)
token_account✓token account użytkownika po stronie kanału (źródło)
token_programToken Program SPL
associated_token_programAssociated Token Program

Parametry

ParametrTypOpis
amountu64Liczba tokenów do wypłaty, wyrażona w najmniejszej jednostce tokena
destinationOption<Pubkey>Docelowy portfel w sieci Mainnet; jeśli None, domyślnie używany jest portfel podpisującego

Zwraca

Zwraca TransactionBuilder, którego można użyć do zbudowania i wysłania transakcji.

Przykład

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

Ważne uwagi

  • Ta instrukcja należy do Withdraw Program (J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVi devnet), a nie do Escrow Program
  • Spalenie tokenów po stronie kanału nie powoduje automatycznego zwolnienia środków w sieci Mainnet; operator musi następnie wywołać ReleaseFunds w Escrow Program z ważnym dowodem wykluczenia SMT
  • Błąd ZeroAmount jest zgłaszany, gdy amount wynosi 0
  • Jeśli destination ma wartość None, wywołanie ReleaseFunds przez operatora spowoduje zwolnienie środków do portfela podpisującego

Pełne odniesienie do kodów błędów dla obu programów można znaleźć w Instructions -> Error Codes.

Is this page helpful?

Spis treści

Edytuj stronę