diff --git a/fee_allocator/helpers.py b/fee_allocator/helpers.py index 42e676de..99b25101 100644 --- a/fee_allocator/helpers.py +++ b/fee_allocator/helpers.py @@ -42,6 +42,10 @@ class PoolBalance: "zkevm": "1101", } BAL_GQL_URL = "https://api-v3.balancer.fi/" +BAL_DEFAULT_HEADERS = { + "x-graphql-client-name": "Maxis", + "x-graphql-client-version": "protocol_fee_allocator", +} BLOCKS_QUERY = """ query {{ blocks(where:{{timestamp_gt: {ts_gt}, timestamp_lt: {ts_lt} }}) {{ @@ -161,7 +165,10 @@ def get_block_by_ts(timestamp: int, chain: str) -> int: timestamp = int(datetime.now().strftime("%s")) - 2000 transport = RequestsHTTPTransport( url=Subgraph(chain).get_subgraph_url("blocks"), - retries=2, + retries=3, + retry_backoff_factor=0.5, + retry_status_forcelist=[429, 500, 502, 503, 504, 520], + headers=BAL_DEFAULT_HEADERS, ) query = gql( BLOCKS_QUERY.format( @@ -283,8 +290,10 @@ def fetch_token_price_balgql_timerange( """ transport = RequestsHTTPTransport( url=BAL_GQL_URL, - retries=2, - headers={"chainId": CHAIN_TO_CHAIN_ID_MAP[chain]}, + retries=3, + retry_backoff_factor=0.5, + retry_status_forcelist=[429, 500, 502, 503, 504, 520], + headers={**BAL_DEFAULT_HEADERS, "chainId": CHAIN_TO_CHAIN_ID_MAP[chain]}, ) client = Client(transport=transport, fetch_schema_from_transport=True) query = gql( @@ -313,7 +322,13 @@ def fetch_token_price_balgql_timerange( def get_balancer_pool_snapshots(block: int, graph_url: str) -> Optional[List[Dict]]: - transport = RequestsHTTPTransport(url=graph_url, retries=3) + transport = RequestsHTTPTransport( + url=graph_url, + retries=3, + retry_backoff_factor=0.5, + retry_status_forcelist=[429, 500, 502, 503, 504, 520], + headers=BAL_DEFAULT_HEADERS, + ) client = Client( transport=transport, fetch_schema_from_transport=True, execute_timeout=60 ) @@ -356,7 +371,10 @@ def fetch_all_pools_info() -> List[Dict]: """ transport = RequestsHTTPTransport( url=BAL_GQL_URL, - retries=2, + retries=3, + retry_backoff_factor=0.5, + retry_status_forcelist=[429, 500, 502, 503, 504, 520], + headers=BAL_DEFAULT_HEADERS, ) client = Client(transport=transport, fetch_schema_from_transport=True) query = gql(BAL_GET_VOTING_LIST_QUERY)