用途:该技能用于在 SaturnSwap DEX 上引导用户完成添加与提取流动性的操作,触发场景包括“add liquidity”“provide liquidity”“LP on SaturnSwap”“withdraw”等。
主要能力:向已有池添加流动性(ADA 侧或代币侧);从持仓中提取流动性;查看当前流动性持仓(委托给 saturnswap-portfolio)。
添加流动性流程:按 ticker 或 pool ID 查找池;检查用户是否已有该池持仓;确定存入的 ADA 或代币数量;调用 createAddLiquidity 构建交易;交由 operator 签名并提交。
提取流动性流程:列出用户流动性持仓;选择要提取的池/合约;确定部分或全部提取数量;调用 createWithdrawLiquidity 构建交易;交由 operator 签名并提交。
脚本用法: node scripts/create-add-liquidity.js --address <bech32> --contract <liquidityPoolContractId> [--policy <policyId>] [--asset <assetName>] --amount <display-units> [--no-defaults] --policy "" 与 --asset ""(或省略)表示添加 ADA 侧;--policy <id> --asset <name> 表示添加代币侧;--no-defaults 关闭自动分块。 node scripts/create-withdraw-liquidity.js --address <bech32> --contract <liquidityPoolContractId> [--policy <policyId>] [--asset <assetName>] --amount <display-units>
关键概念:SaturnSwap 的流动性以分散在多个价格点的分块限价单形式存在;添加流动性时 API 会把存款拆分为多个限价单;useDefaults: true 让 API 选择最优分块大小;liquidityPoolContractId 是具体流动性持仓的 UUID(不是池 ID);同一池可有多个持仓;持仓分别记录 ada_order_token_one_amount 与 order_token_two_amount;waiting_* 金额是在分块间再平衡的资金。
安全规则:添加/提取前始终展示当前持仓统计;与用户确认确切金额和方向(ADA 还是代币);对波动性交易对提示无常损失;仅使用显示单位——100 ADA 即 tokenAmount: 100。
限制:资料未提供收费、价格、支持平台、具体效果等信息。