Tout est dans le titre. Voici un script très simple permettant de télécharger les ABIs disponibles sur BSC Scan.

Créer un fichier get_abi.py et coller le contenu suivant:


#!/usr/bin/python
import argparse
import requests
import json


ABI_ENDPOINT = "https://api.etherscan.io/api?module=contract&action=getabi&address="

parser = argparse.ArgumentParser()
parser.add_argument("-a", "--address", type=str, help="Smart contract address")
parser.add_argument("-o", "--output", type=str, help="Path to store the output ABI JSON file", required=True)

def __main__() -> None:
    """Exports contract ABI in JSON"""
    args = parser.parse_args()
    resp_json_ = requests.get(f"{ABI_ENDPOINT}{args.addr}").json()
    abi_json = json.loads(resp_json["result"])
    result = json.dumps({"abi": abi_json}, indent=4, sort_keys=True)
    open(args.output, "w").write(result)

if __name__ == "__main__":
    __main__()

Et voici la commande pour utiliser ce script:

python get_abi --address=ADDRESS_CONTRACT --output=OUTPUT_PATH