Source code for flask_web3.utils

from web3 import HTTPProvider, WebsocketProvider, EthereumTesterProvider, IPCProvider

from .config import ETHEREUM_PROVIDER, ETHEREUM_OPTS, ETHEREUM_ENDPOINT_URI, ETHEREUM_IPC_PATH


[docs]def create_provider(config): """Create a web3.py provider :param config: Provider configuration :type config: dict """ provider, opts = config.get('ETHEREUM_PROVIDER', ETHEREUM_PROVIDER), config.get('ETHEREUM_OPTS', ETHEREUM_OPTS) if provider == 'http': return HTTPProvider(endpoint_uri=config.get('ETHEREUM_ENDPOINT_URI', ETHEREUM_ENDPOINT_URI), **opts) elif provider == 'ipc': return IPCProvider(ipc_path=config.get('ETHEREUM_IPC_PATH', ETHEREUM_IPC_PATH), **opts) elif provider == 'ws': return WebsocketProvider(endpoint_uri=config.get('ETHEREUM_ENDPOINT_URI', ETHEREUM_ENDPOINT_URI), **opts) elif provider == 'test': return EthereumTesterProvider() else: raise Exception("'ETHEREUM_PROVIDER' configuration must be one of 'http', 'ipc', 'ws', 'test'")