Source code for empyrealSDK.sdk

from typing import Literal

from .modules import core, dex
from .utils.client import _set_global_client

ENVIRONMENTS = {
    "local": "http://localhost:8080",
    "prod": "https://api.empyrealsdk.com",
}


[docs] class EmpyrealSDK: """ The EmpyrealSDK instance. This is currently a global, singleton instance. So when a user initializes the empyrealSDK instance, this will be used automatically in all Empyreal types. Examples -------- Initially in any codebase using the SDK, be sure to declare >>> from empyrealSDK import * >>> api_key = "<api_key>" >>> EmpyrealSDK(api_key) >>> app = Application.load() This will declare your SDK instance and inject it in all method invocations. Then when you call 5 :meth:`empyrealSDK.types.Application.load`, you are able to get the instance attached to your ``API_KEY``. """ rpc_url: str api_key: str def __init__(self, api_key: str, env: Literal["local", "prod"] = "prod"): if env not in ENVIRONMENTS: raise ValueError( "Invalid Environment. Must provide one of ['local', 'prod']" ) self.rpc_url = ENVIRONMENTS[env] self.api_key = api_key self.app = core.ApplicationResource(self) self.infra = core.PingResource(self) self.token = core.TokenResource(self) self.user = core.UserResource(self) self.vault = core.VaultResource(self) self.wallet = core.WalletResource(self) self.prices = dex.price.PriceResource(self) self.swap = dex.swap.SwapResource(self) _set_global_client(self)