def manager_by_token(self, token_address): """ Find the channel manager for `token_address` and return a proxy to interact with it. If the token is not already registered it raises `EthNodeCommunicationError`, since we try to instantiate a Channel manager with an empty address. """ if not isaddress(token_address): raise ValueError('token_address must be a valid address') if token_address not in self.token_to_channelmanager: check_address_has_code( self.client, token_address) # check that the token exists manager_address = self.manager_address_by_token(token_address) if manager_address is None: raise NoTokenManager( 'Manager for token 0x{} does not exist'.format( token_address.encode('hex'))) manager = ChannelManager( self.client, manager_address, self.startgas, self.gasprice, self.poll_timeout, ) self.token_to_channelmanager[token_address] = manager self.address_to_channelmanager[manager_address] = manager return self.token_to_channelmanager[token_address]
def manager(self, manager_address): """ Return a proxy to interact with a ChannelManagerContract. """ if not is_binary_address(manager_address): raise ValueError('manager_address must be a valid address') if manager_address not in self.address_to_channelmanager: manager = ChannelManager( self.client, manager_address, ) token_address = manager.token_address() self.token_to_channelmanager[token_address] = manager self.address_to_channelmanager[manager_address] = manager return self.address_to_channelmanager[manager_address]
def manager(self, manager_address): """ Return a proxy to interact with a ChannelManagerContract. """ if not isaddress(manager_address): raise ValueError('manager_address must be a valid address') if manager_address not in self.address_to_channelmanager: manager = ChannelManager( self.client, manager_address, self.startgas, self.gasprice, self.poll_timeout, ) token_address = manager.token_address() self.token_to_channelmanager[token_address] = manager self.address_to_channelmanager[manager_address] = manager return self.address_to_channelmanager[manager_address]