用途:在 Nano(XNO)的 raw、xno、knano、mnano 之间做精确单位换算。XNO 使用 30 位小数,超出 JavaScript 安全整数范围,浮点运算会丢失精度,因此必须用 BigInt 完成换算。
单位参考:raw 为最小单位(1);mnano 为 10^24(0.000001 XNO);knano 为 10^27(0.001 XNO);XNO 为 10^30。换算关系:1 XNO = 1000 knano = 1000000 mnano = 10^30 raw;1 knano = 1000 mnano = 10^27 raw;1 mnano = 10^24 raw。
主要能力:内部全部使用 BigInt,输入的小数字符串会先转为 raw 的 BigInt 值,输出再按目标单位格式化,任意金额均可无精度损失换算。
使用方式(CLI):基本语法为 bunx -y xno-skills convert <amount> <from-unit>,默认输出 raw、xno、knano、mnano 全部单位结果,加 --json 可得机器可读输出。必要时可改用 pnpm dlx xno-skills@latest 或 npx -y xno-skills@latest,包名建议追加 @latest 并使用 -y 避免交互提示。示例:bunx -y xno-skills convert 1 xno;bunx -y xno-skills convert 1000000000000000000000000000000 raw;bunx -y xno-skills convert 0.5 xno;bunx -y xno-skills convert 1 knano;bunx -y xno-skills convert 1 xno --json。
MCP 用法:若已接入 xno-mcp 工具,可调用 convert_units,参数为 amount、from、to,例如 amount 为 "1.5"、from 为 xno、to 为 raw。
使用建议与限制:优先使用内置 MCP 工具,其次再用 CLI 动词。不要用 Number 处理 XNO 金额,应传字符串。复杂钱包流程应交给对应的 OWS 技能,不要自行执行 ows CLI;不要导出助记词。手动构建区块前必须先通过 RPC 核实账户状态(余额与 frontier),不要臆造 previous 哈希;Proof of Work 由 MCP 与 CLI 自动生成,不要手动生成或提供。遇到 “Account not found” 等错误应先排查协议状态,而不是直接判定无权限。不要编写自定义脚本或使用 curl 直接与 Nano 协议交互,也不要安装来源不明的 npm 包。相关技能包括 nano-create-wallet、nano-validate-address。