GTokenTool全网最好的代币发行工具平台

当前位置:首页 >> 加密百科 >> Sui链创建Cetus稳定池 2种方法 教程

Sui链创建Cetus稳定池 2种方法 教程

admin 加密百科 5

引言

Sui区块链是一个高性能的Layer 1区块链,以其并行执行和低延迟著称。Cetus Protocol是Sui生态中的一个去中心化流动性协议,类似于Uniswap或Curve,专注于高效的AMM(自动做市商)机制。稳定池(Stable Pool)是Cetus中专为稳定币设计的流动性池类型,它使用恒定和函数(Constant Sum)或混合模型来最小化无常损失,适合USDC、USDT等稳定资产的交易。


本教程将指导您在Sui主网上创建自定义的Cetus稳定池。这里介绍2种方法,其一需要一些Sui开发知识和Move语言基础;其二则是通过GTokenTool一键发币平台,不需要专业的知识。注意:区块链操作涉及风险,请确保备份钱包,并在测试网上练习。创建池子可能消耗Gas费,且流动性提供需谨慎评估。

前提条件

在开始之前,确保您具备以下条件:

1.Sui钱包:安装Sui钱包(如Sui Wallet浏览器扩展)或使用Sui CLI。确保钱包中有足够的SUI代币(至少10-20 SUI用于Gas费)。

2.Sui CLI工具:安装Sui CLI(版本1.0+)。通过以下命令安装:

curl -fLJO https://github.com/MystenLabs/sui/releases/download/mainnet-v1.0.0/sui-mainnet-v1.0.0-ubuntu-x86_64.tgz
tar -xzf sui-mainnet-v1.0.0-ubuntu-x86_64.tgz
sudo mv sui /usr/local/bin

验证安装:sui --version

3.Node.js和npm(可选,如果使用脚本自动化):用于辅助工具。

4.Cetus SDK:克隆Cetus仓库或通过npm安装Cetus SDK。

npm install @cetusprotocol/cetus-sui-clmm-sdk

5.稳定币资产:准备要添加到池子的稳定币(如USDC on Sui),并确保有足够的流动性(至少1,000 USD等值)。

6.开发环境:VS Code with Move插件,熟悉Sui Move语言。

7.网络:本教程针对Sui主网;测试时切换到Testnet。

警告:创建池子后,提供流动性前检查Cetus合约安全性。

方法1

步骤1: 设置Sui CLI和钱包

1.初始化Sui CLI:

sui client new-env --alias mainnet
sui client switch --env mainnet
sui client active-address  # 显示当前地址

2.导入或创建钱包:

  • 如果使用CLI:sui keytool import ...(从助记词导入)。

  • 确保钱包连接到Sui Wallet扩展,并批准CLI访问。

3.验证余额:

sui client gas

如果SUI不足,通过交易所转入。

步骤2: 理解Cetus稳定池结构

Cetus稳定池使用CLMM(Concentrated Liquidity Market Maker)变体,支持多资产稳定池(2-4个代币)。关键参数包括:

  • Tick Spacing:控制价格范围(稳定池通常为1-10)。

  • 初始价格:基于锚定资产(如1 USDC = 1 USDT)。

  • 费用率:稳定池推荐0.01%-0.05%。

步骤3: 准备Move合约(如果自定义)

Cetus提供现成SDK,但如果需要自定义池子,编写Move模块:

1.创建新Sui Move项目:

sui move new my_stable_pool
cd my_stable_pool
2.在sources/目录下创建stable_pool.move:
module my_stable_pool::stable_pool {
    use sui::coin::{Self, Coin};
    use sui::tx_context::TxContext;
    use cetus_clmm::pool::{Self, Pool};
    use cetus_clmm::stable_pool;  // 假设Cetus稳定池模块

    const EInsufficientLiquidity: u64 = 0;

    public entry fun create_stable_pool<T1, T2>(
        coin1: Coin<T1>,
        coin2: Coin<T2>,
        tick_spacing: u64,
        fee_rate: u64,
        initial_price: u128,
        ctx: &mut TxContext
    ) {
        // 初始化池子
        let pool = stable_pool::create<T1, T2>(
            coin1, coin2, tick_spacing, fee_rate, initial_price, ctx
        );
        // 添加初始流动性
        assert!(coin::value(&coin1) > 0 && coin::value(&coin2) > 0, EInsufficientLiquidity);
        pool::add_liquidity(&mut pool, ...);  // 详细参数参考Cetus SDK
    }
}
说明:这只是简化示例。实际使用Cetus SDK的createPool函数。编译测试:sui move build。

