code: async def get_pairwise(self, pairwise_filt: str = None) -> dict:
          
  
          LOGGER.debug('Wallet.get_pairwise >>> pairwise_filt: %s', pairwise_filt)
  
          if not self.handle:
              LOGGER.debug('Wallet.get_pairwise <!< Wallet %s is closed', self.name)
              raise WalletState('Wallet {} is closed'.format(self.name))
  
          storecs = await self.get_non_secret(
              TYPE_PAIRWISE,
              pairwise_filt if ok_did(pairwise_filt) or not pairwise_filt else json.loads(pairwise_filt),
              canon_pairwise_wql)
          rv = {k: storage_record2pairwise_info(storecs[k]) for k in storecs}  # touch up tags, mute leading ~
  
          LOGGER.debug('Wallet.get_pairwise <<< %s', rv)
          return rv
docs: Return dict mapping each pairwise DID of interest in wallet to its pairwise info, or,
          for no filter specified, mapping them all. If wallet has no such item, return empty dict.
  
          :param pairwise_filt: remote DID of interest, or WQL json (default all)
          :return: dict mapping remote DIDs to PairwiseInfo