我正在使用以太坊区块链和使用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;
}
有人可以帮我解决这个问题吗?:(