帖子
分享您的知识。
Sui 生态系统中的 AMM 机器人
Sui 生态系统中 AMM 机器人的主要特征和功能是什么?他们如何改进传统的交易机制,以及它们为在Sui网络上使用DeFi协议的用户提供了哪些优势?
例如,我需要建造一个还是可以使用 Turbos Finance
- Sui
答案
3如果您正在寻找一种快速高效的方式来使用 Sui 生态系统中的 AMM 功能,则不一定需要构建自己的机器人. 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
嘿 Vens,如果你想插入 DeepBook 这样的 SUI 原生模块. Turbos 和类似的 AMM 已经提供了智能合约基础设施和前端接口,这意味着你可以启动一个机器人(例如,在 Rust 或 TypeScript 中使用 Sui SDK)来做自动交换、进行套利或管理有限合约头寸等操作. 但是,如果您想要更多的控制权,可以直接使用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
Sui生态系统中的AMM机器人是自动交易工具,旨在与使用自动做市商(AMM)模型的去中心化交易所(DEX)进行交互. 这些机器人通过直接与链上智能合约交互来执行交换代币、提供流动性、执行套利机会和再平衡池等任务. 他们之所以在 Sui 上脱颖而出,是因为他们能够使用并行执行、低延迟和以对象为中心的设计来比在许多其他链上更快、更高效地执行交易. 这为用户提供了更顺畅的交易,更低的滑点和更好的燃气性能.
与依赖订单簿和中心化中介的传统交易机制相比,Sui DeFi中的AMM机器人使所有内容无需许可即可实时进行. 您不是在等待买家或卖家,而是在使用遵循预设数学的流动性池进行交易. 例如,机器人可能会自动检测到两个矿池之间的价格不匹配并执行套利以从差额中获利,同时还有助于保持整个网络的价格一致.
除非你需要自定义逻辑或策略,否则你不需要构建自己的机器人. 像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.