Sacar Fundos

Queima o saldo de tokens do lado do canal de um utilizador no Withdraw Program para sinalizar uma retirada pendente; um operador deve subsequentemente chamar ReleaseFunds no Escrow Program para concluir a liquidação.

Contas

ContaGravávelAssinanteDescrição
user✓Proprietário do token que inicia a retirada
mint✓Mint de token SPL (queimado contra)
token_account✓token account do canal do utilizador (origem)
token_programToken Program SPL
associated_token_programAssociated Token Program

Parâmetros

ParâmetroTipoDescrição
amountu64Quantidade de tokens a sacar, na menor unidade do token
destinationOption<Pubkey>Carteira de destino na Mainnet; se None, assume por padrão a carteira do assinante

Retornos

Retorna um TransactionBuilder que pode ser utilizado para construir e enviar a transação.

Exemplo

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

Notas Importantes

  • Esta instrução está no Withdraw Program (J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVi devnet), não no Escrow Program
  • Queimar tokens do lado do canal não liberta automaticamente os fundos na Mainnet; um operador deve subsequentemente chamar ReleaseFunds no Escrow Program com uma prova de exclusão SMT válida
  • O erro ZeroAmount é lançado se amount for 0
  • Se destination for None, a chamada ReleaseFunds do operador irá libertar os fundos para a carteira do assinante

Para a referência completa de códigos de erro de ambos os programas, consulte Instructions -> Error Codes.

Is this page helpful?

Índice

Editar Página
© 2026 Fundação Solana. Todos os direitos reservados.