تدعم برامج الرموز في سولانا التفويض—منح حساب آخر إذنًا لتحويل الرموز من حساب الرموز الخاص بك حتى حد معين. يتيح ذلك حالات استخدام مثل المدفوعات الآلية وخدمات الضمان ومعالجة المدفوعات من طرف ثالث دون التخلي عن حيازة أموالك.
كيف يعمل التفويض
عندما توافق على مفوض، فإنك تمنح حسابًا معينًا صلاحية تحويل الرموز نيابة عنك:
- يحتفظ المالك بالحيازة: لا تزال تمتلك الرموز ويمكنك التحويل أو الإلغاء في أي وقت
- إنفاق محدود: يمكن للمفوض فقط تحويل ما يصل إلى المبلغ المعتمد
- مفوض واحد لكل حساب: يمكن أن يكون لكل حساب رموز مفوض نشط واحد فقط
- الموافقة الجديدة تحل محل القديمة: الموافقة على مفوض جديد تلغي تلقائيًا المفوض السابق
التفويض غير احتجازي. يمكن للمفوض إنفاق الرموز حتى الحد المسموح، لكن لا يمكنه الوصول إلى الحساب أو استنزافه بما يتجاوز المبلغ المعتمد. يمكن للمالك الإلغاء في أي وقت.
حالات الاستخدام التجارية
| حالة الاستخدام | كيف يساعد التفويض |
|---|---|
| معالجات الدفع | يمنح التاجر المعالج إذنًا لتسوية المعاملات |
| كشوف الرواتب الآلية | تعتمد الخزانة خدمة كشوف الرواتب لصرف الرواتب |
| خدمات الضمان | يفوض المشتري وكيل الضمان للإفراج المشروط |
| منصات التداول | يوافق المستخدم على تنفيذ البورصة للصفقات نيابة عنه |
| إصدار البطاقات | يوافق المستخدم على مصدر البطاقة لخصم المشتريات من حساب الرموز الخاص به |
الموافقة على مفوض
منح حساب آخر إذنًا لإنفاق الرموز من حسابك:
import { getApproveCheckedInstruction } from "@solana-program/token";// Approve delegate to spend up to 1,000 USDC (6 decimals)const approveInstruction = getApproveCheckedInstruction({source: tokenAccountAddress, // Your token accountmint: usdcMintAddress, // USDC mintdelegate: delegateAddress, // Account receiving permissionowner: ownerKeypair, // You (must sign)amount: 1_000_000_000n, // 1,000 USDC in base unitsdecimals: 6});
المعاملات:
source: حساب الرمز الذي يمنح الإذنdelegate: الحساب الذي سيحصل على إذن الإنفاقowner: المالك الحالي لحساب الرمز (يجب أن يوقع المعاملة)amount: الحد الأقصى من الرموز التي يمكن للمفوض تحويلهاdecimals: الكسور العشرية للرمز للتحقق (يمنع أخطاء الكسور العشرية)
إلغاء تفويض المفوض
إزالة جميع أذونات الإنفاق من المفوض الحالي:
import { getRevokeInstruction } from "@solana-program/token";const revokeInstruction = getRevokeInstruction({source: tokenAccountAddress, // Your token accountowner: ownerKeypair // You (must sign)});
يزيل الإلغاء جميع أذونات المفوض—لا يوجد إلغاء جزئي. إذا كنت بحاجة إلى تقليل الحد، وافق على نفس المفوض بمبلغ أقل.
التحقق من حالة التفويض
الاستعلام عن حساب رمز لمعرفة المفوض الحالي والرصيد المتبقي:
import { fetchToken } from "@solana-program/token";const tokenAccount = await fetchToken(rpc, tokenAccountAddress);if (tokenAccount.data.delegate) {console.log("Delegate:", tokenAccount.data.delegate);console.log("Remaining allowance:", tokenAccount.data.delegatedAmount);} else {console.log("No delegate set");}
التحويل كمفوض
عند العمل كمفوض، استخدم تحويلاً قياسيًا ولكن وقع باستخدام keypair المفوض بدلاً من المالك:
import { getTransferCheckedInstruction } from "@solana-program/token";const transferInstruction = getTransferCheckedInstruction({source: ownerTokenAccount, // The account you have permission to spend frommint: usdcMintAddress,destination: recipientTokenAccount,authority: delegateKeypair, // You (the delegate) sign, not the owneramount: 100_000_000n, // 100 USDCdecimals: 6});
سينجح التحويل إذا:
- كان لدى الحساب المصدر رصيد كافٍ
- وقع المفوض على المعاملة
كل عملية تحويل تقلل من الرصيد المتبقي المسموح به. عندما يصل الرصيد المسموح به إلى الصفر، لن يتمكن المفوض من تحويل الرموز بعد الآن.
اعتبارات الأمان
لأصحاب الحسابات:
- وافق فقط على المفوضين الموثوقين
- حدد الحد الأدنى الضروري لحد الإنفاق
- ألغِ التفويضات عندما لا تعود هناك حاجة إليها
- راقب حساباتك بحثًا عن عمليات تحويل غير متوقعة
لمقدمي الخدمات (المفوضين):
- وضح بشكل واضح حد الإنفاق المطلوب للمستخدمين
- نفذ إدارة مفاتيح مناسبة لحساب المفوض الخاص بك
- تتبع استهلاك الرصيد المسموح به لطلب إعادة الموافقة قبل نفاد الحدود
التفويض مقابل الحفظ
| الجانب | التفويض | الحفظ الكامل |
|---|---|---|
| ملكية الرموز | يحتفظ بها المستخدم | ينقلها المستخدم إلى الحافظ |
| التحكم في الإنفاق | محدود بالمبلغ المعتمد | وصول كامل إلى الأموال المحولة |
| الإلغاء | فوري، من قبل المالك | يتطلب تعاون الحافظ |
| التعرض للمخاطر | محدود بالمبلغ المعتمد | الرصيد بالكامل |
| الثقة المطلوبة | محدودة | عالية |
يوفر التفويض حلاً وسطًا—يتيح المدفوعات الآلية مع الحد من التعرض للمخاطر بالمبلغ المعتمد.
موارد ذات صلة
- الموافقة على المفوض — تفاصيل تقنية حول تعليمة الموافقة
Is this page helpful?