بازگشت به پروژه‌ها

پروژه DEX و Web3 · فرانت‌اند و قرارداد هوشمند · ۱۴۰۱

پلتفرم مبادله رمزارز و ارتباط چندشبکه‌ای

رابط وب برای مبادله رمزارز با انتخاب توکن و شبکه مبدأ و مقصد، اتصال کیف پول، برآورد مقدار دریافتی و پیگیری تراکنش؛ توسعه فرانت‌اند با React و قراردادهای هوشمند با Solidity.

توسعه‌دهنده فرانت‌اند و قراردادهای هوشمند Solidity

01 / شرح پروژه

مسئله چه بود؟

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

نقش من در پروژه

در این پروژه، مسئول توسعه فرانت‌اند و قراردادهای هوشمند Solidity بودم. رابط React، اتصال کیف پول، انتخاب شبکه و دارایی، دریافت برآورد مبادله و نمایش وضعیت عملیات از بخش‌های کار بودند. ارتباط قرارداد با رابط از طریق ethers.js و Web3 انجام می‌شود و جریان مبادله، سرویس‌های API را نیز در کنار عملیات روی زنجیره به هم متصل می‌کند. سال پروژه بر اساس نسخه سورس ارائه‌شده، ۱۴۰۱ است.

انتخاب دارایی و مسیر مبادله

توکن و شبکه مبدأ و مقصد

انتخاب دارایی ارسال و دریافت، همراه با شبکه هر طرف و آدرس دریافت‌کننده. رابط، اطلاعات توکن و شناسه شبکه را به درخواست تحلیل مبادله منتقل می‌کند.

موجودی و مقدار ورودی

نمایش موجودی کیف پول و امکان انتخاب حداکثر مقدار موجود؛ ورود مقدار ارسالی و مدیریت نمایش دقت اعداد در رابط، با استفاده از ابزارهای پردازش مقادیر رمزارزی.

برآورد و تازه‌سازی

دریافت مقدار برآوردی دریافتی از سرویس تحلیل و نمایش آن پیش از ادامه مبادله. رابط، تازه‌سازی دستی و کنترل زمان تازه‌سازی اطلاعات را نیز در اختیار کاربر قرار می‌دهد.

کیف پول و هماهنگی شبکه

اتصال کیف پول

اتصال MetaMask و WalletConnect، شناسایی حساب و نمایش وضعیت اتصال؛ با یک لایه مشترک برای استفاده از کیف پول در اجزای برنامه.

تغییر و افزودن شبکه

درخواست تغییر شبکه کیف پول متناسب با انتخاب کاربر و پشتیبانی از اطلاعات اتصال شبکه. تغییر حساب، تغییر شبکه و قطع اتصال نیز در منطق کیف پول مدیریت می‌شوند.

امضای درخواست‌ها

گرفتن امضای پیام از کیف پول و همراه‌کردن آن با آدرس حساب در درخواست ایجاد مبادله، تأیید تراکنش و دریافت سابقه؛ برای اتصال درخواست سرویس به حساب کیف پول.

پرداخت روی زنجیره و تأیید مبادله

جریان پیاده‌شده، رابط کاربری، API و تراکنش شبکه را در مراحل جدا به هم متصل می‌کند.

ایجاد درخواست مبادله

ارسال توکن‌ها، شبکه‌ها، مقدار و اطلاعات حساب به سرویس ایجاد مبادله؛ دریافت اطلاعات پرداخت و استفاده از آن برای مرحله تراکنش.

دارایی بومی و توکن

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

قرارداد Solidity و تأیید نتیجه

نقش من شامل توسعه قراردادهای هوشمند Solidity بود. در رابط قرارداد ارائه‌شده، توابع پرداخت و انتقال دیده می‌شوند؛ پس از ارسال، هش تراکنش به سرویس تأیید منتقل و نتیجه در برنامه نمایش داده می‌شود.

پیگیری و تجربه کاربر

سابقه مبادلات

دریافت فهرست تراکنش‌های مرتبط با کیف پول و نمایش آن در پنجره سابقه؛ برای مرور عملیات قبلی بدون خروج از مسیر مبادله.

نتیجه و کد پیگیری

نمایش پیام نتیجه و کد پیگیری مبادله، همراه با امکان کپی کد؛ برای دسترسی دوباره به شناسه عملیات و پیگیری آن.

وضعیت انتظار و خطا

نمایش حالت انتظار هنگام اجرای مراحل و پیام‌هایی مانند موجودی ناکافی، رد تغییر شبکه یا خطای پرداخت. کنترل دسترسی به دکمه مبادله بر اساس کامل‌بودن انتخاب‌ها و وجود برآورد انجام می‌شود.