From 9e371c0dbbbed9ba485b06321f5203df97a53f3a Mon Sep 17 00:00:00 2001 From: iamdefinitelyahuman Date: Wed, 20 Nov 2019 18:58:45 +0400 Subject: [PATCH] bugfix - using ens domains for contract addresses --- brownie/network/state.py | 4 +-- .../{test_ens.py => test_ens_account.py} | 0 tests/network/contract/test_ens_contract.py | 26 +++++++++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) rename tests/network/account/{test_ens.py => test_ens_account.py} (100%) create mode 100644 tests/network/contract/test_ens_contract.py diff --git a/brownie/network/state.py b/brownie/network/state.py index 6a77787a7..6cc2c814b 100644 --- a/brownie/network/state.py +++ b/brownie/network/state.py @@ -3,9 +3,9 @@ from typing import Any, Dict, Iterator, List from brownie._singleton import _Singleton -from brownie.convert import to_address from .rpc import _revert_register +from .web3 import _resolve_address _contract_map: Dict = {} @@ -88,7 +88,7 @@ def _gas(self, fn_name: str, gas_used: int) -> None: def _find_contract(address: Any) -> Any: - address = to_address(address) + address = _resolve_address(address) if address not in _contract_map: return None return _contract_map[address] diff --git a/tests/network/account/test_ens.py b/tests/network/account/test_ens_account.py similarity index 100% rename from tests/network/account/test_ens.py rename to tests/network/account/test_ens_account.py diff --git a/tests/network/contract/test_ens_contract.py b/tests/network/contract/test_ens_contract.py new file mode 100644 index 000000000..c606c1d4d --- /dev/null +++ b/tests/network/contract/test_ens_contract.py @@ -0,0 +1,26 @@ +#!/usr/bin/python3 + +import pytest +from ens.exceptions import InvalidName + +from brownie.exceptions import UnsetENSName +from brownie.network.contract import Contract + + +def test_lookup(network): + network.connect("mainnet") + c = Contract("Test", "ens.snakecharmers.eth", []) + assert c == "0x808B53bF4D70A24bA5cb720D37A4835621A9df00" + assert c == "ens.snakecharmers.eth" + + +def test_invalid(network): + network.connect("mainnet") + with pytest.raises(InvalidName): + Contract("Test", "this-is-not-an-ENS-address,isit?.eth", []) + + +def test_unset(network): + network.connect("mainnet") + with pytest.raises(UnsetENSName): + Contract("Test", "pleasedonot.buythisoryouwill.breakmytests.eth", [])