X-Git-Url: https://git.novaco.in/?p=stratum-mining.git;a=blobdiff_plain;f=lib%2Fcoinbaser.py;fp=lib%2Fcoinbaser.py;h=5111c3652d7f4c7301cf8bdd2efd00de54b9a6ce;hp=f3fd14b2a78c5fcb6dd2d8cbe4316758232e516e;hb=679245b565edcb2a03d865df3c08e86c0d6f402d;hpb=8a7474eb0eefdbc68e9b57371a68c25f33427f0d diff --git a/lib/coinbaser.py b/lib/coinbaser.py index f3fd14b..5111c36 100644 --- a/lib/coinbaser.py +++ b/lib/coinbaser.py @@ -5,18 +5,18 @@ import stratum.logger log = stratum.logger.get_logger('coinbaser') # TODO: Add on_* hooks in the app - + class SimpleCoinbaser(object): '''This very simple coinbaser uses constant bitcoin address for all generated blocks.''' - + def __init__(self, bitcoin_rpc, address): # Fire callback when coinbaser is ready self.on_load = defer.Deferred() - + self.address = address self.is_valid = False # We need to check if pool can use this address - + self.bitcoin_rpc = bitcoin_rpc self._validate() @@ -24,35 +24,35 @@ class SimpleCoinbaser(object): d = self.bitcoin_rpc.validateaddress(self.address) d.addCallback(self._address_check) d.addErrback(self._failure) - + def _address_check(self, result): if result['isvalid'] and result['ismine']: self.is_valid = True log.info("Coinbase address '%s' is valid" % self.address) - + if not self.on_load.called: self.on_load.callback(True) - + else: self.is_valid = False log.error("Coinbase address '%s' is NOT valid!" % self.address) - + def _failure(self, failure): log.error("Cannot validate Bitcoin address '%s'" % self.address) raise - + #def on_new_block(self): # pass - + #def on_new_template(self): # pass - + def get_script_pubkey(self): if not self.is_valid: # Try again, maybe bitcoind was down? self._validate() raise Exception("Coinbase address is not validated!") - return util.script_to_address(self.address) - + return util.script_to_address(self.address) + def get_coinbase_data(self): - return '' \ No newline at end of file + return ''