مبادله ای مانند Uniswap برای برنامه توکن در blockchain Solana ، اجرای چندین منحنی سازنده بازار خودکار (AMM).
استقرار موجود
| شبکه | نسخه | آدرس برنامه |
| devnet ، testnet | 3. 0. 0 | swapsveciphmuatzqwzw7rjskjgcjhwu55qgu4u1szw |
| همه | 2. 0. 0 | swappa9laalfeli3a68m4djnlqgttickg6cnynwgac8 |
برنامه مبادله توکن توسط تیم سرم در SWAPPA9LAALFELI3A68M4DJNLQGTTICKG6CNYNWGAC8 به همه شبکه ها اعزام شد ، اما این امر به یک مالکیت از Hfotxfr1tm6kgmwd6j7yhvy1uwqsulugvlxkjqakn نیاز دارد.
برای Devnet و TestNet ، لطفاً از استقرار نگهداری شده در SwappeVeciphmuatzqwzw7rjskjgcjhwu55qgu4u1szw استفاده کنید ، و برای MainNet ، از هر پروژه AMM دیگری در Solana استفاده کنید. تقریباً همه اینها مبتنی بر مبادله توکن بود!
برای اطلاعات بیشتر توسعه دهنده ، مخزن برنامه را بررسی کنید.
نمای کلی
برنامه مبادله توکن اجازه می دهد تا تجارت ساده جفت های توکن بدون کتاب سفارش محدود متمرکز باشد. این برنامه از یک فرمول ریاضی به نام "منحنی" برای محاسبه قیمت همه معاملات استفاده می کند. منحنی ها با هدف تقلید از پویایی بازار عادی: به عنوان مثال ، به عنوان معامله گران مقدار زیادی از یک نوع توکن را خریداری می کنند ، ارزش نوع دیگر توکن بالا می رود.
سپرده گذاران در استخر نقدینگی را برای جفت توکن فراهم می کنند. این نقدینگی اجرای تجارت را با قیمت نقطه ای امکان پذیر می کند. در ازای نقدینگی آنها ، سپرده گذاران نشانه های استخر را دریافت می کنند و نماینده مالکیت کسری آنها در استخر هستند. در طول هر تجارت ، یک برنامه بخشی از نشانه ورودی را به عنوان هزینه خودداری می کند. این هزینه با ذخیره سازی در استخر ، ارزش نشانه های استخر را افزایش می دهد.
این برنامه به شدت از Uniswap و Balancer الهام گرفته شده است. اطلاعات بیشتر در مستندات عالی و سفیدپوستان آنها در دسترس است.
زمینه
مدل برنامه نویسی Solana و تعاریف اصطلاحات Solana که در این سند استفاده شده است در:
منبع
منبع برنامه Swap Token در GitHub موجود است.
رابط
اتصال JavaScript در دسترس است که از بارگیری برنامه مبادله توکن روی زنجیره ای و دستورالعمل های صدور پشتیبانی می کند.
به عنوان مثال رابط کاربری ساخته شده و نگهداری شده توسط تیم سرم در اینجا موجود است
نمای کلی عملیاتی
در زیر دستورالعمل های موجود در برنامه مبادله توکن توضیح داده شده است. توجه داشته باشید که هر دستورالعمل دارای یک مثال کد ساده است که می تواند در تست های پایان به پایان یافت.
ایجاد یک استخر مبادله توکن جدید
ایجاد یک استخر مدل های حساب، دستورالعمل و مجوز در Solana را به نمایش می گذارد که می تواند در مقایسه با سایر بلاک چین ها بسیار متفاوت باشد.
راه اندازی یک استخر بین دو نوع نشانه که برای سادگی آن را "A" و "B" می نامیم، به حساب های زیر نیاز دارد:
- حساب دولت استخر خالی
- قدرت استخر
- رمز حساب A
- حساب توکن B
- نعناع ژتون استخر
- حساب کارمزد نماد استخر
- حساب گیرنده رمز استخر
- برنامه توکن
حساب حالت استخر فقط باید با استفاده از system_instruction::create_account با اندازه صحیح و لامپورت های کافی برای اجاره رایگان ایجاد شود.
Pool Authority یک آدرس مشتق شده از برنامه است که می تواند دستورالعمل ها را برای برنامه های دیگر "امضا" کند. این برای برنامه تعویض توکن برای برش توکن های استخر و انتقال توکن ها از حساب های توکن A و B لازم است.
حساب های توکن A/B، Pool Token Mint و Pool Token حساب ها همگی باید ایجاد شوند (با استفاده از system_instruction::create_account ) و مقداردهی اولیه شوند (با استفاده از spl_token::instruction::initialize_mint یا spl_token::instruction::initialize_account ). حساب های توکن A و B باید با توکن ها تأمین مالی شوند و مالک آن ها به مرجع مبادله تنظیم شود، و ضرابخانه نیز باید متعلق به مرجع مبادله باشد.
هنگامی که همه این حساب ها ایجاد شدند، دستورالعمل مقداردهی اولیه Token Swap همه چیز را به درستی تنظیم می کند و امکان تجارت فوری را فراهم می کند. توجه داشته باشید که نیازی نیست که حساب حالت استخر در مقدار اولیه امضاکننده باشد، بنابراین مهم است که دستورالعمل مقداردهی اولیه را در همان تراکنش با system_instruction::create_account آن انجام دهید.
مبادله کردن
هنگامی که یک استخر ایجاد می شود، کاربران می توانند بلافاصله با استفاده از دستورالعمل swap تجارت روی آن را آغاز کنند. دستورالعمل swap توکن ها را از حساب مبدأ کاربر به حساب رمز مبادله منتقل می کند و سپس توکن ها را از حساب نشانه مقصد خود به حساب توکن مقصد کاربر منتقل می کند.
از آنجایی که برنامه های Solana نیاز دارند که همه حساب ها در دستورالعمل اعلام شوند، کاربران باید تمام اطلاعات حساب را از حساب وضعیت استخر جمع آوری کنند: حساب های توکن A و B، Pool Token Mint و حساب کارمزد.
علاوه بر این، کاربر باید اجازه دهد تا توکن ها از حساب توکن منبع خود منتقل شوند. بهترین روش این است که spl_token::instruction:: یک مقدار دقیق را برای یک Keypair دور ریختنی جدید تأیید کنید و سپس از آن Keypair جدید تراکنش مبادله را امضا کنید. این مقدار توکن هایی را که می توان از حساب کاربر توسط برنامه برداشت کرد، محدود می کند.
سپرده گذاری نقدینگی
برای اجازه دادن به هرگونه معامله، استخر نیاز به نقدینگی ارائه شده از خارج دارد. با استفاده از دستورالعمل های deposit_all_token_types یا deposit_single_token_type_exact_amount_in، هر کسی می تواند نقدینگی را برای معامله دیگران فراهم کند و در ازای آن، سپرده گذاران یک توکن استخر دریافت می کنند که نشان دهنده مالکیت کسری همه توکن های A و B در استخر است.
علاوه بر این، کاربر باید نماینده ای را برای انتقال توکن ها از حساب های توکن A و B خود تأیید کند. این مقدار توکن هایی را که می توان از حساب کاربر توسط برنامه برداشت کرد، محدود می کند.
برداشت نقدینگی
در هر زمانی، دارندگان توکن استخر می توانند توکن های استخر خود را در ازای توکن های A و B که با نرخ «عادلانه» فعلی که توسط منحنی تعیین می شود، بازگردانده شوند، بازخرید کنند. در دستورالعمل های remove_all_token_types و remove_single_token_type_exact_amount_out، توکن های استخر رایت می شوند و توکن های A و B به حساب های کاربر منتقل می شوند.
علاوه بر این، کاربر باید نماینده ای را برای انتقال توکن ها از حساب توکن استخر خود تأیید کند. این مقدار توکن هایی را که می توان از حساب کاربر توسط برنامه برداشت کرد، محدود می کند.
منحنی ها
برنامه Swap Token برای هر منحنی معاملاتی احتمالی که ویژگی CurveCalculator را اجرا می کند، کاملاً قابل تنظیم است. اگر می خواهید یک بازارساز خودکار جدید را پیاده سازی کنید، ممکن است به آسانی برنامه تعویض توکن و پیاده سازی یک منحنی جدید باشد. منحنی های زیر همگی خارج از جعبه برای مرجع ارائه شده اند.
محصول ثابت
منحنی محصول ثابت، منحنی سبک Uniswap و Balancer شناخته شده است که یک تغییر ناپذیر را در همه مبادله ها حفظ می کند، که به صورت حاصل ضرب مقدار توکن A و نشانه B در مبادله بیان می شود.
اگر معامله گر بخواهد توکن A را برای مقداری توکن B قرار دهد، محاسبه برای توکن B به صورت زیر می شود:
به عنوان مثال، اگر سوآپ دارای 100 توکن A و 5000 توکن B باشد و معامله گری بخواهد 10 توکن A قرار دهد، می توانیم برای غیرمتغیر و سپس B_out را حل کنیم:
بازار رمزارزها...
ما را در سایت بازار رمزارزها دنبال می کنید
برچسب : نویسنده : محمود کیانوش بازدید : 52 تاريخ : شنبه 26 فروردين 1402 ساعت: 17:04