# standard imports import logging # external imports from cic_eth_registry import CICRegistry from cic_eth_registry.lookup.declarator import AddressDeclaratorLookup from cic_eth_registry.lookup.tokenindex import TokenIndexLookup from chainlib.eth.constant import ZERO_ADDRESS logg = logging.getLogger() def connect_token_registry(rpc, chain_spec, sender_address=ZERO_ADDRESS): registry = CICRegistry(chain_spec, rpc) token_registry_address = registry.by_name('TokenRegistry', sender_address=sender_address) logg.debug('using token registry address {}'.format(token_registry_address)) lookup = TokenIndexLookup(chain_spec, token_registry_address) CICRegistry.add_lookup(lookup) def connect_declarator(rpc, chain_spec, trusted_addresses, sender_address=ZERO_ADDRESS): registry = CICRegistry(chain_spec, rpc) declarator_address = registry.by_name('AddressDeclarator', sender_address=sender_address) logg.debug('using declarator address {}'.format(declarator_address)) lookup = AddressDeclaratorLookup(chain_spec, declarator_address, trusted_addresses) CICRegistry.add_lookup(lookup) def connect(rpc, chain_spec, registry_address, sender_address=ZERO_ADDRESS): CICRegistry.address = registry_address registry = CICRegistry(chain_spec, rpc) registry_address = registry.by_name('ContractRegistry', sender_address=sender_address) return registry