X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=server-genjix.py;h=6df53f67a6d3732d83af5549ee091041df445fed;hb=9c2fe6c538ba52d3a224a9475135efd75263284a;hp=be44dba638ab7ca5cff96dde58ea9b826c70c0f3;hpb=fbd9f69a11594a85f3152c9d5f2ec2390880eddc;p=electrum-server.git diff --git a/server-genjix.py b/server-genjix.py index be44dba..6df53f6 100644 --- a/server-genjix.py +++ b/server-genjix.py @@ -3,6 +3,8 @@ import stratum import threading import time +import composed + class Backend: def __init__(self): @@ -127,11 +129,25 @@ class NumblocksSubscribe: if not sub[0].stopped()] return self.subscribed[:] +class AddressGetHistory: + + def __init__(self, backend): + self.backend = backend + + def get(self, session, request): + address = str(request["params"]) + composed.payment_history(self.backend.blockchain, address, + bitcoin.bind(self.respond, session, request, bitcoin._1)) + + def respond(self, session, request, result): + session.push_response({"id": request["id"], "result": result}) + class LibbitcoinProcessor(stratum.Processor): def __init__(self): self.backend = Backend() self.numblocks_subscribe = NumblocksSubscribe(self.backend) + self.address_get_history = AddressGetHistory(self.backend) stratum.Processor.__init__(self) def stop(self): @@ -139,9 +155,11 @@ class LibbitcoinProcessor(stratum.Processor): def process(self, session): request = session.pop_request() + print "New request (lib)", request if request["method"] == "numblocks.subscribe": self.numblocks_subscribe.subscribe(session, request) - print "New request (lib)", request + elif request["method"] == "address.get_history": + self.address_get_history.get(session, request) # Execute and when ready, you call # session.push_response(response)