Ejemplo n.º 1
0
    def test_commit(self):
        with auction_contract.test_service():
            ## create transaction
            # init
            init_transaction = auction.init()
            token = init_transaction['transaction']['outputs'][0]

            # create auction
            auction_transaction = auction.create(
                (token, ), None, None, aggr_vk, t_commit, t_reveal, uid, v0,
                ov0)
            auction_object = auction_transaction['transaction']['outputs'][1]

            ## commit
            transaction = auction.commit(
                (auction_object, ),
                None,
                None,
                bidders[0][0],  # seq
                bidders[0][1],  # v
                bidders[0][2]  # sigma
            )

            ## submit transaction
            response = requests.post('http://127.0.0.1:5000/' +
                                     auction_contract.contract_name +
                                     '/commit',
                                     json=transaction_to_solution(transaction))
            self.assertTrue(response.json()['success'])
Ejemplo n.º 2
0
    def test_init(self):
        with auction_contract.test_service():
            ## create transaction
            transaction = auction.init()

            ## submit transaction
            response = requests.post('http://127.0.0.1:5000/' +
                                     auction_contract.contract_name + '/init',
                                     json=transaction_to_solution(transaction))
            self.assertTrue(response.json()['success'])
Ejemplo n.º 3
0
    def test_withdraw(self):
        with auction_contract.test_service():
            ## create transaction
            # init
            init_transaction = auction.init()
            token = init_transaction['transaction']['outputs'][0]

            # create auction
            auction_transaction = auction.create(
                (token, ), None, None, aggr_vk, t_commit, t_reveal, uid, v0,
                ov0)
            auction_object = auction_transaction['transaction']['outputs'][1]

            ## commit
            for i in range(len(bidders)):
                commit_transaction = auction.commit(
                    (auction_object, ),
                    None,
                    None,
                    bidders[i][0],  # seq
                    bidders[i][1],  # v
                    bidders[i][2]  # sigma
                )
                auction_object = commit_transaction['transaction']['outputs'][
                    0]

            ## reveal
            for i in range(len(bidders)):
                reveal_transaction = auction.reveal(
                    (auction_object, ),
                    None,
                    (dumps(bidders[i][1]), ),  # v
                    bidders[i][0],  # seq
                    bidders[i][2]  # sigma
                )
                auction_object = reveal_transaction['transaction']['outputs'][
                    0]

            ## withdraw
            transaction = auction.withdraw(
                (auction_object, ),
                None,
                (dumps(bidders[1][1]), pack(addr)),
                bidders[1][0],  # seq
                bidders[1][2]  # sigma
            )

            ## submit transaction
            response = requests.post('http://127.0.0.1:5000/' +
                                     auction_contract.contract_name +
                                     '/withdraw',
                                     json=transaction_to_solution(transaction))
            self.assertTrue(response.json()['success'])
Ejemplo n.º 4
0
    seq, v = o.random(), i
    (d, gamma) = elgamal_keygen(bp_params)
    private_m = [seq, v]
    Lambda = prepare_blind_sign(bp_params, gamma, private_m)
    sigs_tilde = [blind_sign(bp_params, ski, gamma, Lambda) for ski in sk]
    sigs = [unblind(bp_params, sigma_tilde, d) for sigma_tilde in sigs_tilde]
    sigma = agg_cred(bp_params, sigs)
    bidders.append((seq, v, sigma))



####################################################################
# create all transactions
####################################################################
# init
init_tx = auction.init()
token = init_tx['transaction']['outputs'][0]

create_tx = auction.create(
    (token,),
    None,
    None,
    aggr_vk,
    t_commit,
    t_reveal,
    uid,
    v0,
    ov0
)
auction_object_1 = create_tx['transaction']['outputs'][1]