Пост
Поделитесь своими знаниями.
Бот AMM в экосистеме Sui
Каковы ключевые особенности и функциональные возможности ботов AMM в экосистеме Sui? Как они улучшают традиционные торговые механизмы и какие преимущества они предлагают пользователям, использующим протоколы DeFi в сети Sui?
Нужно ли мне его создавать или я могу использовать, например, Turbos Finance
- Sui
Ответы
3Если вы ищете быстрый и эффективный способ использования функций 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
Привет, Венс, если вы хотите подключиться к встроенным модулям 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
Боты 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.
Знаете ответ?
Пожалуйста, войдите в систему и поделитесь им.
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.
Заработай свою долю из 1000 Sui
Зарабатывай очки репутации и получай награды за помощь в развитии сообщества Sui.
- Почему BCS требует точного порядка полей для десериализации, когда структуры Move содержат именованные поля?53
- «Ошибки проверки нескольких источников» в публикациях модуля Sui Move — автоматическое устранение ошибок43
- Сбой транзакции Sui: объекты, зарезервированные для другой транзакции25
- Как ограничения возможностей взаимодействуют с динамическими полями в гетерогенных коллекциях?05