Skip to content

Commit c476a6f

Browse files
committed
Merge #160: implement bip-0037 in version message
b555d4a Add relay to __repr__ (David) 1a0beca implement bip-0037 in version message (David) Pull request description: According to bip-0037 Version messages above 70001 require a Relay Flag By default is true, but you can change to false with setter. https://github.com/bitcoin/bips/blob/master/bip-0037.mediawiki Tree-SHA512: 4863ce6456277bcad7fc65ec7dea29da4679c6e2ad5fee0073f2861eb8999b4ce100016570d980bc93c76ce21f64caa79aa4461f864edd8054fb538497cfd11c
2 parents 1a089d6 + b555d4a commit c476a6f

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

bitcoin/messages.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ def __init__(self, protover=PROTO_VERSION):
131131
self.strSubVer = (b'/python-bitcoinlib:' +
132132
bitcoin.__version__.encode('ascii') + b'/')
133133
self.nStartingHeight = -1
134+
self.fRelay = True
134135

135136
@classmethod
136137
def msg_deser(cls, f, protover=PROTO_VERSION):
@@ -154,6 +155,10 @@ def msg_deser(cls, f, protover=PROTO_VERSION):
154155
c.nNonce = None
155156
c.strSubVer = None
156157
c.nStartingHeight = None
158+
if c.nVersion >= 70001:
159+
c.fRelay = struct.unpack(b"<B", ser_read(f,1))[0]
160+
else:
161+
c.fRelay = None
157162
return c
158163

159164
def msg_ser(self, f):
@@ -165,9 +170,10 @@ def msg_ser(self, f):
165170
f.write(struct.pack(b"<Q", self.nNonce))
166171
VarStringSerializer.stream_serialize(self.strSubVer, f)
167172
f.write(struct.pack(b"<i", self.nStartingHeight))
173+
f.write(struct.pack(b"<B", self.fRelay))
168174

169175
def __repr__(self):
170-
return "msg_version(nVersion=%i nServices=%i nTime=%s addrTo=%s addrFrom=%s nNonce=0x%016X strSubVer=%s nStartingHeight=%i)" % (self.nVersion, self.nServices, time.ctime(self.nTime), repr(self.addrTo), repr(self.addrFrom), self.nNonce, self.strSubVer, self.nStartingHeight)
176+
return "msg_version(nVersion=%i nServices=%i nTime=%s addrTo=%s addrFrom=%s nNonce=0x%016X strSubVer=%s nStartingHeight=%i fRelay=%r)" % (self.nVersion, self.nServices, time.ctime(self.nTime), repr(self.addrTo), repr(self.addrFrom), self.nNonce, self.strSubVer, self.nStartingHeight, self.fRelay)
171177

172178

173179
class msg_verack(MsgSerializable):

0 commit comments

Comments
 (0)