callback for blocks

This commit is contained in:
ThomasV 2012-03-17 12:51:16 +01:00
parent 4b6e163a39
commit 9039cf959a
2 changed files with 19 additions and 6 deletions

12
client/blocks Executable file
View File

@ -0,0 +1,12 @@
#!/usr/bin/env python
import socket, time, interface
def cb(block_number):
print block_number
i = interface.TCPInterface('ecdsa.org', 50001, newblock_callback=cb)
i.start_session([],"zob")
while True:
time.sleep(1)

View File

@ -27,11 +27,12 @@ DEFAULT_SERVERS = ['ecdsa.org','electrum.novit.ro'] # list of default servers
class Interface: class Interface:
def __init__(self, host, port, address_callback, history_callback): def __init__(self, host, port, address_callback=None, history_callback=None, newblock_callback=None):
self.host = host self.host = host
self.port = port self.port = port
self.address_callback = address_callback self.address_callback = address_callback
self.history_callback = history_callback self.history_callback = history_callback
self.newblock_callback = newblock_callback
self.servers = DEFAULT_SERVERS # actual list from IRC self.servers = DEFAULT_SERVERS # actual list from IRC
self.rtime = 0 self.rtime = 0
@ -212,8 +213,8 @@ import threading
class TCPInterface(Interface): class TCPInterface(Interface):
"""json-rpc over persistent TCP connection, asynchronous""" """json-rpc over persistent TCP connection, asynchronous"""
def __init__(self, host, port, acb, hcb): def __init__(self, host, port, address_callback=None, history_callback=None, newblock_callback=None):
Interface.__init__(self, host, port, acb, hcb) Interface.__init__(self, host, port, address_callback, history_callback, newblock_callback)
self.message_id = 0 self.message_id = 0
self.messages = {} self.messages = {}
@ -286,7 +287,7 @@ class TCPInterface(Interface):
elif method == 'numblocks.subscribe': elif method == 'numblocks.subscribe':
self.blocks = result self.blocks = result
apply(self.newblock_callback,(result,))
else: else:
print "received message:", c print "received message:", c
@ -351,10 +352,10 @@ def new_interface(wallet):
elif port == 50001: elif port == 50001:
interface = TCPInterface(host, port, address_cb, history_cb) interface = TCPInterface(host, port, address_cb, history_cb)
elif port in [80, 81, 8080, 8081]: elif port in [80, 81, 8080, 8081]:
interface = HttpInterface(host, port, address_cb, history_cb) interface = HttpInterface(host, port, address_cb, history_cb)
else: else:
print "unknown port number: %d. using native protocol."%port print "unknown port number: %d. using native protocol."%port
interface = NativeInterface(host,port) interface = NativeInterface(host, port, address_cb, history_cb)
return interface return interface