import asyncio from dotenv import load_dotenv import os import tempfile import tarfile import json from pathlib import Path from payments_py import Payments, Environment from typing import Dict, List, Tuple, Optional import httpx import zipfile import shutil load_dotenv() class Services: def __init__(self): self.payments = Payments(session_key=os.getenv("SESSION_KEY"), environment=Environment.appTesting, version="0.1.0", marketplace_auth_token=os.getenv("MARKETPLACE_AUTH_TOKEN")) self.naptha_plan_did = os.getenv("NAPTHA_PLAN_DID") self.wallet_address = os.getenv("WALLET_ADDRESS") def show_credits(self): response = self.payments.get_subscription_balance(self.naptha_plan_did, self.wallet_address) creds = json.loads(response.content.decode())["balance"] print('Credits: ', creds) return creds def get_service_url(self, service_did): response = self.payments.get_service_details(service_did) print('Service URL: ', response) return response def get_service_details(self, service_did): response = self.payments.get_service_token(service_did) result = json.loads(response.content.decode()) access_token = result['token']['accessToken'] proxy_address = result['token']['neverminedProxyUri'] return access_token, proxy_address def get_asset_ddo(self, service_did): response = self.payments.get_asset_ddo(service_did) result = json.loads(response.content.decode()) service_name = result['service'][0]['attributes']['main']['name'] return service_name def list_services(self): response = self.payments.get_subscription_associated_services(self.naptha_plan_did) service_dids = json.loads(response.content.decode()) service_names = [] for did in service_dids: service_names.append(self.get_asset_ddo(did)) print('Services: ', service_names) return service_names