Solana, 0,001 doların altında ücretlerle anında, küresel token transferleri sağlar. İster sınır ötesi havale, ister bordro ödemeleri veya hazine operasyonları oluşturuyor olun, temel bir stablecoin ödemesi bir saniyenin altında gerçekleşir ve bir sentin çok küçük bir kısmına mal olur.
Nasıl çalışır
Bir ödeme, gönderenin token hesabından alıcının token hesabına stablecoin'leri taşır. Alıcı bu token'ı ilk kez alıyorsa, token hesabı aynı işlemin bir parçası olarak oluşturulabilir.
Temel ödeme kavramları için Solana'da ödemeler nasıl çalışır bölümüne bakın.
@solana/client içindeki splToken
yardımcısı, ATA türetme, ondalık dönüştürme ve işlem oluşturmayı otomatik olarak
yönetir. Bu, tekil ödeme transferleri için idealdir.
Aşağıdaki adımlar temel akışı gösterir. Tam çalıştırılabilir kod için Demo bölümüne bakın.
Token yardımcısını oluşturun
Mint adresini kullanarak client.splToken() çağırarak splToken() yardımcısını
yapılandırın. Yardımcı, yaygın token işlemleri için yöntemler sağlar.
tokenProgram: "auto" ayarı, mint hesabının Token veya Token-2022 programına
ait olup olmadığını otomatik olarak algılar.
Ödemeyi gönderin
Cüzdanlar arasında token transferi yapmak için sendTransfer() kullanın. Yöntem
şunları yönetir:
- ATA çözümlemesi: Gönderen ve alıcı için ilişkili token hesaplarını (ATA) otomatik olarak türetir. Alıcının ATA'sı mevcut değilse, hesabı oluşturma talimatı otomatik olarak aynı işleme eklenir.
- Ondalık dönüştürme: Token miktarlarını kabul eder ve mint'in ondalık sayısına göre otomatik olarak temel birimlere dönüştürür (örneğin, mint 6 ondalık basamağa sahipse 0,25 token -> 250000 temel birim)
- İşlem oluşturma: Transfer talimatıyla işlemi oluşturur, imzalar ve gönderir
const client = createClient({endpoint: "http://localhost:8899",websocketEndpoint: "ws://localhost:8900",commitment: "confirmed"});const splToken = client.splToken({mint: mint.address,tokenProgram: "auto"});const signature = await splToken.sendTransfer({amount: 0.25,authority: sender,destinationOwner: recipient.address});
Bakiyeleri doğrula
Transfer tamamlandıktan sonra, token bakiyelerini doğrulamak için
fetchBalance() kullanın. Bu yöntem bir cüzdan adresi alır ve bakiyeyi getirmek
için otomatik olarak ilgili ATA'yı türetir.
const client = createClient({endpoint: "http://localhost:8899",websocketEndpoint: "ws://localhost:8900",commitment: "confirmed"});const splToken = client.splToken({mint: mint.address,tokenProgram: "auto"});const signature = await splToken.sendTransfer({amount: 0.25,authority: sender,destinationOwner: recipient.address});const senderBalance = await splToken.fetchBalance(sender.address);const recipientBalance = await splToken.fetchBalance(recipient.address);
Demo
// Generate keypairs for sender and recipientconst sender = (await generateKeypair()).signer;const recipient = (await generateKeypair()).signer;console.log("Sender Address:", sender.address);console.log("Recipient Address:", recipient.address);// Demo Setup: Create client, mint account, token accounts, and fund with initial tokensconst { client, mint } = await demoSetup(sender, recipient);console.log("\nMint Address:", mint.address);// =============================================================================// Basic Token Payment Demo// =============================================================================// Create splToken helper for this mint using @solana/clientconst splToken = client.splToken({mint: mint.address,tokenProgram: "auto"});// Transfer tokens from sender to recipient (ATA and decimals handled automatically)const signature = await splToken.sendTransfer({amount: 0.25,authority: sender,destinationOwner: recipient.address});console.log("\n=== Token Payment Complete ===");console.log("Transaction Signature:", signature.toString());// Fetch final token account balances using splToken helperconst senderBalance = await splToken.fetchBalance(sender.address);const recipientBalance = await splToken.fetchBalance(recipient.address);console.log("\nSender Token Account Balance:", senderBalance);console.log("Recipient Token Account Balance:", recipientBalance);// =============================================================================// Demo Setup Helper Function// =============================================================================
Is this page helpful?