Exemplo n.º 1
0
    def __init__(self, config, fd):

        DaemonThread.__init__(self)
        self.config = config
        if config.get('offline'):
            self.network = None
        else:
            self.network = Network(config)
            self.network.start()
        self.gui = None
        self.wallets = {}
        # Setup server
        cmd_runner = Commands(self.config, None, self.network)
        host = config.get('rpchost', 'localhost')
        port = config.get('rpcport', 0)
        server = SimpleJSONRPCServer((host, port), logRequests=False,
                                     requestHandler=RequestHandler)
        os.write(fd, repr((server.socket.getsockname(), time.time())))
        os.close(fd)
        server.timeout = 0.1
        for cmdname in known_commands:
            server.register_function(getattr(cmd_runner, cmdname), cmdname)
        server.register_function(self.run_cmdline, 'run_cmdline')
        server.register_function(self.ping, 'ping')
        server.register_function(self.run_daemon, 'daemon')
        server.register_function(self.run_gui, 'gui')
        self.server = server
Exemplo n.º 2
0
 def __init__(self, config, is_local, gui_name):
     DaemonThread.__init__(self)
     if is_local:
         find = imp.find_module('plugins')
         plugins = imp.load_module('electrum_plugins', *find)
     else:
         plugins = __import__('electrum_plugins')
     self.pkgpath = os.path.dirname(plugins.__file__)
     self.config = config
     self.hw_wallets = {}
     self.plugins = {}
     self.gui_name = gui_name
     self.descriptions = []
     for loader, name, ispkg in pkgutil.iter_modules([self.pkgpath]):
         m = loader.find_module(name).load_module(name)
         d = m.__dict__
         gui_good = gui_name in d.get('available_for', [])
         details = d.get('registers_wallet_type')
         if details:
             self.register_plugin_wallet(name, gui_good, details)
         if not gui_good:
             continue
         self.descriptions.append(d)
         if not d.get('requires_wallet_type') and config.get('use_' + name):
             self.load_plugin(config, name)
Exemplo n.º 3
0
 def __init__(self, config, is_local, gui_name):
     DaemonThread.__init__(self)
     if is_local:
         find = imp.find_module('plugins')
         plugins = imp.load_module('electrum_plugins', *find)
     else:
         plugins = __import__('electrum_plugins')
     self.pkgpath = os.path.dirname(plugins.__file__)
     self.config = config
     self.hw_wallets = {}
     self.plugins = {}
     self.gui_name = gui_name
     self.descriptions = {}
     self.device_manager = DeviceMgr()
     self.load_plugins()
     self.start()
Exemplo n.º 4
0
    def __init__(self, config, fd):

        DaemonThread.__init__(self)
        self.config = config
        if config.get('offline'):
            self.network = None
        else:
            self.network = Network(config)
            self.network.start()
        self.gui = None
        self.wallets = {}
        # Setup JSONRPC server
        path = config.get_wallet_path()
        default_wallet = self.load_wallet(path)
        self.cmd_runner = Commands(self.config, default_wallet, self.network)
        self.init_server(config, fd)
Exemplo n.º 5
0
 def __init__(self, config, is_local, gui_name):
     DaemonThread.__init__(self)
     if is_local:
         find = imp.find_module('plugins')
         plugins = imp.load_module('electrum_plugins', *find)
     else:
         plugins = __import__('electrum_plugins')
     self.pkgpath = os.path.dirname(plugins.__file__)
     self.config = config
     self.hw_wallets = {}
     self.plugins = {}
     self.gui_name = gui_name
     self.descriptions = {}
     self.device_manager = DeviceMgr(config)
     self.load_plugins()
     self.add_jobs(self.device_manager.thread_jobs())
     self.start()
Exemplo n.º 6
0
    def __init__(self, config, fd):
        DaemonThread.__init__(self)
        self.config = config
        if config.get('offline'):
            self.network = None
            self.fx = None
        else:
            self.network = Network(config)
            self.network.start()
            self.fx = FxThread(config, self.network)
            self.network.add_jobs([self.fx])

        self.gui = None
        self.wallets = {}
        # Setup JSONRPC server
        self.cmd_runner = Commands(self.config, None, self.network)
        self.init_server(config, fd)
Exemplo n.º 7
0
    def __init__(self, config, fd):
        DaemonThread.__init__(self)
        self.config = config
        if config.get('offline'):
            self.network = None
            self.fx = None
        else:
            self.network = Network(config)
            self.network.start()
            self.fx = FxThread(config, self.network)
            self.network.add_jobs([self.fx])

        self.gui = None
        self.wallets = {}
        # Setup JSONRPC server
        self.cmd_runner = Commands(self.config, None, self.network)
        self.init_server(config, fd)
Exemplo n.º 8
0
    def __init__(self, config, fd, is_gui):
        DaemonThread.__init__(self)
        self.config = config
        if config.get('offline'):
            self.network = None
            self.fx = None
        else:
            self.network = Network(config)
            self.network.start()
            self.fx = FxThread(config, self.network)
            self.network.add_jobs([self.fx])

        self.gui = None
        self.wallets = {}
        # Setup JSONRPC server
        path = config.get_wallet_path()
        default_wallet = self.load_wallet(path)
        self.init_server(config, fd, is_gui)
