|
12 | 12 | import socket
|
13 | 13 | import binascii
|
14 | 14 | import hashlib
|
15 |
| -import bitcoin.base58 as base58 |
16 |
| -import bitcoin.script as script |
17 | 15 |
|
18 |
| -from bitcoin.serialize import * |
19 |
| -from bitcoin.coredefs import * |
| 16 | +from .script import CScript |
| 17 | + |
| 18 | +from .serialize import * |
| 19 | +from .coredefs import * |
20 | 20 |
|
21 | 21 | def x(h):
|
22 | 22 | """Convert a hex string to bytes"""
|
@@ -64,85 +64,6 @@ def str_money_value(value):
|
64 | 64 | r += '0'
|
65 | 65 | return r
|
66 | 66 |
|
67 |
| -class CBitcoinAddress(base58.CBase58Data): |
68 |
| - """A Bitcoin address""" |
69 |
| - PUBKEY_ADDRESS = 0 |
70 |
| - SCRIPT_ADDRESS = 5 |
71 |
| - PUBKEY_ADDRESS_TEST = 111 |
72 |
| - SCRIPT_ADDRESS_TEST = 196 |
73 |
| - |
74 |
| - def to_scriptPubKey(self): |
75 |
| - """Convert an address to a scriptPubKey""" |
76 |
| - if self.nVersion in (self.PUBKEY_ADDRESS, self.PUBKEY_ADDRESS_TEST): |
77 |
| - return script.CScript([script.OP_DUP, script.OP_HASH160, self, script.OP_EQUALVERIFY, script.OP_CHECKSIG]) |
78 |
| - |
79 |
| - elif self.nVersion in (self.SCRIPT_ADDRESS, self.SCRIPT_ADDRESS_TEST): |
80 |
| - return script.CScript([script.OP_HASH160, self, script.OP_EQUAL]) |
81 |
| - |
82 |
| - else: |
83 |
| - raise ValueError("CBitcoinAddress: Don't know how to convert version %d to a scriptPubKey" % self.nVersion) |
84 |
| - |
85 |
| - |
86 |
| -class CAddress(object): |
87 |
| - def __init__(self, protover=PROTO_VERSION): |
88 |
| - self.protover = protover |
89 |
| - self.nTime = 0 |
90 |
| - self.nServices = 1 |
91 |
| - self.pchReserved = b"\x00" * 10 + b"\xff" * 2 |
92 |
| - self.ip = "0.0.0.0" |
93 |
| - self.port = 0 |
94 |
| - def deserialize(self, f): |
95 |
| - if self.protover >= CADDR_TIME_VERSION: |
96 |
| - self.nTime = struct.unpack(b"<I", ser_read(f,4))[0] |
97 |
| - self.nServices = struct.unpack(b"<Q", ser_read(f,8))[0] |
98 |
| - self.pchReserved = ser_read(f,12) |
99 |
| - self.ip = socket.inet_ntoa(ser_read(f,4)) |
100 |
| - self.port = struct.unpack(b">H", ser_read(f,2))[0] |
101 |
| - def serialize(self): |
102 |
| - r = b"" |
103 |
| - if self.protover >= CADDR_TIME_VERSION: |
104 |
| - r += struct.pack(b"<I", self.nTime) |
105 |
| - r += struct.pack(b"<Q", self.nServices) |
106 |
| - r += self.pchReserved |
107 |
| - r += socket.inet_aton(self.ip) |
108 |
| - r += struct.pack(b">H", self.port) |
109 |
| - return r |
110 |
| - def __repr__(self): |
111 |
| - return "CAddress(nTime=%d nServices=%i ip=%s port=%i)" % (self.nTime, self.nServices, self.ip, self.port) |
112 |
| - |
113 |
| -class CInv(object): |
114 |
| - typemap = { |
115 |
| - 0: "Error", |
116 |
| - 1: "TX", |
117 |
| - 2: "Block"} |
118 |
| - def __init__(self): |
119 |
| - self.type = 0 |
120 |
| - self.hash = 0 |
121 |
| - def deserialize(self, f): |
122 |
| - self.type = struct.unpack(b"<i", ser_read(f,4))[0] |
123 |
| - self.hash = ser_read(f,32) |
124 |
| - def serialize(self): |
125 |
| - r = b"" |
126 |
| - r += struct.pack(b"<i", self.type) |
127 |
| - r += self.hash |
128 |
| - return r |
129 |
| - def __repr__(self): |
130 |
| - return "CInv(type=%s hash=%064x)" % (self.typemap[self.type], self.hash) |
131 |
| - |
132 |
| -class CBlockLocator(object): |
133 |
| - def __init__(self): |
134 |
| - self.nVersion = PROTO_VERSION |
135 |
| - self.vHave = [] |
136 |
| - def deserialize(self, f): |
137 |
| - self.nVersion = struct.unpack(b"<i", ser_read(f,4))[0] |
138 |
| - self.vHave = deser_uint256_vector(f) |
139 |
| - def serialize(self): |
140 |
| - r = b"" |
141 |
| - r += struct.pack(b"<i", self.nVersion) |
142 |
| - r += ser_uint256_vector(self.vHave) |
143 |
| - return r |
144 |
| - def __repr__(self): |
145 |
| - return "CBlockLocator(nVersion=%i vHave=%s)" % (self.nVersion, repr(self.vHave)) |
146 | 67 |
|
147 | 68 | class COutPoint(Serializable):
|
148 | 69 | """The combination of a transaction hash and an index n into its vout"""
|
@@ -184,7 +105,7 @@ class CTxIn(Serializable):
|
184 | 105 | """
|
185 | 106 | __slots__ = ['prevout', 'scriptSig', 'nSequence']
|
186 | 107 |
|
187 |
| - def __init__(self, prevout=None, scriptSig=script.CScript(), nSequence = 0xffffffff): |
| 108 | + def __init__(self, prevout=None, scriptSig=CScript(), nSequence = 0xffffffff): |
188 | 109 | if prevout is None:
|
189 | 110 | prevout = COutPoint()
|
190 | 111 | self.prevout = prevout
|
@@ -377,69 +298,6 @@ def calc_merkle_root(self):
|
377 | 298 | hashes.append(Hash(tx.serialize()))
|
378 | 299 | return CBlock.calc_merkle_root_from_hashes(hashes)
|
379 | 300 |
|
380 |
| -class CUnsignedAlert(object): |
381 |
| - def __init__(self): |
382 |
| - self.nVersion = 1 |
383 |
| - self.nRelayUntil = 0 |
384 |
| - self.nExpiration = 0 |
385 |
| - self.nID = 0 |
386 |
| - self.nCancel = 0 |
387 |
| - self.setCancel = [] |
388 |
| - self.nMinVer = 0 |
389 |
| - self.nMaxVer = 0 |
390 |
| - self.setSubVer = [] |
391 |
| - self.nPriority = 0 |
392 |
| - self.strComment = b"" |
393 |
| - self.strStatusBar = b"" |
394 |
| - self.strReserved = b"" |
395 |
| - def deserialize(self, f): |
396 |
| - self.nVersion = struct.unpack(b"<i", ser_read(f,4))[0] |
397 |
| - self.nRelayUntil = struct.unpack(b"<q", ser_read(f,8))[0] |
398 |
| - self.nExpiration = struct.unpack(b"<q", ser_read(f,8))[0] |
399 |
| - self.nID = struct.unpack(b"<i", ser_read(f,4))[0] |
400 |
| - self.nCancel = struct.unpack(b"<i", ser_read(f,4))[0] |
401 |
| - self.setCancel = deser_int_vector(f) |
402 |
| - self.nMinVer = struct.unpack(b"<i", ser_read(f,4))[0] |
403 |
| - self.nMaxVer = struct.unpack(b"<i", ser_read(f,4))[0] |
404 |
| - self.setSubVer = deser_string_vector(f) |
405 |
| - self.nPriority = struct.unpack(b"<i", ser_read(f,4))[0] |
406 |
| - self.strComment = deser_string(f) |
407 |
| - self.strStatusBar = deser_string(f) |
408 |
| - self.strReserved = deser_string(f) |
409 |
| - def serialize(self): |
410 |
| - r = b"" |
411 |
| - r += struct.pack(b"<i", self.nVersion) |
412 |
| - r += struct.pack(b"<q", self.nRelayUntil) |
413 |
| - r += struct.pack(b"<q", self.nExpiration) |
414 |
| - r += struct.pack(b"<i", self.nID) |
415 |
| - r += struct.pack(b"<i", self.nCancel) |
416 |
| - r += ser_int_vector(self.setCancel) |
417 |
| - r += struct.pack(b"<i", self.nMinVer) |
418 |
| - r += struct.pack(b"<i", self.nMaxVer) |
419 |
| - r += ser_string_vector(self.setSubVer) |
420 |
| - r += struct.pack(b"<i", self.nPriority) |
421 |
| - r += ser_string(self.strComment) |
422 |
| - r += ser_string(self.strStatusBar) |
423 |
| - r += ser_string(self.strReserved) |
424 |
| - return r |
425 |
| - def __repr__(self): |
426 |
| - return "CUnsignedAlert(nVersion %d, nRelayUntil %d, nExpiration %d, nID %d, nCancel %d, nMinVer %d, nMaxVer %d, nPriority %d, strComment %s, strStatusBar %s, strReserved %s)" % (self.nVersion, self.nRelayUntil, self.nExpiration, self.nID, self.nCancel, self.nMinVer, self.nMaxVer, self.nPriority, self.strComment, self.strStatusBar, self.strReserved) |
427 |
| - |
428 |
| -class CAlert(object): |
429 |
| - def __init__(self): |
430 |
| - self.vchMsg = b"" |
431 |
| - self.vchSig = b"" |
432 |
| - def deserialize(self, f): |
433 |
| - self.vchMsg = deser_string(f) |
434 |
| - self.vchSig = deser_string(f) |
435 |
| - def serialize(self): |
436 |
| - r = b"" |
437 |
| - r += ser_string(self.vchMsg) |
438 |
| - r += ser_string(self.vchSig) |
439 |
| - return r |
440 |
| - def __repr__(self): |
441 |
| - return "CAlert(vchMsg.sz %d, vchSig.sz %d)" % (len(self.vchMsg), len(self.vchSig)) |
442 |
| - |
443 | 301 |
|
444 | 302 | class CheckTransactionError(ValueError):
|
445 | 303 | pass
|
|
0 commit comments