code: async def pack(
              self,
              message: str,
              recip_verkeys: Union[str, Sequence[str]] = None,
              sender_verkey: str = None) -> bytes:
          
  
          LOGGER.debug(
              'Wallet.pack >>> message: %s, recip_verkeys: %s, sender_verkey: %s',
              message,
              recip_verkeys,
              sender_verkey)
  
          if message is None:
              LOGGER.debug('Wallet.pack <!< No message to pack')
              raise AbsentMessage('No message to pack')
  
          rv = await crypto.pack_message(
              self.handle,
              message,
              [recip_verkeys] if isinstance(recip_verkeys, str) else list(recip_verkeys or [self.verkey]),
              sender_verkey)
  
          LOGGER.debug('Wallet.pack <<< %s', rv)
          return rv
docs: Pack a message for one or more recipients (default anchor only).
          Raise AbsentMessage for missing message, or WalletState if wallet is closed.
  
          :param message: message to pack
          :param recip_verkeys: verification keys of recipients (default anchor's own, only)
          :param sender_verkey: sender verification key (default anonymous encryption)
          :return: packed message