def test_remove_deployment(network): network.connect("mainnet") address = "0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e" Contract.from_explorer(address) Contract.remove_deployment(address) assert _get_deployment(address) == (None, None)
def test_existing_different_chains(network): network.connect("mainnet") Contract.from_explorer("0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2") network.disconnect() network.connect("ropsten") with pytest.raises(ValueError): Contract("0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2")
def test_remove_deployment_returns(network): network.connect("mainnet") address = "0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e" Contract.from_explorer(address) build_json, sources = _get_deployment(address) assert (build_json, sources) != (None, None) assert (build_json, sources) == (Contract.remove_deployment(address))
def test_from_explorer_deployment_enabled_by_default(network): network.connect("mainnet") address = "0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e" Contract.from_explorer(address) assert _get_deployment(address) != (None, None) # cleanup Contract.remove_deployment(address)
def test_as_proxy_for(network, original, impl): network.connect("mainnet") original = Contract.from_explorer(original) proxy = Contract.from_explorer(original, as_proxy_for=impl) implementation = Contract(impl) assert original.abi == proxy.abi assert original.address == proxy.address assert proxy.abi == implementation.abi assert proxy.address != implementation.address
def test_duplicate_alias(network): network.connect("mainnet") foo = Contract.from_explorer("0x2af5d2ad76741191d15dfe7bf6ac92d4bd912ca3") bar = Contract.from_explorer("0x2157a7894439191e520825fe9399ab8655e0f708") foo.set_alias("foo") with pytest.raises(ValueError): bar.set_alias("foo") bar.set_alias("bar") foo.set_alias(None) bar.set_alias("foo")
def test_as_proxy_for(network): network.connect("mainnet") original = Contract.from_explorer("0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b") proxy = Contract.from_explorer( "0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b", as_proxy_for="0x97BD4Cc841FC999194174cd1803C543247a014fe", ) implementation = Contract("0x97BD4Cc841FC999194174cd1803C543247a014fe") assert original.abi != proxy.abi assert original.address == proxy.address assert proxy.abi == implementation.abi assert proxy.address != implementation.address
def test_as_proxy_for(network): proxy = "0xAfE212AEDf1c8dCd0E470d73B3B4035D32A75Efd" impl = "0x098DCb095318A8B5321c5f2DB3fA04a55A780A20" network.connect("ropsten") original = Contract.from_explorer(proxy) proxy = Contract.from_explorer(proxy, as_proxy_for=impl) implementation = Contract(impl) assert original.abi == proxy.abi assert original.address == proxy.address assert proxy.abi == implementation.abi assert proxy.address != implementation.address
def test_as_proxy_for(network): network.connect("mainnet") original = Contract.from_explorer("0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b") proxy = Contract.from_explorer( "0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b", as_proxy_for="0x7b5e3521a049C8fF88e6349f33044c6Cc33c113c", ) implementation = Contract("0x7b5e3521a049C8fF88e6349f33044c6Cc33c113c") assert original.abi == proxy.abi assert original.address == proxy.address assert proxy.abi == implementation.abi assert proxy.address != implementation.address
def test_as_proxy_for(network): network.connect("mainnet") original = Contract.from_explorer( "0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b") proxy = Contract.from_explorer( "0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b", as_proxy_for="0xAf601CbFF871d0BE62D18F79C31e387c76fa0374", ) implementation = Contract("0xAf601CbFF871d0BE62D18F79C31e387c76fa0374") assert original.abi == proxy.abi assert original.address == proxy.address assert proxy.abi == implementation.abi assert proxy.address != implementation.address
def test_as_proxy_for(network): network.connect("mainnet") original = Contract.from_explorer( "0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b") proxy = Contract.from_explorer( "0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b", as_proxy_for="0x9d0a0443ff4bb04391655b8cd205683d9fa75550", ) implementation = Contract("0x9d0a0443ff4bb04391655b8cd205683d9fa75550") assert original.abi == proxy.abi assert original.address == proxy.address assert proxy.abi == implementation.abi assert proxy.address != implementation.address
def test_from_explorer(network): network.connect("mainnet") contract = Contract.from_explorer("0x973e52691176d36453868d9d86572788d27041a9") assert contract._name == "DxToken" assert "pcMap" in contract._build assert len(contract._sources) == 1
def test_from_explorer_pre_422(network): network.connect("mainnet") contract = Contract.from_explorer( "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2") assert contract._name == "DSToken" assert "pcMap" not in contract._build
def test_from_explorer_vyper(network): network.connect("mainnet") contract = Contract.from_explorer( "0x2157a7894439191e520825fe9399ab8655e0f708") assert contract._name == "Vyper_contract" assert "pcMap" not in contract._build
def test_from_explorer_etc(network): network.connect("etc") with pytest.warns(BrownieCompilerWarning): contract = Contract.from_explorer( "0x085b0fdf115aa9e16ae1bddd396ce1f993c52220") assert contract._name == "ONEX"
def test_from_explorer(network): network.connect("mainnet") contract = Contract.from_explorer("0x2af5d2ad76741191d15dfe7bf6ac92d4bd912ca3") assert contract._name == "LEO" assert "pcMap" in contract._build assert len(contract._sources) == 1
def test_retrieve_existing(network): network.connect("mainnet") with pytest.warns(BrownieCompilerWarning): new = Contract.from_explorer("0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2") existing = Contract("0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2") assert new == existing
def test_from_explorer_vyper_supported_010(network): network.connect("mainnet") # curve cDAI/cUSDC - `0.1.0-beta.16` contract = Contract.from_explorer("0x845838DF265Dcd2c412A1Dc9e959c7d08537f8a2") assert contract._name == "Vyper_contract" assert "pcMap" in contract._build
def test_from_explorer_only_abi(network): network.connect("mainnet") # uniswap DAI market - ABI is available but source is not with pytest.warns(BrownieCompilerWarning): contract = Contract.from_explorer("0x2a1530C4C41db0B0b2bB646CB5Eb1A67b7158667") assert contract._name == "UnknownContractName" assert "pcMap" not in contract._build
def test_from_explorer_vyper(network): network.connect("mainnet") with pytest.warns(BrownieCompilerWarning): contract = Contract.from_explorer( "0x2157a7894439191e520825fe9399ab8655e0f708") assert contract._name == "Vyper_contract" assert "pcMap" not in contract._build
def test_from_explorer_pre_422(network): network.connect("mainnet") # MKR, compiler version 0.4.18 with pytest.warns(BrownieCompilerWarning): contract = Contract.from_explorer("0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2") assert contract._name == "DSToken" assert "pcMap" not in contract._build
def test_from_explorer_vyper_supported_020(network): network.connect("mainnet") # curve yCRV gauge - `0.2.4` contract = Contract.from_explorer("0xFA712EE4788C042e2B7BB55E6cb8ec569C4530c1") assert contract._name == "Vyper_contract" assert "pcMap" in contract._build
def test_from_explorer_osx_pre_050(network, monkeypatch): network.connect("mainnet") monkeypatch.setattr("sys.platform", "darwin") installed = ["v0.5.8", "v0.5.7"] monkeypatch.setattr("solcx.get_installed_solc_versions", lambda: installed) # chainlink, compiler version 0.4.24 contract = Contract.from_explorer("0xf79d6afbb6da890132f9d7c355e3015f15f3406f") assert "pcMap" not in contract._build
def test_alias(network): network.connect("mainnet") contract = Contract.from_explorer("0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2") contract.set_alias("testalias") assert contract.alias == "testalias" assert Contract("testalias") == contract contract.set_alias(None) assert contract.alias is None with pytest.raises(ValueError): Contract("testalias")
def test_retrieve_existing(network): network.connect("mainnet") new = Contract.from_explorer("0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2") existing = Contract("0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2") assert new == existing
def test_from_explorer_etc(network): network.connect("etc") contract = Contract.from_explorer("0x085b0fdf115aa9e16ae1bddd396ce1f993c52220") assert contract._name == "ONEX"
def test_from_explorer_unverified(network): network.connect("mainnet") with pytest.raises(ValueError): Contract.from_explorer("0x0000000000000000000000000000000000000000")
def test_from_explorer_deployment_disabled(network): network.connect("mainnet") address = "0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e" Contract.from_explorer(address, persist=False) assert _get_deployment(address) == (None, None)