Skip to content

Commit 642c39b

Browse files
committed
etherscan: daily run
- Make pagination work for daily run (data for previous day)
1 parent 2ab6919 commit 642c39b

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

source-etherscan/source_etherscan/source.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,6 @@ def __init__(self, api_key: str, wallets: list[dict], chain_id: str, backfill: b
1919
self.api_key = api_key
2020
self.wallets = wallets
2121
self.chain_id = chain_id
22-
self.page_counter = {
23-
wallet["address"]: 1
24-
for wallet in self.wallets
25-
}
2622
self.wallet_info = {
2723
wallet["address"]: {
2824
"tags": wallet["tags"],
@@ -95,16 +91,19 @@ def next_page_token(self, response: requests.Response):
9591
if not result:
9692
return None
9793

98-
current_page = int(self.get_params(response).get("page", 1))
94+
params = self.get_params(response)
95+
current_page = int(params.get("page", 1))
9996
# Last page may have less records
10097
if len(result) < self.pagination_offset:
10198
return None
10299

100+
to_lower = lambda result: {key.lower(): value for key, value in result.items()}
101+
earliest_date = self.to_datetime(to_lower(result[-1])["timestamp"])
102+
params = {"page": current_page + 1} if self.is_valid(params["address"], earliest_date) else None
103103
time.sleep(self.sleep_seconds)
104-
return {"page": current_page + 1}
104+
return params
105105

106106
def request_params(self, stream_state: Mapping[str, Any], stream_slice: Mapping[str, any] = None, next_page_token: Mapping[str, Any] = None) -> MutableMapping[str, Any]:
107-
self.logger.info(f"{self.name} > next_page_token: {next_page_token}")
108107
if not stream_slice:
109108
return {}
110109

0 commit comments

Comments
 (0)