blockchain - solidity 如何获得contract abi?

访问量: 230


1. 需要有源代码

solc filename.sol --abi

也可以简单粗暴一些,直接 solc *.sol --abi

就可以看到当前目录下生成好多 .abi文件。

2. 如果没有源代码,也需要该contract 是被验证过的( contract is verified )

python <contract address> -o <target JSON file>

import argparse
import requests
import json

# Exports contract ABI in JSON


parser = argparse.ArgumentParser()
parser.add_argument('addr', type=str, help='Contract address')
parser.add_argument('-o', '--output', type=str, help="Path to the output JSON file", required=True)

def __main__():

    args = parser.parse_args()

    response = requests.get('%s%s'%(ABI_ENDPOINT, args.addr))
    response_json = response.json()
    abi_json = json.loads(response_json['result'])
    result = json.dumps({"abi":abi_json}, indent=4, sort_keys=True)

    open(args.output, 'w').write(result)

if __name__ == '__main__':

订阅/RSS Feed