-
Notifications
You must be signed in to change notification settings - Fork 129
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Clear output, as we do not have a good example output
- Loading branch information
Showing
1 changed file
with
6 additions
and
68 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -52,23 +52,9 @@ | |
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 2, | ||
"metadata": { | ||
"ExecuteTime": { | ||
"end_time": "2023-08-08T08:36:19.626447Z", | ||
"start_time": "2023-08-08T08:35:59.678463Z" | ||
} | ||
}, | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"Starting notebook\n", | ||
"Detected network Polygon chain 137 start block 25826028 max block 32000000\n" | ||
] | ||
} | ||
], | ||
"execution_count": null, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"\n", | ||
"from web3 import Web3, HTTPProvider\n", | ||
|
@@ -81,11 +67,6 @@ | |
"json_rpc_url = aave_v3_get_json_rpc_url() or input(\"Please enter your JSON-RPC URL here\")\n", | ||
"web3 = Web3(HTTPProvider(json_rpc_url))\n", | ||
"\n", | ||
"# Include JSON-RPC speed optimisations,\n", | ||
"# so we can read data at the max speed\n", | ||
"web3.middleware_onion.clear()\n", | ||
"patch_web3(web3)\n", | ||
"\n", | ||
"aave_network = aave_v3_get_network_by_chain_id(web3.eth.chain_id)\n", | ||
"token = 'WMATIC' # use WMATIC token in the following examples\n", | ||
"stable_token = 'DAI' # use DAI token in the following examples for stable token operations\n", | ||
|
@@ -111,52 +92,9 @@ | |
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 3, | ||
"metadata": { | ||
"ExecuteTime": { | ||
"end_time": "2023-08-08T08:38:16.899047Z", | ||
"start_time": "2023-08-08T08:36:19.627454Z" | ||
} | ||
}, | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"Restored previous scan state, data until block 25,873,328, we are skipping 47,300 blocks out of 6,173,972 total\n", | ||
"Scanning block range 25,873,328 - 32,000,000\n" | ||
] | ||
}, | ||
{ | ||
"data": { | ||
"text/plain": " 0%| | 0/6126672 [00:00<?, ?it/s]", | ||
"application/vnd.jupyter.widget-view+json": { | ||
"version_major": 2, | ||
"version_minor": 0, | ||
"model_id": "422ff146b2e649d296ba9ed9d9a95440" | ||
} | ||
}, | ||
"metadata": {}, | ||
"output_type": "display_data" | ||
}, | ||
{ | ||
"ename": "KeyboardInterrupt", | ||
"evalue": "", | ||
"output_type": "error", | ||
"traceback": [ | ||
"\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", | ||
"\u001B[0;31mKeyboardInterrupt\u001B[0m Traceback (most recent call last)", | ||
"Cell \u001B[0;32mIn[3], line 11\u001B[0m\n\u001B[1;32m 8\u001B[0m \u001B[38;5;66;03m# Stores the last block number of event data we store\u001B[39;00m\n\u001B[1;32m 9\u001B[0m state \u001B[38;5;241m=\u001B[39m JSONFileScanState(\u001B[38;5;124mf\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124m/tmp/aave-v3-\u001B[39m\u001B[38;5;132;01m{\u001B[39;00maave_network\u001B[38;5;241m.\u001B[39mname\u001B[38;5;241m.\u001B[39mlower()\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m-rate-scan.json\u001B[39m\u001B[38;5;124m'\u001B[39m)\n\u001B[0;32m---> 11\u001B[0m \u001B[43maave_v3_fetch_events_to_csv\u001B[49m\u001B[43m(\u001B[49m\u001B[43mjson_rpc_url\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mstate\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43maave_network\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mname\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mstart_block\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mstart_block\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mend_block\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mend_block\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mmax_workers\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mmax_workers\u001B[49m\u001B[43m)\u001B[49m\n", | ||
"File \u001B[0;32m~/code/executor/trade-executor/deps/web3-ethereum-defi/eth_defi/aave_v3/events.py:282\u001B[0m, in \u001B[0;36maave_v3_fetch_events_to_csv\u001B[0;34m(json_rpc_url, state, aave_network_name, start_block, end_block, output_folder, max_workers, log_info)\u001B[0m\n\u001B[1;32m 279\u001B[0m state\u001B[38;5;241m.\u001B[39msave_state(current_block)\n\u001B[1;32m 281\u001B[0m \u001B[38;5;66;03m# Read specified events in block range\u001B[39;00m\n\u001B[0;32m--> 282\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m log_result \u001B[38;5;129;01min\u001B[39;00m read_events_concurrent(\n\u001B[1;32m 283\u001B[0m executor,\n\u001B[1;32m 284\u001B[0m restored_start_block,\n\u001B[1;32m 285\u001B[0m end_block,\n\u001B[1;32m 286\u001B[0m events\u001B[38;5;241m=\u001B[39mcontract_events,\n\u001B[1;32m 287\u001B[0m notify\u001B[38;5;241m=\u001B[39mupdate_progress,\n\u001B[1;32m 288\u001B[0m chunk_size\u001B[38;5;241m=\u001B[39m\u001B[38;5;241m100\u001B[39m,\n\u001B[1;32m 289\u001B[0m context\u001B[38;5;241m=\u001B[39mtoken_cache,\n\u001B[1;32m 290\u001B[0m ):\n\u001B[1;32m 291\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[1;32m 292\u001B[0m \u001B[38;5;66;03m# write to correct buffer\u001B[39;00m\n\u001B[1;32m 293\u001B[0m event_name \u001B[38;5;241m=\u001B[39m log_result[\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mevent\u001B[39m\u001B[38;5;124m\"\u001B[39m]\u001B[38;5;241m.\u001B[39mevent_name\n", | ||
"File \u001B[0;32m~/code/executor/trade-executor/deps/web3-ethereum-defi/eth_defi/event_reader/reader.py:686\u001B[0m, in \u001B[0;36mread_events_concurrent\u001B[0;34m(executor, start_block, end_block, events, notify, chunk_size, context, extract_timestamps, filter, reorg_mon)\u001B[0m\n\u001B[1;32m 681\u001B[0m processed_chunks: Set[\u001B[38;5;28mint\u001B[39m] \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mset\u001B[39m()\n\u001B[1;32m 683\u001B[0m \u001B[38;5;66;03m# Complete the tasks.\u001B[39;00m\n\u001B[1;32m 684\u001B[0m \u001B[38;5;66;03m# Always guarantee the block order for the caller,\u001B[39;00m\n\u001B[1;32m 685\u001B[0m \u001B[38;5;66;03m# so that events are iterated in the correct order\u001B[39;00m\n\u001B[0;32m--> 686\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m task \u001B[38;5;129;01min\u001B[39;00m tm\u001B[38;5;241m.\u001B[39mas_completed():\n\u001B[1;32m 687\u001B[0m block_num \u001B[38;5;241m=\u001B[39m task\u001B[38;5;241m.\u001B[39margs[\u001B[38;5;241m0\u001B[39m] \u001B[38;5;66;03m# Peekaboo\u001B[39;00m\n\u001B[1;32m 688\u001B[0m completed_tasks[block_num] \u001B[38;5;241m=\u001B[39m task\n", | ||
"File \u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/ts-strategy-NgEO31rc-py3.10/lib/python3.10/site-packages/futureproof/task_manager.py:129\u001B[0m, in \u001B[0;36mTaskManager.as_completed\u001B[0;34m(self)\u001B[0m\n\u001B[1;32m 127\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_tasks_in_queue \u001B[38;5;241m==\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_executor\u001B[38;5;241m.\u001B[39mmax_workers:\n\u001B[1;32m 128\u001B[0m logger\u001B[38;5;241m.\u001B[39mdebug(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mQueue full, waiting for result\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n\u001B[0;32m--> 129\u001B[0m \u001B[38;5;28;01myield\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_wait_for_result\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m 131\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_submit_task(task)\n\u001B[1;32m 133\u001B[0m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;28mlen\u001B[39m(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mcompleted_tasks) \u001B[38;5;241m<\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_submitted_task_count:\n", | ||
"File \u001B[0;32m~/Library/Caches/pypoetry/virtualenvs/ts-strategy-NgEO31rc-py3.10/lib/python3.10/site-packages/futureproof/task_manager.py:177\u001B[0m, in \u001B[0;36mTaskManager._wait_for_result\u001B[0;34m(self)\u001B[0m\n\u001B[1;32m 175\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21m_wait_for_result\u001B[39m(\u001B[38;5;28mself\u001B[39m) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m Task:\n\u001B[1;32m 176\u001B[0m \u001B[38;5;250m \u001B[39m\u001B[38;5;124;03m\"\"\"Gather result from a submitted tasks.\"\"\"\u001B[39;00m\n\u001B[0;32m--> 177\u001B[0m completed_task \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_results_queue\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[43mblock\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;28;43;01mTrue\u001B[39;49;00m\u001B[43m)\u001B[49m\n\u001B[1;32m 178\u001B[0m logger\u001B[38;5;241m.\u001B[39mdebug(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mGathering result for completed task \u001B[39m\u001B[38;5;132;01m%r\u001B[39;00m\u001B[38;5;124m\"\u001B[39m, completed_task)\n\u001B[1;32m 179\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_tasks_in_queue \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m=\u001B[39m \u001B[38;5;241m1\u001B[39m\n", | ||
"File \u001B[0;32m/opt/homebrew/Cellar/[email protected]/3.10.12_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/queue.py:171\u001B[0m, in \u001B[0;36mQueue.get\u001B[0;34m(self, block, timeout)\u001B[0m\n\u001B[1;32m 169\u001B[0m \u001B[38;5;28;01melif\u001B[39;00m timeout \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[1;32m 170\u001B[0m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_qsize():\n\u001B[0;32m--> 171\u001B[0m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mnot_empty\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mwait\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m 172\u001B[0m \u001B[38;5;28;01melif\u001B[39;00m timeout \u001B[38;5;241m<\u001B[39m \u001B[38;5;241m0\u001B[39m:\n\u001B[1;32m 173\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mValueError\u001B[39;00m(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mtimeout\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124m must be a non-negative number\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n", | ||
"File \u001B[0;32m/opt/homebrew/Cellar/[email protected]/3.10.12_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/threading.py:320\u001B[0m, in \u001B[0;36mCondition.wait\u001B[0;34m(self, timeout)\u001B[0m\n\u001B[1;32m 318\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m: \u001B[38;5;66;03m# restore state no matter what (e.g., KeyboardInterrupt)\u001B[39;00m\n\u001B[1;32m 319\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m timeout \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[0;32m--> 320\u001B[0m \u001B[43mwaiter\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43macquire\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m 321\u001B[0m gotit \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mTrue\u001B[39;00m\n\u001B[1;32m 322\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n", | ||
"\u001B[0;31mKeyboardInterrupt\u001B[0m: " | ||
] | ||
} | ||
], | ||
"execution_count": null, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"from eth_defi.aave_v3.events import aave_v3_fetch_events_to_csv\n", | ||
"from eth_defi.event_reader.json_state import JSONFileScanState\n", | ||
|