NEO.Vote 方法
每个地址均有投票给一个地址的权利,候选人票数为所有向该账户投票的地址的NEO余额之和。初始块所有默认候选人均会向自己投票。
命名空间: Neo.SmartContract.Framework.Native
程序集:Neo.SmartContract.Framework
投给非候选人的地址的票数会被统计但不会被计入票数,只有当该地址注册为候选人投票才会生效。
投票需要验证投票者的签名。
语法
public static extern bool Vote(UInt160 account, ECPoint voteTo);
参数:
-
account: 投票账户的脚本哈希;
-
voteTo: 目标账户的公钥。
示例
public class Contract1 : SmartContract.Framework.SmartContract
{
private static readonly UInt160 account = "NXsG3zwpwcfvBiA3bNMx6mWZGEro9ZqTqM".ToScriptHash();
private static readonly byte[] pubkey = "02e8ff17c567d62f274fe247cc884a2a6cd3b8fd0d779a8c5856289a560accacb4".HexToBytes();
public static object Test()
{
bool result = NEO.Vote(account, (ECPoint)pubkey);
return result;
}
}
部署后,调用该合约,响应正文为:
{
"type":"Boolean",
"value":"true"
}
响应说明:
-
Boolean类型:true表示给候选人投票成功。
-
其他:失败。