Show / Hide Table of Contents

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表示给候选人投票成功。

  • 其他:失败。

返回上级