如何设置以太坊账户在智能合约中进行交易的不同凭据?用于基于区块链的投票系统



我正在使用以太坊区块链和Ganache实现智能投票系统。根据该系统,选举当局将通过使用区块链中的公共地址来授权这些人。然后只有他们才能投票。

但问题是,根据我的代码,每一笔投票交易都是由一个区块链账户完成的,因为它总是从同一私钥中获得相同的凭据。

我想做的是,对于每个授权选民,我希望应用程序将凭据更改为其区块链帐户的特定选民凭据。因此,投票交易将由相关的特定账户进行是否有方法检索每个人的凭据。或者更改每个登录帐户的凭据?我很难做到。

这是一款颤振应用程序。

这是我的代码,我在其中设置事务的凭据。

Future<String> authorize() async {
var addressone =
EthereumAddress.fromHex("0xc347C739ae787a0D9A182efDa9055FAe109F055C");
var response = await submit("authorize", [addressone]);
print("deposited");
return response;
}
Future<String> vote() async {
final addressone =
EthereumAddress.fromHex("0xc347C739ae787a0D9A182efDa9055FAe109F055C");
var candidate = BigInt.from(1);
var response = await submit("vote", [addressone, candidate]);
print("voted");
return response;
}
Future<String> submit(String functionName, List<dynamic> args) async {
EthPrivateKey credentials = EthPrivateKey.fromHex(
"968499dbee4f8b8491d9d0e02ff631347291a41e33dc95033c70758a2e99657b");
DeployedContract contract = await loadContract();
final ethfunction = contract.function(functionName);
final result = await ethclient.sendTransaction(
credentials,
Transaction.callContract(
contract: contract, function: ethfunction, parameters: args),
fetchChainIdFromNetworkId: true);
return result;
}

有人能帮我解决这个问题吗?:(

对于每个授权投票人,我希望应用程序将凭据更改为其区块链帐户的特定投票人凭据。

您可以使用Solidity编程语言为您的投票智能合约编程任何类型的规则。这包括如何分配投票权。然而;如何创建基于智能合约的投票系统";对于StackOveflow的答案来说,主题太广了,更多的是大学课程或很长的在线教程的材料。

最新更新