Sui.

Допис

Діліться своїми знаннями.

Vens.sui.
Apr 29, 2025
Питання та відповіді експертів

Бот AMM в екосистемі Sui

Які ключові особливості та функціональні можливості ботів AMM в екосистемі Sui? Як вони покращують традиційні торгові механізми та які переваги вони пропонують користувачам, які користуються протоколами DeFi в мережі Sui?

Чи потрібно мені будувати його або я можу використовувати Turbos Finance, наприклад

  • Sui
5
2
Поділитися
Коментарі
.

Відповіді

2
MiniBob.
Apr 29 2025, 08:36

Якщо ви шукаєте швидкий та ефективний спосіб взаємодії з функціями AMM в екосистемі Sui, вам не обов'язково створювати власного бота. Такі платформи, як Turbos Finance, вже пропонують розширені функції AMM, включаючи автоматизовану торгівлю та забезпечення ліквідності, які призначені для покращення досвіду користувачів. Використання існуючих рішень, таких як Turbos Finance, дозволяє скористатися оптимізованими та перевіреними інструментами без складності розробки.

Але мій найулюбленіший - це https://github.com/OmniBTC/Sui-AMM-swap

cmd для тестів

$ issue XBTC and USDT test coins
XBTC="0x985c26f5edba256380648d4ad84b202094a4ade3::coins::XBTC"
USDT="0x985c26f5edba256380648d4ad84b202094a4ade3::coins::USDT"
SUI="0x2::sui::SUI"

$ sui client publish --gas-budget 10000
package=0xc6f8ce30d96bb9b728e000be94e25cab1a6011d1
global=0x28ae932ee07d4a0881e4bd24f630fe7b0d18a332

$ sui client objects
sui_coin=0x525c0eb0e1f4d8744ae21984de2e8a089366a557
usdt_coin=0x8e81c2362ff1e7101b2ef2a0d1ff9b3c358a1ac9

$ sui client call --gas-budget 10000 \
  --package=$package \
  --module=interface \
  --function=add_liquidity \
  --args $global $sui_coin 1 $usdt_coin 1 \
  --type-args $SUI $USDT
  
lp_sui_usdt=0xdf622fddc8447b0c1d15f8418e010933dd5f0a6c 
pool_sui_usdt=0x5058b90e728df97c4cb5cade5e5c77fcb662a4b9

$ sui client split-coin --gas-budget 10000 \
  --coin-id $lp_sui_usdt \
  --amounts 100000
  
lp_sui_usdt2=0x6cde2fe9277c92e196585fb12c6e3d5aaa4eab34

$ sui client call --gas-budget 10000 \
  --package=$package \
  --module=interface \
  --function=remove_liquidity \
  --args $global $lp_sui_usdt2 \
  --type-args $SUI $USDT

new_usdt_coin=0xc090e45f9461e39abb0452cf3ec297a40efbfdc3
new_sui_coin=0x9c8c1cc38cc61a94264911933c69a772ced07a09

# sui -> usdt
$ sui client call --gas-budget 10000 \
  --package=$package \
  --module=interface \
  --function=swap \
  --args $global $new_sui_coin 1  \
  --type-args $SUI $USDT
  
out_usdt_coin=0x80076d95c8bd1d5a0f97b537669008a1a369ce12

# usdt -> sui
sui client call --gas-budget 10000 \
  --package=$package \
  --module=interface \
  --function=swap \
  --args $global $out_usdt_coin 1 \
  --type-args $USDT $SUI

out_sui_coin=0xaa89836115e1e1a4f5fa990ebd2c7be3a5124d07


$ sui client call --gas-budget 10000 \
  --package=$package \
  --module=interface \
  --function=add_liquidity \
  --args $global $out_sui_coin 100 $new_usdt_coin 1000 \
  --type-args $SUI $USDT
4
Найкраща відповідь
Коментарі
.
harry phan.
Apr 30 2025, 03:03

Привіт, Венс, якщо ви хочете підключитися до вбудованих модулів SUI, таких як DeepBook. Турбо та подібні AMM вже забезпечують інфраструктуру смарт-контрактів та інтерфейси інтерфейсу, тобто ви можете запустити бота (наприклад, у Rust або TypeScript за допомогою Sui SDK) для таких речей, як автоматична заміна, запуск арбітражу або управління позиціями LP. Однак, якщо ви хочете отримати більше контролю, створюйте безпосередньо за допомогою DeepBook, оскільки власний рівень ліквідності Sui дозволяє створювати DEX з логікою книги ордерів, налаштуванням комісій та контролем зберігання.

