cic-contracts/scripts/abilist.py
lash 3d2b2fa612 Add CIC package
Add abi signature encoding list

Add cic package
2024-08-01 22:21:15 +01:00

38 lines
626 B
Python

# standard imports
import json
import sys
# external imports
import sha3
f = open(sys.argv[1], 'r')
o = json.load(f)
f.close()
ks = []
r = {}
for v in o:
if v['type'] != "function":
continue
name = ''
try:
name = v['name']
except KeyError:
continue
args = []
for vv in v['inputs']:
args.append(vv['type'])
sig = '{}({})'.format(name, ','.join(args))
h = sha3.keccak_256()
h.update(sig.encode('utf-8'))
z = h.digest()
k = z[:4].hex()
#ks.append(k)
r[k] = sig
ks = list(r.keys())
ks.sort()
for k in ks:
print("{}\t{}".format(k, r[k]))