35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
# 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
|
|
|