code: async def upload_sticker_file(self, user_id: base.Integer, png_sticker: base.InputFile) -> types.File:
          
          payload = generate_payload(**locals(), exclude=['png_sticker'])
  
          files = {}
          prepare_file(payload, files, 'png_sticker', png_sticker)
  
          result = await self.request(api.Methods.UPLOAD_STICKER_FILE, payload, files)
          return types.File(**result)
docs: Use this method to upload a .png file with a sticker for later use in createNewStickerSet
          and addStickerToSet methods (can be used multiple times).
  
          Source: https://core.telegram.org/bots/api#uploadstickerfile
  
          :param user_id: User identifier of sticker file owner
          :type user_id: :obj:`base.Integer`
          :param png_sticker: Png image with the sticker, must be up to 512 kilobytes in size,
              dimensions must not exceed 512px, and either width or height must be exactly 512px.
          :type png_sticker: :obj:`base.InputFile`
          :return: Returns the uploaded File on success
          :rtype: :obj:`types.File`