def disconnect(kill_rpc: bool = True) -> None: """Disconnects from the network.""" if not is_connected(): raise ConnectionError("Not connected to any network") CONFIG.clear_active() if kill_rpc and rpc.is_active(): if rpc.is_child(): rpc.kill() web3.disconnect() _notify_registry(0)
def connect(network: str = None, launch_rpc: bool = True) -> None: """Connects to the network. Args: network: string of of the name of the network to connect to Network information is retrieved from brownie-config.json""" if is_connected(): raise ConnectionError( f"Already connected to network '{CONFIG.active_network['id']}'") try: active = CONFIG.set_active_network(network) host = active["host"] if ":" not in host.split("//", maxsplit=1)[-1]: try: host += f":{active['cmd_settings']['port']}" except KeyError: pass web3.connect(host, active.get("timeout", 30)) if CONFIG.network_type == "development" and launch_rpc and not rpc.is_active( ): if is_connected(): if web3.eth.blockNumber != 0: warnings.warn( f"Development network has a block height of {web3.eth.blockNumber}", BrownieEnvironmentWarning, ) rpc.attach(host) else: rpc.launch(active["cmd"], **active["cmd_settings"]) else: Accounts()._reset() if CONFIG.network_type == "live" or CONFIG.settings[ "dev_deployment_artifacts"]: for p in project.get_loaded_projects(): p._load_deployments() except Exception: CONFIG.clear_active() web3.disconnect() raise
def connect(network: str = None, launch_rpc: bool = True) -> None: """Connects to the network. Args: network: string of of the name of the network to connect to Network information is retrieved from brownie-config.json""" if is_connected(): raise ConnectionError(f"Already connected to network '{CONFIG.active_network['id']}'") try: active = CONFIG.set_active_network(network) if "host" not in active: raise KeyError(f"No host in brownie-config.json for network '{active['id']}'") host = active["host"] if ":" not in host.split("//", maxsplit=1)[-1]: try: host += f":{active['cmd_settings']['port']}" except KeyError: pass web3.connect(host) if CONFIG.network_type == "development" and launch_rpc and not rpc.is_active(): if is_connected(): if web3.eth.blockNumber != 0: raise ValueError("Local RPC Client has a block height > 0") rpc.attach(host) else: rpc.launch(active["cmd"], **active["cmd_settings"]) else: Accounts()._reset() if CONFIG.network_type == "live": for p in project.get_loaded_projects(): p._load_deployments() except Exception: CONFIG.clear_active() web3.disconnect() raise