命令行工具
Oasis CLI(oasis / oxn)提供 shell 访问 OXN 操作:账户、交易、合约调用、网络诊断。它是 SDK 的补充——适合脚本、CI、一次性操作,但不适合机密合约交互。
安装
从 Oasis CLI releases 下载最新二进制,或源码构建:
git clone https://github.com/oasisprotocol/cli
cd cli
make
sudo install oxn /usr/local/bin/
基本命令
网络与账户
oxn network list # 列出已配置网络
oxn network add-local oxn https://rpc.bout.network # 添加 OXN 端点
oxn account list # 列出存储的账户
oxn account show test:alice # 显示测试账户详情
余额与转账
oxn account show 0xYourAddress # EVM 地址余额
oxn account transfer 0xRecipient 1.5 --account test:alice # 转 1.5 TBLUAI
合约部署(明文——无加密参数)
oxn contract deploy MyContract.bin \
--account test:alice \
--gas-limit 3000000
合约调用(明文——无加密)
# 读:如果目标用 msg.sender 门控状态会返回默认值
oxn contract call 0xTokenAddress "totalSupply()" --network oxn
# 写:以明文 calldata 提交——**不要**用于机密函数
oxn contract call 0xTokenAddress "transfer(address,uint256)" \
0xRecipient 100 \
--account test:alice \
--gas-limit 500000
限制
CLI:
- 交易发的是明文。 不会构造加密 CBOR 信封。只在接受明文 calldata 的函数上用。
- 无法发签名查询。 依赖
msg.sender的只读调用会返回默认值。 - 最适合部署与运维,不适合机密 dApp 交互。
机密交互用 TypeScript SDK 或其他语言 SDK。
配置文件
CLI 配置在 ~/.config/oasis/cli.toml。推荐结构:
~/.config/oasis/cli.toml
[networks.default]
description = "OXN Testnet"
chain_context = "..."
rpc = "https://rpc.bout.network"
[accounts.test-alice]
description = "水龙头资助的测试账户"
kind = "file"
config = { path = "/absolute/path/to/alice.pem" }
不要提交这个文件——它引用你的私钥。
脚本化
在 shell 脚本与 CI 里用 CLI:
#!/bin/bash
set -euo pipefail
CONTRACT=$(oxn contract deploy MyContract.bin --account $DEPLOYER --gas-limit 3000000 \
| grep -oP '(?<=Deployed: )0x[0-9a-fA-F]+')
echo "Deployed at: $CONTRACT"
oxn contract call "$CONTRACT" "initialize()" --account $DEPLOYER --gas-limit 500000
任何需要加密的步骤,切到用 TypeScript SDK 的 Node.js 脚本。
下一步
- TypeScript SDK——加密交互
- 部署合约