Skip to content

Commit

Permalink
removed duplicate func from python/pools.py
Browse files Browse the repository at this point in the history
  • Loading branch information
solidquant committed Sep 30, 2023
1 parent 2d15b92 commit d66e659
Showing 1 changed file with 0 additions and 70 deletions.
70 changes: 0 additions & 70 deletions python/pools.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,76 +105,6 @@ def cache_synced_pools(pool: Pool):
f.close()


def load_all_pools_from_v2(https_url: str,
factory_addresses: List[str],
from_blocks: List[int],
chunk: int = 2000) -> Dict[str, Pool]:
"""
This function will retrieve all PairCreated events from factory_addresses, starting from from_blocks.
The request will be made to look at events that occur in a chunk number of blocks every call.
"""
pools = load_cached_pools() or {}

v2_factory_abi = json.load(open(ABI_PATH / 'UniswapV2Factory.json', 'r'))
erc20_abi = json.load(open(ABI_PATH / 'ERC20.json', 'r'))

w3 = Web3(Web3.HTTPProvider(https_url))
to_block = w3.eth.get_block_number()

decimals: Dict[str, int] = {}

for i in range(len(factory_addresses)):
factory_address = factory_addresses[i]
from_block = from_blocks[i]

v2_factory = w3.eth.contract(address=factory_address, abi=v2_factory_abi)

block_range = list(range(from_block, to_block, chunk))
request_params = [(block_range[i], block_range[i + 1]) for i in range(len(block_range) - 1)]

for params in tqdm(request_params,
total=len(request_params),
ncols=100,
desc=f'Uniswap V2 {factory_address[:10]}... Sync',
ascii=' =',
leave=True):
events = v2_factory.events.PairCreated.get_logs(fromBlock=params[0], toBlock=params[1])
for event in events:
args = event.args
token0 = args.token0
token1 = args.token1

try:
if token0 in decimals:
decimals0 = decimals[token0]
else:
token0_contract = w3.eth.contract(address=token0, abi=erc20_abi)
decimals0 = token0_contract.functions.decimals().call()
decimals[token0] = decimals0

if token1 in decimals:
decimals1 = decimals[token1]
else:
token1_contract = w3.eth.contract(address=token1, abi=erc20_abi)
decimals1 = token1_contract.functions.decimals().call()
decimals[token1] = decimals1
except Exception as _:
# some token contracts don't exist anymore: eth_call error
continue

pool = Pool(address=args.pair,
version=DexVariant.UniswapV2,
token0=args.token0,
token1=args.token1,
decimals0=decimals0,
decimals1=decimals1,
fee=300)
if args.pair not in pools:
pools[args.pair] = pool
cache_synced_pools(pool)

return pools

def load_all_pools_from_v2(https_url: str,
factory_addresses: List[str],
from_blocks: List[int],
Expand Down

0 comments on commit d66e659

Please sign in to comment.