Exemplo n.º 9
0
 def __init__(self, config, network):
     DaemonThread.__init__(self)
     self.config = config
     self.network = network
     self.gui = None
     self.wallets = {}
     self.wallet = None
     self.cmd_runner = Commands(self.config, self.wallet, self.network)
     host = config.get('rpchost', 'localhost')
     port = config.get('rpcport', 0)
     self.server = SimpleJSONRPCServer((host, port), requestHandler=RequestHandler, logRequests=False)
     with open(lockfile(config), 'w') as f:
         f.write(repr(self.server.socket.getsockname()))
     self.server.timeout = 0.1
     for cmdname in known_commands:
         self.server.register_function(getattr(self.cmd_runner, cmdname), cmdname)
     self.server.register_function(self.run_cmdline, 'run_cmdline')
     self.server.register_function(self.ping, 'ping')
     self.server.register_function(self.run_daemon, 'daemon')
     self.server.register_function(self.run_gui, 'gui')
Exemplo n.º 10
0
 def __init__(self, config, network):
     DaemonThread.__init__(self)
     self.config = config
     self.network = network
     self.gui = None
     self.wallets = {}
     self.wallet = None
     self.cmd_runner = Commands(self.config, self.wallet, self.network)
     host = config.get('rpchost', 'localhost')
     port = config.get('rpcport', 0)
     self.server = SimpleJSONRPCServer((host, port), requestHandler=RequestHandler, logRequests=False)
     with open(lockfile(config), 'w') as f:
         f.write(repr(self.server.socket.getsockname()))
     self.server.timeout = 0.1
     for cmdname in known_commands:
         self.server.register_function(getattr(self.cmd_runner, cmdname), cmdname)
     self.server.register_function(self.run_cmdline, 'run_cmdline')
     self.server.register_function(self.ping, 'ping')
     self.server.register_function(self.run_daemon, 'daemon')
     self.server.register_function(self.run_gui, 'gui')
Exemplo n.º 11
0
 def __init__(self, config, is_local, gui_name):
     DaemonThread.__init__(self)
     if is_local:
         find = imp.find_module('plugins')
         plugins = imp.load_module('electrum_plugins', *find)
     else:
         plugins = __import__('electrum_plugins')
     self.pkgpath = os.path.dirname(plugins.__file__)
     self.plugins = {}
     self.gui_name = gui_name
     self.descriptions = []
     for loader, name, ispkg in pkgutil.iter_modules([self.pkgpath]):
         m = loader.find_module(name).load_module(name)
         d = m.__dict__
         if gui_name not in d.get('available_for', []):
             continue
         self.descriptions.append(d)
         x = d.get('registers_wallet_type')
         if x:
             self.register_wallet_type(config, name, x)
         if not d.get('requires_wallet_type') and config.get('use_' + name):
             self.load_plugin(config, name)
Exemplo n.º 12
0
    def __init__(self, config, fd):

        DaemonThread.__init__(self)
        self.config = config
        if config.get('offline'):
            self.network = None
        else:
            self.network = Network(config)
            self.network.start()
        self.gui = None
        self.wallets = {}
        # Setup server
        cmd_runner = Commands(self.config, None, self.network)
        host = config.get('rpchost', 'localhost')
        port = config.get('rpcport', 0)
        rpc_user, rpc_password = get_rpc_credentials(config)
        try:
            server = VerifyingJSONRPCServer((host, port),
                                            rpc_user=rpc_user,
                                            rpc_password=rpc_password,
                                            logRequests=False)
        except Exception as e:
            self.print_error('Warning: cannot initialize RPC server on host',
                             host, e)
            self.server = None
            os.close(fd)
            return
        os.write(fd, repr((server.socket.getsockname(), time.time())))
        os.close(fd)
        server.timeout = 0.1
        for cmdname in known_commands:
            server.register_function(getattr(cmd_runner, cmdname), cmdname)
        server.register_function(self.run_cmdline, 'run_cmdline')
        server.register_function(self.ping, 'ping')
        server.register_function(self.run_daemon, 'daemon')
        server.register_function(self.run_gui, 'gui')
        self.server = server
        server.timeout = 0.1
        server.register_function(self.ping, 'ping')
Exemplo n.º 13
0
 def stop(self):
     self.print_error("stopping, removing lockfile")
     remove_lockfile(get_lockfile(self.config))
     DaemonThread.stop(self)
Exemplo n.º 14
0
 def stop(self):
     for k, wallet in self.wallets.items():
         wallet.stop_threads()
     DaemonThread.stop(self)
Exemplo n.º 15
0
 def stop(self):
     self.print_error("stopping, removing lockfile")
     remove_lockfile(get_lockfile(self.config))
     DaemonThread.stop(self)
Exemplo n.º 16
0
 def stop(self):
     for k, wallet in self.wallets.items():
         wallet.stop_threads()
     DaemonThread.stop(self)