Typescript
SPL Token di Web3.js

SPL Token di Web3.js

Instruksi Transfer

Memindahkan token dari satu akun ke akun lainnya. Ini adalah operasi dasar untuk mengirim token antar pengguna.

Sebelum kita dapat mentransfer token, kita perlu memiliki:

  • Akun Mint yang sudah diinisialisasi.
  • Akun sumber Token atau akun Associated Token yang sudah memiliki setidaknya jumlah yang ingin kita transfer.
  • Akun tujuan Token atau akun Associated Token yang akan menerima token dari akun sumber Token.

Jumlah token yang kita transfer "dinormalisasi" untuk desimal. Ini berarti jika kita ingin mentransfer 1 token yang memiliki 6 desimal, kita perlu memasukkan 1e6 sebagai jumlahnya

Instruksi Mentah

Dengan menggunakan instruksi "mentah" tanpa abstraksi, beginilah tampilan transfer token:

ts
const destination = Keypair.generate();
 
const destinationTokenAccount = await getAssociatedTokenAddress(
    mint.publicKey,
    destination.publicKey,
);
 
// Create ATA creation instruction
const createAtaInstruction = createAssociatedTokenAccountIdempotentInstruction(
    keypair.publicKey, // payer
    destinationTokenAccount, // associated token account address
    destination.publicKey, // owner
    mint.publicKey, // mint
);
 
// Transfer tokens to ATA 
const transferInstruction = createTransferInstruction(
    sourceTokenAccount, // source token account pubkey
    destinationTokenAccount, // destination token account pubkey
    keypair.publicKey, // owner of the source token account
    1e6, // amount
);
 
const transaction = new Transaction().add(
    createAtaInstruction,
    transferInstruction,
);
 
const signature = await sendAndConfirmTransaction(connection, transaction, [keypair]);
 
console.log(`Token accounts created and tokens transferred! Check out your TX here: https://explorer.solana.com/tx/${signature}?cluster=devnet`);

Instruksi Terabstraksi

Beginilah tampilan instruksi yang sama jika diabstraksikan dengan instruksi transfer():

ts
const destination = Keypair.generate();
 
const destinationAta = await getOrCreateAssociatedTokenAccount(
    connection,
    keypair,
    mint,
    destination.publicKey
);
 
console.log(`This is your ATA: ${ata.address}!`)
  
let tx = await transfer(
    connection, // connection
    keypair, // payer
    sourceAta, // source token account
    destinationAta, // destination token account
    keypair.publicKey, // owner of the source token account
    1e6, // amount to transfer
);
 
console.log(`Succesfully Transferred!. Transaction Here: https://explorer.solana.com/tx/${tx}?cluster=devnet`)

Instruksi Terverifikasi

Daftar Isi
Lihat Sumber
Blueshift © 2025Commit: 1e001ec