步骤4: 使用Cetus SDK创建池子

1.安装依赖并配置SDK:

// 在Node.js脚本中
const { JsonRpcProvider, getFullnodeUrl, Ed25519Keypair } = require('@mysten/sui.js');
const { initCetusSDK } = require('@cetusprotocol/cetus-sui-clmm-sdk');

const provider = new JsonRpcProvider(getFullnodeUrl('mainnet'));
const keypair = Ed25519Keypair.fromSecretKey(/* your private key */);
const sdk = initCetusSDK(provider);
2.编写创建脚本createPool.js:
async function createStablePool() {
    // 资产类型:例如 USDC 和 USDT 的Object IDs
    const coinTypeA = '0x...::usdc::USDC';  // 替换为实际类型
    const coinTypeB = '0x...::usdt::USDT';

    // 参数
    const tickSpacing = 1;  // 稳定池紧凑间距
    const feeRate = 100;  // 0.01% = 100 basis points
    const initialSqrtPrice = Math.sqrt(1.0001);  // 近似1:1价格

    // 交易块
    const tx = await sdk.Pool.createPoolTransaction({
        coinTypeA,
        coinTypeB,
        tickSpacing,
        feeRate,
        sqrtPrice: initialSqrtPrice * 2**96,  // Q64.64格式
    });

    // 签名并执行
    const result = await provider.signAndExecuteTransactionBlock({
        signer: keypair,
        transactionBlock: tx,
    });
    console.log('Pool created:', result.digest);
}

createStablePool();

3.运行脚本:

node createPool.js

这将创建池子并返回Pool ID。

步骤5: 添加初始流动性

创建池子后,提供流动性以激活它:

1.使用SDK的addLiquidity函数:

// 延续上例
const poolId = '0x...';  // 从结果获取
const amountA = 1000 * 1e6;  // 1000 USDC (6 decimals)
const amountB = 1000 * 1e6;  // 1000 USDT

const liquidityTx = await sdk.Position.addLiquidityTransaction({
    poolID: poolId,
    amountA,
    amountB,
    lowerTick: -100,  // 价格范围
    upperTick: 100,
});

// 签名执行类似上步

2.批准代币:确保钱包批准Cetus合约花费您的稳定币。

3.验证:使用Sui Explorer(https://suiexplorer.com)查看池子状态。

步骤6: 测试和部署

1.测试网测试:切换到Testnet,重复步骤。获取Testnet SUI从水龙头。

2.主网部署:确认所有参数后,在主网执行。

3.监控:使用Cetus仪表盘(https://app.cetus.zone)跟踪池子APR和交易量。

方法2

1. 连接钱包

创建流动性https://sui.gtokentool.com/zh-CN/LiquidityManagement/createPool

进入创建流动性页面,右上角选择 Main 网络并连接钱包,建议使用 Suiet 钱包。

2. 选择基础代币

选择基础代币后,下面会显示基础代币的余额。

3. 选择报价代币

选择报价代币后,下面会显示报价代币的余额。

4. 设置初始价格

5. 填写加池的报价代币数量

填写好加池的报价代币数量后,会自动计算出基础代币数量。

6. 点击“创建”

弹出钱包后,点击确认。交易成功下方会显示交易哈希,点击哈希可以跳转区块链浏览器查看交易。

常见问题排查

  • Gas不足:增加SUI余额或优化交易。

  • 合约错误:检查Move编译日志。常见:类型不匹配或Tick越界。

  • 流动性不平衡:稳定池要求初始比例接近1:1。

  • SDK版本:确保与Cetus最新版本匹配(npm update)。

  • 如果失败:查看交易日志result.effects。

结论

恭喜!您已在Sui上创建了Cetus稳定池。这将为您提供被动收入机会,通过交易费分成。继续探索Cetus的激励计划(如农场)。

如有不明白或者不清楚的地方,请加入官方电报群:https://t.me/gtokentool
协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