صرافی ژوپیتر چگونه کار میکند

دسامبر 16, 2024 31 mins read

ژوپیتر (Jupiter) یک پروتکل تجمیع‌کننده نقدینگی در اکوسیستم سولانا (Solana) است که به کاربران و توسعه‌دهندگان کمک می‌کند تا بهترین مسیر و قیمت را برای مبادلات توکن‌های خود پیدا کنند. این پروتکل از قراردادهای هوشمند پیشرفته، APIهای قدرتمند و ابزارهای توسعه‌دهنده مانند Jupiter Core Library و React-Hook بهره می‌گیرد تا مبادلات سریع، کارآمد و با حداقل لغزش (Slippage) انجام شوند.

صرافی ژوپیتر (Jupiter Exchange) یک پروژه در اکوسیستم Solana است که به‌عنوان یک پروتکل تجمیع‌کننده نقدینگی (Liquidity Aggregator) عمل می‌کند. این صرافی به کاربران و توسعه‌دهندگان کمک می‌کند تا بهترین قیمت‌ها و کمترین لغزش (Slippage) را برای معاملات توکن‌های مختلف در اکوسیستم سولانا پیدا کنند.

ویژگی‌ها و عملکرد اصلی Jupiter:

  1. تجمیع نقدینگی (Liquidity Aggregation): ژوپیتر نقدینگی را از صرافی‌های غیرمتمرکز (DEX) مختلف و پروتکل‌های دیفای (DeFi) جمع‌آوری می‌کند و بهترین مسیر برای انجام معاملات را انتخاب می‌کند.
  2. مسیریابی هوشمند (Smart Routing): با استفاده از الگوریتم‌های مسیریابی، ژوپیتر می‌تواند یک معامله را از طریق چندین مسیر انجام دهد تا بهترین قیمت ممکن به‌دست آید.
  3. پشتیبانی از تعداد زیادی جفت ارز: این پلتفرم امکان معامله میان تعداد زیادی از جفت‌های توکنی موجود در شبکه سولانا را فراهم می‌کند.
  4. SDK و API برای توسعه‌دهندگان: ژوپیتر ابزارهایی برای ادغام مستقیم در اپلیکیشن‌های دیفای و کیف‌پول‌ها فراهم می‌کند. این امر به توسعه‌دهندگان کمک می‌کند تا عملکردهای ژوپیتر را مستقیماً در پروژه‌های خود پیاده‌سازی کنند.
  5. کاهش لغزش (Slippage): ژوپیتر با استفاده از تجمیع نقدینگی و انتخاب بهترین مسیر، لغزش قیمت را کاهش می‌دهد، به‌خصوص برای معاملات بزرگ.
  6. تعامل با دیگر DEX‌ها و پروتکل‌ها: ژوپیتر با صرافی‌های مطرحی مثل Serum، Raydium، و Orca در اکوسیستم سولانا تعامل دارد.

کاربردهای Jupiter:

  • معامله‌گران خُرد: برای پیدا کردن بهترین نرخ در معاملات توکن‌های مختلف.
  • توسعه‌دهندگان: می‌توانند از SDK و API ژوپیتر برای ارائه قابلیت‌های تجمیع معاملات در اپلیکیشن‌های خود استفاده کنند.
  • پروتکل‌های دیفای: پروژه‌ها می‌توانند از Jupiter برای ارائه نقدینگی بیشتر و تجربه کاربری بهتر به کاربران خود استفاده کنند.

نحوه استفاده از Jupiter:

  1. استفاده به‌عنوان یک کاربر: کاربران می‌توانند از طریق رابط کاربری وب ژوپیتر معاملات خود را انجام دهند. (آدرس وب معمولاً در اسناد پروژه یا گیت‌هاب ذکر شده است).
  2. استفاده به‌عنوان توسعه‌دهنده: توسعه‌دهندگان می‌توانند از SDK و API ژوپیتر استفاده کنند تا قابلیت‌های آن را در پروژه‌های خود ادغام کنند. مستندات کامل در مخزن گیت‌هاب موجود است.

قراردادهای هوشمند (Contracts):

این آدرس‌ها مربوط به قراردادهای هوشمند اصلی ژوپیتر هستند:

  1. Jupiter Swap (JUP6Lkb...): این قرارداد برای انجام مبادلات (Swaps) توکن‌ها در شبکه سولانا استفاده می‌شود.
  2. Jupiter Limit Order (jupoNjA...): برای تنظیم سفارش‌های محدود (Limit Orders) استفاده می‌شود، یعنی کاربر می‌تواند مشخص کند که معامله فقط زمانی انجام شود که قیمت توکن به مقدار معینی برسد.
  3. Jupiter DCA (DCA265...): برای استراتژی‌های سرمایه‌گذاری DCA (Dollar-Cost Averaging) طراحی شده است. این استراتژی به کاربران اجازه می‌دهد تا توکن‌ها را در فواصل زمانی مشخص و با مبالغ ثابت خریداری کنند.

