> ## Documentation Index
> Fetch the complete documentation index at: https://docs.powfi.alephium.org/llms.txt
> Use this file to discover all available pages before exploring further.

# 开发者 CLI

> SDK 仓库自带的命令行工具，用于在 devnet、testnet 或 mainnet 上试用 SDK。

export const VersionBanner = ({network = 'mainnet', products = [], lang = 'en'}) => {
  const SDK_VERSION = '1.0.2';
  const ADDRESSES = {
    mainnet: {
      cpmm: {
        Router: 'ze15rnAwTyVCPnDhN7J8An3SvNeWBsZHAVMeBx1ehXeP',
        TokenPairFactory: '24CXRLvj1QiDH6riwr1EPERG7BcduHKZtktygbq97MfYb'
      },
      clmm: {
        PoolFactory: '24gqd4DMQXVzjm5QDAGxUtYupx3WM2PSu3vZUseuBCV9h',
        PositionManager: 'vFyKSqnJHS9MicrojBcLgztyRFqhS4hB349Ci3LJCELw'
      },
      staking: {
        XAlphToken: '225WevmFp5ZgzPsyVJTvyp2v2uyKrvp329HfrVmzffnWj',
        RewardFeeCollector: '22CE7vG6u64zjjsLZLxeJqQuPDydjPvbP9iG1d861j2G7'
      }
    },
    testnet: {
      cpmm: {
        Router: 'xaueT8kPMvpnaFJEfHv6CJLgqsSPpoNmHjF1QgTxoF9R',
        TokenPairFactory: '29hdd9b9Gp7oXuamwHKfUqBaRXP487HoeTcutS3RhZJEj'
      },
      clmm: {
        PoolFactory: 'z2QFT7qBQrfm8UwAYG3VHWoHs7B56ZDFNdSCcDu5j53m',
        PositionManager: '21p6egW8d6FEyVVuH17WqvHCARsCsD61GcBmeCr75XdGT'
      },
      staking: {
        XAlphToken: '23psDicimC5VdpM56wrgqgCzQzcyXWGCkQGSYWbtZAPRq',
        RewardFeeCollector: '29qQ1LPJ5uqawRviXLVDMeo19JUygRrNNTQy5RUBh817D'
      }
    }
  };
  const EXPLORERS = {
    mainnet: 'https://explorer.alephium.org/addresses/',
    testnet: 'https://testnet.alephium.org/addresses/'
  };
  const LABELS = {
    en: {
      sdk: 'SDK',
      network: 'Network',
      contracts: 'Contracts',
      all: 'All addresses',
      allNetworks: 'mainnet · testnet · devnet',
      devnet: 'Local deployment (addresses vary per devnet)'
    },
    zh: {
      sdk: 'SDK 版本',
      network: '网络',
      contracts: '合约',
      all: '全部地址',
      allNetworks: 'mainnet · testnet · devnet',
      devnet: '本地部署（每个 devnet 的地址不同）'
    },
    fr: {
      sdk: 'SDK',
      network: 'Réseau',
      contracts: 'Contrats',
      all: 'Toutes les adresses',
      allNetworks: 'mainnet · testnet · devnet',
      devnet: 'Déploiement local (adresses propres à chaque devnet)'
    }
  };
  const t = LABELS[lang] ?? LABELS.en;
  const contractsPage = lang === 'en' ? '/reference/contracts' : `/${lang}/reference/contracts`;
  const short = a => `${a.slice(0, 6)}…${a.slice(-4)}`;
  const entries = [];
  const addrs = ADDRESSES[network];
  if (addrs) {
    for (const p of products) {
      for (const [name, address] of Object.entries(addrs[p] ?? ({}))) entries.push({
        name,
        address
      });
    }
  }
  let contractsCell;
  if (network === 'devnet' && products.length > 0) {
    contractsCell = <span>{t.devnet}</span>;
  } else if (entries.length > 0) {
    contractsCell = entries.map(({name, address}, i) => <span key={name}>
        {i > 0 && <span className="mx-1 opacity-50">·</span>}
        {name}{' '}
        <a href={EXPLORERS[network] + address} target="_blank" rel="noreferrer" title={address}>
          <code>{short(address)}</code>
        </a>
      </span>);
  }
  const row = (label, value) => <div className="flex flex-wrap gap-x-2">
      <span className="font-semibold min-w-[5.5rem]">{label}</span>
      <span className="flex-1 min-w-0 break-words">{value}</span>
    </div>;
  return <div className="not-prose mb-6 rounded-xl border border-zinc-950/10 dark:border-white/10 bg-zinc-50 dark:bg-white/5 px-4 py-3 text-sm leading-6 text-zinc-700 dark:text-zinc-300">
      {row(t.sdk, <code>@alephium/powfi-sdk@{SDK_VERSION}</code>)}
      {row(t.network, network === 'all' ? t.allNetworks : network)}
      {contractsCell && row(t.contracts, <span>
            {contractsCell}
            <span className="mx-1 opacity-50">·</span>
            <a href={contractsPage}>{t.all} →</a>
          </span>)}
    </div>;
};

