隐私代币合约使用
隐私代币合约部署
./vcl contract deploy "solidity合约二进制文件" --abi "合约abi" --vm evm --param "epoch值" --param "绑定的wasm合约地址" --keyfile "keyfile文件"
示例:
./vcl contract deploy test_contracts/privacyToken_sol_PToken.bin --abi test_contracts/privacyToken_sol_PToken.abi --vm evm --param 3 --param 0xbc74aca12aa33c4b0f51a8dc92a00d0c3699db6f --keyfile ../conf/keyfile.json
注解
假设部署后得到的隐私合约地址: 0xfff4ecb6973e1078e3cd411a69d7ea9569e8767f
文档剩余内容将会用该地址来表示隐私代币合约
隐私代币合约调用
./vcl contract execute "隐私合约地址" token --abi "隐私合约abi" --vm evm --keyfile "keyfile文件"
示例:
./vcl contract execute 0xfff4ecb6973e1078e3cd411a69d7ea9569e8767f token --abi test_contracts/privacyToken_sol_PToken.abi --vm evm --keyfile ../conf/keyfile.json
隐私代币客户端
flag说明
配置类
url :远程节点url, 格式为 https://<ip>:<port> 。
contract :部署的隐私代币合约地址。
bc-owner :同时具备 交易发送者 和 明文/wasm代币合约的注册用户 2个用途。
config 说明:
将某次命令提供的
--url,--contract,--bc-owner的对应值写入结构体对应字段,并序列化后存储到config.json文件中。config.json会在可执行文件的 运行路径 下生成。每次命令会默认读取
config.json中对应字段的值。如果该字段也提供了对应的flag,则flag对应的值具有较高的优先级。
常用类
value : register, depoist, transfer 转移的代币数量。
account :
隐私代币合约的账户。
--account对应值:对应账户文件的路径(默认:./privacyAccount.json)。
receiver :
接收隐私代币的账户,该账户需是已注册的有效账户,否则会报错。
示例:
["0x1014b579b1f13fd07f4ffec5da3f7c2ca0a04dbc68579f49369874dcd2ec0e6c","0x241aac4b68d23a0303c3cb82a8ae64fda731cf3c552613088859619ce0ffa68d"]
其他
decoy-num :仅 tranfser 命令使用,指定匿名集的元素个数。默认为3,即匿名集有 \(2^3=8\) 个账户。
o 说明:仅 register 命令使用,指定输出账户文件的文件名。
l-invl && r-invl 说明:
账户拥有的隐私代币密文的猜测区间,
--l-invl为左区间,--r-invl为右区间。通过限定猜测区间,减少解密密文的时间。若区间提供错误,则会报错。
--l-invl默认为0,--r-invl默认为 \({2}^{32}-1\) 。
注册register
## 查看用法
./client register -h
## 完整命令
./client register --bc-owner 0x55b3d5f67010b314ebcdd46ef9e420da499c1596 --contract 0xfff4ecb6973e1078e3cd411a69d7ea9569e8767f --url http://127.0.0.1:6791 --config
## 省略配置类flag
./client register
## 指定输出账户文件名称
./client register -o privacyAccount-x.json
充值deposit
## 查看用法
./client deposit -h
## 完整命令
./client deposit --account privacyAccount-1.json --value 200 --r-invl 1000 --bc-owner 0x55b3d5f67010b314ebcdd46ef9e420da499c1596 --contract 0xfff4ecb6973e1078e3cd411a69d7ea9569e8767f --url http://127.0.0.1:6791 --config
## 省略配置类flag
./client deposit --account privacyAccount-3.json --value 400
赎回withdraw
## 查看用法
./client withdraw -h
## 完整命令
./client withdraw --account privacyAccount-4.json --value 400 --r-invl 1000 --bc-owner 0x55b3d5f67010b314ebcdd46ef9e420da499c1596 --contract 0xfff4ecb6973e1078e3cd411a69d7ea9569e8767f --url http://127.0.0.1:6791 --config
## 省略配置类flag
./client withdraw --account privacyAccount-4.json --value 400 --r-invl 1000
转账transfer
## 查看用法
./client transfer -h
## 完整命令
./client transfer --account privacyAccount-2.json --value 200 --r-invl 1000 --receiver "["0x1014b579b1f13fd07f4ffec5da3f7c2ca0a04dbc68579f49369874dcd2ec0e6c","0x241aac4b68d23a0303c3cb82a8ae64fda731cf3c552613088859619ce0ffa68d"]" --bc-owner 0x55b3d5f67010b314ebcdd46ef9e420da499c1596 --contract 0xfff4ecb6973e1078e3cd411a69d7ea9569e8767f --url http://127.0.0.1:6791 --config
## 省略配置类flag
./client transfer --account privacyAccount-2.json --value 200 --r-invl 1000 --receiver "["0x1014b579b1f13fd07f4ffec5da3f7c2ca0a04dbc68579f49369874dcd2ec0e6c","0x241aac4b68d23a0303c3cb82a8ae64fda731cf3c552613088859619ce0ffa68d"]"
查询query
## 查看用法
./client query -h
## vcl工具查询某账户对应的账户余额
./vcl contract execute 0xfff4ecb6973e1078e3cd411a69d7ea9569e8767f simulateAccounts --param "[[0x20775257b284e0d7234be2860f03b930c9b7eec1a5c9d41773a2fbe499d96e94,0x21907ecf49861a11cda03defca88c38370bd89dd7456c3665d9961ab395d25e3]]" --param 20 --abi test_contracts/privacyToken_sol_PToken.abi --vm evm --keyfile ../conf/keyfile.json
## 客户端查询
./client query --account ./privacyAccount-1.json --r-invl 1000 --bc-owner 0x55b3d5f67010b314ebcdd46ef9e420da499c1596 --contract 0xfff4ecb6973e1078e3cd411a69d7ea9569e8767f --url http://127.0.0.1:6791
## 省略配置类flag
./client query --account ./privacyAccount-1.json --r-invl 1000