最后一个跟案例学习的模块功能,获取投票结果。 获取投票要实现两个功能,即, 1>获取投票最多的索引 ; 2>获取赢得提议的名字。 实际上,这两个功能实现很简单,如第一个获取投票最多的索引,我们可以用一个遍历来完成,寻找符合条件的即可。 for(uint p=0;p <proposals.length;p++ ) { if(proposals[p].voteCount > winningVoteCount) { winningVoteCount = proposals[p].voteCount; winningProposal_ = p; } } 至于另外一个,获取赢得提议的名字,只需要根据先前获取到的结果,直接通过索引获取投票名称。 >proposals[winningProposal()].name 期间碰到个问题,提示出错如下, >TypeError: Data location must be "memory" for return parameter in function, but none was given 我仔细看了下,代码跟教程是一致的,不知道为什么实际中会出现这样错误。 于是按照提示给参数string name 上增加 memory修饰,错误提示便消失了。 测试结果如下,  到这里,这篇根据教程案例学习编写投票智能合约就完成了。 完成代码如下,    需要注意的是,教程里用到byte32类型,实际中转为string要做相应的转换,而solidity中byte32转换成string不像其它语言那么方便,而且貌似没有提供现成的函数库,教程中的案例都是根据字符一个个进行转换,非常麻烦。 我在实际的编写中,将byte32更换成了string,所以在后边获取时,不需要再进行转换,直接获得即可。我没有去查先前的版本,猜测可能是后来的版本才支持这样的写法吧。
author | rivalhw |
---|---|
permlink | 6r1w8h |
category | hive-105017 |
json_metadata | {"tags":["smartcontract","study","eth","cn-reader","cn"],"image":["https://images.hive.blog/DQmUYV91fZMnYHxy21iA26xRW3pgBB5yZGvpcKtcdKV8f71/image.png","https://images.hive.blog/DQmS6jMjHQXvvaMXaVkxMqqJNGWa4fCFF58zGc2ko6bcA1B/image.png","https://images.hive.blog/DQmRyKzv3umQ7JvV7X6c4sKjinpmgvg6vBwasXhQoeoVqch/image.png","https://images.hive.blog/DQmRPJ7tqYv4X4tLNcBmxZJgeSbdcupi4vRCUtxJTTX84Kv/image.png"],"app":"hiveblog/0.1","format":"markdown","author":"rivalhw"} |
created | 2021-08-17 02:28:48 |
last_update | 2021-08-17 02:31:51 |
depth | 0 |
children | 1 |
last_payout | 2021-08-24 02:28:48 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 33.624 HBD |
curator_payout_value | 33.597 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 1,269 |
author_reputation | 1,804,358,292,489,077 |
root_title | "区块链学习笔记:投票智能合约 之 获取投票结果 完结篇" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 105,590,012 |
net_rshares | 86,634,312,132,461 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
abit | 0 | 24,058,955,272,397 | 100% | ||
arcange | 0 | 50,017,610,630 | 1% | ||
deanliu | 0 | 3,150,150,938,217 | 100% | ||
raphaelle | 0 | 527,270,200 | 1% | ||
joythewanderer | 0 | 83,657,328,013 | 100% | ||
lemooljiang | 0 | 20,805,406,287 | 100% | ||
ace108 | 0 | 1,020,329,681,245 | 25% | ||
jamesbrown | 0 | 1,348,024,805,226 | 100% | ||
laoyao | 0 | 50,592,110,226 | 100% | ||
somebody | 0 | 81,415,986 | 100% | ||
midnightoil | 0 | 178,777,732,095 | 100% | ||
xiaohui | 0 | 16,286,504,332 | 100% | ||
oflyhigh | 0 | 4,910,751,597,637 | 100% | ||
rivalhw | 0 | 1,477,513,847,285 | 100% | ||
nextgen622 | 0 | 1,132,738,068,081 | 100% | ||
helene | 0 | 1,331,621,161,369 | 100% | ||
ffcrossculture | 0 | 62,946,061,667 | 100% | ||
sweetsssj | 0 | 10,781,563,738,682 | 33% | ||
dapeng | 0 | 197,827,579,022 | 100% | ||
sqube | 0 | 0 | 0.1% | ||
walterjay | 0 | 2,063,250,401 | 0.17% | ||
blackbunny | 0 | 80,293,672,197 | 100% | ||
bxt | 0 | 319,218,503,043 | 100% | ||
lingfei | 0 | 95,909,657,542 | 100% | ||
trafalgar | 0 | 16,278,014,431,080 | 41% | ||
laodr | 0 | 3,626,175,511 | 100% | ||
raindrop | 0 | 254,573,936,856 | 41% | ||
passion-fruit | 0 | 11,663,640,147 | 100% | ||
htliao | 0 | 14,313,925,580 | 100% | ||
fortune-master | 0 | 10,881,570,413 | 100% | ||
cryptoemperor | 0 | 3,960,352,666 | 10% | ||
exec | 0 | 272,058,274,502 | 100% | ||
eval | 0 | 831,833,361 | 100% | ||
sam99 | 0 | 123,101,376,629 | 12.61% | ||
joeyarnoldvn | 0 | 567,763,431 | 1.76% | ||
susanli3769 | 0 | 585,407,918,889 | 100% | ||
yooraa | 0 | 198,482,555 | 100% | ||
felt.buzz | 0 | 1,483,144,211 | 0.17% | ||
haejin | 0 | 11,455,996,008,282 | 100% | ||
catwomanteresa | 0 | 470,220,413,523 | 100% | ||
liangfengyouren | 0 | 3,438,687,371 | 50% | ||
mangoanddaddy | 0 | 3,190,635,245 | 80% | ||
sinta | 0 | 508,371,173 | 100% | ||
fr3eze | 0 | 1,139,183,050 | 100% | ||
aafeng | 0 | 862,690,017,009 | 100% | ||
cn-reader | 0 | 30,859,542,143 | 100% | ||
santigs | 0 | 11,313,776,116 | 30% | ||
floatinglin | 0 | 6,574,095,712 | 100% | ||
mrspointm | 0 | 350,594,410,862 | 100% | ||
kimzwarch | 0 | 11,961,881,554 | 4% | ||
yellowbird | 0 | 2,204,572,616 | 100% | ||
chenlocus | 0 | 6,089,868,661 | 100% | ||
dancingapple | 0 | 24,048,473,775 | 100% | ||
blc | 0 | 4,019,103,004 | 100% | ||
hqy | 0 | 28,116,330,402 | 100% | ||
winniex | 0 | 383,806,933,680 | 100% | ||
noble-noah | 0 | 14,937,398,390 | 100% | ||
etherpunk | 0 | 886,088,313 | 50% | ||
angelina6688 | 0 | 58,791,138,104 | 100% | ||
traf | 0 | 1,380,294,795,914 | 41% | ||
itchyfeetdonica | 0 | 600,517,988,719 | 100% | ||
wilhb81 | 0 | 324,789,955,078 | 50% | ||
emmali | 0 | 215,961,897,149 | 100% | ||
futurecurrency | 0 | 43,852,809,401 | 65% | ||
ethanlee | 0 | 5,723,073,105 | 100% | ||
kymio | 0 | 521,184,429 | 3.75% | ||
hmayak | 0 | 30,153,178,169 | 100% | ||
archisteem | 0 | 1,241,258,762 | 7.5% | ||
moneybaby | 0 | 634,257,412 | 100% | ||
abcallen | 0 | 45,546,034,921 | 80% | ||
julian2013 | 0 | 215,872,797,106 | 100% | ||
pet.society | 0 | 15,017,551,000 | 6% | ||
annepink | 0 | 257,374,349,531 | 100% | ||
starrouge | 0 | 1,048,492,524 | 50% | ||
wherein | 0 | 118,961,494,268 | 100% | ||
zerofive | 0 | 1,097,465,671 | 50% | ||
cnstm | 0 | 173,887,017,420 | 100% | ||
likuang007 | 0 | 665,860,519 | 100% | ||
ctime | 0 | 81,706,890,782 | 2.5% | ||
lianjingmedia | 0 | 1,004,005,509 | 100% | ||
yanhan | 0 | 91,032,414,149 | 100% | ||
lovelemon | 0 | 6,162,552,864 | 20% | ||
epicdice | 0 | 21,046,912,473 | 20% | ||
dailyke20 | 0 | 304,634,656,840 | 100% | ||
gangstalking | 0 | 59,153,021 | 0.1% | ||
pedroerami | 0 | 4,171,079,868 | 100% | ||
moleah | 0 | 82,525,140,302 | 100% | ||
crimianales | 0 | 3,654,927,596 | 50.34% | ||
lnakuma | 0 | 14,452,939,193 | 100% | ||
warmstill | 0 | 1,583,204,582 | 100% | ||
julesquirin | 0 | 1,483,374,608 | 8.2% | ||
lovequeen | 0 | 171,266,812,877 | 99.9% | ||
fengchao | 0 | 2,177,565,515 | 1% | ||
laruche | 0 | 15,325,279,061 | 0.35% | ||
softworld | 0 | 402,624,891,158 | 50% | ||
hive-143869 | 0 | 569,100,342 | 0.35% | ||
portraits | 0 | 0 | 50% | ||
jywahaha | 0 | 204,425,859,453 | 100% | ||
olaunlimited | 0 | 616,106,952 | 18.45% | ||
blogstats | 0 | 877,896,714 | 100% | ||
senseiphil | 0 | 517,815,896 | 0.33% | ||
kattycrochet | 0 | 9,748,515,445 | 20.5% | ||
drricksanchez | 0 | 42,052,554,520 | 10% | ||
ericaliu | 0 | 39,312,343,140 | 100% | ||
dengyanping888 | 0 | 17,435,349,946 | 100% | ||
tingjie | 0 | 5,259,861,120 | 100% | ||
panmonagas | 0 | 1,813,441,112 | 100% | ||
zhangyan-123 | 0 | 9,473,124,090 | 100% | ||
rickexe | 0 | 546,612,256 | 100% | ||
recruit2347 | 0 | 0 | 100% | ||
bai123 | 0 | 566,294,992 | 100% | ||
megabytes | 0 | 301,028,391 | 100% |
需要注意的是,教程里用到byte32类型,实际中转为string要做相应的转换 - 啊,谢谢大伟哥的提示!
author | wilhb81 |
---|---|
permlink | qxyzj3 |
category | hive-105017 |
json_metadata | {"app":"hiveblog/0.1"} |
created | 2021-08-17 06:04:15 |
last_update | 2021-08-17 06:04:15 |
depth | 1 |
children | 0 |
last_payout | 2021-08-24 06:04:15 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 53 |
author_reputation | 228,240,073,324,104 |
root_title | "区块链学习笔记:投票智能合约 之 获取投票结果 完结篇" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 105,593,353 |
net_rshares | 0 |