الدفع الأساسي

تتيح سولانا عمليات تحويل رموز فورية وعالمية برسوم أقل من 0.001 دولار. سواء كنت تبني تحويلات عبر الحدود، أو صرف رواتب، أو عمليات خزينة، فإن الدفع الأساسي بالعملة المستقرة يتم تسويته في أقل من ثانية ويكلف جزءاً من السنت.

كيف يعمل

ينقل الدفع العملات المستقرة من حساب الرمز الخاص بالمرسل إلى حساب الرمز الخاص بالمستلم. إذا كان المستلم يتلقى هذا الرمز لأول مرة، يمكن إنشاء حساب الرمز الخاص به كجزء من نفس المعاملة.

راجع كيف تعمل المدفوعات على سولانا لمفاهيم الدفع الأساسية.

يتعامل المساعد splToken من @solana/client مع اشتقاق ATA وتحويل الكسور العشرية وبناء المعاملات تلقائياً. هذا مثالي لعمليات تحويل الدفع الفردية.

توضح الخطوات أدناه التدفق الأساسي. راجع العرض التوضيحي للحصول على كود كامل قابل للتشغيل.

إنشاء مساعد الرمز

قم بتكوين المساعد splToken() عن طريق استدعاء client.splToken() مع عنوان السك. يوفر المساعد طرقاً لعمليات الرمز الشائعة.

يؤدي تعيين tokenProgram: "auto" إلى الكشف التلقائي عما إذا كان حساب السك مملوكاً لبرنامج Token أو Token-2022.

إرسال الدفع

استخدم sendTransfer() لتحويل الرموز بين المحافظ. تتعامل الطريقة مع:

  • حل ATA: يشتق تلقائياً حسابات الرمز المرتبطة (ATAs) للمرسل والمستلم. إذا لم يكن ATA الخاص بالمستلم موجوداً، يتم إضافة التعليمات لإنشاء الحساب تلقائياً إلى نفس المعاملة.
  • تحويل الكسور العشرية: يقبل مبالغ الرموز ويحولها تلقائياً إلى وحدات أساسية بناءً على الكسور العشرية للسك (مثلاً 0.25 رمز -> 250000 وحدة أساسية، إذا كان السك يحتوي على 6 كسور عشرية)
  • بناء المعاملة: ينشئ ويوقع ويرسل المعاملة مع تعليمات التحويل
Basic Payment
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
});

التحقق من الأرصدة

بعد اكتمال التحويل، استخدم fetchBalance() للتحقق من أرصدة الرموز. تأخذ هذه الطريقة عنوان المحفظة وتشتق تلقائياً حساب الرموز المرتبط المقابل لجلب الرصيد.

Basic Payment
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);

إنشاء مساعد الرمز

قم بتكوين المساعد splToken() عن طريق استدعاء client.splToken() مع عنوان السك. يوفر المساعد طرقاً لعمليات الرمز الشائعة.

يؤدي تعيين tokenProgram: "auto" إلى الكشف التلقائي عما إذا كان حساب السك مملوكاً لبرنامج Token أو Token-2022.

إرسال الدفع

استخدم sendTransfer() لتحويل الرموز بين المحافظ. تتعامل الطريقة مع:

  • حل ATA: يشتق تلقائياً حسابات الرمز المرتبطة (ATAs) للمرسل والمستلم. إذا لم يكن ATA الخاص بالمستلم موجوداً، يتم إضافة التعليمات لإنشاء الحساب تلقائياً إلى نفس المعاملة.
  • تحويل الكسور العشرية: يقبل مبالغ الرموز ويحولها تلقائياً إلى وحدات أساسية بناءً على الكسور العشرية للسك (مثلاً 0.25 رمز -> 250000 وحدة أساسية، إذا كان السك يحتوي على 6 كسور عشرية)
  • بناء المعاملة: ينشئ ويوقع ويرسل المعاملة مع تعليمات التحويل

التحقق من الأرصدة

بعد اكتمال التحويل، استخدم fetchBalance() للتحقق من أرصدة الرموز. تأخذ هذه الطريقة عنوان المحفظة وتشتق تلقائياً حساب الرموز المرتبط المقابل لجلب الرصيد.

Basic Payment
const client = createClient({
endpoint: "http://localhost:8899",
websocketEndpoint: "ws://localhost:8900",
commitment: "confirmed"
});
const splToken = client.splToken({
mint: mint.address,
tokenProgram: "auto"
});

عرض توضيحي

Demo
// Generate keypairs for sender and recipient
const 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 tokens
const { client, mint } = await demoSetup(sender, recipient);
console.log("\nMint Address:", mint.address);
// =============================================================================
// Basic Token Payment Demo
// =============================================================================
// Create splToken helper for this mint using @solana/client
const 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 helper
const 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
// =============================================================================
Console
Click to execute the code.

Is this page helpful?

جدول المحتويات

تعديل الصفحة

تدار بواسطة

© 2026 مؤسسة سولانا.
جميع الحقوق محفوظة.
تواصل معنا