def aml_on_ledger(looper, sdk_pool_handle, sdk_wallet_trustee): ver = random.randint(1, 10000) aml_req_future = build_acceptance_mechanisms_request(sdk_wallet_trustee[1], "{\"test\":\"aml\"}", str(ver), None) aml_req = looper.loop.run_until_complete(aml_req_future) aml_resp_future = sign_and_submit_request(sdk_pool_handle, sdk_wallet_trustee[0], sdk_wallet_trustee[1], aml_req) aml_resp = looper.loop.run_until_complete(aml_resp_future) aml = json.loads(aml_resp) assert aml["result"] assert aml["result"][TXN_METADATA] assert aml["result"][TXN_METADATA][TXN_METADATA_SEQ_NO] return aml["result"][TXN_METADATA][TXN_METADATA_SEQ_NO]
def attrib_on_ledger(looper, sdk_pool_handle, sdk_wallet_steward, sdk_client_wallet): attrib_req_future = build_attrib_request(sdk_wallet_steward[1], sdk_client_wallet[1], None, "{}", None) attrib_req = looper.loop.run_until_complete(attrib_req_future) attrib_resp_future = sign_and_submit_request(sdk_pool_handle, sdk_wallet_steward[0], sdk_wallet_steward[1], attrib_req) attrib_resp = looper.loop.run_until_complete(attrib_resp_future) attrib = json.loads(attrib_resp) print(attrib) assert attrib["result"] assert attrib["result"][TXN_METADATA] assert attrib["result"][TXN_METADATA][TXN_METADATA_SEQ_NO] return attrib["result"][TXN_METADATA][TXN_METADATA_SEQ_NO]
def nym_on_ledger(looper, sdk_pool_handle, sdk_wallet_client, sdk_wallet_steward, seed=None): did_future = create_and_store_my_did(sdk_wallet_client[0], json.dumps({"seed": seed}) if seed else "{}") did, vk = looper.loop.run_until_complete(did_future) nym_req_future = build_nym_request(sdk_wallet_steward[1], did, vk, None, None) nym_req = looper.loop.run_until_complete(nym_req_future) nym_resp_future = sign_and_submit_request(sdk_pool_handle, sdk_wallet_steward[0], sdk_wallet_steward[1], nym_req) nym_resp = looper.loop.run_until_complete(nym_resp_future) nym = json.loads(nym_resp) assert nym["result"] assert nym["result"][TXN_METADATA] assert nym["result"][TXN_METADATA][TXN_METADATA_SEQ_NO] return nym["result"][TXN_METADATA][TXN_METADATA_SEQ_NO]
def test_get_txn_after_bls_key_rotation(looper, txnPoolNodeSet, sdk_wallet_stewards, sdk_wallet_trustee, sdk_wallet_client, sdk_pool_handle): check_update_bls_key(node_num=0, saved_multi_sigs_count=4, looper=looper, txnPoolNodeSet=txnPoolNodeSet, sdk_wallet_stewards=sdk_wallet_stewards, sdk_wallet_client=sdk_wallet_client, sdk_pool_handle=sdk_pool_handle, pool_refresh=False) check_update_bls_key(node_num=1, saved_multi_sigs_count=4, looper=looper, txnPoolNodeSet=txnPoolNodeSet, sdk_wallet_stewards=sdk_wallet_stewards, sdk_wallet_client=sdk_wallet_client, sdk_pool_handle=sdk_pool_handle, pool_refresh=False) check_update_bls_key(node_num=2, saved_multi_sigs_count=4, looper=looper, txnPoolNodeSet=txnPoolNodeSet, sdk_wallet_stewards=sdk_wallet_stewards, sdk_wallet_client=sdk_wallet_client, sdk_pool_handle=sdk_pool_handle, pool_refresh=False) check_update_bls_key(node_num=3, saved_multi_sigs_count=4, looper=looper, txnPoolNodeSet=txnPoolNodeSet, sdk_wallet_stewards=sdk_wallet_stewards, sdk_wallet_client=sdk_wallet_client, sdk_pool_handle=sdk_pool_handle, pool_refresh=False) # Stop receiving of commits in a circle, so all nodes will have different sets of multi signatures with delay_rules_without_processing(txnPoolNodeSet[0].nodeIbStasher, cDelay(delay=1200, sender_filter=txnPoolNodeSet[3].name)): with delay_rules_without_processing(txnPoolNodeSet[1].nodeIbStasher, cDelay(delay=1200, sender_filter=txnPoolNodeSet[0].name)): with delay_rules_without_processing(txnPoolNodeSet[2].nodeIbStasher, cDelay(delay=1200, sender_filter=txnPoolNodeSet[1].name)): with delay_rules_without_processing(txnPoolNodeSet[3].nodeIbStasher, cDelay(delay=1200, sender_filter=txnPoolNodeSet[2].name)): did_future = create_and_store_my_did(sdk_wallet_client[0], "{}") did, verkey = looper.loop.run_until_complete(did_future) nym_request_future = ledger.build_nym_request(sdk_wallet_trustee[1], did, verkey, None, None) nym_request = looper.loop.run_until_complete(nym_request_future) nym_response_future = ledger.sign_and_submit_request(sdk_pool_handle, sdk_wallet_trustee[0], sdk_wallet_trustee[1], nym_request) looper.loop.run_until_complete(nym_response_future) get_txn_request_future = ledger.build_get_txn_request(sdk_wallet_client[1], "DOMAIN", 1) get_txn_request = looper.loop.run_until_complete(get_txn_request_future) get_txn_response_future = ledger.submit_request(sdk_pool_handle, get_txn_request) looper.loop.run_until_complete(get_txn_response_future)
def test_sigining_without_identifier(looper, txnPoolNodeSet, sdk_pool_handle, sdk_steward_seed, sdk_wallet_handle): req = {TXN_PAYLOAD: {TXN_PAYLOAD_DATA: {"aaa": "BBB"}}} steward_did_future = create_and_store_my_did( sdk_wallet_handle, json.dumps({"seed": sdk_steward_seed})) steward_did, _ = looper.loop.run_until_complete(steward_did_future) did_future = create_and_store_my_did(sdk_wallet_handle, json.dumps({})) did, verkey = looper.loop.run_until_complete(did_future) nym_future = build_nym_request(steward_did, did, verkey, None, None) nym = looper.loop.run_until_complete(nym_future) resp_future = sign_and_submit_request(sdk_pool_handle, sdk_wallet_handle, steward_did, nym) resp = looper.loop.run_until_complete(resp_future) req_future = multi_sign_request(sdk_wallet_handle, did, json.dumps(req)) req = looper.loop.run_until_complete(req_future) req = json.loads(req) sigs = txnPoolNodeSet[0].init_core_authenticator().authenticate(req) assert sigs == [did]
def sdk_sign_and_submit_req(pool_handle, sdk_wallet, req): wallet_handle, sender_did = sdk_wallet return json.loads(req), asyncio.ensure_future( sign_and_submit_request(pool_handle, wallet_handle, sender_did, req))
async def main(pool_name, pool_genesis_txn_path, seed_trustee1): # 1. Create ledger config from genesis txn file pool_config = json.dumps({"genesis_txn": str(pool_genesis_txn_path)}) try: await pool.create_pool_ledger_config(pool_name, pool_config) except IndyError: pass # 2. Open pool ledger pool_handle = await pool.open_pool_ledger(pool_name, None) # 3. Create My Wallet and Get Wallet Handle try: await wallet.create_wallet(pool_name, 'my_wallet', None, None, None) except IndyError: pass my_wallet_handle = await wallet.open_wallet('my_wallet', None, None) # 4. Create Their Wallet and Get Wallet Handle try: await wallet.create_wallet(pool_name, 'their_wallet', None, None, None) except IndyError: pass their_wallet_handle = await wallet.open_wallet('their_wallet', None, None) # 5. Create My DID (my_did, my_verkey) = await signus.create_and_store_my_did(my_wallet_handle, "{}") # 6. Create Their DID from Trustee1 seed (their_did, their_verkey) = await signus.create_and_store_my_did(their_wallet_handle, json.dumps({"seed": seed_trustee1})) print_did_verkey(my_did, my_verkey, 'my') print_did_verkey(their_did, their_verkey, 'their') # 7. Store Their DID await signus.store_their_did(my_wallet_handle, json.dumps({'did': their_did, 'verkey': their_verkey})) print('Their_did: %s' % their_did) # 8. Prepare and send NYM transaction nym_txn_req = await ledger.build_nym_request(their_did, my_did, None, None, None) ledger.sign_and_submit_request(pool_handle, their_wallet_handle, their_did, nym_txn_req) # 9. Prepare and send GET_NYM request get_nym_txn_req = await ledger.build_get_nym_request(their_did, 'fxae8eMr1w1tTW4GvqFhN') get_nym_txn_resp = await ledger.submit_request(pool_handle, get_nym_txn_req) get_nym_txn_resp = json.loads(get_nym_txn_resp) print(get_nym_txn_resp) assert get_nym_txn_resp['dest'] == 'fxae8eMr1w1tTW4GvqFhN' set_attr_request = await signus.set_endpoint_for_did(their_wallet_handle, their_did, '1.2.3', their_verkey) set_attr_response = await ledger.submit_request(pool_handle, set_attr_request) print(set_attr_response) # get_endpoint_request = await ledger.build_get_attrib_request(their_did, my_did, 'endpoint') # get_endpoint_response = await ledger.submit_request(pool_handle, get_endpoint_request) # print(get_endpoint_response) # metadata_request = ledger.build_get_attrib_request(their_did, my_did) # metadata_response = await ledger.submit_request(pool_handle, metadata_request) # print(metadata_response) print(get_nym_txn_resp) assert get_nym_txn_resp['result']['dest'] == my_did # 10. Close wallets and pool await wallet.close_wallet(their_wallet_handle) await wallet.close_wallet(my_wallet_handle) await pool.close_pool_ledger(pool_handle)