owner.py (2101B)
1 """Query owner (EIP 173) of contract 2 3 .. moduleauthor:: Louis Holbrook <dev@holbrook.no> 4 .. pgp:: 0826EDA1702D1E87C6E2875121D2E7BB88C2A746 5 6 """ 7 8 # standard imports 9 import sys 10 import os 11 import json 12 import argparse 13 import logging 14 15 # external imports 16 from funga.eth.signer import EIP155Signer 17 from funga.eth.keystore.dict import DictKeystore 18 from chainlib.chain import ChainSpec 19 from chainlib.eth.connection import EthHTTPConnection 20 from chainlib.error import JSONRPCException 21 22 # local imports 23 from eth_owned.owned import Owned 24 25 logging.basicConfig(level=logging.WARNING) 26 logg = logging.getLogger() 27 28 script_dir = os.path.dirname(__file__) 29 data_dir = os.path.join(script_dir, '..', 'data') 30 31 default_format = 'terminal' 32 33 argparser = argparse.ArgumentParser() 34 argparser.add_argument('-p', '--provider', dest='p', default='http://localhost:8545', type=str, help='RPC provider url (http only)') 35 argparser.add_argument('-i', '--chain-spec', dest='i', type=str, default='evm:ethereum:1', help='Chain specification string') 36 #argparser.add_argument('-a', '--contract-address', dest='a', required=True, type=str, help='Contract address') 37 #argparser.add_argument('-f', '--format', dest='f', type=str, default=default_format, help='Output format [human, brief]') 38 argparser.add_argument('-v', action='store_true', help='Be verbose') 39 argparser.add_argument('-vv', action='store_true', help='Be more verbose') 40 argparser.add_argument('--env-prefix', default=os.environ.get('CONFINI_ENV_PREFIX'), dest='env_prefix', type=str, help='environment prefix for variables to overwrite configuration') 41 argparser.add_argument('address', type=str, nargs='?', help='Address to check registration for') 42 args = argparser.parse_args() 43 44 if args.vv: 45 logg.setLevel(logging.DEBUG) 46 elif args.v: 47 logg.setLevel(logging.INFO) 48 49 chain_spec = ChainSpec.from_chain_str(args.i) 50 51 rpc = EthHTTPConnection(args.p) 52 #account_registry_address = args.a 53 address = args.address 54 55 56 def main(): 57 c = Owned(chain_spec) 58 o = c.owner(address) 59 60 r = rpc.do(o) 61 owner = c.parse_owner(r) 62 print(owner) 63 64 65 if __name__ == '__main__': 66 main()