From: coblee Date: Thu, 19 Jul 2012 17:07:38 +0000 (-0700) Subject: Generalize the way to setup the server to use Litecoin. X-Git-Url: https://git.novaco.in/?p=electrum-server.git;a=commitdiff_plain;h=189fded888582341014f2e34ed6c173926ad5417 Generalize the way to setup the server to use Litecoin. --- diff --git a/backends/abe/__init__.py b/backends/abe/__init__.py index 48c01de..8c4454e 100644 --- a/backends/abe/__init__.py +++ b/backends/abe/__init__.py @@ -10,11 +10,8 @@ from Queue import Queue import time, threading - class AbeStore(Datastore_class): - addrtype = 48 - def __init__(self, config): conf = DataStore.CONFIG_DEFAULTS args, argv = readconf.parse_argv( [], conf) @@ -26,6 +23,16 @@ class AbeStore(Datastore_class): elif args.dbtype == 'psycopg2': args.connect_args = { 'database' : config.get('database','database') } + coin = config.get('server', 'coin') + self.addrtype = 0 + if coin == 'litecoin': + print 'Litecoin settings:' + datadir = config.get('server','datadir') + print ' datadir = ' + datadir + args.datadir = [{"dirname":datadir,"chain":"Litecoin","code3":"LTC","address_version":"\u0030"}] + print ' addrtype = 48' + self.addrtype = 48 + Datastore_class.__init__(self,args) self.sql_limit = int( config.get('database','limit') ) @@ -70,7 +77,7 @@ class AbeStore(Datastore_class): #print "WARNING: missing tx_in for tx", txid continue - address = hash_to_address(chr(addrtype), _hash) + address = hash_to_address(chr(self.addrtype), _hash) if self.tx_cache.has_key(address): print "cache: invalidating", address self.tx_cache.pop(address) @@ -83,7 +90,7 @@ class AbeStore(Datastore_class): #print "WARNING: missing tx_out for tx", txid continue - address = hash_to_address(chr(addrtype), _hash) + address = hash_to_address(chr(self.addrtype), _hash) if self.tx_cache.has_key(address): print "cache: invalidating", address self.tx_cache.pop(address) @@ -316,7 +323,7 @@ class AbeStore(Datastore_class): if not _hash: #print "WARNING: missing tx_in for tx", tx_id, addr continue - address = hash_to_address(chr(addrtype), _hash) + address = hash_to_address(chr(self.addrtype), _hash) txinputs.append(address) txpoint['inputs'] = txinputs txoutputs = [] @@ -326,7 +333,7 @@ class AbeStore(Datastore_class): if not _hash: #print "WARNING: missing tx_out for tx", tx_id, addr continue - address = hash_to_address(chr(addrtype), _hash) + address = hash_to_address(chr(self.addrtype), _hash) txoutputs.append(address) txpoint['outputs'] = txoutputs diff --git a/backends/irc/__init__.py b/backends/irc/__init__.py index bd981a3..0372002 100644 --- a/backends/irc/__init__.py +++ b/backends/irc/__init__.py @@ -19,6 +19,10 @@ class IrcThread(threading.Thread): self.host = config.get('server','host') self.nick = config.get('server', 'irc_nick') if not self.nick: self.nick = random_string(10) + self.prepend = 'E_' + if config.get('server', 'coin') == 'litecoin': + self.prepend = 'EL_' + self.nick = self.prepend + self.nick def get_peers(self): return self.peers.values() @@ -41,7 +45,7 @@ class IrcThread(threading.Thread): s = socket.socket() s.connect(('irc.freenode.net', 6667)) s.send('USER electrum 0 * :' + self.host + ' ' + ircname + '\n') - s.send('NICK EL_' + self.nick + '\n') + s.send('NICK ' + self.nick + '\n') s.send('JOIN #electrum\n') sf = s.makefile('r', 0) t = 0 @@ -55,7 +59,7 @@ class IrcThread(threading.Thread): elif '353' in line: # answer to /names k = line.index('353') for item in line[k+1:]: - if item[0:2] == 'EL_': + if item.startswith(self.prepend): s.send('WHO %s\n'%item) elif '352' in line: # answer to /who # warning: this is a horrible hack which apparently works diff --git a/server.py b/server.py index d2ef9d6..bfbeecd 100755 --- a/server.py +++ b/server.py @@ -43,6 +43,8 @@ def create_config(): config.set('server', 'password', '') config.set('server', 'irc', 'yes') config.set('server', 'irc_nick', '') + config.set('server', 'coin', '') + config.set('server', 'datadir', '') config.add_section('database') config.set('database', 'type', 'psycopg2') config.set('database', 'database', 'abe')