def write(key, val, looper, sdk_pool_handle, sdk_wallet): _, idr = sdk_wallet reqs_obj = [sdk_gen_request(op, identifier=idr) for op in [write_conf_op(key, val)]] reqs = sdk_sign_request_objects(looper, sdk_wallet, reqs_obj) sent_reqs = sdk_send_signed_requests(sdk_pool_handle, reqs) sdk_get_replies(looper, sent_reqs, timeout=10)
def two_requests(looper, helpers, nodeSetWithIntegratedTokenPlugin, sdk_pool_handle, fees_set, address_main, mint_tokens, sdk_wallet_steward): amount = get_amount_from_token_txn(mint_tokens) init_seq_no = 1 seed = randomString(32) alias = randomString(5) wh, _ = sdk_wallet_steward nym_request, new_did = looper.loop.run_until_complete( prepare_nym_request(sdk_wallet_steward, seed, alias, None)) nym_request = \ sdk_sign_request_objects(looper, sdk_wallet_steward, [sdk_json_to_request_object(json.loads(nym_request))])[0] req_obj = sdk_json_to_request_object(json.loads(nym_request)) helpers.request.nym = lambda: copy.deepcopy(req_obj) req1, req2 = nyms_with_fees(2, helpers, fees_set, address_main, amount, init_seq_no=init_seq_no) assert req1.payload_digest == req2.payload_digest assert req1.digest != req2.digest return req1, req2
def test_plugin_client_req_fields(txn_pool_node_set_post_creation, looper, sdk_wallet_steward, sdk_pool_handle): """ Test that plugin's addition of request fields and their validation is successful """ op = { TXN_TYPE: GET_BAL, DATA: {'id': '123'} } # Valid field value results in successful processing req_obj = sdk_gen_request(op, identifier=sdk_wallet_steward[1], fix_length_dummy=randomString(dummy_field_length)) req = sdk_sign_and_submit_req_obj(looper, sdk_pool_handle, sdk_wallet_steward, req_obj) sdk_get_reply(looper, req) # Invalid field value results in proper failure _, did = sdk_wallet_steward req = sdk_gen_request(op, identifier=did, fix_length_dummy=randomString(dummy_field_length + 1)) reqs = sdk_sign_request_objects(looper, sdk_wallet_steward, [req]) reqs = sdk_send_signed_requests(sdk_pool_handle, reqs) with pytest.raises(RequestNackedException) as e: sdk_get_and_check_replies(looper, reqs) assert 'should have length' in e._excinfo[1].args[0]
def write(key, val, looper, sdk_pool_handle, sdk_wallet): _, idr = sdk_wallet reqs_obj = [sdk_gen_request(op, identifier=idr) for op in [write_conf_op(key, val)]] reqs = sdk_sign_request_objects(looper, sdk_wallet, reqs_obj) sent_reqs = sdk_send_signed_requests(sdk_pool_handle, reqs) sdk_get_replies(looper, sent_reqs, timeout=10)
def sdk_send_new_nym(looper, sdk_pool_handle, creators_wallet, alias=None, role=None, seed=None, dest=None, verkey=None, skipverkey=False): seed = seed or randomString(32) alias = alias or randomString(5) wh, _ = creators_wallet # filling nym request and getting steward did # if role == None, we are adding client nym_request, new_did = looper.loop.run_until_complete( prepare_nym_request(creators_wallet, seed, alias, role, dest, verkey, skipverkey)) # sending request using 'sdk_' functions signed_reqs = sdk_sign_request_objects( looper, creators_wallet, [sdk_json_to_request_object(json.loads(nym_request))]) request_couple = sdk_send_signed_requests(sdk_pool_handle, signed_reqs) return request_couple
def test_plugin_client_req_fields(txn_pool_node_set_post_creation, looper, sdk_wallet_steward, sdk_pool_handle): """ Test that plugin's addition of request fields and their validation is successful """ op = {TXN_TYPE: GET_BAL, DATA: {'id': '123'}} # Valid field value results in successful processing req_obj = sdk_gen_request( op, identifier=sdk_wallet_steward[1], fix_length_dummy=randomString(dummy_field_length)) req = sdk_sign_and_submit_req_obj(looper, sdk_pool_handle, sdk_wallet_steward, req_obj) sdk_get_reply(looper, req) # Invalid field value results in proper failure _, did = sdk_wallet_steward req = sdk_gen_request(op, identifier=did, fix_length_dummy=randomString(dummy_field_length + 1)) reqs = sdk_sign_request_objects(looper, sdk_wallet_steward, [req]) reqs = sdk_send_signed_requests(sdk_pool_handle, reqs) with pytest.raises(RequestNackedException) as e: sdk_get_and_check_replies(looper, reqs) assert 'should have length' in e._excinfo[1].args[0]
def sdk_sign_and_send_prepared_request(looper, sdk_wallet, sdk_pool_handle, string_req): signed_reqs = sdk_sign_request_objects( looper, sdk_wallet, [sdk_json_to_request_object(json.loads(string_req))]) request_couple = sdk_send_signed_requests(sdk_pool_handle, signed_reqs)[0] return request_couple
def do_transfer(txnPoolNodeSet, sdk_pool_handle, helpers, looper, sdk_wallet, addresses, amount, sign=False): [address_giver, address_receiver] = addresses inputs = helpers.general.get_utxo_addresses([address_giver])[0] change = sum([utxo["amount"] for utxo in inputs]) - amount outputs = [ { ADDRESS: address_receiver, AMOUNT: amount }, { ADDRESS: address_giver, AMOUNT: change }, ] request = helpers.request.transfer(inputs, outputs) _, request._identifier = sdk_wallet requests = sdk_sign_request_objects(looper, sdk_wallet, [request]) \ if sign else [json.dumps(request.as_dict)] sdk_send_and_check(requests, looper, txnPoolNodeSet, sdk_pool_handle)
def sdk_sign_request_objects(self, requests, sdk_wallet=None): sdk_wallet = sdk_wallet or self._wallet_steward return plenum_helper.sdk_sign_request_objects( self._looper, sdk_wallet, requests )
def read(key, looper, sdk_pool_handle, sdk_wallet): _, idr = sdk_wallet reqs_obj = [sdk_gen_request(op, identifier=idr) for op in [read_conf_op(key)]] reqs = sdk_sign_request_objects(looper, sdk_wallet, reqs_obj) sent_reqs = sdk_send_signed_requests(sdk_pool_handle, reqs) (req, resp), = sdk_get_replies(looper, sent_reqs, timeout=10) return json.loads(resp['result'][DATA])[key]
def read(key, looper, sdk_pool_handle, sdk_wallet): _, idr = sdk_wallet reqs_obj = [sdk_gen_request(op, identifier=idr) for op in [read_conf_op(key)]] reqs = sdk_sign_request_objects(looper, sdk_wallet, reqs_obj) sent_reqs = sdk_send_signed_requests(sdk_pool_handle, reqs) (req, resp), = sdk_get_replies(looper, sent_reqs, timeout=10) return json.loads(resp['result'][DATA])[key]
def send_and_check(self, req, wallet): signed_reqs = sdk_sign_request_objects(self.looper, wallet, [req]) request_couple = sdk_send_signed_requests(self.sdk_pool_handle, signed_reqs)[0] return sdk_get_and_check_replies(self.looper, [request_couple])[0]
def test_request_with_correct_version(looper, txnPoolNodeSet, sdk_pool_handle, sdk_wallet_client, request_num): _, did = sdk_wallet_client reqs_obj = sdk_random_request_objects( request_num, identifier=did, protocol_version=CURRENT_PROTOCOL_VERSION) for req_obj in reqs_obj: assert req_obj.protocolVersion == CURRENT_PROTOCOL_VERSION signed_reqs = sdk_sign_request_objects(looper, sdk_wallet_client, reqs_obj) reqs = sdk_send_signed_requests(sdk_pool_handle, signed_reqs) sdk_get_and_check_replies(looper, reqs)
def sign_and_validate(looper, node, action_id, signer, op, did_ledger=None): req_obj = sdk_gen_request(op, protocol_version=CURRENT_PROTOCOL_VERSION, identifier=signer.did) s_req = sdk_sign_request_objects(looper, signer.wallet_did, [req_obj])[0] request = Request(**json.loads(s_req)) if auth_check(action_id, signer, op, did_ledger): node.write_manager.dynamic_validation(request) else: with pytest.raises(UnauthorizedClientRequest): node.write_manager.dynamic_validation(request)
def test_request_no_protocol_version(looper, txnPoolNodeSet, sdk_pool_handle, sdk_wallet_client, request_num): _, did = sdk_wallet_client reqs_obj = sdk_random_request_objects(request_num, identifier=did, protocol_version=None) for req_obj in reqs_obj: assert req_obj.protocolVersion == None signed_reqs = sdk_sign_request_objects(looper, sdk_wallet_client, reqs_obj) reqs = sdk_send_signed_requests(sdk_pool_handle, signed_reqs) sdk_get_and_check_replies(looper, reqs)
def test_request_with_invalid_version(looper, txnPoolNodeSet, sdk_pool_handle, sdk_wallet_client, request_num): _, did = sdk_wallet_client reqs_obj = sdk_random_request_objects(request_num, identifier=did, protocol_version=-1) for req_obj in reqs_obj: assert req_obj.protocolVersion == -1 signed_reqs = sdk_sign_request_objects(looper, sdk_wallet_client, reqs_obj) reqs = sdk_send_signed_requests(sdk_pool_handle, signed_reqs) sdk_get_bad_response(looper, reqs, CommonSdkIOException, 'Got an error with code 113')
def test_request_with_invalid_version(looper, txnPoolNodeSet, sdk_pool_handle, sdk_wallet_client, request_num): _, did = sdk_wallet_client reqs_obj = sdk_random_request_objects(request_num, identifier=did, protocol_version=-1) for req_obj in reqs_obj: assert req_obj.protocolVersion == -1 signed_reqs = sdk_sign_request_objects(looper, sdk_wallet_client, reqs_obj) reqs = sdk_send_signed_requests(sdk_pool_handle, signed_reqs) sdk_get_bad_response(looper, reqs, RequestNackedException, 'Unknown protocol version value. ' + error_msg)
def test_seq_no_db_signed_request(looper, node, sdk_wallet_client): # Create signed request and write it to ledger req = sdk_random_request_objects( 1, identifier=sdk_wallet_client[1], protocol_version=CURRENT_PROTOCOL_VERSION)[0] req = sdk_sign_request_objects(looper, sdk_wallet_client, [req])[0] req = deserialize_req(req) write_request(node, req) # Make sure sending request again will return REPLY rep = node.getReplyFromLedgerForRequest(req) assert isinstance(rep, Reply)
def test_request_none_protocol_version(looper, txnPoolNodeSet, sdk_pool_handle, sdk_wallet_client, request_num): _, did = sdk_wallet_client req_objs = sdk_random_request_objects(request_num, identifier=did, protocol_version=None) for req_obj in req_objs: assert req_obj.protocolVersion == None signed_reqs = sdk_sign_request_objects(looper, sdk_wallet_client, req_objs) reqs = sdk_send_signed_requests(sdk_pool_handle, signed_reqs) sdk_get_bad_response(looper, reqs, RequestNackedException, 'missed fields - protocolVersion. ' + error_msg)
def test_request_with_invalid_version(looper, txnPoolNodeSet, sdk_pool_handle, sdk_wallet_client, request_num): _, did = sdk_wallet_client reqs_obj = sdk_random_request_objects(request_num, identifier=did, protocol_version=-1) for req_obj in reqs_obj: assert req_obj.protocolVersion == -1 signed_reqs = sdk_sign_request_objects(looper, sdk_wallet_client, reqs_obj) reqs = sdk_send_signed_requests(sdk_pool_handle, signed_reqs) with pytest.raises(RequestNackedException) as e: sdk_get_and_check_replies(looper, reqs) assert 'Unknown protocol version value -1' in e._excinfo[1].args[0]
def test_request_with_correct_version(looper, txnPoolNodeSet, sdk_pool_handle, sdk_wallet_client, request_num): _, did = sdk_wallet_client reqs_obj = sdk_random_request_objects(request_num, identifier=did, protocol_version=CURRENT_PROTOCOL_VERSION) for req_obj in reqs_obj: assert req_obj.protocolVersion == CURRENT_PROTOCOL_VERSION signed_reqs = sdk_sign_request_objects(looper, sdk_wallet_client, reqs_obj) reqs = sdk_send_signed_requests(sdk_pool_handle, signed_reqs) sdk_get_and_check_replies(looper, reqs)
def test_request_none_protocol_version(looper, txnPoolNodeSet, sdk_pool_handle, sdk_wallet_client, request_num): _, did = sdk_wallet_client req_objs = sdk_random_request_objects(request_num, identifier=did, protocol_version=None) for req_obj in req_objs: assert req_obj.protocolVersion == None signed_reqs = sdk_sign_request_objects(looper, sdk_wallet_client, req_objs) reqs = sdk_send_signed_requests(sdk_pool_handle, signed_reqs) sdk_get_bad_response(looper, reqs, RequestNackedException, 'missed fields - protocolVersion. ' + error_msg)
def test_request_with_invalid_version(looper, txnPoolNodeSet, sdk_pool_handle, sdk_wallet_client, request_num): _, did = sdk_wallet_client reqs_obj = sdk_random_request_objects(request_num, identifier=did, protocol_version=-1) for req_obj in reqs_obj: assert req_obj.protocolVersion == -1 signed_reqs = sdk_sign_request_objects(looper, sdk_wallet_client, reqs_obj) reqs = sdk_send_signed_requests(sdk_pool_handle, signed_reqs) sdk_get_bad_response(looper, reqs, RequestNackedException, 'Unknown protocol version value. ' + error_msg)
def test_request_with_outdated_version(looper, txnPoolNodeSet, sdk_pool_handle, sdk_wallet_client, request_num): _, did = sdk_wallet_client reqs_obj = sdk_random_request_objects(request_num, identifier=did, protocol_version=CURRENT_PROTOCOL_VERSION - 1) for req_obj in reqs_obj: assert req_obj.protocolVersion == CURRENT_PROTOCOL_VERSION - 1 signed_reqs = sdk_sign_request_objects(looper, sdk_wallet_client, reqs_obj) reqs = sdk_send_signed_requests(sdk_pool_handle, signed_reqs) sdk_get_bad_response(looper, reqs, RequestNackedException, 'differs from current protocol version. ' .format(CURRENT_PROTOCOL_VERSION) + error_msg)
def test_request_with_outdated_version(looper, txnPoolNodeSet, sdk_pool_handle, sdk_wallet_client, request_num): _, did = sdk_wallet_client reqs_obj = sdk_random_request_objects( request_num, identifier=did, protocol_version=CURRENT_PROTOCOL_VERSION - 1) for req_obj in reqs_obj: assert req_obj.protocolVersion == CURRENT_PROTOCOL_VERSION - 1 signed_reqs = sdk_sign_request_objects(looper, sdk_wallet_client, reqs_obj) reqs = sdk_send_signed_requests(sdk_pool_handle, signed_reqs) sdk_get_bad_response( looper, reqs, RequestNackedException, 'differs from current protocol version. '.format( CURRENT_PROTOCOL_VERSION) + error_msg)
def sdk_sign_and_send_prepared_request(looper, sdk_wallet, sdk_pool_handle, string_req): signed_reqs = sdk_sign_request_objects(looper, sdk_wallet, [sdk_json_to_request_object( json.loads(string_req))]) request_couple = sdk_send_signed_requests(sdk_pool_handle, signed_reqs)[0] return request_couple