Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
Vardominator committed Jun 3, 2023
1 parent 971f378 commit 210d0a0
Show file tree
Hide file tree
Showing 9 changed files with 358 additions and 0 deletions.
Empty file added maestro-sdk/__init__.py
Empty file.
Empty file.
24 changes: 24 additions & 0 deletions maestro-sdk/handlers/general.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from .request import get_request
from dataclasses import dataclass
from dacite import from_dict


@dataclass
class ChainTip:
block_hash: str
slot: int
height: int

class General():
def chain_tip(self, maestro_session):
resp = get_request(maestro_session, "chain-tip")
return from_dict(data_class=ChainTip, data=resp)

def era_history(self):
pass

def protocol_params(self):
pass

def system_start(self):
pass
13 changes: 13 additions & 0 deletions maestro-sdk/handlers/request.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import requests
from urllib.parse import urljoin
import json

def get_request(maestro_session, endpoint, params = {}):
headers = {
"api-key": maestro_session.api_key,
"content-type": "application/json"
}
url = urljoin(maestro_session.base_url, endpoint)
response = requests.get(url, headers=headers, params=params)
response.raise_for_status()
return json.loads(response.text)
45 changes: 45 additions & 0 deletions maestro-sdk/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
from handlers.general import General

class MaestroSession():
def __init__(self, network: str, api_key: str, version: str = "v0") -> None:
self.network = network
self.api_key = api_key
self.version = version
self.base_url = f"https://{self.network}.gomaestro-api.org/{self.version}"

self.general = General()

def accounts(self):
self

def addresses(self):
pass

def assets(self):
pass

def datum(self):
pass

def epochs(self):
pass

def pools(self):
pass

def scripts(self):
pass

def transactions(self):
pass

def submit(self):
pass

def txmanager(self):
pass

if __name__ == "__main__":
maestro = MaestroSession("mainnet", "")
chain_tip = maestro.general.chain_tip(maestro)
breakpoint()
Empty file added maestro-sdk/utils.py
Empty file.
271 changes: 271 additions & 0 deletions poetry.lock

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,13 @@ packages = [{include = "maestro_sdk"}]

[tool.poetry.dependencies]
python = "^3.8"
requests = "^2.31.0"
dacite = "^1.8.1"


[tool.poetry.group.dev.dependencies]
pytest = "^7.3.1"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
Empty file added tests/__init__.py
Empty file.

0 comments on commit 210d0a0

Please sign in to comment.