Instrução de Transferência
Transfere tokens de uma conta de token para outra. A conta de token de origem deve pertencer ao signatário da transação e ter saldo suficiente.
Antes de podermos transferir qualquer token, precisaremos já ter:
Inicializado uma conta
Mint.Uma conta
Tokenou contaAssociated Tokende origem que já tenha pelo menos a quantidade que desejamos transferir.Uma conta
Tokenou contaAssociated Tokende destino para receber os tokens.
Instrução Bruta
Usando apenas a instrução "bruta" sem qualquer abstração, é assim que ficaria a transferência de um token:
ts
// Transferir tokens
const transferInstruction = createTransferInstruction(
sourceTokenAccount, // conta de token de origem
destinationTokenAccount, // conta de token de destino
keypair.publicKey, // dono da conta de token de origem
1e6, // quantidade
);
const transaction = new Transaction().add(transferInstruction);
const signature = await sendAndConfirmTransaction(connection, transaction, [keypair]);
console.log(`Tokens transferidos! Confira sua TX aqui: https://explorer.solana.com/tx/${signature}?cluster=devnet`);Instrução Abstraída
É assim que as mesmas instruções ficariam abstraídas com a instrução transfer():
ts
let tx = await transfer(
connection, // conexão
keypair, // pagador
sourceTokenAccount, // conta de token de origem
destinationTokenAccount, // conta de token de destino
1e6, // quantidade para transferir
);
console.log(`Transferência realizada com sucesso! Transação aqui: https://explorer.solana.com/tx/${tx}?cluster=devnet`)