Пример #1
0
def test_rpc_project_cmd_settings(devnetwork, testproject, config, settings_proj):
    """Test if project specific settings are properly passed on to the RPC."""
    if devnetwork.rpc.is_active():
        devnetwork.rpc.kill()
    cmd_settings_proj = settings_proj["cmd_settings"]
    testproject.load_config()
    devnetwork.connect("development")

    # Check if rpc time is roughly the start time in the config file
    # Use diff < 25h to dodge potential timezone differences
    assert cmd_settings_proj["time"].timestamp() - devnetwork.chain.time() < 60 * 60 * 25

    accounts = devnetwork.accounts
    assert cmd_settings_proj["accounts"] + len(cmd_settings_proj["unlock"]) == len(accounts)
    assert cmd_settings_proj["default_balance"] == accounts[0].balance()

    # Test if mnemonic was updated to "brownie2"
    assert "0x816200940a049ff1DEAB864d67a71ae6Dd1ebc3e" == accounts[0].address

    # Test if unlocked accounts are added to the accounts object
    assert "0x16Fb96a5fa0427Af0C8F7cF1eB4870231c8154B6" == accounts[-2].address
    assert "0x81431b69B1e0E334d4161A13C2955e0f3599381e" == accounts[-1].address

    # Test if gas limit and price are loaded from the config
    tx = accounts[0].transfer(accounts[1], 0)
    assert tx.gas_limit == settings_proj["gas_limit"]
    assert tx.gas_price == settings_proj["gas_price"]

    # Test if chain ID and network ID can be properly queried
    assert web3.isConnected()
    assert web3.eth.chainId == 666
    assert web3.net.version == "777"

    devnetwork.rpc.kill()
Пример #2
0
def from_ethpm(uri: str) -> "TempProject":

    """
    Generates a TempProject from an ethPM package.
    """

    manifest = get_manifest(uri)
    compiler_config = {
        "evm_version": None,
        "solc": {"version": None, "optimize": True, "runs": 200},
        "vyper": {"version": None},
    }
    project = TempProject(manifest["package_name"], manifest["sources"], compiler_config)
    if web3.isConnected():
        for contract_name in project.keys():
            for address in get_deployment_addresses(manifest, contract_name):
                project[contract_name].at(address)
    return project