Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert #64 #66

Merged
merged 1 commit into from
Oct 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions src/price_providers/price_feed.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,13 @@ def __init__(self, activate: bool):
else:
self.providers = []

def get_price(self, price_params: dict) -> list[tuple[float, str]]:
def get_price(self, price_params: dict) -> tuple[float, str] | None:
"""Function iterates over list of price provider objects and attempts to get a price."""
prices = []
for provider in self.providers:
try:
price = provider.get_price(price_params)
if price is not None:
prices.append((price, provider.name))
return price, provider.name
except Exception as e:
logger.error(f"Error getting price from provider {provider.name}: {e}")
return prices
return None
25 changes: 10 additions & 15 deletions src/transaction_processor.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import time
from hexbytes import HexBytes
from web3 import Web3
from src.helpers.blockchain_data import BlockchainData
Expand All @@ -8,6 +7,7 @@
from src.helpers.helper_functions import read_sql_file, set_params
from src.helpers.config import CHAIN_SLEEP_TIME, logger
from src.fees.compute_fees import compute_all_fees_of_batch
import time


class TransactionProcessor:
Expand Down Expand Up @@ -193,7 +193,7 @@ def process_prices_for_tokens(
token_imbalances: dict[str, int],
block_number: int,
tx_hash: str,
) -> dict[str, list[tuple[float, str]]]:
) -> dict[str, tuple[float, str]]:
"""Compute prices for tokens with non-null imbalances."""
prices = {}
try:
Expand All @@ -202,7 +202,8 @@ def process_prices_for_tokens(
set_params(token_address, block_number, tx_hash)
)
if price_data:
prices[token_address] = price_data
price, source = price_data
prices[token_address] = (price, source)
except Exception as e:
logger.error(f"Failed to process prices for transaction {tx_hash}: {e}")

Expand Down Expand Up @@ -291,21 +292,15 @@ def handle_fees(
)

def handle_prices(
self,
prices: dict[str, list[tuple[float, str]]],
tx_hash: str,
block_number: int,
self, prices: dict[str, tuple[float, str]], tx_hash: str, block_number: int
) -> None:
"""Function writes prices to table per token."""
try:
for token_address, list_of_prices in prices.items():
for price, source in list_of_prices:
self.db.write_prices(
source, block_number, tx_hash, token_address, price
)
self.log_message.append(
f"Token: {token_address}, Price: {price} ETH, Source: {source}"
)
for token_address, (price, source) in prices.items():
self.db.write_prices(
source, block_number, tx_hash, token_address, price
)
self.log_message.append(f"Token: {token_address}, Price: {price} ETH")
except Exception as err:
logger.error(f"Error: {err}")

Expand Down
Loading