def close_wallet(wallet_handle): try: run_coroutine(wallet.close_wallet(wallet_handle)) except IndyError as err: if err.error_code == ErrorCode.WalletInvalidHandle: return raise Exception(err.message)
def wallet(looper): wallet_name = randomString() create_wallet_future = create_wallet(json.dumps({"id": wallet_name}), json.dumps({"key": "1"})) looper.loop.run_until_complete(create_wallet_future) open_wallet_future = open_wallet(json.dumps({"id": wallet_name}), json.dumps({"key": "1"})) wallet_handle = looper.loop.run_until_complete(open_wallet_future) yield wallet_handle close_wallet_future = close_wallet(wallet_handle) looper.loop.run_until_complete(close_wallet_future) delete_wallet_future = delete_wallet(json.dumps({"id": wallet_name}), json.dumps({"key": "1"})) looper.loop.run_until_complete(delete_wallet_future)
def wallet_handle(event_loop, xwallet, wallet_config, credentials, wallet_handle_cleanup): logger = logging.getLogger(__name__) logger.debug( "wallet_handle: >>> xwallet: %r, wallet_config: %r, credentials: %r, wallet_handle_cleanup: %r", xwallet, wallet_config, credentials, wallet_handle_cleanup) logger.debug("wallet_handle: Opening wallet") wallet_handle = event_loop.run_until_complete( wallet.open_wallet(wallet_config, credentials)) assert type(wallet_handle) is int logger.debug("wallet_handle: yield %r", wallet_handle) yield wallet_handle logger.debug("wallet_handle: Closing wallet") event_loop.run_until_complete( wallet.close_wallet(wallet_handle)) if wallet_handle_cleanup else None logger.debug("wallet_handle: <<<")
def main(): global conf global wallet_handle global pool_handle if len(sys.argv) != 2: print("Usage pds.py <configuration file>") sys.exit() with open(sys.argv[1]) as f: conf = json.load(f) httpd = HTTPServer(('', conf["port"]), PDSHandler) loop = asyncio.get_event_loop() wallet_handle = loop.run_until_complete( wallet.open_wallet(json.dumps(conf['wallet_config']), json.dumps(conf['wallet_credentials']))) try: httpd.serve_forever() except KeyboardInterrupt: pass httpd.server_close() loop.run_until_complete(wallet.close_wallet(wallet_handle))
def wallet_handle(event_loop, xwallet, wallet_config, credentials, wallet_handle_cleanup): logger = logging.getLogger(__name__) logger.debug( "wallet_handle: >>> xwallet: %r, wallet_config: %r, credentials: %r, wallet_handle_cleanup: %r", xwallet, wallet_config, credentials, wallet_handle_cleanup) logger.debug("wallet_handle: Opening wallet") wallet_handle = event_loop.run_until_complete(wallet.open_wallet(wallet_config, credentials)) assert type(wallet_handle) is int logger.debug("wallet_handle: yield %r", wallet_handle) yield wallet_handle logger.debug("wallet_handle: Closing wallet") event_loop.run_until_complete(wallet.close_wallet(wallet_handle)) if wallet_handle_cleanup else None logger.debug("wallet_handle: <<<")
def sdk_wallet_handle(looper, sdk_wallet_data): wallet_handle = looper.loop.run_until_complete( _gen_wallet_handler(sdk_wallet_data)) yield wallet_handle looper.loop.run_until_complete(close_wallet(wallet_handle))
def wallet_handle(wallet_created, wallet_name, event_loop): wallet_handle = event_loop.run_until_complete( wallet.open_wallet(wallet_name, None, None)) yield wallet_handle event_loop.run_until_complete(wallet.close_wallet(wallet_handle))
def sdk_wallet_handle(looper, sdk_wallet_data): wallet_handle = looper.loop.run_until_complete(_gen_wallet_handler(sdk_wallet_data)) yield wallet_handle looper.loop.run_until_complete(close_wallet(wallet_handle))
async def setup(): print("1. Creating pool") pool_config = json.dumps({"genesis_txn": str(pool_genesis_txn_path)}) await pool.set_protocol_version(2) try: await pool.create_pool_ledger_config(pool_name, pool_config) except IndyError as ex: if ex.error_code == ErrorCode.PoolLedgerConfigAlreadyExistsError: pass print("2. Opening pool") pool_handle = await pool.open_pool_ledger(pool_name, pool_config) ################################################# print("3. Creating Steward wallet and DID") try: await wallet.create_wallet(steward['wallet_config'], steward['wallet_credentials']) except IndyError as ex: if ex.error_code == ErrorCode.WalletAlreadyExistsError: pass steward['wallet'] = await wallet.open_wallet(steward['wallet_config'], steward['wallet_credentials']) steward['did_info'] = json.dumps({'seed': steward['seed']}) steward['did'], steward['key'] = await did.create_and_store_my_did(steward['wallet'], steward['did_info']) ################################################# print("4. Creating Endorser wallet, DID, and storing it in the ledger") try: await wallet.create_wallet(endorser['wallet_config'], endorser['wallet_credentials']) except IndyError as ex: if ex.error_code == ErrorCode.WalletAlreadyExistsError: pass endorser['wallet'] = await wallet.open_wallet(endorser['wallet_config'], endorser['wallet_credentials']) endorser['did_info'] = json.dumps({'seed': endorser['seed']}) endorser['did'], endorser['key'] = await did.create_and_store_my_did(endorser['wallet'], endorser['did_info']) nym_request = await ledger.build_nym_request(steward['did'], endorser['did'], endorser['key'], None, 'TRUST_ANCHOR') await ledger.sign_and_submit_request(pool_handle, steward['wallet'], steward['did'], nym_request) print("...Endorser DID: " + endorser['did']) ################################################# print("5. Creating user wallet, DID, storing it in the ledger, and creating master secret key") try: await wallet.create_wallet(user['wallet_config'], user['wallet_credentials']) except IndyError as ex: if ex.error_code == ErrorCode.WalletAlreadyExistsError: pass user['wallet'] = await wallet.open_wallet(user['wallet_config'], user['wallet_credentials']) user['did_info'] = json.dumps({'seed': user['seed']}) user['did'], user['key'] = await did.create_and_store_my_did(user['wallet'], user['did_info']) nym_request = await ledger.build_nym_request(endorser['did'], user['did'], user['key'], None, None) await ledger.sign_and_submit_request(pool_handle, endorser['wallet'], endorser['did'], nym_request) try: await anoncreds.prover_create_master_secret(usawait wallet.close_wallet(server['wallet'])er['wallet'], user['msk']) except IndyError as ex: if ex.error_code == ErrorCode.AnoncredsMasterSecretDuplicateNameError: pass print("...User DID: " + user['did']) ################################################# ''' The following is used for verifying DIDs without the pool ''' print("6. Creating server wallet") try: await wallet.create_wallet(server['wallet_config'], server['wallet_credentials']) except IndyError as ex: if ex.error_code == ErrorCode.WalletAlreadyExistsError: pass ################################################# ''' The following is used for verifying DIDs without the pool ''' print("7. Storing user verkey in server's wallet") server['wallet'] = await wallet.open_wallet(server['wallet_config'], server['wallet_credentials']) await did.store_their_did(server['wallet'],json.dumps({"did": user['did'], "verkey": user['key']})) ################################################# print("Cleaning up") await wallet.close_wallet(steward['wallet']) await wallet.close_wallet(endorser['wallet']) await wallet.close_wallet(user['wallet']) await wallet.close_wallet(server['wallet']) await pool.close_pool_ledger(pool_handle)