Solana забезпечує миттєві глобальні перекази токенів з комісією менше $0.001. Незалежно від того, чи ви створюєте міжнародні грошові перекази, виплати заробітної плати чи операції казначейства, базовий платіж стейблкоїном завершується менш ніж за секунду і коштує частку цента.
Як це працює
Платіж переміщує стейблкоїни з token account відправника до token account отримувача. Якщо отримувач отримує цей токен вперше, його token account може бути створений як частина тієї ж транзакції.
Дивіться Як працюють платежі на Solana для ознайомлення з основними концепціями платежів.
Помічник splToken з
@solana/client автоматично обробляє
виведення ATA, конвертацію десяткових знаків та побудову транзакцій. Це ідеально
підходить для одиночних переказів.
Кроки нижче показують основний процес. Дивіться Демо для повного робочого коду.
Створіть помічник токенів
Налаштуйте помічник splToken(), викликавши client.splToken() з адресою mint
account. Помічник надає методи для поширених операцій з токенами.
Встановлення tokenProgram: "auto" автоматично визначає, чи належить mint
account програмі Token або Token-2022.
Надішліть платіж
Використовуйте sendTransfer() для переказу токенів між гаманцями. Метод
обробляє:
- Визначення ATA: Автоматично виводить Associated Token Accounts (ATA) для відправника та отримувача. Якщо ATA отримувача не існує, інструкція для створення облікового запису автоматично додається до тієї ж транзакції.
- Конвертація десяткових знаків: Приймає суми токенів і автоматично конвертує в базові одиниці на основі десяткових знаків mint account (наприклад, 0.25 токенів -> 250000 базових одиниць, якщо mint account має 6 десяткових знаків)
- Побудова транзакції: Створює, підписує та надсилає транзакцію з інструкцією переказу
Перевірка балансів
Після завершення переказу використовуйте fetchBalance(), щоб перевірити
баланси токенів. Цей метод приймає адресу гаманця та автоматично виводить
відповідний ATA для отримання балансу.
Демонстрація
// 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?