#!/usr/bin/env python3 # -*- encoding: utf-8 -*- # author: steinkirch from utils.os import load_config, open_json, log_info from utils.web3_wrapper import Web3Wrapper def get_data_for_connection() -> dict: """Prepare a dict of data for connection.""" data = {} env_keys = ['PAIR_ADDRESSES', 'PROVIDER_URL', 'BLOCK_NUMBER', 'ABI_JSON_PATH', 'PROVIDER_TYPE'] env_vars = load_config(env_keys) data['addresses'] = env_vars['PAIR_ADDRESSES'] data['network'] = env_vars['PROVIDER_URL'] data['block'] = env_vars['BLOCK_NUMBER'] data['abi'] = env_vars['ABI_JSON_PATH'] data['provider_type'] = env_vars['PROVIDER_TYPE'] return data def get_reserve_by_block(data) -> None: """Establish connection to retrieve reserve history.""" w3 = Web3Wrapper(mode=data['provider_type'], network=data['network']) w3.inject_middleware() w3.get_pair_contract(data['addresses'], open_json(data['abi'])) return w3.get_reserves(int(data['block'])) if __name__ == "__main__": data = get_data_for_connection() reserve1, reserve2 = get_reserve_by_block(data) log_info(f'reserves: {reserve1}, {reserve2}')