code: async def get_anchor_did(self) -> str:
          
  
          LOGGER.debug('Wallet.get_anchor_did >>>')
  
          if not self.handle:
              LOGGER.debug('Wallet.get_anchor_did <!< Wallet %s is closed', self.name)
              raise WalletState('Wallet {} is closed'.format(self.name))
  
          rv = None
          dids_with_meta = json.loads(await did.list_my_dids_with_meta(self.handle))  # list
  
          latest = 0
          for did_with_meta in dids_with_meta:
              try:
                  meta = json.loads(did_with_meta['metadata']) if did_with_meta['metadata'] else {}
                  if not meta.get('anchor', False):
                      continue
                  if isinstance(meta, dict) and meta.get('since', -1) > latest:
                      rv = did_with_meta.get('did')
              except json.decoder.JSONDecodeError:
                  continue  # it's not an anchor DID, carry on
  
          LOGGER.debug('Wallet.get_anchor_did <<< %s', rv)
          return rv
docs: Get current anchor DID by metadata, None for not yet set.
  
          :return: DID