1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- from chainspaceapi import ChainspaceClient
- from chainspacecontract.examples import vote
- from chainspacecontract.examples.utils import setup, key_gen, pack, unpack, add, add_side
- from json import dumps, loads
- client = ChainspaceClient()
- params = setup()
- (tally_priv, tally_pub) = key_gen(params)
- (_, voter1_pub) = key_gen(params)
- (_, voter2_pub) = key_gen(params)
- (_, voter3_pub) = key_gen(params)
- options = ['alice', 'bob']
- participants = [pack(voter1_pub), pack(voter2_pub), pack(voter3_pub)]
- def transaction_to_solution(data):
- store = data['store']
- transaction = data['transaction']
- for dependency in transaction['dependencies']:
- del dependency['dependencies']
- for single_transaction in (transaction,) + tuple(transaction['dependencies']):
- single_transaction['inputs'] = []
- single_transaction['referenceInputs'] = []
- for object_id in single_transaction['inputIDs']:
- single_transaction['inputs'].append(store[object_id])
- for object_id in single_transaction['referen ceInputIDs']:
- single_transaction['referenceInputs'].append(store[object_id])
- del single_transaction['inputIDs']
- del single_transaction['referenceInputIDs']
- single_transaction['inputs'] = tuple(single_transaction['inputs'])
- single_transaction['referenceInputs'] = tuple(single_transaction['referenceInputs'])
- return transaction
- def do_things():
- init_transaction = vote.init()
- vote_object = init_transaction['transaction']['outputs']
- client.process_transaction(init_transaction)
- vote_transaction = vote.create_vote(
- (vote_object,),
- None,
- None,
- dumps(options),
- dumps(participants),
- pack(tally_priv),
- pack(tally_pub))
- client.process_transaction(transaction_to_solution(vote_transaction))
- if __name__ == '__main__':
- do_things()
|