پرش به مطلب اصلی

حافظ بازارساز

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

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

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

قرارداد هوشمند حافظ بازارساز

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

  1. اجراکننده: این نقش به عنوان مجری اصلی عملیات معاملاتی روی زنجیره عمل می‌کند. اجراکننده قادر است معاملات را با استفاده از دارایی‌های موجود در قرارداد هوشمند انجام دهد، اما برای حفظ امنیت و جلوگیری از سوءاستفاده، هیچگونه دسترسی به برداشت دارایی‌ها از قرارداد ندارد. وظیفه اصلی این نقش، اجرای صحیح و به‌موقع معاملات با رعایت دقیق قوانین و شرایط از پیش تعیین شده است.

  2. مالک: این نقش به عنوان نهاد اصلی مسئولیت‌دار، کنترل کامل بر دارایی‌های موجود در قرارداد هوشمند را داراست. مالک می‌تواند دارایی‌ها را به قرارداد واریز کند و در صورت لزوم، تنها شخصی است که مجاز به برداشت این دارایی‌ها از قرارداد است. این ساختار باعث می‌شود تا مالک بتواند از امنیت و کنترل کامل بر دارایی‌ها اطمینان حاصل کند، در حالی که اجراکننده تنها به اجرای عملیات معاملاتی محدود شده است.

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

نصب قرارداد هوشمند

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

git clone [email protected]:zarbanio/market-maker-keeper.git && cd market-maker-keeper/dextrader 

برای استقرار قرارداد هوشمند روی زنجیره به یک حساب آربیتروم نیاز خواهیم داشت. با اجرای دستور زیر یک کلید خصوصی بسازید و آن را در متغیر محیطی PRIVATE_KEY ذخیره کنید.

echo "export PRIVATE_KEY=$(openssl rand -hex 32)" >> ~/.zshrc
source ~/.zshrc

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

env | grep PRIVATE_KEY
خطر

کلید خصوصی خود را به هیچ عنوان با دیگران به اشتراک نگذارید. این کلید دسترسی کامل به حساب آربیتروم شما را فراهم می‌کند و می‌تواند به سرقت دارایی شما منجر شود.

با اجرای دستور زیر وابستگی‌های پروژه را نصب کنید.

npm install

در این مرحله با اجرای دستور زیر در یک تب جداگانه از ترمینال، شبکه آربیتروم را روی یک نود محلی اجرا کنید.

npx hardhat node --fork https://1rpc.io/arb

حالا می‌توانید تست‌های پروژه را اجرا کنید.

npx hardhat test --network localhost

خروجی:

DexTrader
Deployment
✔ Should set executor correctly (257ms)
✔ Should set swapRouter correctly
✔ Should set owner correctly
✔ Should update executor correctly
✔ Should update swapRouter correctly
Withdrawals
✔ Should withdraw ERC20 tokens (251ms)
Create Pool and Position and Trade
* Should create pool
Dai is Token0
* Should create position
* Should trade tokens correctly
DexTrader balance after trade: 52809598758326068841 ZAR
(14404ms)
✔ should only executor trade


8 passing (20s)

برای تست فرایند استقرار قراردادهای هوشممد ابتدا آن‌ را روی نود محلی استقرار دهید.

npx hardhat run scripts/deploy.js --network localhost

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

npx hardhat run scripts/account.js --network arb

خروجی:

Deploying contracts with the account: 0xCe7ec4A2A8c6d0cC98ae9f36ccFEDEeD87ec6ab9
Account balance: 0.0004923793 ETH

Account Address QR Code:

▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█ ▄▄▄▄▄ █▀█ █▄█▀▀ ▄▀▄▀█ ▄▄▄▄▄ █
█ █ █ █▀▀▀█ ▀ ▀ ▀██▄█ █ █ █
█ █▄▄▄█ █▀ █▀▀▀█▀█▀▄▄ █ █▄▄▄█ █
█▄▄▄▄▄▄▄█▄▀ ▀▄█ ▀▄█ █▄█▄▄▄▄▄▄▄█
█▄▄▄▄ ▀▄▄▄▄▀▄▀▄▀█▄▄▄▀▀ ▀ ▀ █ ▀█
█ ▀ ▀▀▄█ █▄█▀▄▄ ▀▄▄██▄▀█▄▄██▀█
██▀▄█ ▀▄▀█ ▄█▄▄▄ ▀▄▄ ▄▄▀▄▀ ▄ ██
██▄▄ ▄█▄█▀▀█ ▄█▀ ▄▀█▄▀▀▄ ▄▀██
█▀▀ ▀▄▄▄ ▄██▄▀▄▄▄▀▄▀ ▄▀▀▀ ▀▄▄ █
█ █▀ ▄▀▄▄▄█▀▄█ ▄▄▀▄▀██▀ █▀██
█▄██▄▄█▄█▀▀██▄ ▀ ▀▄▀█ ▄▄▄ █▄▄▀█
█ ▄▄▄▄▄ █▄▀ ▄█▀ ▀▄▄▀ █▄█ ▄▄ ▀█
█ █ █ █ ▀▄▀▀█ ▀█▀▀ ▄ ▄ ▄ █
█ █▄▄▄█ █ ▀▄█▀ ▄ ▄▀█▀▀▄▀ ▀█ ██
█▄▄▄▄▄▄▄█▄▄▄█▄█▄▄███▄█▄██▄█████


Caution!
To fund this account, transfer ETH to the following address on the Arbitrum network:

0xCe7ec4A2A8c6d0cC98ae9f36ccFEDEeD87ec6ab9

Scan the QR code above with your wallet to send ETH.
Ensure you are connected to the Arbitrum network when making the transfer.
Do not send ETH to this address on any other network.

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

npx hardhat run scripts/deploy.js --network arb
نکته

آدرس قرارداد هوشمند پس از استقرار نمایش داده می‌شود. این آدرس را برای استقرار ربات بازارساز نگهداری کنید.

نصب و پیکربندی ربات بازارساز در هم‌روش

برای نصب و پیکربندی حافظ بازارساز در هم‌روش، مراحل زیر را دنبال کنید:

۱. ابتدا وارد حساب کاربری خود در هم‌روش شوید. در صورتی که حساب کاربری ندارید، از اینجا ثبت‌نام کنید.

۲. پس از ورود به حساب کاربری، گزینه‌ی ساخت اپ جدید را انتخاب کنید. سپس گزینه‌ی داکر ایمیج را انتخاب کنید.

۳. در صفحه‌ی باز شده آدرس و تگ ایمیج حافظ بازارساز را وارد کنید. برای پیدا کردن آخرین تگ‌های حافظ بازارساز می‌توانید به اینجا مراجعه کنید.

۴. در این مرحله باید اپ خود را تنظیم کنیم. به دلخواه خود یک نام برای اپ وارد کنید و پورت آن را ۸۰۸۰ قرار دهید.

۵. در این مرحله باید متغیرهای محیطی را تنظیم کنیم. برای این کار مطابق شکل روی تب Environment Variables کلیک کنید و متغیرهای محیطی زیر را وارد کنید. تنها متغیر محلی ما کلید خصوصی است که در مرحله‌ی نصب قرارداد هوشمند ساخته شد. این کلید را در متغیر محیطی PRIVATE_KEY وارد کنید.

۶. در این مرحله باید تنظیمات ربات را وارد کنیم. برای این کار مطابق شکل روی تب Custom Config کلیک کنید و تنظیمات زیر را وارد کنید.

مقادیر ذکر شده باید با مقادیر متناسب با شرایط شما جایگزین شوند.

configmap:
enabled: true
path: /etc/app/
value:
config.yaml: |

Chain:
Url: 'your arbitrum chain websocket url'
Nobitex:
Key: 'your nobitex api key'
Indexer:
StartBlock: 'your dex trader contract deployment block'
Contracts:
DexTrader: 'your dex trader contract address'
Postgres:
Host: 'your postgres host'
Port: 'your postgres port'
User: 'your postgres user'
Password: 'your postgres password'
DB: 'your postgres db'

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

۸. در نهایت پس از استقرار اپ، می‌توانید از طریق کنسول هم‌روش لاگ‌های آن را مشاهده کنید.

نکته

برای آن که ربات حافظ بازارساز به درستی کار کند نیاز است که موجودی کافی برای اجرای آن در حساب کاربری شما در صرافی و در قرارداد هوشمند موجود باشد.