Наприклад, ви можете: • Створити об'єкт спільного пулу за допомогою create_pool, вказавши рівні tick_size, lot_size та комісійних рівнів. • Налаштувати облікові записи зберігання через create_account для керування залишками активів з високим рівнем Like Створити пул на DeepBook

sui client call \ --package <DEEPBOOK_PACKAGE_ID> \ --module deepbook \ --function create_pool \ --type-args 0x2::sui::SUI 0x2::usdc::USDC \ --args 1000000 1000000 <CREATION_FEE_OBJECT> \ --gas-budget 10000000

Перш ніж розміщувати лімітні ордери, ваш бот повинен створити обліковий запис зберігача:

sui client call \
  --package <DEEPBOOK_PACKAGE_ID> \
  --module deepbook \
  --function create_account \
  --gas-budget 5000000

Депозит SUI (базовий актив):

sui client call \
  --package <DEEPBOOK_PACKAGE_ID> \
  --module deepbook \
  --function deposit_base \
  --type-args 0x2::sui::SUI 0x2::usdc::USDC \
  --args <POOL_ID> <SUI_COIN_OBJECT> <ACCOUNT_CAP_ID> \
  --gas-budget 3000000

Депозит USDC (котируючий актив):

sui client call \
  --package <DEEPBOOK_PACKAGE_ID> \
  --module deepbook \
  --function deposit_quote \
  --type-args 0x2::sui::SUI 0x2::usdc::USDC \
  --args <POOL_ID> <USDC_COIN_OBJECT> <ACCOUNT_CAP_ID> \
  --gas-budget 3000000

Оформити лімітне замовлення

sui client call \
  --package <DEEPBOOK_PACKAGE_ID> \
  --module deepbook \
  --function place_limit_order \
  --type-args 0x2::sui::SUI 0x2::usdc::USDC \
  --args <POOL_ID> <CLIENT_ORDER_ID> <PRICE> <QUANTITY> 0 true <EXPIRE_TS> 0 <CLOCK_ID> <ACCOUNT_CAP_ID> \
  --gas-budget 5000000

Розмістіть ринковий ордер

sui client call \
  --package <DEEPBOOK_PACKAGE_ID> \
  --module deepbook \
  --function place_market_order \
  --type-args 0x2::sui::SUI 0x2::usdc::USDC \
  --args <POOL_ID> <ACCOUNT_CAP_ID> <CLIENT_ORDER_ID> <QUANTITY> true <BASE_COIN_ID> <QUOTE_COIN_ID> <CLOCK_ID> \
  --gas-budget 5000000

Перемінятися між базою та котируванням

sui client call \
  --package <DEEPBOOK_PACKAGE_ID> \
  --module deepbook \
  --function swap_exact_base_for_quote \
  --type-args 0x2::sui::SUI 0x2::usdc::USDC \
  --args <POOL_ID> <CLIENT_ORDER_ID> <ACCOUNT_CAP_ID> <QUANTITY> <SUI_COIN_OBJECT> <USDC_COIN_OBJECT> <CLOCK_ID> \
  --gas-budget 5000000

Інакше

sui client call \
  --package <DEEPBOOK_PACKAGE_ID> \
  --module deepbook \
  --function swap_exact_quote_for_base \
  --type-args 0x2::sui::SUI 0x2::usdc::USDC \
  --args <POOL_ID> <CLIENT_ORDER_ID> <ACCOUNT_CAP_ID> <QUANTITY> <CLOCK_ID> <USDC_COIN_OBJECT> \
  --gas-budget 5000000
3
Коментарі
.

Ви знаєте відповідь?

Будь ласка, увійдіть та поділіться нею.

Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.

263Пости373Відповіді
Sui.X.Peera.

Зароби свою частку з 1000 Sui

Заробляй бали репутації та отримуй винагороди за допомогу в розвитку спільноти Sui.

Кампанія винагородТравень
Ми використовуємо файли cookie, щоб гарантувати вам найкращий досвід на нашому сайті.
Детальніше