import logging import re from web3 import Web3 as Web3super from web3 import WebsocketProvider, HTTPProvider from .middleware import PlatformMiddleware re_websocket = re.compile('^wss?://') re_http = re.compile('^https?://') logg = logging.getLogger(__file__) def create_middleware(ipcpath): PlatformMiddleware.ipcaddr = ipcpath return PlatformMiddleware # overrides the original Web3 constructor #def Web3(blockchain_provider='ws://localhost:8546', ipcpath=None): def Web3(provider, ipcpath=None): w3 = Web3super(provider) if ipcpath != None: logg.info('using signer middleware with ipc {}'.format(ipcpath)) w3.middleware_onion.add(create_middleware(ipcpath)) w3.eth.personal = w3.geth.personal return w3