def test_token_registry(self): # given ERC20Token.register_token( Address('0x0100000000000000000000000000000000000000'), 'ABC') ERC20Token.register_token( Address('0x0200000000000000000000000000000000000000'), 'DEF') ERC20Token.register_token( Address('0x0300000000000000000000000000000000000000'), 'GHI') # expect assert ERC20Token.token_name_by_address( Address('0x0100000000000000000000000000000000000000')) == 'ABC' assert ERC20Token.token_name_by_address( Address('0x0200000000000000000000000000000000000000')) == 'DEF' assert ERC20Token.token_name_by_address( Address('0x0300000000000000000000000000000000000000')) == 'GHI' with pytest.raises(Exception): assert ERC20Token.token_name_by_address( Address('0x0400000000000000000000000000000000000000')) # and assert ERC20Token.token_address_by_name('ABC') == Address( '0x0100000000000000000000000000000000000000') assert ERC20Token.token_address_by_name('DEF') == Address( '0x0200000000000000000000000000000000000000') assert ERC20Token.token_address_by_name('GHI') == Address( '0x0300000000000000000000000000000000000000') with pytest.raises(Exception): ERC20Token.token_address_by_name('XXX')
def __str__(self): def amt(amount: Wad) -> str: return f"{amount} " if amount is not None else "" source_token_name = ERC20Token.token_name_by_address(self.source_token) target_token_name = ERC20Token.token_name_by_address(self.target_token) return f"[{amt(self.source_amount)}{source_token_name} -> {amt(self.target_amount)}{target_token_name} " \ f"@{self.rate} by {self.method} (max={self.max_source_amount} {source_token_name})]"