Sui.

Пост

Поделитесь своими знаниями.

Vens.sui.
Apr 29, 2025
Экспертные Вопросы и Ответы

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

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

Нужно ли мне его создавать или я могу использовать, например, Turbos Finance

  • Sui
9
3
Поделиться
Комментарии
.

Ответы

3
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
8
Лучший ответ
Комментарии
.
harry phan.
Apr 30 2025, 03:03

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

Например, вы можете: • Создать общий объект пула с помощью create_pool, указав уровни tick_size, lot_size и комиссии. • Настроить кастодиальные счета с помощью create_account для управления балансами активов с помощью функции «Как создать пул» на 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
4
Комментарии
.
24p30p.
24p30p2042
Jul 9 2025, 05:58

Боты AMM в экосистемеSui— это инструменты автоматической торговли, предназначенные для взаимодействия с децентрализованными биржами (DEX), использующими модели автоматического маркет-мейкера (AMM). Эти боты выполняют такие задачи, как обмен токенами, предоставление ликвидности, использование арбитражных возможностей и ребалансировка пулов — и все это путем прямого взаимодействия со смарт-контрактами в блокчейне. Что отличает их от конкурентов в Sui, так это их способность использоватьпараллельное исполнение**, низкую задержку и объектно-ориентированный дизайн для совершения сделок быстрее и эффективнее, чем во многих других цепочках. Это позволяет пользователям совершать сделки более гладко, снижать вероятность проскальзывания и повышать производительность газа.

По сравнению с традиционными торговыми механизмами, в которых вы полагаетесь на книги заказов и централизованных посредников, боты AMM в Sui DeFi делают все без разрешений и в режиме реального времени. Вы не ждете покупателей или продавцов — вы торгуете с использованием пулов ликвидности, основанных на заранее заданных математических расчетах. Например, бот может автоматически обнаруживать несоответствие цен между двумя пулами и использовать арбитраж, чтобы извлечь выгоду из этой разницы, а также способствовать выравниванию цен в сети.

Вам не нужно создавать собственного бота, если вы не хотите использовать собственную логику или стратегию. Такие платформы, какTurbos Finance, уже предоставляют инфраструктуру и инструменты AMM, поэтому вы можете торговать или предоставлять ликвидность с помощью их смарт-контрактов без написания кода. Если вы разработчик, вы можете создать собственного бота с помощью контрактов Sui SDK или Move для взаимодействия с такими протоколами, как Turbos, Cetus или DeepBook.

Вот пример того, как бот может вызвать функцию свопа с помощью блока транзакций:

const txb = new TransactionBlock();
txb.moveCall({
  target: '0x...::amm::swap',
  arguments: [
    txb.object('0xYourPoolID'),
    txb.object('0xInputCoin'),
    txb.pure(1000000), // amount in MIST
  ],
});

Это позволяет программно обменивать токены в одной строке с помощью Turbos или модуля AMM другого протокола.

Чтобы узнать, как AMM работают на Sui и какие инструменты доступны, ознакомьтесь с https://docs.turbos.finance и официальным обзором Sui DeFi по адресу https://docs.sui.io/ecosystem/defi.

0
Комментарии
.

Знаете ответ?

Пожалуйста, войдите в систему и поделитесь им.