mirror of
https://github.com/autistic-symposium/blockchain-data-engineering-toolkit.git
synced 2025-06-21 13:24:13 -04:00
💾
This commit is contained in:
parent
44b49e740c
commit
d9a600a7dc
9 changed files with 254 additions and 36 deletions
|
@ -10,8 +10,9 @@ from src.utils.os_utils import load_config
|
|||
from src.blockchains.ethereum import TokenIndexer
|
||||
from src.utils.vercel_utils import upload_to_vercel
|
||||
from src.utils.db_processing import run_db_processing
|
||||
from src.utils.test_api import fetch_token_balance as f
|
||||
from src.utils.data_processing import run_data_processing
|
||||
from src.utils.test_api import fetch_token_balance, fetch_top_token_holders, fetch_change
|
||||
|
||||
|
||||
|
||||
def run_menu() -> argparse.ArgumentParser:
|
||||
|
@ -69,10 +70,9 @@ def run() -> None:
|
|||
# Run deployment tools
|
||||
#############################
|
||||
elif args.api:
|
||||
uvicorn.run("src.server.api:app", \
|
||||
host=env_vars['API_HOST_URL'], \
|
||||
port=env_vars['API_HOST_PORT'], \
|
||||
reload=True)
|
||||
host = env_vars['API_HOST_URL']
|
||||
port = int(env_vars['API_HOST_PORT'])
|
||||
uvicorn.run("src.server.api:app", host=host, port=port, reload=True)
|
||||
elif args.vercel:
|
||||
upload_to_vercel()
|
||||
|
||||
|
@ -80,11 +80,11 @@ def run() -> None:
|
|||
# Run api tests
|
||||
#############################
|
||||
elif args.balance:
|
||||
f.fetch_token_balance(env_vars, args.balance[0])
|
||||
fetch_token_balance(env_vars, args.balance[0])
|
||||
elif args.top:
|
||||
f.fetch_top_holders(env_vars, args.top[0])
|
||||
fetch_top_token_holders(env_vars, args.top[0])
|
||||
elif args.change:
|
||||
f.fetch_change(env_vars, args.change[0])
|
||||
fetch_change(env_vars, args.change[0])
|
||||
|
||||
else:
|
||||
parser.print_help()
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
import asyncio
|
||||
from fastapi import APIRouter
|
||||
|
||||
from database import retrieve_balance, retrieve_top_balances, retrieve_holder_weekly_change
|
||||
from src.server.database import retrieve_balance, retrieve_top_balances, retrieve_holder_weekly_change
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
|
@ -46,7 +46,7 @@ async def get_top_holders(env_vars: dict, top_number=None) -> dict:
|
|||
|
||||
|
||||
@router.get("/weekly/{address}")
|
||||
async def get_holder_weekly_change( env_vars: dict, address: str) -> dict:
|
||||
async def get_holder_weekly_change(env_vars: dict, address: str) -> dict:
|
||||
"""Get weekly change of a given address."""
|
||||
|
||||
futures = [retrieve_holder_weekly_change(env_vars, address)]
|
||||
|
|
|
@ -30,5 +30,5 @@ def run_data_processing(filepath) -> None:
|
|||
balance_output_file = os_utils.create_result_file("balances")
|
||||
balance_output_filepath = os_utils.set_output(balance_output_file)
|
||||
|
||||
os_utils.log_info(f' Writing balances to {balance_output_filepath}')
|
||||
os_utils.log_info(f'Writing balances to {balance_output_filepath}')
|
||||
os_utils.save_output(balance_output_filepath, balance_data)
|
||||
|
|
|
@ -7,10 +7,10 @@ import sys
|
|||
import json
|
||||
import logging
|
||||
import requests
|
||||
import urlparse
|
||||
from pathlib import Path
|
||||
from dotenv import load_dotenv
|
||||
from datetime import datetime
|
||||
from urllib.parse import urlparse
|
||||
|
||||
|
||||
def set_logging(log_level) -> None:
|
||||
|
@ -48,7 +48,7 @@ def load_config() -> dict:
|
|||
env_vars['SIZE_CHUNK_NEXT'] = os.getenv("SIZE_CHUNK_NEXT")
|
||||
env_vars['OUTPUT_DIR'] = os.getenv("OUTPUT_DIR")
|
||||
env_vars['TOKEN_DECIMALS'] = os.getenv("TOKEN_DECIMALS")
|
||||
env_vars['MONGODB_URI'] = os.getenv("MONGODB_URI")
|
||||
env_vars['MONGODB_URL'] = os.getenv("MONGODB_URI")
|
||||
env_vars['MONGODB_DB_NAME'] = os.getenv("MONGODB_DB_NAME")
|
||||
env_vars['MONGODB_COLLECTION_NAME'] = os.getenv("MONGODB_COLLECTION_NAME")
|
||||
env_vars['API_HOST_URL'] = os.getenv("API_HOST_URL")
|
||||
|
@ -155,7 +155,7 @@ def create_result_file(prefix) -> str:
|
|||
def send_post_request(url, headers=None, json=None) -> dict:
|
||||
"""Send a request to a given URL"""
|
||||
|
||||
json = params or {}
|
||||
json = json or {}
|
||||
headers = headers or {}
|
||||
|
||||
try:
|
||||
|
@ -191,8 +191,8 @@ def send_rpc_request(url, method, params=None) -> dict:
|
|||
log_debug(f'Querying {url} with {data}')
|
||||
|
||||
response = send_post_request(url, headers={'Content-Type': 'application/json'}, json=data)
|
||||
if 'result' in response.json():
|
||||
return response.json()['result']
|
||||
if 'result' in response:
|
||||
return response['result']
|
||||
else:
|
||||
log_error('Query failed: {}.'.format(response.json()['error']))
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# utils/test_api.py
|
||||
# This class implements the tests for the API.
|
||||
|
||||
import os_utils
|
||||
import src.utils.os_utils as os_utils
|
||||
|
||||
|
||||
def fetch_token_balance(env_vars, wallet):
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
|
||||
def upload_to_vercel():
|
||||
print('tba')
|
||||
pass
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue