feat: remove requests as a dep for get_abis.py script and add docs

This commit is contained in:
0xMochan
2024-02-01 09:36:26 -05:00
parent c96eb068d7
commit e7b458cc01
2 changed files with 20 additions and 9 deletions

View File

@@ -7,3 +7,16 @@ We then can define all of the abis via `substreams_ethereum::Abigen::new` in our
## Recommendation
It would be apt to convert (maybe through copilot) the python code into the `build.rs` file and then automate the `Abigen` functionality.
## Usage
Requires `python 3.8+`,
```bash
cd abi
python get_abis.py
```
This will populate the files in the `abi` folder.
When the `build.rs` file runs (when `rust-analyzer` activates or `cargo build` is manually ran), Abigen will generate new rust src files from the abis in the `src/abi` folder.

View File

@@ -3,8 +3,7 @@ import json
import os
import re
import time
import requests
import urllib.request
# Exports contract ABI in JSON
@@ -38,13 +37,12 @@ def __main__():
print(f"Getting ABI for {name} at {addr} ({normalized_name})")
try:
...
response = requests.get(ABI_ENDPOINT.format(address=addr))
response_json = response.json()
abi_json = json.loads(response_json["result"])
result = json.dumps(abi_json, indent=4, sort_keys=True)
with open(f"{normalized_name}.json", "w") as f:
f.write(result)
with urllib.request.urlopen(ABI_ENDPOINT.format(address=addr)) as response:
response_json = json.loads(response.read().decode())
abi_json = json.loads(response_json["result"])
result = json.dumps(abi_json, indent=4, sort_keys=True)
with open(f"{normalized_name}.json", "w") as f:
f.write(result)
except Exception as err:
print(response.content)
raise err