diff --git a/scripts/registry_list.py b/scripts/registry_list.py new file mode 100644 index 0000000..8e32aaa --- /dev/null +++ b/scripts/registry_list.py @@ -0,0 +1,44 @@ +import sys + +from chainlib.eth.constant import ZERO_ADDRESS +from chainlib.eth.gas import DefaultGasOracle +from chainlib.eth.nonce import DefaultNonceOracle +from chainlib.eth.tx import TxFactory +from chainlib.eth.connection import HTTPConnection +from chainlib.eth.hash import keccak256_string_to_hex +from chainlib.eth.rpc import jsonrpc_template +from chainlib.eth.error import EthException +import eth_abi +from hexathon import ( + strip_0x, + add_0x, + ) + +i = 0 +while True: + conn = HTTPConnection('http://localhost:63545') + gas_oracle = DefaultGasOracle(conn) + nonce_oracle = DefaultNonceOracle(ZERO_ADDRESS, conn) + + # Get Token registry address + txf = TxFactory(signer=None, gas_oracle=gas_oracle, nonce_oracle=nonce_oracle, chain_id=8996) + tx = txf.template(ZERO_ADDRESS, sys.argv[1]) + identifiers_method = keccak256_string_to_hex('identifiers(uint256)')[:8] + data = add_0x(identifiers_method) + data += eth_abi.encode_single('uint256', i).hex() + txf.set_code(tx, data) + + o = jsonrpc_template() + o['method'] = 'eth_call' + tx = txf.normalize(tx) + o['params'].append(tx) + o['params'].append('latest') + try: + r = conn.do(o) + except EthException: + break + id_bytes = bytes.fromhex(strip_0x(r)) + id_str = id_bytes[:id_bytes.find(b'\x00')] + print(id_str.decode('utf-8̈́')) + i += 1 +