-
Notifications
You must be signed in to change notification settings - Fork 13
BaerChain vote transaction
woodbaer edited this page Aug 23, 2019
·
5 revisions
{
"from":"e523e7c59a0725afd08bc9751c89eed6f8e16dec",
"to":"0x00000000000000000000000000000000766f7465",
"value":"0x0",
"data":[
{
"type":1,
"m_from":"e523e7c59a0725afd08bc9751c89eed6f8e16dec",
"m_to":"0x4eb60bfab454b5aaece4e8759e62ed36266fde39",
"m_vote_type":5,
"m_vote_numbers":"0xa"
}
],
"chainId":"0x1",
"nonce":"0x0",
"gas":"0x13880",
"gasPrice":"0x5"
}- 可查看代码进行json组装
- params参数说明
from : 类型为string,vote交易发起地址
to : 类型为string,固定地址,不能更改
value : 类型为string,默认为"0"
data : 投票交易数据,数组结构
> type : 类型为int,交易识别号,类型固定为1,表示vote交易
> m_from : 类型为string,vote交易发起地址,与from地址相同
> m_to : 类型为string,接受vote交易的地址
> m_vote_type : 类型为int,说明:
(1)可选值有(1:买票 2:卖票 5:投票 6:取消投票)
(2)本案例类型为5,表示为指定地址投票
(3)注意:投票操作前需要进行(1:买票操作),以保证自己有票能投
(4)注意:在买票和卖票时m_from和m_to的地址需要相同
> m_vote_numbers : 类型为string,票数
注意:票数以16进制传值,即如果买10票,需要传"0xa"
chainId : 类型为string,16进制,链ID,必须和链创世chainId相同
nonce : 类型为string,16进制,nonce值,每次执行后+1
gas : 类型为string,16进制,为交易执行提供的 gas 整数
gasPrice : 类型为string,16进制,用于每一个支付 gas 的 gasPrice 整数
- 备注:当to填其他地址,且data不为空时,默认to为调用的合约地址,且将from中转出value(value如果也有值)的值到to中,一般禁止此种操作
2. vote投票交易说明 返回目录
-
各用户可以通过花费BRC去购买选票,但只有在候选人集合中的地址才能被投票
-
查询候选人集合
-
指令
curl -d '{"jsonrpc":"2.0","id":9,"method":"brc_getElector","params":["latest"]}' http://10.0.6.122:33050 -
返回结果,如下,表明此时有6个候选人可以被投票
{ "id": 9, "jsonrpc": "2.0", "result": { "electors": [{ "address": "0xcccc7a30bf688c060524dfd759fe2627ed3387bc", "vote_num": "0x0" }, { "address": "0xdb1874c67cf3628690c795f0553e0e2904b02ffd", "vote_num": "0x0" }, { "address": "0xc3eb4d16a99e0a04de3242729a759a45809d2628", "vote_num": "0x0" }, { "address": "0x02b3d7c2f9f53f5bbcb3794da5282566f5632b46", "vote_num": "0x0" }, { "address": "0xd15c70cb560cea42995c9f52858778aa8b08c1c1", "vote_num": "0x0" }, { "address": "0x6e8c3d142894db1e06a026497f6b506c49069908", "vote_num": "0x0" }] } }
-
3. vote交易过程讲解 返回目录
-
根据实际情况分别执行:(1:买票, 2:卖票, 5:投票 , 6:取消投票)
-
指令
./cmdWallet -j ./vote_data.json -s 10.0.6.122:33050 -
cmdWallet 执行文件获取
cd cpp-lsac/build : 进入目录 cmake .. : 执行指令 make : 执行指令 cd cpp-lsac/build/wallet/cmdWallet : 此目录下可找到刚才编译好的cmdWallet执行文件 -
若执行1:买10票
可用brc_getBalance接口查询买票后自己拥有的票数,以下均为可以此接口
curl -d '{"jsonrpc":"2.0","id":9,"method":"brc_getBalance","params":["6e8c3d142894db1e06a026497f6b506c49069908","latest"]}' 10.0.6.122:33050
- 查询结果
{ "id": 22, "jsonrpc": "2.0", "result": { "Address": "0x6e8c3d142894db1e06a026497f6b506c49069908", "BRC": "0xa4d87b3d34e00", "FBRC": "0x0", "FBalance": "0x2710", "balance": "0xa4d88ddd452c0", "ballot": "0xa", (表示自己拥有的票数,此时为10票,如果无票,则为"0x0") "cookieinsummury": "0x0", "nonce": "0x2", "poll": "0x0",("0x0"表示得票数为0票) "vote": null } }
若执行2: 卖出1票
查询结果
{ "id": 22, "jsonrpc": "2.0", "result": { "Address": "0x6e8c3d142894db1e06a026497f6b506c49069908", "BRC": "0x997a1b0ac38df", "FBRC": "0x0", "FBalance": "0x0", "balance": "0xa4d88ddcdc3ec", "ballot": "0x9",(表示自己拥有的票数,此时为9票,表明卖出了1票) "cookieinsummury": "0x0", "nonce": "0x3", "poll": "0x0",("0x0"表示得票数为0票) "vote": null }
5:投票3票
若执行5: 投票3票
本次测试中0x6e8c3d142894db1e06a026497f6b506c49069908为候选人地址,本次测试自己给自己投票
查询结果
{ "id": 22, "jsonrpc": "2.0", "result": { "Address": "0x6e8c3d142894db1e06a026497f6b506c49069908", "BRC": "0x997a1b0ac38df", "FBRC": "0x0", "FBalance": "0x0", "balance": "0xa4d88ddcb885c", "ballot": "0x6",(表示自己拥有的票数,此时为6票,表明投出3票) "cookieinsummury": "0x0", "nonce": "0x4", "poll": "0x3",(得票数,此时为3票,表明被投票3票) "vote":[{ "Address": "0x6e8c3d142894db1e06a026497f6b506c49069908", (投票地址) "vote_num": "0x3" (该地址投的票数) }] } }3.4 撤消投票 返回目录
- 若执行6,取消1票
- 查询结果
{ "id": 22, "jsonrpc": "2.0", "result": { "Address": "0x6e8c3d142894db1e06a026497f6b506c49069908", "BRC": "0x997a1b0ac38df", "FBRC": "0x0", "FBalance": "0x0", "balance": "0xa4d88ddc352a4", "ballot": "0x7",(表示自己拥有的票数,此时为7票,表明撤回1票) "cookieinsummury": "0x0", "nonce": "0x8", "poll": "0x2",(得票数,此时为2票,表明被投票2票) "vote": [{ (记录哪些地址给自己投的票数) "Address": "0x6e8c3d142894db1e06a026497f6b506c49069908",(投票地址) "vote_num": "0x2" (该地址投的票数) }] } }
4. vote过程查询说明 返回目录
-
指令
- 通过上述操作后,再次查询候选人集合,查看变化
curl -d '{"jsonrpc":"2.0","id":9,"method":"brc_getElector","params":["latest"]}' http://10.0.6.122:33050 -
返回结果
{ "id": 9, "jsonrpc": "2.0", "result": { "electors": [{ "address": "0xcccc7a30bf688c060524dfd759fe2627ed3387bc", "vote_num": "0x0" }, { "address": "0xdb1874c67cf3628690c795f0553e0e2904b02ffd", "vote_num": "0x0" }, { "address": "0xc3eb4d16a99e0a04de3242729a759a45809d2628", "vote_num": "0x0" }, { "address": "0x02b3d7c2f9f53f5bbcb3794da5282566f5632b46", "vote_num": "0x0" }, { "address": "0xd15c70cb560cea42995c9f52858778aa8b08c1c1", "vote_num": "0x0" }, { "address": "0x6e8c3d142894db1e06a026497f6b506c49069908", "vote_num": "0x2" (可以看到此时改地址已得2票) }] } }
4.2 查询投票具体情况 返回目录
-
指令
- 查询某地址的投票具体情况
curl -d '{"jsonrpc":"2.0","id":9,"method":"brc_getVoted","params":["0x6e8c3d142894db1e06a026497f6b506c49069908","latest"]}' http://10.0.6.122:33050 -
返回结果
{ "id": 9, "jsonrpc": "2.0", "result": { "total_voted_num": "0x3", "vote": [{ "address": "0x6e8c3d142894db1e06a026497f6b506c49069908", "voted_num": "0x2" }, { "address": "0xdb1874c67cf3628690c795f0553e0e2904b02ffd", "voted_num": "0x1" }] } }- 说明 : 地址0x6e8c3d142894db1e06a026497f6b506c49069908给自己(0x6e8c3d142894db1e06a026497f6b506c49069908)投了2票, 给地址0xdb1874c67cf3628690c795f0553e0e2904b02ffd投了1票
4.3 查询候选人得票数 返回目录
-
指令
- 查询指定候选人得票数
curl -d '{"jsonrpc":"2.0","id":9,"method":"brc_getObtainVote","params":["0x6e8c3d142894db1e06a026497f6b506c49069908","latest"]}' http://10.0.6.122:33050 -
返回结果
{ "id": 9, "jsonrpc": "2.0", "result": { "addrsss": "0x6e8c3d142894db1e06a026497f6b506c49069908", "obtain_vote": "0x2" } }- 说明 : 地址0x6e8c3d142894db1e06a026497f6b506c49069908此时总得票数为2票
4.4 查询地址拥有的可投票数 返回目录
- 指令
curl -d '{"jsonrpc":"2.0","method":"brc_getBallot","params":["0x6e8c3d142894db1e06a026497f6b506c49069908", "latest"],"id":1}' http://10.0.6.122:33050
- 返回结果
{
"id": 1,
"jsonrpc": "2.0",
"result": "0x7" (表明该地址现在拥有7票)
}