<VersionBanner network="all" products={[]} lang="zh" />

SDK 仓库包含一个 CLI（`src/cli.ts`），封装了大部分模块方法，适合用于冒烟测试和在 devnet 上初始化池。CLI **不**包含在发布的 npm 包中，请在 SDK 仓库的克隆中运行。

```bash theme={null}
git clone https://github.com/alephium/powfi-sdk && cd powfi-sdk
bun install
bun src/cli.ts <module> <action> [args]
```

## 环境变量

| 变量 | 默认值 | 含义 |
| - | - | - |
| `NETWORK` | `devnet` | `mainnet`、`testnet` 或 `devnet` |
| `PRIVATE_KEY` | 无 | 签名私钥。devnet 以外必需；在 devnet 上使用内置测试钱包。 |
| `GROUP` | 未设置 | 设置后使用 `default`（有分组）密钥类型，否则使用 `gl-secp256k1`（无分组）。 |

代币可以用符号（来自代币列表）或 64 位十六进制代币 ID 指定。数量使用人类可读单位（`1.5`），滑点以基点表示。

## CPMM

```bash theme={null}
bun src/cli.ts cpmm <A> <B> <action> [args]
```

| 操作 | 说明 |
| - | - |
| `info` | 储备量和价格 |
| `create <amountA> <amountB>` | 创建代币对并注入初始流动性 |
| `add <amountA> [amountB] [slippageBps]` | 添加流动性。如果一侧数量为 0，CLI 会自动计算。 |
| `rm <percentage> [slippageBps]` | 移除一定百分比的 LP 代币 |
| `swap <symbolIn> <amountIn> [slippageBps]` | 兑换。负数表示精确输出。 |
| `sim-swap <symbolIn> <amountIn>` | 仅报价 |
| `swap-to <targetPrice> [slippageBps]` | 把价格推到目标值 |

## CLMM

```bash theme={null}
bun src/cli.ts clmm <A> <B> <configIndex> <action> [args]
```

| 操作 | 说明 |
| - | - |
| `info [priceMin] [priceMax]` | 池信息，或某个区间的头寸信息 |
| `create <price> [amountA] [amountB]` | 以指定价格创建池 |
| `add <priceMin> <priceMax> <amount1> [amount2]` | 在价格区间内添加流动性 |
| `rm <priceMin> <priceMax> <percent>` | 移除头寸的一定百分比 |
| `swap <symbolIn> <amountIn> [slippageBps]` | 兑换。负数表示精确输出。 |
| `sim-swap <symbolIn> <amountIn>` | 模拟 |
| `swap-to <targetPrice>` | 兑换直到价格（以 A 计的 B）达到目标值 |

## 质押及其他

| 命令 | 说明 |
| - | - |
| `stake deposit <amountALPH>` | 质押 ALPH 获得 xALPH |
| `stake donate <amountALPH>` | 向 xALPH 持有者捐赠 ALPH |
| `stake info` | xALPH 价格和你的持仓 |
| `token list` | 显示签名器持有的、在代币列表中的代币余额 |
| `token ext` | 显示签名器所有非零代币余额，包括未收录的代币 |
| `ref create [referrer]` · `ref info [address]` | 推荐（DEX 账户）操作 |

## 示例（devnet）

```bash theme={null}
docker compose -f docker/docker-compose.yml up -d

bun src/cli.ts stake deposit 500
bun src/cli.ts clmm ALPH xALPH 0 create 10 10 100
bun src/cli.ts clmm ALPH xALPH 0 add 5 15 1
bun src/cli.ts clmm ALPH xALPH 0 swap xALPH 0.1 100
bun src/cli.ts clmm ALPH xALPH 0 rm 5 15 50
```

`scripts/test_cli.sh` 运行一个更长的端到端流程。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.