سحب الأموال

يحرق رصيد الرموز المميزة للمستخدم على جانب القناة في برنامج السحب للإشارة إلى عملية سحب معلّقة؛ يجب على المشغّل بعد ذلك استدعاء ReleaseFunds على برنامج الضمان لإتمام التسوية.

الحسابات

الحسابقابل للكتابةموقِّعالوصف
user✓مالك الرمز المميز الذي يبدأ عملية السحب
mint✓عنوان إصدار رمز SPL (المُستخدَم في الحرق)
token_account✓token account الخاص بالمستخدم على جانب القناة (المصدر)
token_programToken Program
associated_token_programAssociated Token Program

المعاملات

المعاملالنوعالوصف
amountu64كمية الرموز المميزة المراد سحبها، بأصغر وحدة للرمز
destinationOption<Pubkey>المحفظة الهدف على الشبكة الرئيسية؛ إذا كانت None، يُعيَّن افتراضيًا إلى محفظة الموقِّع

القيم المُعادة

يُعيد TransactionBuilder يمكن استخدامه لبناء المعاملة وإرسالها.

مثال

import { getWithdrawFundsInstruction } from "../private-channel-withdraw-program/clients/typescript/src/generated";
const withdrawIx = getWithdrawFundsInstruction({
user: userSigner,
mint: mintAddress,
tokenAccount: channelTokenAccount,
tokenProgram: TOKEN_PROGRAM_ID,
associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
amount: 1_000_000n,
destination: null // null = release to signer's Mainnet wallet
});

ملاحظات مهمة

  • هذا التعليمات موجود في برنامج السحب (J231K9UEpS4y4KAPwGc4gsMNCjKFRMYcQBcjVW7vBhVi devnet)، وليس في برنامج الضمان
  • حرق الرموز المميزة على جانب القناة لا يُفرج تلقائيًا عن الأموال على الشبكة الرئيسية؛ يجب على المشغّل بعد ذلك استدعاء ReleaseFunds على برنامج الضمان مع تقديم دليل إقصاء SMT صالح
  • يُرمى خطأ ZeroAmount إذا كانت amount تساوي 0
  • إذا كانت destination تساوي None، فإن استدعاء ReleaseFunds من قِبل المشغّل سيُفرج عن الأموال إلى محفظة الموقِّع

للاطلاع على مرجع رموز الأخطاء الكامل لكلا البرنامجين، راجع التعليمات -> رموز الأخطاء.

Is this page helpful?

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

تعديل الصفحة