SDKها و APIها:

Jupiter API:

APIهای ژوپیتر نسخه‌های مختلفی دارند که هر یک ویژگی‌های به‌روزی را ارائه می‌دهند:

  • v6 API:
    • از قرارداد JUP6Lkb... استفاده می‌کند.
    • دارای نسخه‌های تراکنش و جداول آدرس (Address Lookup Tables) است.
    • همه مسیرهای مبادله فقط با یک تراکنش انجام می‌شوند.
    • نیازی به حساب‌های میانی (Intermediate Token Accounts) و حساب‌های سفارش باز (Open Order Accounts) نیست.
  • v4 API:
    • از قرارداد JUP4Fb2... استفاده می‌کند.
    • مانند نسخه v6، از نسخه‌های تراکنش و جداول آدرس استفاده می‌کند.
  • v3 API:
    • از قرارداد JUP4Fb2... استفاده می‌کند.
    • از تراکنش‌های Legacy استفاده می‌کند، به همین دلیل برخی از مسیرهای مبادله ممکن است تا 3 تراکنش نیاز داشته باشند.

Jupiter Core Library (کتابخانه اصلی):

این کتابخانه برای توسعه‌دهندگان فراهم شده تا بتوانند مستقیماً از قابلیت‌های پروتکل ژوپیتر در برنامه‌های خود استفاده کنند. نسخه‌های مختلف کتابخانه به قراردادهای مختلف متصل هستند:

  • 4.x.x: با قرارداد JUP4Fb2... کار می‌کند و از تراکنش‌های نسخه‌دار استفاده می‌کند.
  • 3.x.x: با قرارداد JUP4Fb2... کار می‌کند.
  • 2.x.x: با قرارداد JUP3c2... کار می‌کند.
  • 1.x.x: با قرارداد JUP2jxv... کار می‌کند.

این نسخه‌ها در قالب پکیج‌های NPM در دسترس هستند و می‌توانند در پروژه‌های جاوااسکریپتی یا تایپ‌اسکریپتی استفاده شوند.

Jupiter React-Hook NPM:

این پکیج به توسعه‌دهندگان React کمک می‌کند تا تعامل با پروتکل ژوپیتر را با استفاده از هوک‌های React ساده‌تر کنند. به عنوان مثال، شما می‌توانید به‌راحتی داده‌های مربوط به قیمت، مسیر مبادله، و انجام معاملات را مستقیماً در یک پروژه React دریافت کنید.

راهنمای شروع توسعه با ژوپیتر:

1. نصب کتابخانه:

ابتدا باید کتابخانه اصلی ژوپیتر را نصب کنید:

npm install @jup-ag/core

2. ایجاد ارتباط با پروتکل:

شما نیاز دارید یک اتصال به شبکه سولانا برقرار کنید. می‌توانید از پکیج @solana/web3.js استفاده کنید:

import { Connection, PublicKey } from '@solana/web3.js';
import { Jupiter } from '@jup-ag/core';
const connection = new Connection('https://api.mainnet-beta.solana.com');
const jupiter = await Jupiter.load({ connection });

3. دریافت بهترین مسیر معامله:

برای یافتن بهترین مسیر مبادله، از متد computeRoutes استفاده کنید:

const routes = await jupiter.computeRoutes({
 inputMint: new PublicKey('...'), // آدرس توکن ورودی
 outputMint: new PublicKey('...'), // آدرس توکن خروجی
 amount: 1000000, // مقدار توکن ورودی (در لامپورت)
 slippage: 1, // لغزش مجاز به درصد
});
console.log('Best route:', routes.routesInfos[0]);

4. انجام معامله:

پس از دریافت بهترین مسیر، می‌توانید تراکنش را اجرا کنید:

const { execute } = await jupiter.exchange({ route: routes.routesInfos[0], }); 
const result = await execute(); console.log('Transaction result:', result)

برای استفاده از React-Hook:

ابتدا هوک را نصب کنید:

npm install @jup-ag/react-hook

سپس می‌توانید از هوک‌ها مانند زیر استفاده کنید:

import { useJupiter } from '@jup-ag/react-hook';
const { exchange, loading } = useJupiter({
 inputMint: '...', 
 outputMint: '...', 
 amount: 1000000, 
 slippage: 1,
});
Image NewsLetter
Icon primary
Newsletter

در خبرنامه آرتا رسانه عضو شوید

با آخرین اخبار و تخفیف های ما آگاه شوید