-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtrial.py
54 lines (28 loc) · 10.6 KB
/
trial.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import json
from web3 import Web3
ganache_url="http://127.0.0.1:8545"
web3=Web3(Web3.HTTPProvider(ganache_url))
web3.eth.defaultAccount = web3.eth.accounts[0]
# account="0xC26Ae1B9395CeF7BF93Fda4F1D94B225Aada67B9"
abi=json.loads('[{"constant":false,"inputs":[{"internalType":"bytes32[]","name":"proposalNames","type":"bytes32[]"}],"name":"candidate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"chair","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"chairperson","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"voter","type":"address"}],"name":"giveRightToVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposals","outputs":[{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"uint256","name":"voteCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposal","type":"uint256"}],"name":"vote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"voters","outputs":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"bool","name":"voted","type":"bool"},{"internalType":"address","name":"delegate","type":"address"},{"internalType":"uint256","name":"vote","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"winnerName","outputs":[{"internalType":"bytes32","name":"winnerName_","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"winningProposal","outputs":[{"internalType":"uint256","name":"winningProposal_","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]')
bytecode="608060405234801561001057600080fd5b50610e14806100206000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063609ff1bd11610066578063609ff1bd1461019d5780639e7b8d61146101bb578063a3ec138d146101ff578063a7a2153a1461029c578063e2ba53f01461035457610093565b80630121b93f14610098578063013cf08b146100c65780632e4176cf1461010f5780635c19a95c14610159575b600080fd5b6100c4600480360360208110156100ae57600080fd5b8101908080359060200190929190505050610372565b005b6100f2600480360360208110156100dc57600080fd5b810190808035906020019092919050505061050f565b604051808381526020018281526020019250505060405180910390f35b610117610540565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61019b6004803603602081101561016f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610565565b005b6101a5610981565b6040518082815260200191505060405180910390f35b6101fd600480360360208110156101d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f8565b005b6102416004803603602081101561021557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bf8565b60405180858152602001841515151581526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390f35b610352600480360360208110156102b257600080fd5b81019080803590602001906401000000008111156102cf57600080fd5b8201836020820111156102e157600080fd5b8035906020019184602083028401116401000000008311171561030357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610c55565b005b61035c610d8a565b6040518082815260200191505060405180910390f35b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001541415610430576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f486173206e6f20726967687420746f20766f746500000000000000000000000081525060200191505060405180910390fd5b8060010160009054906101000a900460ff16156104b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f416c726561647920766f7465642e00000000000000000000000000000000000081525060200191505060405180910390fd5b60018160010160006101000a81548160ff0219169083151502179055508181600201819055508060000154600283815481106104ed57fe5b9060005260206000209060020201600101600082825401925050819055505050565b6002818154811061051c57fe5b90600052602060002090600202016000915090508060000154908060010154905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff161561062d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f7520616c726561647920766f7465642e000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f53656c662d64656c65676174696f6e20697320646973616c6c6f7765642e000081525060200191505060405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087257600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561086d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f466f756e64206c6f6f7020696e2064656c65676174696f6e2e0000000000000081525060200191505060405180910390fd5b6106d0565b60018160010160006101000a81548160ff021916908315150217905550818160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff1615610965578160000154600282600201548154811061094257fe5b90600052602060002090600202016001016000828254019250508190555061097c565b816000015481600001600082825401925050819055505b505050565b6000806000905060008090505b6002805490508110156109f35781600282815481106109a957fe5b90600052602060002090600202016001015411156109e657600281815481106109ce57fe5b90600052602060002090600202016001015491508092505b808060010191505061098e565b505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180610db86028913960400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16610b5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f54686520766f74657220616c726561647920766f7465642e000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414610bae57600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555050565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154905084565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060008090505b8151811015610d865760026040518060400160405280848481518110610d2557fe5b6020026020010151815260200160008152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508080600101915050610d03565b5050565b60006002610d96610981565b81548110610da057fe5b90600052602060002090600202016000015490509056fe4f6e6c79206368616972706572736f6e2063616e206769766520726967687420746f20766f74652ea265627a7a723158201971832f3daf09dff99edc7e8b4718076e3bd4df30d4b6808a58cc162758a93464736f6c63430005110032"
Ballot=web3.eth.contract(bytecode=bytecode,abi=abi)
candidates_list=['0x40C262C71A9c44E378Df7027e9e9011725CBeDEe','0x98A86a8b3B7f3be75E4760de97EcD401CfeF8AA2','0xe43095654E09D430b462D2ACDe9C6c1Ee7e9F80C','0x000CbE1ab1acf4027388705c23ED0CCF0cd348F8','0x9b79D2dB7E69fF553DBeab9E10c6ed7755B98092','0x99fAee9f69ADADAB58031D9551d01FcDDe5C4030']
tx_hash=Ballot.constructor(candidates_list).transact()
tx_reciept=web3.eth.waitForTransactionReceipt(tx_hash)
contract =web3.eth.contract(
address=tx_reciept.contractAddress,
abi=abi
)
tx_hash3=contract.functions.delegate().transact()
tx_reciept=web3.eth.waitForTransactionReceipt(tx_hash3)
# # tx_hash2=contract.functions.giveRightToVote(voterID).transact()
# # tx_reciept=web3.eth.waitForTransactionReceipt(tx_hash2)
# print(tx_reciept.contractAddress)
# tx_hash3=contract.functions.vote(3).transact()
# tx_reciept=web3.eth.waitForTransactionReceipt(tx_hash3)
# print(contract.functions.winnerName().call())
# winnerName=contract.functions.winningProposal().call()
# tx_reciept=web3.eth.waitForTransactionReceipt(tx_hash2)
# winnerName=contract.functions.winnerName().call()
# print(winnerName)