async def open(self) -> 'Wallet':
        """
        Explicit entry. Open wallet as configured, for later closure via close().
        For use when keeping wallet open across multiple calls.

        Raise any IndyError causing failure to open wallet, WalletState if wallet already open,
        or AbsentWallet on attempt to enter wallet not yet created.

        :return: current object
        """

        LOGGER.debug('Wallet.open >>>')

        created = False
        while True:
            try:
                self._handle = await wallet.open_wallet(
                    json.dumps(self.config),
                    json.dumps(self.access_creds))
                LOGGER.info('Opened wallet %s on handle %s', self.name, self.handle)
                break
            except IndyError as x_indy:
                if x_indy.error_code == ErrorCode.WalletNotFoundError:
                    if created:
                        LOGGER.debug('Wallet.open() <!< Wallet %s not found after creation', self.name)
                        raise AbsentWallet('Wallet {} not found after creation'.format(self.name))
                    if self.auto_create:
                        await self.create()
                        continue
                    else:
                        LOGGER.debug('Wallet.open() <!< Wallet %s not found', self.name)
                        raise AbsentWallet('Wallet {} not found'.format(self.name))
                elif x_indy.error_code == ErrorCode.WalletAlreadyOpenedError:
                    LOGGER.debug('Wallet.open() <!< Wallet %s is already open', self.name)
                    raise WalletState('Wallet {} is already open'.format(self.name))
                elif x_indy.error_code == ErrorCode.WalletAccessFailed:
                    LOGGER.debug('Wallet.open() <!< Bad access credentials value for wallet %s', self.name)
                    raise BadAccess('Bad access credentials value for wallet {}'.format(self.name))

                LOGGER.debug('Wallet %s open raised indy error %s', self.name, x_indy.error_code)
                raise

        self.did = await self.get_anchor_did()
        self.verkey = await did.key_for_local_did(self.handle, self.did) if self.did else None
        LOGGER.info('Wallet %s got verkey %s for existing DID %s', self.name, self.verkey, self.did)

        LOGGER.debug('Wallet.open <<<')
        return self
async def open ( self ) -> 'Wallet' : LOGGER . debug ( 'Wallet.open >>>' ) created = False while True : try : self . _handle = await wallet . open_wallet ( json . dumps ( self . config ) , json . dumps ( self . access_creds ) ) LOGGER . info ( 'Opened wallet %s on handle %s' , self . name , self . handle ) break except IndyError as x_indy : if x_indy . error_code == ErrorCode . WalletNotFoundError : if created : LOGGER . debug ( 'Wallet.open() <!< Wallet %s not found after creation' , self . name ) raise AbsentWallet ( 'Wallet {} not found after creation' . format ( self . name ) ) if self . auto_create : await self . create ( ) continue else : LOGGER . debug ( 'Wallet.open() <!< Wallet %s not found' , self . name ) raise AbsentWallet ( 'Wallet {} not found' . format ( self . name ) ) elif x_indy . error_code == ErrorCode . WalletAlreadyOpenedError : LOGGER . debug ( 'Wallet.open() <!< Wallet %s is already open' , self . name ) raise WalletState ( 'Wallet {} is already open' . format ( self . name ) ) elif x_indy . error_code == ErrorCode . WalletAccessFailed : LOGGER . debug ( 'Wallet.open() <!< Bad access credentials value for wallet %s' , self . name ) raise BadAccess ( 'Bad access credentials value for wallet {}' . format ( self . name ) ) LOGGER . debug ( 'Wallet %s open raised indy error %s' , self . name , x_indy . error_code ) raise self . did = await self . get_anchor_did ( ) self . verkey = await did . key_for_local_did ( self . handle , self . did ) if self . did else None LOGGER . info ( 'Wallet %s got verkey %s for existing DID %s' , self . name , self . verkey , self . did ) LOGGER . debug ( 'Wallet.open <<<' ) return self
Explicit entry. Open wallet as configured, for later closure via close().
        For use when keeping wallet open across multiple calls.

        Raise any IndyError causing failure to open wallet, WalletState if wallet already open,
        or AbsentWallet on attempt to enter wallet not yet created.

        :return: current object