Quip C++ SDK的6大CLI命令详解:deposit、transfer、execute实战操作清单

发布时间:2026/9/1 21:30:16
Quip C++ SDK的6大CLI命令详解:deposit、transfer、execute实战操作清单 Quip C SDK的6大CLI命令详解deposit、transfer、execute实战操作清单【免费下载链接】cpp-sdk项目地址: https://gitcode.com/gh_mirrors/cppsdk1/cpp-sdkQuip C SDK 是一个用于与以太坊网络上 Quip 智能合约交互的 C 开发工具包其配套命令行工具quip-cli提供了 6 大核心命令用deposit部署钱包、transfer转账、execute调用合约以及change-owner、balance、pq-owner。本文以操作清单形式逐一讲解这些 CLI 命令的用法与实战流程帮助新手一次上手这套支持 Winternitz 后量子签名的工具。1️⃣ 先认识 quip-cli它是什么quip-cli是 Quip C SDK 的命令入口把「部署钱包 → 转账 → 调用合约 → 换主人」整套流程做成了命令行操作主要能力包括QuipFactory 集成部署并管理 Quip 钱包vaultQuipWallet 操作转账资金、执行合约调用、更换所有权Winternitz 签名支持抗量子攻击的后量子安全签名多网络支持本地 Hardhat默认http://localhost:8545Chain ID 31337与自定义 RPC 网络所有命令的解析与执行逻辑都集中在 src/cli.cpp程序入口与帮助系统在 src/main.cpp。2️⃣ 一键构建3 步得到 quip-cli 可执行文件git clone https://gitcode.com/gh_mirrors/cppsdk1/cpp-sdk cd cpp-sdk ./build.shbuild.sh 会自动完成macOS 下用 Homebrew 安装 CMake/curl/GoogleTest/OpenSSL → 构建后量子签名库 hashsigs-cpp → 构建quip-cli→ 运行单元测试。构建产物位于build/quip-cli。验证安装./build/quip-cli --help帮助信息会列出全部命令、参数与网络配置说明见 src/main.cpp。3️⃣ 命令速查表6大核心命令一览命令用途关键参数deposit部署新 Quip 钱包并可附带充值--amount、--entropy、--vault-idtransfer用 Winternitz 签名转账quantum_secret、钱包地址、收款地址、金额execute从钱包调用目标合约quantum_secret、钱包地址、目标地址、opdata、ETH 值change-owner轮换钱包的后量子主人quantum_secret、钱包地址balance查询钱包余额地址pq-owner查询钱包当前 PQ 主人地址另有 3 个辅助命令generate-keypair、recover-keypair、sign用于离线生成/恢复密钥与签名实现见 include/cli.hpp。4️⃣ deposit 命令实战部署新 Quip 钱包语法./build/quip-cli --rpc-url url --contract-address factory地址 deposit [--amount wei] [--entropy hex] [--vault-id hex]操作步骤确保PRIVATE_KEY环境变量已设置main.cpp启动时会检查未设置则退出不带参数直接运行deposit即可默认随机生成 32 字节量子密钥quantum secret并充值 10000000000000000 wei如需可复现可传--entropy必须为 32 字节 hex与--vault-id命令成功后会打印完整信息建议全部保存Generated Quantum Secret: 0x... # 若随机生成 Vault ID: 0x... Classical Public Key: 0x... Winternitz Public Seed: 0x... Winternitz Public Key Hash: 0x... Wallet Address: 0x... Winternitz Private Key: 0x...⚠️ 注意相同--entropy--vault-id重复部署会被合约拒绝这是幂等性保护deposit实现见 src/cli.cpp。5️⃣ transfer 命令实战一次签名完成转账 密钥轮换语法./build/quip-cli --rpc-url url --contract-address addr transfer \ quantum_secret 钱包地址 收款地址 金额wei新手最关心的点transfer只需要量子密钥 钱包地址不需要手动签名。CLI 内部自动完成src/cli.cpp通过PRIVATE_KEY找到钱包对应的 vault确定 vault ID读取链上当前 PQ 公钥用量子密钥确定性恢复当前私钥生成下一组Winternitz 密钥对密钥一次性消耗用完即换打包「旧公钥 新公钥 收款方 金额」并做 Keccak-256 哈希用当前私钥对哈希做 Winternitz 签名上链转账成功后会输出From / To / Amount / Vault ID以及下一组 PQ 主人的 public seed、public key hash 和 private key——这三项是后续execute或change-owner的必需输入务必保存。6️⃣ execute 命令实战从钱包调用任意合约语法./build/quip-cli --rpc-url url --contract-address addr execute \ quantum_secret 钱包地址 目标合约地址 opdata eth_value参数要点opdata合约调用数据hex例如balanceOf(address)可写成0x70a08231 补齐到 32 字节的地址eth_value随调用发送的 ETH以 ETH 为单位如0.001CLI 内部自动换算成 weiexecute与transfer流程相同只是打包的数据变为「旧公钥 新公钥 目标地址 opdata」src/cli.cpp。官方 E2E 测试第 8 项就演示了用它调用 QuipFactory 的balanceOf./build/quip-cli --rpc-url $RPC_URL --contract-address $FACTORY execute \ $QUANTUM_SECRET $WALLET $FACTORY 0x70a08231$ADDRESS_PADDED 0.001完整示例见 e2e_test.sh。7️⃣ change-owner / balance / pq-owner轮换与查询change-owner只轮换钱包的 PQ 主人而不发生资金变动。支持可选地直接传入private_key_hex和public_seed_hex当量子密钥不便恢复时见 src/cli.cppbalancebalance 钱包地址输出Balance: wei实现见 src/cli.cpppq-ownerpq-owner 钱包地址输出当前链上 PQ 主人地址实现见 src/cli.cpp 小技巧每次transfer/execute后 PQ 主人都会轮换用pq-owner核对链上状态与本地保存的 public seed 是否一致是最快的排障手段。8️⃣ 端到端演练用 e2e_test.sh 跑通全流程项目自带 12 项端到端测试脚本 e2e_test.sh覆盖了 deposit、balance、pq-owner、transfer、execute、change-owner 及错误处理# 本地 Hardhat 网络默认自动读取 ethereum-sdk 的 .env 与 addresses.json ./e2e_test.sh # 自定义测试网/主网必须提供 --quip-factory-address ./e2e_test.sh --rpc-url url --chain-id 11155111 --quip-factory-address factory地址前置条件ethereum-sdk/.env中设置PRIVATE_KEY且合约已通过 ethereum-sdk 部署到目标网络。9️⃣ 常见报错排查清单报错信息原因解决方法PRIVATE_KEY environment variable not set未设置私钥环境变量在ethereum-sdk/.env中写入PRIVATE_KEYNo contract address provided未指定合约地址加--contract-address factory地址Invalid address format地址不是 0x 40 位 hex共 42 字符检查地址格式见 src/cli.cppProvided entropy for quantum secret must be a 32-byte hex string--entropy长度不对必须为 32 字节 hexCould not find a vault for the given wallet address钱包地址不属于当前 PRIVATE_KEY 的 vault确认钱包地址与私钥匹配Unknown command命令拼写错误运行--help查看命令清单 项目文件导航CLI 命令分发与 6 大命令实现src/cli.cpp程序入口、参数解析与帮助系统src/main.cppCLI 类定义include/cli.hpp钱包 APItransfer/execute/changePqOwner/balanceinclude/quip_wallet.hpp工厂 APIdepositToWinternitz/getVaultsinclude/quip_factory.hpp公共类型与 hex 解析工具include/common.hpp端到端测试脚本e2e_test.sh单元测试test/cli_test.cpp、test/quip_factory_test.cpp、test/quip_wallet_test.cpp构建脚本与 CMake 配置build.sh、CMakeLists.txt项目说明文档README.md上手路线建议先跑./build.sh构建 → 本地 Hardhat 执行./e2e_test.sh走通全流程 → 再逐个命令对照本文清单练习即可完成 Quip C SDK CLI 的全部核心操作。【免费下载链接】cpp-sdk项目地址: https://gitcode.com/gh_mirrors/cppsdk1/cpp-sdk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